| 2018-09-11 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthN] Polish AuthenticatorManager and rename it to AuthenticatorCoordinator |
| https://bugs.webkit.org/show_bug.cgi?id=189277 |
| <rdar://problem/44115936> |
| |
| Reviewed by Chris Dumez. |
| |
| * DerivedSources.make: |
| * SourcesCocoa.txt: |
| * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.cpp: Removed. |
| * UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp: Added. |
| (WebKit::WebAuthenticatorCoordinatorProxy::WebAuthenticatorCoordinatorProxy): |
| (WebKit::WebAuthenticatorCoordinatorProxy::~WebAuthenticatorCoordinatorProxy): |
| (WebKit::WebAuthenticatorCoordinatorProxy::makeCredential): |
| (WebKit::WebAuthenticatorCoordinatorProxy::getAssertion): |
| (WebKit::WebAuthenticatorCoordinatorProxy::isUserVerifyingPlatformAuthenticatorAvailable): |
| (WebKit::WebAuthenticatorCoordinatorProxy::requestReply): |
| (WebKit::WebAuthenticatorCoordinatorProxy::isUserVerifyingPlatformAuthenticatorAvailableReply): |
| * UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.h: Renamed from Source/WebKit/UIProcess/CredentialManagement/WebCredentialsMessengerProxy.h. |
| * UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.messages.in: Renamed from Source/WebKit/UIProcess/CredentialManagement/WebCredentialsMessengerProxy.messages.in. |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::m_resetRecentCrashCountTimer): |
| (WebKit::WebPageProxy::reattachToWebProcess): |
| * UIProcess/WebPageProxy.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/CredentialManagement/WebCredentialsMessenger.cpp: Removed. |
| * WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp: Added. |
| (WebKit::WebAuthenticatorCoordinator::WebAuthenticatorCoordinator): |
| (WebKit::WebAuthenticatorCoordinator::~WebAuthenticatorCoordinator): |
| (WebKit::WebAuthenticatorCoordinator::makeCredential): |
| (WebKit::WebAuthenticatorCoordinator::getAssertion): |
| (WebKit::WebAuthenticatorCoordinator::isUserVerifyingPlatformAuthenticatorAvailable): |
| * WebProcess/WebAuthentication/WebAuthenticatorCoordinator.h: Renamed from Source/WebKit/WebProcess/CredentialManagement/WebCredentialsMessenger.h. |
| * WebProcess/WebAuthentication/WebAuthenticatorCoordinator.messages.in: Renamed from Source/WebKit/WebProcess/CredentialManagement/WebCredentialsMessenger.messages.in. |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_cpuLimit): |
| (WebKit::m_credentialsMessenger): Deleted. |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2018-09-10 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, fix ProcessSwap API tests after r235867. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::exitAcceleratedCompositingMode): |
| Add null-check for drawing area. |
| |
| 2018-09-10 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS] Unable to change the value of select elements while preserving focus state |
| https://bugs.webkit.org/show_bug.cgi?id=189475 |
| <rdar://problem/41125764> |
| |
| Reviewed by Tim Horton. |
| |
| With UITextInputMultiDocument support in WebKit (r226911), WKContentView may enter a state where the user is |
| able to interact with web content, but focus state is being preserved on WKWebView. This prevents keyboard and |
| input view dismissal from blurring the focused element (which, in turn, means that the value of certain form |
| controls, such as select elements, cannot be changed). This can happen in the following scenario: |
| |
| 1. Suppose we have a web view embedded inside of a view controller (let's call it `A`). |
| 2. Another view controller (let's call this one `B`) is modally presented over `A`. |
| 3. The web view is removed from `A`'s view hierarchy and reparented under `B`'s view. |
| 4. The user taps a form control in the web view, interacts with the keyboard, and taps the Done button. |
| |
| After step 2, WKContentView gets a call to `-_preserveFocusWithToken:destructively:`, which increments its focus |
| retain count to 1. Thus, in step 3, resigning first responder using the Done button fails to blur the element. |
| To fix this, we split the existing `_activeFocusedStateRetainCount` into two values: `_focusPreservationCount`, |
| which is safe to reset and resets to 0 when changing the focused element, and `_activeFocusedStateRetainCount`, |
| which always increments and decrements, and only does so when using `-_retainActiveFocusedState`. |
| |
| This also fixes a bug wherein `-_restoreFocusWithToken:` is implemented as returning `void` in WebKit, even |
| though its declaration in UIKit returns a `BOOL`. UIKit currently calls this selector on WKContentView and |
| stores the result within a `BOOL`; this results in the return value of `-_restoreFocusWithToken:` effectively |
| becoming the last byte of the most recent value stored in `$rax` when exiting `-_restoreFocusWithToken:`. From |
| debugging a release build of WebKit, this turns out to just be 0x0, becoming NO, which is correct given that |
| WKContentView does not attempt to become first responder within `_restoreFocusWithToken:`. |
| |
| Tests: FocusPreservationTests.PreserveAndRestoreFocus |
| FocusPreservationTests.ChangingFocusedNodeResetsFocusPreservationState |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _incrementFocusPreservationCount]): |
| (-[WKWebView _decrementFocusPreservationCount]): |
| (-[WKWebView _resetFocusPreservationCount]): |
| (-[WKWebView _isRetainingActiveFocusedState]): |
| |
| Active focus state is retained if either the focus preservation count or active focus state count is non-zero. |
| Splitting this into two variables ensures that SPI clients of `-_retainActiveFocusedState` won't have active |
| focus state reset from underneath them, and additionally prevents WKContentView from retaining active focus due |
| to UITextInputMultiDocument protocol methods while the user is still interacting with it. |
| |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| |
| Move _activeFocusedStateRetainCount to the implementation of WKContentView; instead of directly manipulating the |
| variable, add helper methods to increment, decrement, or reset the focus preservation count. |
| |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::isViewWindowActive): |
| (WebKit::PageClientImpl::isViewFocused): |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView resignFirstResponderForWebView]): |
| (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]): |
| |
| Reset the focus preservation count. |
| |
| (-[WKContentView addFocusedFormControlOverlay]): |
| (-[WKContentView removeFocusedFormControlOverlay]): |
| |
| Use `-_retainActiveFocusedState` instead of incrementing and decrementing the counter directly. |
| |
| (-[WKContentView _restoreFocusWithToken:]): |
| (-[WKContentView _preserveFocusWithToken:destructively:]): |
| |
| Use `_incrementFocusPreservationCount` and `_decrementFocusPreservationCount` instead of manipulating counter |
| variables directly. |
| |
| 2018-09-10 James Savage <james.savage@apple.com> |
| |
| Long press on picture/link show menu obscured by keyboard. |
| https://bugs.webkit.org/show_bug.cgi?id=189114. |
| |
| Reviewed by Megan Gardner. |
| |
| Use the visible bounds of the window, not the full bounds, when deciding if |
| an element's rect takes up too much screen space to present from. This factors |
| in occlusion of the window by the keyboard, bars, and other overlapping content. |
| |
| If possible, it would be nice to only account for overlapping geometry which a |
| popover would avoid, but that information is not available. This approach will |
| produce some false positives in favor of the "from touch" style, but those are |
| still better than getting an unusably small action sheet. |
| |
| * UIProcess/ios/WKActionSheetAssistant.h: |
| * UIProcess/ios/WKActionSheetAssistant.mm: |
| (-[WKActionSheetAssistant showImageSheet]): Use new helper method for style. |
| (-[WKActionSheetAssistant showLinkSheet]): Ditto. |
| (-[WKActionSheetAssistant _presentationStyleForPositionInfo:elementInfo:]): |
| Query new delegate method to figure out the unobscured rect of the window. This |
| information only exists on WKScrollView, so we have to ask for it. If this method |
| is not implemented, fall back to the current approach of assuming the full window |
| bounds are available. |
| (presentationStyleForView): Deleted. Replaced by instance method. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView unoccludedWindowBoundsForActionSheetAssistant:]): |
| Calculate the unoccluded rect using -[UIScrollView adjustedContentInset], which |
| factors in client specified insets and system insets (such as the keyboard). |
| |
| 2018-09-10 Chris Dumez <cdumez@apple.com> |
| |
| Regression(PSON): WebView is blank when navigating back cross-process on iOS |
| https://bugs.webkit.org/show_bug.cgi?id=189481 |
| <rdar://problem/44315010> |
| |
| Reviewed by Tim Horton. |
| |
| When process swapping on navigation, the WebPageProxy would detach from the old WebProcess and destroy |
| its RemoteLayerTreeDrawingAreaProxy. It would then create a new process and a new RemoteLayerTreeDrawingAreaProxy |
| to listen for IPC from this new process. When navigating back to the original process, we would do the |
| same in the opposite direction. However, the issue was that the old WebProcess's WebPage would not destroy its |
| drawing area and some state would persist and cause issues. For example, the DrawingArea would send a |
| CommitLayerTree IPC to the UIProcess and set m_waitingForBackingStoreSwap to true. It normally resets |
| m_waitingForBackingStoreSwap to false when getting the DidUpdate IPC from the UIProcess. However, when the |
| WebPage is detached from its WebPageProxy (i.e. suspended due to PSON), the UIProcess would not respond to |
| IPC from the old WebProcess and m_waitingForBackingStoreSwap would never get reset. |
| |
| * UIProcess/SuspendedPageProxy.cpp: |
| (WebKit::SuspendedPageProxy::~SuspendedPageProxy): |
| Make sure we send the SetIsSuspended IPC to the WebProcess with false value when |
| the SuspendedPageProxy gets destroyed, so that the WebProcess can update its |
| m_isSuspended flag. Previous, it was set to true when constructing the |
| SuspendedPageProxy but never reset to false. |
| |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::invalidateContentsAndRootView): |
| (WebKit::WebChromeClient::invalidateContentsForSlowScroll): |
| Add null checks for the drawing area now that it can be null while suspended. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::reinitializeWebPage): |
| When a WebPage gets reattached to a WebPageProxy, this method is called. Since we now |
| destroy the drawing area upon suspension (WebPage gets detached from WebPageProxy), we |
| need to make sure we recreate the drawing area when reattaching. |
| |
| (WebKit::WebPage::setIsSuspended): |
| Destroy the drawing area when the WebPage is suspended, meaning that this WebPage |
| is no longer associated with a WebPageProxy. |
| |
| 2018-09-10 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Arrow keys do not dispatch DOM events to non-editable elements |
| https://bugs.webkit.org/show_bug.cgi?id=189389 |
| |
| Reviewed by Simon Fraser. |
| |
| Use WebCore::keyCodeForEvent() to retrieve the key code for a WebEvent instead of querying |
| the key code from the WebEvent directly. The function WebCore::keyCodeForEvent() knows how |
| to compute the key code for an event that represents an arrow key. |
| |
| * Shared/ios/WebIOSEventFactory.mm: |
| (WebIOSEventFactory::createWebKeyboardEvent): |
| |
| 2018-09-10 Tim Horton <timothy_horton@apple.com> |
| |
| Try to fix the iOSMac build |
| https://bugs.webkit.org/show_bug.cgi?id=189469 |
| |
| * UIProcess/API/C/mac/WKContextPrivateMac.mm: |
| (WKContextSetPluginLoadClientPolicy): |
| (WKContextClearPluginClientPolicies): |
| (WKContextCopyPlugInInfoForBundleIdentifier): |
| (WKContextGetInfoForInstalledPlugIns): |
| (WKContextResetHSTSHosts): |
| (WKContextResetHSTSHostsAddedAfterDate): |
| (WKContextRegisterSchemeForCustomProtocol): |
| (WKContextUnregisterSchemeForCustomProtocol): |
| * UIProcess/API/C/mac/WKPagePrivateMac.mm: |
| (-[WKObservablePageState initWithPage:]): |
| (WKPageCreateObservableState): |
| (WKPageGetObjectRegistry): |
| (WKPageIsURLKnownHSTSHost): |
| (WKPageLoadURLRequestReturningNavigation): |
| (WKPageLoadFileReturningNavigation): |
| (WKPageIsPlayingVideoInEnhancedFullscreen): |
| (WKPageSetFullscreenDelegate): |
| (WKPageGetFullscreenDelegate): |
| * UIProcess/API/C/mac/WKProtectionSpaceNS.mm: |
| (WKProtectionSpaceCopyNSURLProtectionSpace): |
| |
| 2018-09-10 Tim Horton <timothy_horton@apple.com> |
| |
| Try to fix the build after r235850 |
| |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.mm: |
| |
| 2018-09-10 Simon Fraser <simon.fraser@apple.com> |
| |
| Before tracking Document leaks, clear all caches |
| https://bugs.webkit.org/show_bug.cgi?id=189459 |
| |
| Reviewed by Sam Weinig. |
| |
| It's not enough to clear the page and memory caches; font caches can reference Documents (for SVG fonts), |
| so just call WebCore::releaseMemory(), which empties caches including the page and memory caches, and |
| does the GC that we need to happen. |
| |
| * WebProcess/InjectedBundle/API/c/WKBundle.cpp: |
| (WKBundleReleaseMemory): |
| (WKBundleClearPageCache): Deleted. |
| (WKBundleClearMemoryCache): Deleted. |
| * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: |
| |
| 2018-09-07 Matt Rajca <mrajca@apple.com> |
| |
| Touch Bar displays an active PIP button for audio elements (and it doesn't do anything) |
| https://bugs.webkit.org/show_bug.cgi?id=189433 |
| <rdar://problem/44186498> Touch Bar displays an active PIP button for audio elements (and it doesn't do anything) |
| |
| Reviewed by Eric Carlson. |
| |
| When playing an audio element, the media Touch Bar displays an active PIP button even though only |
| videos are PIP-able. Pressing it does not do anything. The issue is canTogglePictureInPicture is set |
| to YES unconditionally on the WebPlaybackControlsManager. It is then only updated based on whether or |
| not external playback is enabled. |
| |
| This patch extends that logic such that the picture-in-picture Touch Bar button will be disabled for |
| audio elements. Since PlaybackSessionModelMediaElement today does not know whether we're dealing |
| with an audio or video element, a new isPictureInPictureSupported flag has been added (as well as |
| the plumbing necessary to get the state over from the web process). |
| |
| An API test has been added that checks the value of the canTogglePictureInPicture and ensures it |
| is NO when audio elements are playing. To expose it to tests, a _canTogglePictureInPictureForTesting |
| property has been added to the WKTesting category. |
| |
| Source/WebKit: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _canTogglePictureInPictureForTesting]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/Cocoa/PlaybackSessionManagerProxy.h: |
| * UIProcess/Cocoa/PlaybackSessionManagerProxy.messages.in: |
| * UIProcess/Cocoa/PlaybackSessionManagerProxy.mm: |
| (WebKit::PlaybackSessionModelContext::pictureInPictureSupportedChanged): |
| (WebKit::PlaybackSessionManagerProxy::pictureInPictureSupportedChanged): |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::updateMediaTouchBar): |
| (WebKit::WebViewImpl::canTogglePictureInPictureForTesting): |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.mm: |
| * WebProcess/cocoa/PlaybackSessionManager.h: |
| * WebProcess/cocoa/PlaybackSessionManager.mm: |
| (WebKit::PlaybackSessionInterfaceContext::isPictureInPictureSupportedChanged): |
| (WebKit::PlaybackSessionManager::isPictureInPictureSupportedChanged): |
| |
| 2018-09-10 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [MSVC] X86Assembler.h(108): error C2666: 'WebCore::operator -': 7 overloads have similar conversions |
| https://bugs.webkit.org/show_bug.cgi?id=189467 |
| |
| Unreviewed build fix for WinCairo port. |
| |
| MSVC reports compilation errors if certain JSC header files are |
| included after "using namespace" statements. |
| |
| * Sources.txt: Added @no-unify to InjectedBundleNodeHandle.cpp and InjectedBundleRangeHandle.cpp temporarily. |
| * WebKit.xcodeproj/project.pbxproj: Compile InjectedBundleNodeHandle.cpp and InjectedBundleRangeHandle.cpp. |
| |
| 2018-09-09 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| Unreviewed, rolling out r235839. |
| |
| Which breaks all Xcode based ports |
| |
| Reverted changeset: |
| |
| "[MSVC] X86Assembler.h(108): error C2666: 'WebCore::operator |
| -': 7 overloads have similar conversions" |
| https://bugs.webkit.org/show_bug.cgi?id=189467 |
| https://trac.webkit.org/changeset/235839 |
| |
| 2018-09-09 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| Add specialized template declarations of HashTraits and DefaultHash to detect misuse |
| https://bugs.webkit.org/show_bug.cgi?id=189044 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| * WebProcess/WebPage/WebPage.h: Added #include <WebCore/IntPointHash.h> to instantiate HashMap<std::pair<IntSize, double>, IntPoint>. |
| |
| 2018-09-09 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [MSVC] X86Assembler.h(108): error C2666: 'WebCore::operator -': 7 overloads have similar conversions |
| https://bugs.webkit.org/show_bug.cgi?id=189467 |
| |
| Unreviewed build fix for WinCairo port. |
| |
| MSVC reports compilation errors if certain JSC header files are |
| included after "using namespace" statements. |
| |
| * Sources.txt: Added @no-unify to InjectedBundleNodeHandle.cpp and InjectedBundleRangeHandle.cpp temporarily. |
| |
| 2018-09-08 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| REGRESSION (r235153): [iOS] Can't move selection start grabber when selecting text in a subframe |
| https://bugs.webkit.org/show_bug.cgi?id=189454 |
| <rdar://problem/44265956> |
| |
| Reviewed by Darin Adler. |
| |
| rangeForPointInRootViewCoordinates is responsible for taking a user gesture location representing the location |
| of the selection start or end handle (given in root view coordinates) and computing a Range representing an |
| updated selection. r235153 introduced a mechanism here to clamp the y offset of this user gesture location to |
| a max or min value determined by computing the bounds of the other selection handle, which more closely matches |
| platform behavior elsewhere in iOS. |
| |
| However, this clamping logic would cause the user gesture location in root view coordinates to incorrectly clamp |
| in cases where the user selects text within an iframe that is offset from the top of the main document, since it |
| compares content coordinates (i.e. the caret bounds) against root view coordinates (i.e. the gesture location). |
| This makes it impossible to use selection handles to select text in some iframes. |
| |
| We fix this by first converting the gesture location to document coordinates, and then clamping. |
| |
| Test: editing/selection/ios/selection-handle-clamping-in-iframe.html |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::rangeForPointInRootViewCoordinates): |
| |
| Also reuse `selectionStart` and `selectionEnd` when computing absolute caret bounds, instead of creating new |
| VisiblePositions. |
| |
| 2018-09-08 Tim Horton <timothy_horton@apple.com> |
| |
| Unify most of the WebKit Objective-C API sources |
| https://bugs.webkit.org/show_bug.cgi?id=189447 |
| |
| Reviewed by Andy Estes. |
| |
| Unify and fix errors. |
| |
| * Shared/API/Cocoa/_WKFrameHandle.mm: |
| * Shared/API/Cocoa/_WKRemoteObjectRegistry.mm: |
| * SourcesCocoa.txt: |
| * UIProcess/API/Cocoa/APIContentRuleListStoreCocoa.mm: |
| * UIProcess/API/Cocoa/WKBackForwardList.mm: |
| * UIProcess/API/Cocoa/WKBackForwardListItem.mm: |
| * UIProcess/API/Cocoa/WKBrowsingContextController.mm: |
| * UIProcess/API/Cocoa/WKBrowsingContextGroup.mm: |
| * UIProcess/API/Cocoa/WKConnection.mm: |
| * UIProcess/API/Cocoa/WKNSURLAuthenticationChallenge.mm: |
| * UIProcess/API/Cocoa/WKNavigationData.mm: |
| * UIProcess/API/Cocoa/WKProcessGroup.mm: |
| * UIProcess/API/Cocoa/WKURLSchemeTask.mm: |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| * UIProcess/API/Cocoa/_WKAttachment.mm: |
| * UIProcess/API/Cocoa/_WKGeolocationPosition.mm: |
| * UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm: |
| * UIProcess/API/Cocoa/_WKThumbnailView.mm: |
| * UIProcess/API/mac/WKView.mm: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm: |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInHitTestResult.mm: |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm: |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInPageGroup.mm: |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInRangeHandle.mm: |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInScriptWorld.mm: |
| * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.mm: |
| * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm: |
| |
| 2018-09-07 Tim Horton <timothy_horton@apple.com> |
| |
| Try to fix the build |
| |
| * Shared/mac/SandboxExtensionMac.mm: |
| |
| 2018-09-07 Tim Horton <timothy_horton@apple.com> |
| |
| Unify most of the WebKit C API sources |
| https://bugs.webkit.org/show_bug.cgi?id=189400 |
| |
| Reviewed by Alex Christensen. |
| |
| Unify and fix errors (mostly API:String vs. WTF::String mismatches). |
| |
| * Shared/APIWebArchiveResource.h: |
| * Sources.txt: |
| * SourcesCocoa.txt: |
| * UIProcess/API/APIContentRuleListStore.cpp: |
| (API::constructedPathPrefix): |
| (API::constructedPathFilter): |
| (API::constructedPath): |
| (API::encodeContentRuleListMetaData): |
| (API::decodeContentRuleListMetaData): |
| (API::openAndMapContentRuleList): |
| (API::writeDataToFile): |
| (API::compiledToFile): |
| (API::createExtension): |
| (API::ContentRuleListStore::lookupContentRuleList): |
| (API::ContentRuleListStore::getAvailableContentRuleListIdentifiers): |
| (API::ContentRuleListStore::compileContentRuleList): |
| (API::ContentRuleListStore::getContentRuleListSource): |
| * UIProcess/API/APINavigation.cpp: |
| (API::Navigation::loggingString const): |
| * UIProcess/API/APIWebsiteDataStore.cpp: |
| (API::WebsiteDataStore::defaultMediaCacheDirectory): |
| (API::WebsiteDataStore::defaultJavaScriptConfigurationDirectory): |
| * UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm: |
| (API::WebsiteDataStore::defaultApplicationCacheDirectory): |
| (API::WebsiteDataStore::defaultCacheStorageDirectory): |
| (API::WebsiteDataStore::defaultNetworkCacheDirectory): |
| (API::WebsiteDataStore::defaultMediaCacheDirectory): |
| (API::WebsiteDataStore::defaultIndexedDBDatabaseDirectory): |
| (API::WebsiteDataStore::defaultServiceWorkerRegistrationDirectory): |
| (API::WebsiteDataStore::defaultLocalStorageDirectory): |
| (API::WebsiteDataStore::defaultMediaKeysStorageDirectory): |
| (API::WebsiteDataStore::defaultWebSQLDatabaseDirectory): |
| (API::WebsiteDataStore::defaultResourceLoadStatisticsDirectory): |
| (API::WebsiteDataStore::defaultJavaScriptConfigurationDirectory): |
| (API::WebsiteDataStore::legacyDefaultApplicationCacheDirectory): |
| (API::WebsiteDataStore::legacyDefaultNetworkCacheDirectory): |
| (API::WebsiteDataStore::legacyDefaultWebSQLDatabaseDirectory): |
| (API::WebsiteDataStore::legacyDefaultIndexedDBDatabaseDirectory): |
| (API::WebsiteDataStore::legacyDefaultLocalStorageDirectory): |
| (API::WebsiteDataStore::legacyDefaultMediaCacheDirectory): |
| (API::WebsiteDataStore::legacyDefaultMediaKeysStorageDirectory): |
| (API::WebsiteDataStore::legacyDefaultJavaScriptConfigurationDirectory): |
| (API::WebsiteDataStore::tempDirectoryFileSystemRepresentation): |
| (API::WebsiteDataStore::cacheDirectoryFileSystemRepresentation): |
| (API::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation): |
| * UIProcess/API/glib/APIWebsiteDataStoreGLib.cpp: |
| (API::WebsiteDataStore::defaultApplicationCacheDirectory): |
| (API::WebsiteDataStore::defaultNetworkCacheDirectory): |
| (API::WebsiteDataStore::defaultCacheStorageDirectory): |
| (API::WebsiteDataStore::defaultIndexedDBDatabaseDirectory): |
| (API::WebsiteDataStore::defaultServiceWorkerRegistrationDirectory): |
| (API::WebsiteDataStore::defaultLocalStorageDirectory): |
| (API::WebsiteDataStore::defaultMediaKeysStorageDirectory): |
| (API::WebsiteDataStore::defaultWebSQLDatabaseDirectory): |
| (API::WebsiteDataStore::defaultResourceLoadStatisticsDirectory): |
| (API::WebsiteDataStore::cacheDirectoryFileSystemRepresentation): |
| (API::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation): |
| (API::WebsiteDataStore::legacyDefaultApplicationCacheDirectory): |
| (API::WebsiteDataStore::legacyDefaultNetworkCacheDirectory): |
| (API::WebsiteDataStore::legacyDefaultWebSQLDatabaseDirectory): |
| (API::WebsiteDataStore::legacyDefaultIndexedDBDatabaseDirectory): |
| (API::WebsiteDataStore::legacyDefaultLocalStorageDirectory): |
| (API::WebsiteDataStore::legacyDefaultMediaCacheDirectory): |
| (API::WebsiteDataStore::legacyDefaultMediaKeysStorageDirectory): |
| (API::WebsiteDataStore::legacyDefaultJavaScriptConfigurationDirectory): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-09-07 Basuke Suzuki <Basuke.Suzuki@sony.com> |
| |
| [Curl] Stop sending request with credential if no authorization requested. |
| https://bugs.webkit.org/show_bug.cgi?id=189057 |
| |
| Reviewed by Alex Christensen. |
| |
| When 401 response returns without 'www-authenticate' header, suppress another request with credential. |
| Same fix for proxy authentication. |
| |
| * NetworkProcess/curl/NetworkDataTaskCurl.cpp: |
| (WebKit::NetworkDataTaskCurl::curlDidReceiveResponse): |
| |
| 2018-09-07 Brent Fulgham <bfulgham@apple.com> |
| |
| Allow WebContent access to AVCSupported IOKit property in sandbox |
| https://bugs.webkit.org/show_bug.cgi?id=189429 |
| <rdar://problem/43612229> |
| |
| Reviewed by Eric Carlson. |
| |
| Allow access to the IOKit properties AVCSupported and HEVCSupported to allow the WebContent process |
| to check for efficient video codecs. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-09-07 Frederic Wang <fwang@igalia.com> |
| |
| [CSSOM View] Handle the scrollingElement in Element::scroll(Left/Top/Width/Height/To) |
| https://bugs.webkit.org/show_bug.cgi?id=182230 |
| |
| Reviewed by Simon Fraser. |
| |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentGtk.cpp: |
| (webkit_dom_document_get_scrolling_element): Use the new name. |
| |
| 2018-09-07 Brent Fulgham <bfulgham@apple.com> |
| |
| [macOS] Remove unused XPC service from sandbox |
| https://bugs.webkit.org/show_bug.cgi?id=189406 |
| <rdar://problem/43015423> |
| |
| Reviewed by Youenn Fablet. |
| |
| The API surface exposed by "com.apple.systemstats.analysis" is no longer used by the |
| WebContent process. Since there is no need for this sandbox opening, we should remove it. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-09-07 Brent Fulgham <bfulgham@apple.com> |
| |
| Unreviewed syntax fix after r235781 |
| |
| Don't use hash-quote syntax for these non-regex inputs. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb: |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.Storage.sb: |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2018-09-07 Brent Fulgham <bfulgham@apple.com> |
| |
| [iOS] Move default mach-lookup deny to after common.sb is imported |
| https://bugs.webkit.org/show_bug.cgi?id=189385 |
| <rdar://problem/43624193> |
| |
| Reviewed by Eric Carlson. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb: Move the 'deny mach-lookup' call later in the file. |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.Storage.sb: Ditto. |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: Ditto. |
| |
| 2018-09-06 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Refactor WebCore::EditAction to be an 8-bit enum class |
| https://bugs.webkit.org/show_bug.cgi?id=189383 |
| |
| Reviewed by Dan Bernstein. |
| |
| * UIProcess/WebEditCommandProxy.cpp: |
| (WebKit::WebEditCommandProxy::nameForEditAction): |
| * WebProcess/WebPage/mac/WebPageMac.mm: |
| (WebKit::WebPage::changeFontAttributes): |
| (WebKit::WebPage::changeFont): |
| |
| 2018-09-06 Megan Gardner <megan_gardner@apple.com> |
| |
| Add Support for Conic Gradients |
| https://bugs.webkit.org/show_bug.cgi?id=189329 |
| <rdar://problem/21444701> |
| |
| Reviewed by Simon Fraser. |
| |
| Connect up web preferences to allow conic gradients to be turned on in the |
| experimental features menu. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-09-06 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [macOS] [WK2] Support changing attributes for selected text (text shadow, underline, strike-through) |
| https://bugs.webkit.org/show_bug.cgi?id=189356 |
| <rdar://problem/44185674> |
| |
| Reviewed by Tim Horton. |
| |
| Implement -[WKWebView changeAttributes:], so that WKWebView can carry out more types of font style changes via |
| NSFontPanel. This patch makes it possible to (1) change text shadow, (2) add or remove strike-through, and (3) |
| add or remove underlines from selected text using the font panel. |
| |
| This builds on the mechanisms introduced in r235748 to compute font attribute changes in the UI process and |
| propagate this information to the web process, where we're able to create and apply an EditingStyle to the |
| current selection. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView changeAttributes:]): |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::changeFontAttributesFromSender): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/mac/WebPageProxyMac.mm: |
| (WebKit::WebPageProxy::changeFontAttributes): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| Add boilerplate IPC support. |
| |
| * WebProcess/WebPage/mac/WebPageMac.mm: |
| (WebKit::WebPage::changeFontAttributes): |
| |
| 2018-09-06 Antti Koivisto <antti@apple.com> |
| |
| Actively prewarm processes created for prewarm pool |
| https://bugs.webkit.org/show_bug.cgi?id=189364 |
| |
| Reviewed by Chris Dumez. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::createNewWebProcess): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::prewarm): |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| |
| 2018-09-06 Jer Noble <jer.noble@apple.com> |
| |
| Don't pause playback when locking screen if video is being displayed on second screen. |
| https://bugs.webkit.org/show_bug.cgi?id=189321 |
| |
| Reviewed by Eric Carlson. |
| |
| Pass the "isPlayingOnSecondScreen" value across the process boundary. |
| |
| * UIProcess/Cocoa/PlaybackSessionManagerProxy.h: |
| * UIProcess/Cocoa/PlaybackSessionManagerProxy.mm: |
| (WebKit::PlaybackSessionModelContext::setPlayingOnSecondScreen): |
| (WebKit::PlaybackSessionManagerProxy::setPlayingOnSecondScreen): |
| * WebProcess/cocoa/PlaybackSessionManager.h: |
| * WebProcess/cocoa/PlaybackSessionManager.messages.in: |
| * WebProcess/cocoa/PlaybackSessionManager.mm: |
| (WebKit::PlaybackSessionManager::setPlayingOnSecondScreen): |
| |
| 2018-09-06 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [macOS] Cannot change font size at selection until font panel is shown |
| https://bugs.webkit.org/show_bug.cgi?id=189295 |
| <rdar://problem/35593389> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Refactors NSFontManager support in WebKit2. See WebCore ChangeLog for more details. |
| |
| * Scripts/webkit/messages.py: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView changeFont:]): |
| * UIProcess/API/mac/WKView.mm: |
| (-[WKView changeFont:]): |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::changeFontFromFontManager): |
| (WebKit::WebViewImpl::changeFontFromFontPanel): Deleted. |
| |
| Renamed this from changeFontFromFontPanel to changeFontFromFontManager. This new name is more accurate in the |
| case where a menu item is used to alter the font, which doesn't involve NSFontPanel at all. |
| |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/mac/WebPageProxyMac.mm: |
| (WebKit::WebPageProxy::changeFont): |
| (WebKit::WebPageProxy::setFont): Deleted. |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/mac/WebPageMac.mm: |
| (WebKit::WebPage::changeFont): |
| (WebKit::WebPage::setFont): Deleted. |
| |
| 2018-09-06 Frederic Wang <fwang@igalia.com> |
| |
| Use more generic names than "overflow" for functions that can be used for subframes |
| https://bugs.webkit.org/show_bug.cgi?id=179125 |
| |
| Reviewed by Simon Fraser.. |
| |
| Some functions will be used by subframes when iframe scrolling is implemented on iOS (see |
| bug 149264). Currently they are only used for "overflow" nodes. This patch renames them to |
| use a more generic "scrolling node" name. |
| |
| * UIProcess/PageClient.h: |
| * UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp: |
| (WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeDidScroll): |
| * UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm: |
| (WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeWillStartPanGesture): |
| (WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeWillStartScroll): |
| (WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeDidEndScroll): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::scrollingNodeScrollViewWillStartPanGesture): |
| (WebKit::PageClientImpl::scrollingNodeScrollViewDidScroll): |
| (WebKit::PageClientImpl::scrollingNodeScrollWillStartScroll): |
| (WebKit::PageClientImpl::scrollingNodeScrollDidEndScroll): |
| (WebKit::PageClientImpl::overflowScrollViewWillStartPanGesture): Deleted. |
| (WebKit::PageClientImpl::overflowScrollViewDidScroll): Deleted. |
| (WebKit::PageClientImpl::overflowScrollWillStartScroll): Deleted. |
| (WebKit::PageClientImpl::overflowScrollDidEndScroll): Deleted. |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _scrollingNodeScrollingWillBegin]): |
| (-[WKContentView _scrollingNodeScrollingDidEnd]): |
| (-[WKContentView _overflowScrollingWillBegin]): Deleted. |
| (-[WKContentView _overflowScrollingDidEnd]): Deleted. |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::scrollingNodeScrollViewWillStartPanGesture): |
| (WebKit::WebPageProxy::scrollingNodeScrollViewDidScroll): |
| (WebKit::WebPageProxy::scrollingNodeScrollWillStartScroll): |
| (WebKit::WebPageProxy::scrollingNodeScrollDidEndScroll): |
| (WebKit::WebPageProxy::overflowScrollViewWillStartPanGesture): Deleted. |
| (WebKit::WebPageProxy::overflowScrollViewDidScroll): Deleted. |
| (WebKit::WebPageProxy::overflowScrollWillStartScroll): Deleted. |
| (WebKit::WebPageProxy::overflowScrollDidEndScroll): Deleted. |
| * WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm: |
| (WebKit::WebChromeClient::didStartOverflowScroll): |
| (WebKit::WebChromeClient::didEndOverflowScroll): |
| |
| 2018-09-06 Chris Dumez <cdumez@apple.com> |
| |
| WebKit/Platform/IPC/mac/ConnectionMac.mm:222: _dispatch_bug_kevent_vanished |
| https://bugs.webkit.org/show_bug.cgi?id=189314 |
| <rdar://problem/41248286> |
| |
| Reviewed by Anders Carlsson. |
| |
| There is a short period in time when m_isServer is true, after open() has been |
| called, but before we've receive the InitializeConnection IPC, where m_receiveSource |
| has been initialized but m_isConnected is still false. If platformInvalidate() gets |
| called during this period of time, we would fail to cancel / release m_receiveSource |
| and we would forcefully deallocate m_receivePort, leading to the libdispatch simulated |
| crashes. |
| |
| To address the issue, platformInvalidate() now properly cancels / releases |
| m_receiveSource if present, and only deallocates m_receivePort manually if m_receiveSource |
| has not been initialized (i.e. open() has not been called yet). |
| |
| * Platform/IPC/Connection.h: |
| * Platform/IPC/mac/ConnectionMac.mm: |
| (IPC::Connection::platformInvalidate): |
| (IPC::Connection::clearReceiveSource): |
| |
| 2018-09-05 David Kilzer <ddkilzer@apple.com> |
| |
| REGRESSION (r235489): WKSharingServicePickerDelegate.mm accidentally added back to Sources in WebKit project |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| (WKSharingServicePickerDelegate.mm): Let Xcode have its way with |
| the WebKit project file by removing this file from Sources. |
| It's already included in a UnifedSource file, so it should not |
| have been added back to Sources during merge conflict resolution |
| for r235489. |
| |
| 2018-09-05 David Kilzer <ddkilzer@apple.com> |
| |
| REGRESSION (r204222): UIProces/Gamepad/mac is missing in WebKit Xcode project |
| |
| Found using `tidy-Xcode-project-file --missing` (see Bug |
| 188754). Fixes applied manually. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| (UIProces/Gamepad/mac): Fix path to "mac" directory, then remove |
| its now-redundant name. |
| (UIGamepadProviderMac.mm): Change path to be relative to its |
| group after the above change. |
| |
| 2018-09-05 David Kilzer <ddkilzer@apple.com> |
| |
| REGRESSION (r143543): PluginProcess/EntryPoint/XPCService/PluginService is missing in WebKit Xcode project |
| |
| Found using `tidy-Xcode-project-file --missing` (see Bug |
| 188754). Fixes applied manually. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| (PluginProcess/EntryPoint/XPCService/PluginService): Remove path |
| to PluginService.64 directory, which was removed in r143543, so |
| that this becomes a virtual folder that inherits its path from |
| its parent. |
| (PluginService.32-64.Info.plist): Change path to be relative to |
| its group after the above change. Delete redundant name value. |
| |
| 2018-09-05 Woodrow Wang <woodrow_wang@apple.com> |
| |
| Add infrastructure to dump resource load statistics |
| https://bugs.webkit.org/show_bug.cgi?id=189213 |
| |
| Reviewed by Daniel Bates. |
| |
| The dumping functionality is not currently used, but will be included in tests for |
| <https://bugs.webkit.org/show_bug.cgi?id=187773>. |
| |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreDumpResourceLoadStatistics): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| * UIProcess/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ResourceLoadStatisticsMemoryStore::dumpResourceLoadStatistics const): |
| * UIProcess/ResourceLoadStatisticsMemoryStore.h: |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::dumpResourceLoadStatistics): |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| |
| 2018-09-05 David Kilzer <ddkilzer@apple.com> |
| |
| REGRESSION (r235006): Let Xcode have its way with the WebKit project |
| |
| * WebKit.xcodeproj/project.pbxproj: Let Xcode remove empty |
| settings. |
| |
| 2018-09-05 David Kilzer <ddkilzer@apple.com> |
| |
| REGRESSION (r110214): Remove deleted WebProcess/Fullscreen/mac folder from WebKit Xcode project |
| |
| Found using `tidy-Xcode-project-file --missing` (see Bug |
| 188754). Folder removed via Xcode. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| (WebProcess/Fullscreen/mac): Remove empty folder. Directory no |
| longer exists. WebFullScreenManagerMac.{h,mm} files were |
| removed in r110214. |
| |
| 2018-09-05 Woodrow Wang <woodrow_wang@apple.com> |
| |
| Added runtime feature flag for web API statistics |
| https://bugs.webkit.org/show_bug.cgi?id=189211 |
| |
| Reviewed by Daniel Bates. |
| |
| Added functionality to set the runtime flag with a JavaScript exposed function |
| for testing. |
| |
| * Shared/WebPreferences.yaml: |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): |
| |
| 2018-09-05 Jer Noble <jer.noble@apple.com> |
| |
| Add MediaCapabilities as an Experimental Feature |
| https://bugs.webkit.org/show_bug.cgi?id=189209 |
| |
| Reviewed by Eric Carlson. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-09-05 Jeremy Jones <jeremyj@apple.com> |
| |
| Cancelled fullscreen exit gesture leaves bad state for next exit request. |
| https://bugs.webkit.org/show_bug.cgi?id=189278 |
| |
| Reviewed by Jer Noble. |
| |
| * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm: |
| (-[WKFullScreenWindowController _dismissFullscreenViewController]): |
| |
| 2018-09-05 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Simplify logic when changing RealtimeMediaSource settings |
| https://bugs.webkit.org/show_bug.cgi?id=189284 |
| <rdar://problem/44117948> |
| |
| Reviewed by Youenn Fablet. |
| |
| * WebProcess/cocoa/UserMediaCaptureManager.cpp: |
| (WebKit::UserMediaCaptureManager::Source::setSettings): |
| |
| 2018-09-04 Frederic Wang <fwang@igalia.com> |
| |
| Add basic support for ScrollIntoViewOptions |
| https://bugs.webkit.org/show_bug.cgi?id=189258 |
| |
| Reviewed by Simon Fraser. |
| |
| * DOM/DOMElement.mm: Add ScrollIntoViewOptions |
| header so that this file can build despite the new scrollIntoView function. |
| |
| 2018-09-04 Chris Dumez <cdumez@apple.com> |
| |
| Rename experimental feature for process swap on navigation |
| https://bugs.webkit.org/show_bug.cgi?id=189280 |
| |
| Reviewed by Antti Koivisto. |
| |
| The "process swap on navigation" experimental feature on macOS Mojave does not work due to missing |
| browser changes, resulting in frequent load hangs. When enabling the experimental feature in WebKit |
| ToT or Safari Technology Preview for testing, it enables it as well for Mojave's system Safari which |
| is annoying. |
| |
| This patch renames the experimental feature so that the feature stays disabled in Mojave's system |
| Safari even when enabled in WebKit ToT / STP. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetProcessSwapOnNavigationEnabled): |
| (WKPreferencesGetProcessSwapOnNavigationEnabled): |
| * UIProcess/WebPreferences.cpp: |
| (WebKit::WebPreferences::updateBoolValueForExperimentalFeatureKey): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::createWebPage): |
| |
| 2018-09-04 Dean Jackson <dino@apple.com> |
| |
| Post review Weinig fix-ups |
| https://bugs.webkit.org/show_bug.cgi?id=189288 |
| |
| Reviewed by Sam Weinig. |
| |
| Fix-ups from https://bugs.webkit.org/show_bug.cgi?id=189252 |
| |
| * UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: |
| (-[_WKPreviewControllerDataSource previewController:previewItemAtIndex:]): |
| (getUTIForMIMEType): Deleted. |
| * UIProcess/ios/WKSystemPreviewView.mm: |
| (getUTIForSystemPreviewMIMEType): |
| (-[WKSystemPreviewView web_setContentProviderData:suggestedFilename:]): |
| (getUTIForMIMEType): Deleted. |
| |
| 2018-09-04 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Populate "text/uri-list" with multiple URLs when the pasteboard contains multiple URLs |
| https://bugs.webkit.org/show_bug.cgi?id=188890 |
| <rdar://problem/43648605> |
| |
| Reviewed by Tim Horton. |
| |
| Add some plumbing through pasteboard classes to support `Pasteboard::readAllStrings`. See WebCore ChangeLog for |
| more detail. |
| |
| * UIProcess/Cocoa/WebPasteboardProxyCocoa.mm: |
| (WebKit::WebPasteboardProxy::getPasteboardStringsForType): |
| * UIProcess/WebPasteboardProxy.h: |
| * UIProcess/WebPasteboardProxy.messages.in: |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: |
| (WebKit::WebPlatformStrategies::allStringsForType): |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.h: |
| |
| 2018-09-04 Youenn Fablet <youenn@apple.com> |
| |
| Disable WebRTC unified plan runtime flag by default |
| https://bugs.webkit.org/show_bug.cgi?id=189264 |
| |
| Reviewed by Jer Noble. |
| |
| * Shared/WebPreferences.yaml: |
| Disable unified plan flag by default. |
| |
| 2018-09-04 Chris Dumez <cdumez@apple.com> |
| |
| Add process pool configuration flag to turn on automatic process pre-warming |
| https://bugs.webkit.org/show_bug.cgi?id=189263 |
| <rdar://problem/44101941> |
| |
| Reviewed by Antti Koivisto. |
| |
| Add process pool configuration flag to turn on automatic process pre-warming and disassociate |
| it from the warmInitialProcess() SPI. |
| |
| For now, turning on "process swap on navigation" via experimental features also turns on |
| automatic process pre-warming. |
| |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| (API::ProcessPoolConfiguration::copy): |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextSetPrewarmsProcessesAutomatically): |
| (WKContextWarmInitialProcess): |
| * UIProcess/API/C/WKContextPrivate.h: |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _warmInitialProcess]): |
| (-[WKProcessPool _hasPrewarmedWebProcess]): |
| (-[WKProcessPool _webProcessCountIgnoringPrewarmed]): |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: |
| (-[_WKProcessPoolConfiguration setPrewarmsProcessesAutomatically:]): |
| (-[_WKProcessPoolConfiguration prewarmsProcessesAutomatically]): |
| * UIProcess/ServiceWorkerProcessProxy.cpp: |
| (WebKit::ServiceWorkerProcessProxy::ServiceWorkerProcessProxy): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::setMaximumNumberOfProcesses): |
| (WebKit::WebProcessPool::createNewWebProcess): |
| (WebKit::WebProcessPool::tryTakePrewarmedProcess): |
| (WebKit::WebProcessPool::prewarmProcess): |
| (WebKit::WebProcessPool::disconnectProcess): |
| (WebKit::WebProcessPool::createWebPage): |
| (WebKit::WebProcessPool::didReachGoodTimeToPrewarm): |
| * UIProcess/WebProcessPool.h: |
| (WebKit::WebProcessPool::sendToOneProcess): |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::create): |
| (WebKit::WebProcessProxy::WebProcessProxy): |
| (WebKit::m_isInPrewarmedPool): |
| * UIProcess/WebProcessProxy.h: |
| |
| 2018-09-03 Dean Jackson <dino@apple.com> |
| |
| Move SystemPreview code from WebKitAdditions to WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=189252 |
| <rdar://problem/44080245> |
| |
| Reviewed by Wenson Hsieh. |
| |
| Move the WebKitAdditions code into WebKit/WebCore. |
| |
| * UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: |
| (getUTIForMIMEType): Helper to get the system UTI for USDZ files. |
| (-[_WKPreviewControllerDataSource previewController:previewItemAtIndex:]): |
| |
| * UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm: Use the new methods |
| in MIMETypeRegistry. |
| (-[WKWebViewContentProviderRegistry initWithConfiguration:]): |
| |
| * UIProcess/SystemPreviewController.cpp: Ditto. |
| (WebKit::SystemPreviewController::canPreview const): |
| |
| * UIProcess/ios/WKSystemPreviewView.mm: |
| (getUTIForMIMEType): Similar helper to above. |
| (-[WKSystemPreviewView web_setContentProviderData:suggestedFilename:]): |
| |
| 2018-09-04 Frederic Wang <fwang@igalia.com> |
| |
| Bug 189190 - REGRESSION(r235398) ASSERTION failure !m_client.didFinishDocumentLoadForFrame |
| https://bugs.webkit.org/show_bug.cgi?id=189190 |
| |
| Reviewed by Alex Christensen. |
| |
| Assertions to prevent use of the deprecated WKPageSetPageLoaderClient class are hit when |
| running system Safari with the current macOS/iOS releases, making impossible to launch it. |
| This patch conditionally skips these assertions so that they are only verified for |
| macOS > 10.14 or other platforms. |
| |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetPageLoaderClient): Only assert on future OS releases. |
| |
| 2018-09-04 Alex Christensen <achristensen@webkit.org> |
| |
| Clean up WebGL policy getting code path |
| https://bugs.webkit.org/show_bug.cgi?id=189003 |
| |
| Reviewed by Darin Adler. |
| |
| * UIProcess/API/APINavigationClient.h: |
| (API::NavigationClient::webGLLoadPolicy const): |
| (API::NavigationClient::resolveWebGLLoadPolicy const): |
| * UIProcess/Cocoa/NavigationState.h: |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationClient::webGLLoadPolicy const): |
| (WebKit::NavigationState::NavigationClient::resolveWebGLLoadPolicy const): |
| * WebProcess/WebPage/WebPage.cpp: |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::webGLPolicyForURL): Deleted. |
| (WebKit::WebPage::resolveWebGLPolicyForURL): Deleted. |
| |
| 2018-09-04 Zan Dobersek <zdobersek@igalia.com> |
| |
| REGRESSION(r235165): [GStreamer] Major video performance regression |
| https://bugs.webkit.org/show_bug.cgi?id=189224 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: |
| (WebKit::CoordinatedGraphicsScene::updateSceneState): Drop the early |
| return used when the scene state wasn't updated through a layer flush, |
| and instead always run through layer changes and backings. This way we |
| won't miss proxy objects that need swapping even if none of the layer |
| states were changed. Reducing the amount of work done here when scene |
| hasn't been updated might be possible, but it's not a huge bottleneck. |
| |
| 2018-09-01 Darin Adler <darin@apple.com> |
| |
| [CFNetwork] Update CFNetwork SPI use to use CFNetworkSPI.h more consistently |
| https://bugs.webkit.org/show_bug.cgi?id=189072 |
| |
| Reviewed by Dan Bernstein. |
| |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: Removed NSURLSessionTask |
| method declarations from this file, they are in CFNetworkSPI.h. |
| |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: Removed NSURLSessionConfiguration |
| method declarations from this file, they are in CFNetworkSPI.h. |
| |
| 2018-09-01 Dan Bernstein <mitz@apple.com> |
| |
| [Cocoa] Crash using KVO for 'serverTrust' property of WKWebView - "this class is not key value coding-compliant for the key serverTrust" |
| https://bugs.webkit.org/show_bug.cgi?id=189222 |
| <rdar://problem/33283179> |
| |
| Reviewed by Sam Weinig. |
| |
| Test: TestWebKitAPI/Tests/WebKitCocoa/WKWebViewServerTrustKVC.mm |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView valueForUndefinedKey:]): Override to handle the "serverTrust" key, which is not |
| handled automatically by the KVC machinery since the getter’s return type is not an |
| Objective-C type. |
| |
| 2018-08-31 John Wilander <wilander@apple.com> |
| |
| Storage Access API: Maintain access through same-site navigations |
| https://bugs.webkit.org/show_bug.cgi?id=188564 |
| <rdar://problem/43445160> |
| |
| Reviewed by Alex Christensen. |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchWillChangeDocument): |
| Now takes the current URL and the new URL as parameters |
| and only clears out storage access if the navigation is |
| cross-site, i.e. with differing eTLD+1s. |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: |
| |
| 2018-08-31 Chris Dumez <cdumez@apple.com> |
| |
| Assertion hit in ~CompletionHandler() from ~WebFrame() |
| https://bugs.webkit.org/show_bug.cgi?id=189199 |
| <rdar://problem/42657233> |
| |
| Reviewed by Youenn Fablet. |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchWillSubmitForm): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: |
| * WebProcess/WebPage/WebFrame.cpp: |
| (WebKit::WebFrame::~WebFrame): |
| (WebKit::WebFrame::setUpWillSubmitFormListener): |
| (WebKit::WebFrame::invalidatePolicyListener): |
| * WebProcess/WebPage/WebFrame.h: |
| |
| 2018-08-31 Antti Koivisto <antti@apple.com> |
| |
| Replace OptionSet |= and -= operators with add() and remove() functions |
| https://bugs.webkit.org/show_bug.cgi?id=189169 |
| |
| Reviewed by Anders Carlsson. |
| |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa): |
| * Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h: |
| (WebKit::RemoteLayerTreeTransaction::LayerProperties::notePropertiesChanged): |
| * Shared/WebEventConversion.cpp: |
| (WebKit::WebKit2PlatformMouseEvent::WebKit2PlatformMouseEvent): |
| (WebKit::WebKit2PlatformWheelEvent::WebKit2PlatformWheelEvent): |
| (WebKit::WebKit2PlatformKeyboardEvent::WebKit2PlatformKeyboardEvent): |
| (WebKit::WebKit2PlatformTouchEvent::WebKit2PlatformTouchEvent): |
| (WebKit::WebKit2PlatformGestureEvent::WebKit2PlatformGestureEvent): |
| * Shared/WebsitePoliciesData.cpp: |
| (WebKit::WebsitePoliciesData::applyToDocumentLoader): |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageReload): |
| * UIProcess/API/C/WKResourceCacheManager.cpp: |
| (toWebsiteDataTypes): |
| * UIProcess/API/C/WKWebsitePolicies.cpp: |
| (WKWebsitePoliciesSetAllowedAutoplayQuirks): |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView reload]): |
| * UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h: |
| (WebKit::toWebsiteDataTypes): |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _fetchDataRecordsOfTypes:withOptions:completionHandler:]): |
| * UIProcess/API/Cocoa/_WKWebsitePolicies.mm: |
| (-[_WKWebsitePolicies setAllowedAutoplayQuirks:]): |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::viewDidMoveToWindow): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::updateActivityState): |
| (WebKit::WebPageProxy::activityStateDidChange): |
| (WebKit::WebPageProxy::dispatchActivityStateChange): |
| * UIProcess/WebsiteData/WebsiteDataRecord.cpp: |
| (WebKit::WebsiteDataRecord::add): |
| (WebKit::WebsiteDataRecord::addCookieHostName): |
| (WebKit::WebsiteDataRecord::addPluginDataHostName): |
| (WebKit::WebsiteDataRecord::addHSTSCacheHostname): |
| (WebKit::WebsiteDataRecord::addOriginWithCredential): |
| * UIProcess/mac/WKInspectorViewController.mm: |
| (-[WKInspectorViewController inspectorWKWebViewReload:]): |
| * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp: |
| (WebKit::imageForRect): |
| * WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp: |
| (WebKit::InjectedBundleRangeHandle::renderedImage): |
| * WebProcess/WebPage/FindController.cpp: |
| (WebKit::core): |
| (WebKit::FindController::findString): |
| |
| 2018-08-31 Chris Dumez <cdumez@apple.com> |
| |
| Rename ShouldProcessSwapIfPossible to ProcessSwapRequestedByClient for clarity |
| https://bugs.webkit.org/show_bug.cgi?id=189195 |
| |
| Reviewed by Alex Christensen. |
| |
| Rename ShouldProcessSwapIfPossible to ProcessSwapRequestedByClient for clarity, since it indicates the client |
| requested a process swap via its navigation policy decision. |
| |
| * UIProcess/API/C/WKFramePolicyListener.cpp: |
| (WKFramePolicyListenerUseInNewProcess): |
| (useWithPolicies): |
| (WKFramePolicyListenerUseWithPolicies): |
| (WKFramePolicyListenerUseInNewProcessWithPolicies): |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): |
| * UIProcess/WebFramePolicyListenerProxy.cpp: |
| (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::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::decidePolicyForNewWindowAction): |
| (WebKit::WebPageProxy::decidePolicyForResponse): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigation): |
| (WebKit::WebProcessPool::processForNavigationInternal): |
| * UIProcess/WebProcessPool.h: |
| |
| 2018-08-31 Aditya Keerthi <akeerthi@apple.com> |
| |
| [Datalist][iOS] Add suggestions UI for TextFieldInputTypes |
| https://bugs.webkit.org/show_bug.cgi?id=186714 |
| |
| Reviewed by Wenson Hsieh. |
| |
| On iOS, we have less space to display suggestions from a datalist element compared |
| to macOS. Furthermore, iPhones and iPads have different form factors, leading to a |
| different approach on each device. The commonalities of the two implementations |
| can be found in WKDataListSuggestionsControl. This class is subclassed by the |
| device specific implementations. |
| |
| On iPhone, we display the suggestions in a UIPickerView. This view is accessible |
| only after tapping on the datalist button element to the side of the input field. |
| This approach was chosen in order to avoid tricking the user into thinking that |
| the values displayed in the picker are the only accepted values. |
| WKDataListSuggestionsPicker is responsible for managing the interface shown on |
| iPhones. |
| |
| On iPad, we display the suggestions in a popover, that is visible alongside the |
| keyboard. The suggestions in the popover update as the user types. |
| WKDataListSuggestionsPopover is responsible for managing the interface shown on |
| iPads. |
| |
| Both devices display predictive text suggestions, taking the first three values |
| from the filtered suggestions list. In order to prevent other clients from |
| overwriting the suggestions provided by the datalist element, we prevent writing |
| to the predictive text bar if an input with the list attribute is the currently |
| assisted node. |
| |
| * Shared/AssistedNodeInformation.cpp: |
| (WebKit::AssistedNodeInformation::encode const): |
| (WebKit::AssistedNodeInformation::decode): |
| * Shared/AssistedNodeInformation.h: |
| * Shared/ios/InteractionInformationAtPosition.h: |
| * Shared/ios/InteractionInformationAtPosition.mm: |
| (WebKit::InteractionInformationAtPosition::encode const): |
| (WebKit::InteractionInformationAtPosition::decode): |
| * SourcesCocoa.txt: |
| * UIProcess/WebDataListSuggestionsDropdownIOS.h: Added. |
| * UIProcess/WebDataListSuggestionsDropdownIOS.mm: Added. |
| (WebKit::WebDataListSuggestionsDropdownIOS::create): |
| (WebKit::WebDataListSuggestionsDropdownIOS::WebDataListSuggestionsDropdownIOS): |
| (WebKit::WebDataListSuggestionsDropdownIOS::show): |
| (WebKit::WebDataListSuggestionsDropdownIOS::handleKeydownWithIdentifier): |
| (WebKit::WebDataListSuggestionsDropdownIOS::close): |
| (WebKit::WebDataListSuggestionsDropdownIOS::didSelectOption): |
| (-[WKDataListSuggestionsControl initWithInformation:inView:]): |
| (-[WKDataListSuggestionsControl updateWithInformation:]): |
| (-[WKDataListSuggestionsControl showSuggestionsDropdown:activationType:]): |
| (-[WKDataListSuggestionsControl didSelectOptionAtIndex:]): |
| (-[WKDataListSuggestionsControl invalidate]): |
| (-[WKDataListSuggestionsControl textSuggestions]): |
| (-[WKDataListSuggestionsControl suggestionsCount]): |
| (-[WKDataListSuggestionsControl suggestionAtIndex:]): |
| (-[WKDataListSuggestionsControl textAlignment]): |
| (-[WKDataListSuggestionsPicker initWithInformation:inView:]): |
| (-[WKDataListSuggestionsPicker updateWithInformation:]): |
| (-[WKDataListSuggestionsPicker showSuggestionsDropdown:activationType:]): |
| (-[WKDataListSuggestionsPicker numberOfComponentsInPickerView:]): |
| (-[WKDataListSuggestionsPicker pickerView:numberOfRowsInComponent:]): |
| (-[WKDataListSuggestionsPicker pickerView:titleForRow:forComponent:]): |
| (-[WKDataListSuggestionsPicker invalidate]): |
| (-[WKDataListSuggestionsPickerView controlView]): |
| (-[WKDataListSuggestionsPickerView controlBeginEditing]): |
| (-[WKDataListSuggestionsPickerView controlEndEditing]): |
| (-[WKDataListSuggestionsPopover initWithInformation:inView:]): |
| (-[WKDataListSuggestionsPopover updateWithInformation:]): |
| (-[WKDataListSuggestionsPopover showSuggestionsDropdown:activationType:]): |
| (-[WKDataListSuggestionsPopover invalidate]): |
| (-[WKDataListSuggestionsPopover didSelectOptionAtIndex:]): |
| (-[WKDataListSuggestionsViewController reloadData]): |
| (-[WKDataListSuggestionsViewController tableView:numberOfRowsInSection:]): |
| (-[WKDataListSuggestionsViewController tableView:cellForRowAtIndexPath:]): |
| (-[WKDataListSuggestionsViewController tableView:didSelectRowAtIndexPath:]): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::pageDidScroll): |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::createDataListSuggestionsDropdown): |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKFormInputSession endEditing]): |
| (-[WKFormInputSession setSuggestions:]): |
| (-[WKContentView _formInputSession]): |
| (-[WKContentView resignFirstResponderForWebView]): |
| (-[WKContentView textInteractionGesture:shouldBeginAtPoint:]): |
| (-[WKContentView accessoryTab:]): |
| (-[WKContentView insertTextSuggestion:]): |
| * UIProcess/mac/WebDataListSuggestionsDropdownMac.h: |
| * UIProcess/mac/WebDataListSuggestionsDropdownMac.mm: |
| (WebKit::WebDataListSuggestionsDropdownMac::didSelectOption): |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::didCloseSuggestions): |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::getPositionInformation): |
| (WebKit::WebPage::getAssistedNodeInformation): |
| |
| 2018-08-31 Frederic Wang <fwang@igalia.com> |
| |
| REGRESSION(r235484) _WKPreferencesGetWebRTCLegacyAPIEnabled symbol not found when running Safari with external SDK build |
| https://bugs.webkit.org/show_bug.cgi?id=189188 |
| |
| Reviewed by Youenn Fablet. |
| |
| WebRTCLegacyAPI preference has been removed in r235484. However, the API is still used by |
| Safari when running external SDK builds. Hence we restore some dummy getter/setter for now. |
| |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetWebRTCLegacyAPIEnabled): no-op. |
| (WKPreferencesGetWebRTCLegacyAPIEnabled): Always return false. |
| * UIProcess/API/C/WKPreferencesRef.h: |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences _webRTCLegacyAPIEnabled]): Always return false. |
| (-[WKPreferences _setWebRTCLegacyAPIEnabled:]): no-op. |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: |
| |
| 2018-08-31 Frederic Wang <fwang@igalia.com> |
| |
| Bug 182053 - [CSSOM View] Implement standard behavior for scrollingElement |
| https://bugs.webkit.org/show_bug.cgi?id=182053 |
| |
| Reviewed by Simon Fraser. |
| |
| Add developer flag to use standard behavior for scrolling* attributes. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetCSSOMViewScrollingAPIEnabled): |
| (WKPreferencesGetCSSOMViewScrollingAPIEnabled): |
| * UIProcess/API/C/WKPreferencesRefPrivate.h: |
| |
| 2018-08-30 Tim Horton <timothy_horton@apple.com> |
| |
| One more build fix |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView shareSheetDidDismiss:]): |
| Actually tested this time. |
| |
| 2018-08-30 Chris Dumez <cdumez@apple.com> |
| |
| Add WKPageLoadFile SPI variant which returns a navigation object |
| https://bugs.webkit.org/show_bug.cgi?id=189168 |
| <rdar://problem/43899330> |
| |
| Reviewed by Alex Christensen. |
| |
| Add WKPageLoadFile SPI variant which returns a navigation object, similarly to WKPageLoadURLRequestReturningNavigation(). |
| This is needed in order to implement <rdar://problem/40309266>. |
| |
| * UIProcess/API/C/mac/WKPagePrivateMac.h: |
| * UIProcess/API/C/mac/WKPagePrivateMac.mm: |
| (WKPageLoadFileReturningNavigation): |
| |
| 2018-08-30 Tim Horton <timothy_horton@apple.com> |
| |
| Try to fix the watchOS and tvOS build |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _showShareSheet:completionHandler:]): |
| (-[WKContentView shareSheetDidDismiss:]): |
| |
| 2018-08-30 Justin Michaud <justin@justinmichaud.com> |
| |
| [GTK] Touchscreen pinch to zoom should scale the page like other platforms |
| https://bugs.webkit.org/show_bug.cgi?id=188746 |
| |
| Changes the pinch-to-zoom gesture to magnify/scale the page, rather than zooming in. Also resets this magnification when the zoom level is changed. |
| |
| Reviewed by Michael Catanzaro. |
| |
| * UIProcess/API/glib/WebKitWebView.cpp: |
| (webkit_web_view_set_zoom_level): |
| * UIProcess/API/gtk/PageClientImpl.cpp: |
| (WebKit::PageClientImpl::zoom): Deleted. |
| * UIProcess/API/gtk/PageClientImpl.h: |
| * UIProcess/API/gtk/WebKitWebViewBase.cpp: |
| * UIProcess/gtk/GestureController.cpp: |
| (WebKit::GestureController::ZoomGesture::handleZoom): |
| (WebKit::GestureController::ZoomGesture::scaleChanged): |
| * UIProcess/gtk/GestureController.h: |
| |
| 2018-08-30 Tim Horton <timothy_horton@apple.com> |
| |
| Bundle unified sources more tightly in projects with deep directory structures |
| https://bugs.webkit.org/show_bug.cgi?id=189009 |
| |
| Reviewed by Simon Fraser. |
| |
| Fix a variety of unification errors due to reshuffling the bundles. |
| |
| * Shared/APIWebArchive.mm: |
| * Shared/APIWebArchiveResource.mm: |
| * Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm: |
| * Shared/Plugins/Netscape/mac/PluginInformationMac.mm: |
| * SourcesCocoa.txt: |
| * SourcesGTK.txt: |
| * UIProcess/API/APIAutomationSessionClient.h: |
| (API::AutomationSessionClient::sessionIdentifier const): |
| (API::AutomationSessionClient::messageOfCurrentJavaScriptDialogOnPage): |
| (API::AutomationSessionClient::setUserInputForCurrentJavaScriptPromptOnPage): |
| * UIProcess/Cocoa/LegacyCustomProtocolManagerClient.mm: |
| (-[WKCustomProtocolLoader initWithLegacyCustomProtocolManagerProxy:customProtocolID:request:]): |
| (-[WKCustomProtocolLoader connection:didFailWithError:]): |
| (-[WKCustomProtocolLoader connection:didReceiveResponse:]): |
| * UIProcess/Plugins/PluginProcessProxy.cpp: |
| (WebKit::generatePluginProcessCallbackID): |
| (WebKit::PluginProcessProxy::fetchWebsiteData): |
| (WebKit::PluginProcessProxy::deleteWebsiteData): |
| (WebKit::PluginProcessProxy::deleteWebsiteDataForHostNames): |
| (WebKit::generateCallbackID): Deleted. |
| * UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm: |
| (-[WKScrollingNodeScrollViewDelegate scrollViewWillEndDragging:withVelocity:targetContentOffset:]): |
| * UIProcess/Storage/StorageProcessProxy.cpp: |
| (WebKit::generateStorageProcessCallbackID): |
| (WebKit::StorageProcessProxy::fetchWebsiteData): |
| (WebKit::StorageProcessProxy::deleteWebsiteData): |
| (WebKit::StorageProcessProxy::deleteWebsiteDataForOrigins): |
| (WebKit::generateCallbackID): Deleted. |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/Plugins/PDF/PDFPlugin.mm: |
| (-[WKPDFPluginAccessibilityObject accessibilityPerformAction:]): |
| (-[WKPDFPluginAccessibilityObject accessibilityFocusedUIElement]): |
| (-[WKPDFPluginAccessibilityObject accessibilityAssociatedControlForAnnotation:]): |
| (-[WKPDFPluginAccessibilityObject accessibilityHitTest:]): |
| (-[WKPDFLayerControllerDelegate updateScrollPosition:]): |
| (WebKit::PDFPlugin::updateCursor): |
| (WebKit::coreCursor): |
| (appendValuesInPDFNameSubtreeToVector): Deleted. |
| (getAllValuesInPDFNameTree): Deleted. |
| (getAllScriptsInPDFDocument): Deleted. |
| |
| 2018-08-30 Tim Horton <timothy_horton@apple.com> |
| |
| Fix the watchOS and tvOS build |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView cleanupInteraction]): |
| (-[WKContentView invokeShareSheetWithResolution:]): |
| |
| 2018-08-30 Eric Carlson <eric.carlson@apple.com> |
| |
| Mock video devices should only support discrete sizes |
| https://bugs.webkit.org/show_bug.cgi?id=189000 |
| <rdar://problem/43766551> |
| |
| Reviewed by Youenn Fablet. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::resetMockMediaDevices): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::resetMockMediaDevices): |
| |
| 2018-08-30 Olivia Barnett <obarnett@apple.com> |
| |
| Web Share API compatible with AppleTV and WatchOS |
| https://bugs.webkit.org/show_bug.cgi?id=189157 |
| |
| Reviewed by Tim Horton. |
| |
| * Shared/WebPreferencesDefaultValues.h: |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView fileUploadPanelDidDismiss:]): |
| * UIProcess/ios/forms/WKShareSheet.h: |
| * UIProcess/ios/forms/WKShareSheet.mm: |
| (-[WKShareSheet invokeShareSheetWithResolution:]): |
| Added platform checks. |
| |
| 2018-08-30 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r235413 and r235444. |
| https://bugs.webkit.org/show_bug.cgi?id=189163 |
| |
| Causes crashes when running layout tests under GuardMalloc |
| (Requested by ryanhaddad on #webkit). |
| |
| Reverted changesets: |
| |
| "NetworkLoad::didReceiveResponse should pass its completion |
| handler to its client" |
| https://bugs.webkit.org/show_bug.cgi?id=188701 |
| https://trac.webkit.org/changeset/235413 |
| |
| "Remove assertion introduced in r235413" |
| https://bugs.webkit.org/show_bug.cgi?id=188701 |
| https://trac.webkit.org/changeset/235444 |
| |
| 2018-08-30 Basuke Suzuki <Basuke.Suzuki@sony.com> |
| |
| [Curl][WebKit] Bugfix on redirect. |
| https://bugs.webkit.org/show_bug.cgi?id=189056 |
| |
| Reviewed by Alex Christensen. |
| |
| Forget to call updateFromDelegatePreservingOldProperties in continueWillSendRequest like other ports do. |
| |
| * NetworkProcess/NetworkLoad.cpp: |
| (WebKit::NetworkLoad::continueWillSendRequest): |
| |
| 2018-08-30 Aditya Keerthi <akeerthi@apple.com> |
| |
| [macOS] Color picker layout is broken if suggested colors are specified |
| https://bugs.webkit.org/show_bug.cgi?id=189117 |
| |
| Reviewed by Tim Horton. |
| |
| NSPopoverColorWell recently changed the size of its swatches. We need to update |
| the width of the swatches we provide to match the width of the other swatches, |
| in order to avoid breaking the layout. |
| |
| While such a solution is not a good precedent, we do not have fully-functional SPI |
| to customize the suggested colors. A FIXME has been added for this reason. |
| However, even once we obtain SPI, we will need to find a way to support older |
| clients, making conditional compilation a potential necessity. |
| |
| * UIProcess/mac/WebColorPickerMac.mm: |
| |
| 2018-08-30 Brent Fulgham <bfulgham@apple.com> |
| |
| [macOS] Whitelist Network process features for VPN |
| https://bugs.webkit.org/show_bug.cgi?id=189023 |
| <rdar://problem/43310000> |
| |
| Reviewed by Eric Carlson. |
| |
| CFNetwork needs access to some VPN preference files to configure networking, and |
| need to be allowed to communicate with the VPN process from the Network Process |
| sandbox. |
| |
| * NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in: |
| |
| 2018-08-30 Yoshiaki Jitsukawa <yoshiaki.jitsukawa@sony.com> |
| |
| [ConnectionUnix] Shrink sizeof AttachmentInfo by reordering members |
| https://bugs.webkit.org/show_bug.cgi?id=189149 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Reorder members to shrink the size of AttachmentInfo so that |
| we can attach more attachments. |
| |
| * Platform/IPC/unix/ConnectionUnix.cpp: |
| |
| 2018-08-29 Chris Dumez <cdumez@apple.com> |
| |
| Avoid code duplication in ResourceLoadStatisticsMemoryStore::processStatisticsAndDataRecords() |
| https://bugs.webkit.org/show_bug.cgi?id=189130 |
| |
| Reviewed by Youenn Fablet. |
| |
| Move if check inside the lambda instead of outside to avoid code duplication. |
| |
| * UIProcess/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ResourceLoadStatisticsMemoryStore::processStatisticsAndDataRecords): |
| |
| 2018-08-29 Alex Christensen <achristensen@webkit.org> |
| |
| Revert some of r235398 |
| https://bugs.webkit.org/show_bug.cgi?id=189133 |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/API/APILoaderClient.h: |
| (API::LoaderClient::processDidCrash): |
| (API::LoaderClient::didChangeBackForwardList): |
| (API::LoaderClient::didCommitLoadForFrame): |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetPageLoaderClient): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didChangeBackForwardList): |
| (WebKit::WebPageProxy::didCommitLoadForFrame): |
| (WebKit::WebPageProxy::dispatchProcessDidTerminate): |
| |
| 2018-08-29 Olivia Barnett <obarnett@apple.com> |
| |
| Implement the Web Share API |
| https://bugs.webkit.org/show_bug.cgi?id=171100 |
| <rdar://problem/31751734> |
| |
| Reviewed by Tim Horton. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| Added NSURL _title property as in the WebCore UIKitSPI. |
| |
| * Scripts/webkit/messages.py: |
| ShareDataWithParsedURL special case for header for type. |
| |
| * Shared/ShareSheetCallbackID.h: |
| Added a typedef for a share sheet callback id. |
| |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<ShareData>::encode): |
| (IPC::ArgumentCoder<ShareData>::decode): |
| (IPC::ArgumentCoder<ShareDataWithParsedURL>::encode): |
| (IPC::ArgumentCoder<ShareDataWithParsedURL>::decode): |
| * Shared/WebCoreArgumentCoders.h: |
| Added encoding and decoding functionality for new structs. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetWebShareEnabled): |
| (WKPreferencesGetWebShareEnabled): |
| * UIProcess/API/C/WKPreferencesRefPrivate.h: |
| Added switch for RuntimeEnabledFeature. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| Added hook for share sheet testing. |
| |
| * UIProcess/PageClient.h: |
| (WebKit::PageClient::showShareSheet): |
| Page client call to invoke share sheet. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::showShareSheet): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| Web page proxy handling of call to invoke share sheet. |
| Creates completion handler to send to WKShareSheet.mm |
| Completion handler sends message to WebPage with message id. |
| |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::showShareSheet): |
| Page client implementation call to invoke share sheet. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView cleanupInteraction]): |
| (-[WKContentView _showShareSheet:completionHandler:]): |
| (-[WKContentView shareSheetDidDismiss:]): |
| (-[WKContentView invokeShareSheetWithResolution:resolved): |
| Call to WKShareSheet to invoke the share sheet and callback. |
| Hook for share sheet resolution testing. |
| |
| * UIProcess/ios/forms/WKShareSheet.h: Added. |
| * UIProcess/ios/forms/WKShareSheet.mm: Added. |
| (-[WKShareSheet initWithView:]): |
| (-[WKShareSheet presentWithParameters:completionHandler:]): |
| (-[WKShareSheet _dispatchDidDismiss]): |
| (-[WKShareSheet _cancel]): |
| (-[WKShareSheet dismiss]): |
| (-[WKShareSheet _dismissDisplayAnimated:]): |
| (-[WKShareSheet _presentFullscreenViewController:animated:]): |
| (-[WKShareSheet invokeShareSheetWithResolution:resolved:]): |
| Completion handler call and creation of share sheet with parameters. |
| Hook that force resolves the share sheet completion handler for testing. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::showShareSheet): |
| Call to page to invoke share sheet. |
| |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::nextShareSheetContextId): |
| (WebKit::WebPage::showShareSheet): |
| (WebKit::WebPage::showShareSheetResponse): |
| WebPage calls proxy and saves context id for promise. |
| |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| Callback for completed response. |
| |
| 2018-08-29 Chris Dumez <cdumez@apple.com> |
| |
| Crash under WebKit: WTF::Function<void ()>::CallableWrapper<WebKit::ResourceLoadStatisticsMemoryStore::removeDataRecords(WTF::CompletionHandler<void ()>&&)::$_1>::call() |
| https://bugs.webkit.org/show_bug.cgi?id=189098 |
| <rdar://problem/43179891> |
| |
| Reviewed by Youenn Fablet. |
| |
| The crash was caused by implicitly using |this| on the main thread by accessing member variables, even though |
| |this| gets destroyed on the statistics queue. To address the issue, capture what we need on the statistics |
| queue, *before* dispatching to the main thread. |
| |
| Also stop capturing |this| in the lambdas to make this less error prone. |
| |
| * UIProcess/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ResourceLoadStatisticsMemoryStore::removeDataRecords): |
| (WebKit::ResourceLoadStatisticsMemoryStore::grandfatherExistingWebsiteData): |
| (WebKit::ResourceLoadStatisticsMemoryStore::updateCookieBlocking): |
| |
| 2018-08-29 Youenn Fablet <youenn@apple.com> |
| |
| Remove WebRTC legacy API implementation |
| https://bugs.webkit.org/show_bug.cgi?id=189040 |
| |
| Reviewed by Eric Carlson. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetWebRTCLegacyAPIEnabled): Deleted. |
| (WKPreferencesGetWebRTCLegacyAPIEnabled): Deleted. |
| * UIProcess/API/C/WKPreferencesRef.h: |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences _webRTCLegacyAPIEnabled]): Deleted. |
| (-[WKPreferences _setWebRTCLegacyAPIEnabled:]): Deleted. |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): |
| |
| 2018-08-29 Chris Dumez <cdumez@apple.com> |
| |
| [PSON] We should only process-swap when eTLD+1 changes on navigation |
| https://bugs.webkit.org/show_bug.cgi?id=189090 |
| <rdar://problem/43799225> |
| |
| Reviewed by Geoffrey Garen. |
| |
| When navigating cross-origin, only process swap when the eTLD+1 (aka "Registrable |
| domain") changes, instead of considering the full security origin. |
| |
| This has performance benefits and is also needed to keep document.domain origin |
| relaxation working. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::addProcessToOriginCacheSet): |
| (WebKit::WebProcessPool::removeProcessFromOriginCacheSet): |
| (WebKit::WebProcessPool::processForNavigation): |
| (WebKit::WebProcessPool::processForNavigationInternal): |
| * UIProcess/WebProcessPool.h: |
| |
| 2018-08-29 Youenn Fablet <youenn@apple.com> |
| |
| Add a runtime flag for WebRTC unified plan |
| https://bugs.webkit.org/show_bug.cgi?id=189068 |
| |
| Reviewed by Eric Carlson. |
| |
| * Shared/WebPreferences.yaml: |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): |
| |
| 2018-08-29 Aditya Keerthi <akeerthi@apple.com> |
| |
| Followup (r235427): Use the null string instead of std::nullopt when no suggestion is selected |
| https://bugs.webkit.org/show_bug.cgi?id=189095 |
| |
| Reviewed by Tim Horton. |
| |
| Followup to r235427 as per Darin's comment. |
| |
| We can avoid unnecessary use of std::optional by taking advantage of the fact that |
| WTF::String already has a null value distinct from the empty value. |
| |
| No change in behavior. |
| |
| * UIProcess/mac/WebDataListSuggestionsDropdownMac.mm: |
| (WebKit::WebDataListSuggestionsDropdownMac::selectOption): |
| (-[WKDataListSuggestionsView currentSelectedString]): |
| |
| 2018-08-29 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Use the null string instead of std::nullopt for missing attachment file names and content types |
| https://bugs.webkit.org/show_bug.cgi?id=189080 |
| |
| Reviewed by Tim Horton. |
| |
| Replace instances of std::optional<String> with just String instead, and use the null string to represent a |
| missing value instead of std::nullopt. No change in behavior. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::updateAttachmentAttributes): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::updateAttachmentAttributes): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2018-08-28 Don Olmstead <don.olmstead@sony.com> |
| |
| [CMake] Use CMake's FindFreetype |
| https://bugs.webkit.org/show_bug.cgi?id=189071 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * PlatformWPE.cmake: |
| |
| 2018-08-28 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Work towards: [iOS] Consolidate the implementations of readString, stringForType, and readURL in PlatformPasteboardIOS.mm |
| https://bugs.webkit.org/show_bug.cgi?id=189054 |
| |
| Reviewed by Andy Estes. |
| |
| Remove the pasteboard type argument from readURLFromPasteboard. |
| |
| * UIProcess/Cocoa/WebPasteboardProxyCocoa.mm: |
| (WebKit::WebPasteboardProxy::readURLFromPasteboard): |
| * UIProcess/WebPasteboardProxy.h: |
| * UIProcess/WebPasteboardProxy.messages.in: |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: |
| (WebKit::WebPlatformStrategies::readURLFromPasteboard): |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.h: |
| |
| 2018-08-28 Alex Christensen <achristensen@webkit.org> |
| |
| Remove assertion introduced in r235413 |
| https://bugs.webkit.org/show_bug.cgi?id=188701 |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::didFinishWithRedirectResponse): |
| r235413 did not change behavior. The assertion was invalid. |
| |
| 2018-08-28 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Remove references to "APIAttachmentCocoa.h" in WebKit.xcodeproj |
| Follow-up to https://bugs.webkit.org/show_bug.cgi?id=188933 |
| |
| Rubber-stamped by David Kilzer. |
| |
| This header was not removed from the Xcode project file after being deleted. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-08-28 Sihui Liu <sihui_liu@apple.com> |
| |
| Add error information to help debug test failure in WKNavigation.ProcessCrashDuringCallback |
| https://bugs.webkit.org/show_bug.cgi?id=189037 |
| |
| Reviewed by Chris Dumez. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _getMainResourceDataWithCompletionHandler:]): |
| (-[WKWebView _getWebArchiveDataWithCompletionHandler:]): |
| (-[WKWebView _getContentsAsStringWithCompletionHandler:]): |
| |
| 2018-08-28 Basuke Suzuki <Basuke.Suzuki@sony.com> |
| |
| [Curl] Fix issue that extra cookie is added when redirect happens. |
| https://bugs.webkit.org/show_bug.cgi?id=187874 |
| |
| Reviewed by Alex Christensen. |
| |
| When initial request has cookie set and redirect happens, it add extra Cookie header to that |
| abd request was broken. Just stop modifying the original request by passing a value. |
| |
| * NetworkProcess/curl/NetworkDataTaskCurl.cpp: |
| (WebKit::NetworkDataTaskCurl::createCurlRequest): |
| (WebKit::NetworkDataTaskCurl::willPerformHTTPRedirection): |
| (WebKit::NetworkDataTaskCurl::restartWithCredential): |
| * NetworkProcess/curl/NetworkDataTaskCurl.h: |
| |
| 2018-08-28 Aditya Keerthi <akeerthi@apple.com> |
| |
| [macOS] Color wells should appear rounded and textured |
| https://bugs.webkit.org/show_bug.cgi?id=189039 |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/mac/WebColorPickerMac.mm: Build fix. |
| |
| 2018-08-28 Aditya Keerthi <akeerthi@apple.com> |
| |
| [Datalist] Pressing enter without a selected option shouldn't change the input |
| https://bugs.webkit.org/show_bug.cgi?id=189010 |
| |
| Reviewed by Tim Horton. |
| |
| Currently, the value of an input field gets cleared if there is no selected |
| datalist suggestion when the enter key is pressed. The correct behavior is to |
| leave the value of the input as-is. |
| |
| The incorrect behavior is a consequence of the fact that an empty string is |
| returned by [WKDataListSuggestionsView currentSelectedString] if there is no |
| selection. To fix the behavior, the method now returns an std::optional instead |
| of an empty string. If std::nullopt is returned, we do not make any modification |
| to the value of the input. This ensures that we can still change the value of |
| an input field to an empty string in the case that an empty string is part of |
| the suggestions. |
| |
| Augmented test: fast/forms/datalist/datalist-textinput-keydown.html |
| |
| * UIProcess/mac/WebDataListSuggestionsDropdownMac.mm: |
| (WebKit::WebDataListSuggestionsDropdownMac::selectOption): |
| (-[WKDataListSuggestionCell drawRect:]): Quick fix. The mouseover color was incorrect. |
| (-[WKDataListSuggestionsView currentSelectedString]): |
| |
| 2018-08-28 Aditya Keerthi <akeerthi@apple.com> |
| |
| [iOS] Support inputmode=none |
| https://bugs.webkit.org/show_bug.cgi?id=188896 |
| |
| Reviewed by Tim Horton. |
| |
| inputmode=none is used by content that renders its own keyboard control. |
| Consequently, we should not display the virtual keyboard when a user interacts |
| with an element that has the inputmode attribute set to the "none" value. |
| |
| In order to achieve this behavior, we return a UIView with a bounds of CGRectZero |
| as the inputView of the WKContentView when inputmode=none is present. Furthermore, |
| we do not provide an accessory view in this case. |
| |
| Updated the logic that zooms and scrolls to a control when it gains focus, as that |
| behavior currently relies on an accessory view being present. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _displayFormNodeInputView]): |
| (-[WKContentView inputView]): |
| (-[WKContentView requiresAccessoryView]): |
| (-[WKContentView textInputTraits]): |
| |
| 2018-08-27 Basuke Suzuki <Basuke.Suzuki@sony.com> |
| |
| [Curl] Enable Proxy Authentication on WebKit. |
| https://bugs.webkit.org/show_bug.cgi?id=188998 |
| |
| Reviewed by Alex Christensen. |
| |
| Add support for proxy authentication to curl backend running on WebKit. |
| This is follow up implementation of legacy implementation: |
| - https://bugs.webkit.org/show_bug.cgi?id=185266 |
| |
| * NetworkProcess/curl/NetworkDataTaskCurl.cpp: |
| (WebKit::NetworkDataTaskCurl::curlDidReceiveResponse): |
| (WebKit::NetworkDataTaskCurl::tryProxyAuthentication): |
| * NetworkProcess/curl/NetworkDataTaskCurl.h: |
| * NetworkProcess/curl/NetworkProcessCurl.cpp: |
| * PlatformWin.cmake: |
| |
| 2018-08-27 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Attachment Support] Remove WebCore::AttachmentDisplayOptions and friends |
| https://bugs.webkit.org/show_bug.cgi?id=189004 |
| |
| Reviewed by Dan Bernstein. |
| |
| Removes all usage of WebCore::AttachmentDisplayOptions, and deletes an SPI method that isn't being used by any |
| internal clients. Removal of _WKAttachmentDisplayOptions itself is still blocked on the submission of |
| <rdar://problem/43357281>. |
| |
| * Scripts/webkit/messages.py: |
| * Shared/WebCoreArgumentCoders.cpp: |
| * UIProcess/API/APIAttachment.cpp: |
| (API::Attachment::setDisplayOptions): Deleted. |
| * UIProcess/API/APIAttachment.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _insertAttachmentWithFilename:contentType:data:options:completion:]): |
| (-[WKWebView _insertAttachmentWithFileWrapper:contentType:options:completion:]): |
| (-[WKWebView _insertAttachmentWithFileWrapper:contentType:completion:]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| |
| Deprecate -_insertAttachmentWithFileWrapper:contentType:options:completion:, in favor of |
| -_insertAttachmentWithFileWrapper:contentType:completion:. |
| |
| * UIProcess/API/Cocoa/_WKAttachment.h: |
| |
| Remove -setDisplayOptions:completion:, since it is a now a noop, and also isn't used by any internal clients. |
| |
| * UIProcess/API/Cocoa/_WKAttachment.mm: |
| (-[_WKAttachmentDisplayOptions coreDisplayOptions]): Deleted. |
| (-[_WKAttachment setDisplayOptions:completion:]): Deleted. |
| * UIProcess/API/Cocoa/_WKAttachmentInternal.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::insertAttachment): |
| (WebKit::WebPageProxy::setAttachmentDisplayOptions): Deleted. |
| * UIProcess/WebPageProxy.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::insertAttachment): |
| (WebKit::WebPage::setAttachmentDisplayOptions): Deleted. |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2018-08-27 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-08-27 Keith Rollin <krollin@apple.com> |
| |
| Unreviewed build fix -- disable LTO for production builds |
| |
| * Configurations/Base.xcconfig: |
| |
| 2018-08-27 Per Arne Vollan <pvollan@apple.com> |
| |
| [macOS] Block CoreServices in sandbox. |
| https://bugs.webkit.org/show_bug.cgi?id=189005 |
| <rdar://problem/35369091> |
| |
| Reviewed by Brent Fulgham. |
| |
| The sandbox for the WebContent process should block CoreServices. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-08-27 Simon Fraser <simon.fraser@apple.com> |
| |
| Teach WebKitTestRunner and DumpRenderTree about detecting world leaks |
| https://bugs.webkit.org/show_bug.cgi?id=188994 |
| |
| Reviewed by Tim Horton. |
| |
| This patch adds the notion of a "control command" in the protocol between webkitpy and |
| WebKitTestRunner/DumpRenderTree. A command is simply an input string starting with a # |
| that is checked for before trying to parse the input as test URL. For now, just one |
| commmand is supported, which is "#CHECK FOR WORLD LEAKS". |
| |
| In response to the command, the tool dumps an output block in the usual pseudo-MIME-style, |
| with a trailing "#EOF". Future patches will add support to webkitpy to parse this output. |
| |
| DumpRenderTree stubs out the command, returning an empty block. |
| |
| WebKitTestRunner responds to the command by dumping the list of live documents, if it was |
| run with the --check-for-world-leaks option. |
| |
| When run with --check-for-world-leaks, WebKitTestRunner gets the list of live documents via |
| WKBundleGetLiveDocumentURLs() after every test (this allows it to detect the first test |
| that leaked a document), and keeps them in a map of document identifier to test and live document URL. |
| Then when it receives the "#CHECK FOR WORLD LEAKS" command, it calls into the bundle to |
| clear the page and memory caches, runs a GC, then posts a task (in the Document::postTaks() sense) |
| after which it requests the list of live documents for a final time, excluding any that are loaded |
| in live Frames (thus omitting the about:blank that will be loaded at this point). Documents in this |
| list are therefore leaked (or abandoned). |
| |
| Future patches will hook up webkitpy reporting for leaked documents. |
| |
| * WebProcess/InjectedBundle/API/c/WKBundle.cpp: |
| (WKBundleGetLiveDocumentURLs): |
| (WKBundleClearPageCache): |
| (WKBundleClearMemoryCache): |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: |
| (WKBundlePagePostTask): |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.h: |
| * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::liveDocumentURLs): |
| * WebProcess/InjectedBundle/InjectedBundle.h: |
| |
| 2018-08-27 Alex Christensen <achristensen@webkit.org> |
| |
| Fix plug-ins after r235398 |
| https://bugs.webkit.org/show_bug.cgi?id=188997 |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::findPlugin): |
| |
| 2018-08-27 Aditya Keerthi <akeerthi@apple.com> |
| |
| Consolidate ENABLE_INPUT_TYPE_COLOR and ENABLE_INPUT_TYPE_COLOR_POPOVER |
| https://bugs.webkit.org/show_bug.cgi?id=188931 |
| |
| Reviewed by Wenson Hsieh. |
| |
| A popover is the preferred interface for <input type=color> on macOS. The color |
| panel is still accessible through a button on the popover, for fine-grained |
| color selection. We can consolidate the two build flags, so that a popover is |
| always displayed in the ENABLE(INPUT_TYPE_COLOR) build. |
| |
| * Configurations/FeatureDefines.xcconfig: Removed ENABLE_INPUT_TYPE_COLOR_POPOVER. |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::showColorPicker): |
| (WebKit::WebPageProxy::closeOverlayedViews): |
| * UIProcess/mac/WebColorPickerMac.mm: |
| (WebKit::WebColorPickerMac::WebColorPickerMac): |
| (WebKit::WebColorPickerMac::showColorPicker): |
| |
| 2018-08-27 Alex Christensen <achristensen@webkit.org> |
| |
| Pass webPageID and webFrameID to NetworkLoad for speculative loads |
| https://bugs.webkit.org/show_bug.cgi?id=188682 |
| |
| Reviewed by Youenn Fablet. |
| |
| This also removes an authentication shortcut I introduced in r234941 |
| |
| * NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp: |
| (WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad): |
| (WebKit::NetworkCache::SpeculativeLoad::didReceiveResponse): |
| * Shared/Authentication/AuthenticationManager.cpp: |
| (WebKit::AuthenticationManager::didReceiveAuthenticationChallenge): |
| |
| 2018-08-27 Alex Christensen <achristensen@webkit.org> |
| |
| Remove most of LoaderClient |
| https://bugs.webkit.org/show_bug.cgi?id=188997 |
| |
| Reviewed by Tim Horton. |
| |
| We still have a few clients using basic functionality that are transitioning to WKPageNavigationClient, |
| but most of it can be removed. |
| |
| * UIProcess/API/APILoaderClient.h: |
| (API::LoaderClient::~LoaderClient): |
| (API::LoaderClient::didFailProvisionalLoadWithErrorForFrame): |
| (API::LoaderClient::didFailLoadWithErrorForFrame): |
| (API::LoaderClient::didFirstVisuallyNonEmptyLayoutForFrame): |
| (API::LoaderClient::didReachLayoutMilestone): |
| (API::LoaderClient::shouldKeepCurrentBackForwardListItemInList): |
| (API::LoaderClient::didCommitLoadForFrame): Deleted. |
| (API::LoaderClient::didFinishDocumentLoadForFrame): Deleted. |
| (API::LoaderClient::didSameDocumentNavigationForFrame): Deleted. |
| (API::LoaderClient::didReceiveTitleForFrame): Deleted. |
| (API::LoaderClient::didFirstLayoutForFrame): Deleted. |
| (API::LoaderClient::didDisplayInsecureContentForFrame): Deleted. |
| (API::LoaderClient::didRunInsecureContentForFrame): Deleted. |
| (API::LoaderClient::didDetectXSSForFrame): Deleted. |
| (API::LoaderClient::didReceiveAuthenticationChallengeInFrame): Deleted. |
| (API::LoaderClient::didStartProgress): Deleted. |
| (API::LoaderClient::didChangeProgress): Deleted. |
| (API::LoaderClient::didFinishProgress): Deleted. |
| (API::LoaderClient::processDidBecomeUnresponsive): Deleted. |
| (API::LoaderClient::processDidBecomeResponsive): Deleted. |
| (API::LoaderClient::processDidCrash): Deleted. |
| (API::LoaderClient::didChangeBackForwardList): Deleted. |
| (API::LoaderClient::willGoToBackForwardListItem): Deleted. |
| (API::LoaderClient::didNavigateWithNavigationData): Deleted. |
| (API::LoaderClient::didPerformClientRedirect): Deleted. |
| (API::LoaderClient::didPerformServerRedirect): Deleted. |
| (API::LoaderClient::didUpdateHistoryTitle): Deleted. |
| (API::LoaderClient::navigationGestureDidBegin): Deleted. |
| (API::LoaderClient::navigationGestureWillEnd): Deleted. |
| (API::LoaderClient::navigationGestureDidEnd): Deleted. |
| (API::LoaderClient::pluginLoadPolicy): Deleted. |
| (API::LoaderClient::didFailToInitializePlugin): Deleted. |
| (API::LoaderClient::didBlockInsecurePluginVersion): Deleted. |
| (API::LoaderClient::webGLLoadPolicy const): Deleted. |
| (API::LoaderClient::resolveWebGLLoadPolicy const): Deleted. |
| (API::LoaderClient::didStartLoadForQuickLookDocumentInMainFrame): Deleted. |
| (API::LoaderClient::didFinishLoadForQuickLookDocumentInMainFrame): Deleted. |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetPageLoaderClient): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didChangeBackForwardList): |
| (WebKit::WebPageProxy::willGoToBackForwardListItem): |
| (WebKit::WebPageProxy::didStartProgress): |
| (WebKit::WebPageProxy::didChangeProgress): |
| (WebKit::WebPageProxy::didFinishProgress): |
| (WebKit::WebPageProxy::didCommitLoadForFrame): |
| (WebKit::WebPageProxy::didFinishDocumentLoadForFrame): |
| (WebKit::WebPageProxy::didSameDocumentNavigationForFrame): |
| (WebKit::WebPageProxy::didReceiveTitleForFrame): |
| (WebKit::WebPageProxy::didFirstLayoutForFrame): |
| (WebKit::WebPageProxy::didDisplayInsecureContentForFrame): |
| (WebKit::WebPageProxy::didRunInsecureContentForFrame): |
| (WebKit::WebPageProxy::didDetectXSSForFrame): |
| (WebKit::WebPageProxy::didNavigateWithNavigationData): |
| (WebKit::WebPageProxy::didPerformClientRedirect): |
| (WebKit::WebPageProxy::didPerformServerRedirect): |
| (WebKit::WebPageProxy::didUpdateHistoryTitle): |
| (WebKit::WebPageProxy::webGLPolicyForURL): |
| (WebKit::WebPageProxy::resolveWebGLPolicyForURL): |
| (WebKit::WebPageProxy::processDidBecomeUnresponsive): |
| (WebKit::WebPageProxy::processDidBecomeResponsive): |
| (WebKit::WebPageProxy::dispatchProcessDidTerminate): |
| (WebKit::WebPageProxy::didReceiveAuthenticationChallengeProxy): |
| (WebKit::WebPageProxy::navigationGestureDidBegin): |
| (WebKit::WebPageProxy::navigationGestureWillEnd): |
| (WebKit::WebPageProxy::navigationGestureDidEnd): |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::didStartLoadForQuickLookDocumentInMainFrame): |
| (WebKit::WebPageProxy::didFinishLoadForQuickLookDocumentInMainFrame): |
| |
| 2018-08-27 Alex Christensen <achristensen@webkit.org> |
| |
| REGRESSION(r234985/r234989) WKPageLoadHTMLString with a 16-bit String has the wrong encoding |
| https://bugs.webkit.org/show_bug.cgi?id=189002 |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/API/C/WKPage.cpp: |
| (encodingOf): |
| |
| 2018-08-27 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Cocoa] Exception (fileType 'dyn.agq8u' is not a valid UTI) raised when dragging an attachment whose file wrapper is a directory |
| https://bugs.webkit.org/show_bug.cgi?id=188903 |
| <rdar://problem/43702993> |
| |
| Reviewed by Tim Horton. |
| |
| Fixes the bug by supporting NSFileWrappers of type directory, as well as NSFileWrappers with file that do not |
| map to concrete type identifiers. Among other things, this patch ensures that: |
| - Inserting a directory file wrapper (or using -setFileWrapper:…: to change an existing _WKAttachment's |
| file wrapper to a directory) does not cause the attachment element to show "0 bytes" as the subtitle. |
| - In the above scenario, we also won't end up with a missing "type" attribute for the attachment element, |
| as well as a corresponding API::Attachment::contentType() that's an empty string. |
| - Dropping or pasting attachments backed by paths on disk also doesn't trigger these problems, if the path |
| is a directory or of unknown file type. |
| |
| Changes are verified by 2 new API tests. |
| |
| * UIProcess/API/APIAttachment.cpp: |
| (API::Attachment::updateAttributes): |
| (API::Attachment::fileSizeForDisplay const): |
| * UIProcess/API/APIAttachment.h: |
| * UIProcess/API/Cocoa/APIAttachmentCocoa.mm: |
| (API::Attachment::setFileWrapperAndUpdateContentType): |
| |
| Add a helper that sets the file wrapper to the given NSFileWrapper, and either sets the content type to the |
| given content type if it's specified, or infers it from the file extension of the new NSFileWrapper. Invoked |
| whenever an NSFileWrapper and content type combination is set on an API attachment via WebKit SPI. |
| |
| (API::Attachment::fileSizeForDisplay const): |
| |
| Returns a file size to be displayed in the attachment element's subtitle. This returns an optional file size, |
| where `std::nullopt` indicates that there should not be a file size shown. For now, this returns `std::nullopt` |
| for directory file wrappers, though in the future, this should be done only in cases where we don't immediately |
| have a size estimate for the file wrapper. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _insertAttachmentWithFileWrapper:contentType:options:completion:]): |
| |
| Use API::Attachment::setFileWrapperAndUpdateContentType() instead of trying to come up with a fallback UTI. |
| |
| * UIProcess/API/Cocoa/_WKAttachment.mm: |
| (-[_WKAttachment setFileWrapper:contentType:completion:]): |
| |
| Use API::Attachment::setFileWrapperAndUpdateContentType() instead of trying to come up with a fallback UTI. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::insertAttachment): |
| |
| Remove the separate arguments for file size, content type, and file name, and instead get them from the given |
| API Attachment object. |
| |
| (WebKit::WebPageProxy::updateAttachmentAttributes): |
| |
| Remove separate arguments for file size, content type and file name and just take an API::Attachment instead. |
| These separate pieces of information can simply be asked from the Attachment itself. |
| |
| * UIProcess/WebPageProxy.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::insertAttachment): |
| (WebKit::WebPage::updateAttachmentAttributes): |
| |
| Adjust some interfaces here to allow the displayed file size to be optional. |
| |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2018-08-27 Alex Christensen <achristensen@webkit.org> |
| |
| Fix internal builds after r235368 |
| |
| * UIProcess/API/Cocoa/WKBrowsingContextLoadDelegate.h: |
| At least the ios macros need an introductory version. |
| |
| 2018-08-27 Keith Rollin <krollin@apple.com> |
| |
| Build system support for LTO |
| https://bugs.webkit.org/show_bug.cgi?id=187785 |
| <rdar://problem/42353132> |
| |
| Reviewed by Dan Bernstein. |
| |
| Update Base.xcconfig and DebugRelease.xcconfig to optionally enable |
| LTO. |
| |
| * Configurations/Base.xcconfig: |
| * Configurations/DebugRelease.xcconfig: |
| |
| 2018-08-27 Daniel Bates <dabates@apple.com> |
| |
| Remove extern variable and simplify state initialization in TextCheckerMac.mm |
| https://bugs.webkit.org/show_bug.cgi?id=188820 |
| |
| Reviewed by Simon Fraser. |
| |
| Use the same approach to initializing the TextCheckerState in TextCheckerMac.mm as we did in |
| TextCheckerIOS.mm. Make use of a static, non-member, file-local function and NeverDestroyed |
| to initialize a TextCheckerState object once and provide access to it from other implementation |
| functions. |
| |
| * UIProcess/mac/TextCheckerMac.mm: |
| (WebKit::mutableState): |
| (WebKit::TextChecker::state): |
| (WebKit::TextChecker::setTestingMode): |
| (WebKit::TextChecker::setContinuousSpellCheckingEnabled): |
| (WebKit::TextChecker::setGrammarCheckingEnabled): |
| (WebKit::TextChecker::setAutomaticSpellingCorrectionEnabled): |
| (WebKit::TextChecker::setAutomaticQuoteSubstitutionEnabled): |
| (WebKit::TextChecker::setAutomaticDashSubstitutionEnabled): |
| (WebKit::TextChecker::setAutomaticLinkDetectionEnabled): |
| (WebKit::TextChecker::setAutomaticTextReplacementEnabled): |
| (WebKit::TextChecker::didChangeAutomaticTextReplacementEnabled): |
| (WebKit::TextChecker::didChangeAutomaticSpellingCorrectionEnabled): |
| (WebKit::TextChecker::didChangeAutomaticQuoteSubstitutionEnabled): |
| (WebKit::TextChecker::didChangeAutomaticDashSubstitutionEnabled): |
| (WebKit::TextChecker::continuousSpellCheckingEnabledStateChanged): |
| (WebKit::TextChecker::grammarCheckingEnabledStateChanged): |
| (WebKit::initializeState): Deleted. |
| |
| 2018-08-27 Sihui Liu <sihui_liu@apple.com> |
| |
| Don't launch network process in WebCookieManagerProxy::setHTTPCookieAcceptPolicy |
| https://bugs.webkit.org/show_bug.cgi?id=188906 |
| <rdar://problem/42875795> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Add callback in early return. |
| |
| * UIProcess/WebCookieManagerProxy.cpp: |
| (WebKit::WebCookieManagerProxy::setHTTPCookieAcceptPolicy): |
| |
| 2018-08-27 Alex Christensen <achristensen@webkit.org> |
| |
| Transition WKBrowsingContextController from WKPageLoaderClient to WKPageNavigationClient |
| https://bugs.webkit.org/show_bug.cgi?id=188942 |
| |
| Reviewed by Andy Estes. |
| |
| * UIProcess/API/Cocoa/WKBrowsingContextController.mm: |
| (didStartProvisionalNavigation): |
| (didReceiveServerRedirectForProvisionalNavigation): |
| (didFailProvisionalNavigation): |
| (didCommitNavigation): |
| (didFinishNavigation): |
| (didFailNavigation): |
| (canAuthenticateAgainstProtectionSpace): |
| (didReceiveAuthenticationChallenge): |
| (setUpPageLoaderClient): |
| (-[WKBrowsingContextController setLoadDelegate:]): |
| (didStartProvisionalLoadForFrame): Deleted. |
| (didReceiveServerRedirectForProvisionalLoadForFrame): Deleted. |
| (didFailProvisionalLoadWithErrorForFrame): Deleted. |
| (didCommitLoadForFrame): Deleted. |
| (didFinishLoadForFrame): Deleted. |
| (didFailLoadWithErrorForFrame): Deleted. |
| (canAuthenticateAgainstProtectionSpaceInFrame): Deleted. |
| (didReceiveAuthenticationChallengeInFrame): Deleted. |
| (didStartProgress): Deleted. |
| (didChangeProgress): Deleted. |
| (didFinishProgress): Deleted. |
| (didChangeBackForwardList): Deleted. |
| * UIProcess/API/Cocoa/WKBrowsingContextLoadDelegate.h: |
| |
| 2018-08-26 Darin Adler <darin@apple.com> |
| |
| [Cocoa] Adapt more WebKit code to be ARC-compatible |
| https://bugs.webkit.org/show_bug.cgi?id=188955 |
| |
| Reviewed by Anders Carlsson. |
| |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.h: Use __strong for an in/out argument. |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::applySniffingPoliciesAndBindRequestToInferfaceIfNeeded): |
| Use __strong for a in/out argument. |
| (WebKit::NetworkDataTaskCocoa::applyCookieBlockingPolicy): Call a NSURLSessionTask |
| method using an explicit category declaration rather than by using performSelector: |
| since ARC is unable to correctly compile a call when it doesn't know argument and |
| result types. |
| |
| * PluginProcess/mac/PluginProcessMac.mm: |
| (WebKit::initializeCocoaOverrides): Add some __bridge casts. |
| |
| * Shared/API/Cocoa/WKRemoteObjectCoder.mm: Use HashSet<CFTypeRef> instead of |
| HashSet<Class> since Class ia an ARC-managed type and WTF hash tables can't |
| currently handle those as key types. |
| (-[WKRemoteObjectDecoder decodeValueOfObjCType:at:]): Changed types and added casts |
| to adapt to the above. |
| (decodeObjectFromObjectStream): Ditto. |
| (checkIfClassIsAllowed): Ditto. |
| (decodeInvocationArguments): Ditto. |
| (decodeObject): Ditto. |
| (-[WKRemoteObjectDecoder decodeObjectOfClasses:forKey:]): Ditto. |
| (-[WKRemoteObjectDecoder allowedClasses]): Ditto. |
| * Shared/API/Cocoa/_WKRemoteObjectInterface.mm: |
| (propertyListClasses): Ditto. |
| (initializeMethod): Ditto. |
| (-[_WKRemoteObjectInterface debugDescription]): Ditto. |
| (classesForSelectorArgument): Ditto. |
| (-[_WKRemoteObjectInterface classesForSelector:argumentIndex:ofReply:]): Ditto. |
| (-[_WKRemoteObjectInterface setClasses:forSelector:argumentIndex:ofReply:]): Ditto. |
| (-[_WKRemoteObjectInterface _allowedArgumentClassesForSelector:]): Ditto. |
| (-[_WKRemoteObjectInterface _allowedArgumentClassesForReplyBlockOfSelector:]): Ditto. |
| * Shared/API/Cocoa/_WKRemoteObjectInterfaceInternal.h: Ditto. |
| |
| * Shared/API/c/cf/WKStringCF.mm: |
| (WKStringCreateWithCFString): Use CFRetain instead of -[NSObject retain]. Also use |
| a __bridge cast. |
| * Shared/API/c/cf/WKURLCF.mm: |
| (WKURLCreateWithCFURL): Ditto. |
| |
| * Shared/Cocoa/APIObject.mm: |
| (API::Object::ref): Added a __bridge cast. |
| (API::Object::deref): Ditto. |
| (API::allocateWKObject): Use class_createInstance instead of NSAllocateObject. |
| (API::Object::wrap): Use a __bridge cast. |
| (API::Object::unwrap): Ditto. |
| |
| * Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.h: Use CFTypeRef for layers |
| or views in the RelatedLayerMap since we don't want the items retained, and can't |
| use __unsafe_uretained because the header is used in non-Objective-C contexts. |
| * Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm: |
| (WebKit::RemoteLayerTreePropertyApplier::applyProperties): Added __bridge casts, |
| needed because of the above change. |
| |
| * UIProcess/API/Cocoa/WKBrowsingContextController.mm: |
| (WebKit::browsingContextControllerMap): Use __unsafe_unretained. |
| |
| * UIProcess/API/Cocoa/WKConnection.mm: |
| (didReceiveMessage): Use a __bridge cast. |
| |
| * UIProcess/API/Cocoa/WKContentRuleListStore.mm: |
| (-[WKContentRuleListStore compileContentRuleListForIdentifier:encodedContentRuleList:completionHandler:]): |
| Use a retain here so we don't have to have a "releasesArgument:" boolean. The cost of a single |
| retain/release pair should be infinitesmal compared to the entire process of compiling. |
| (-[WKContentRuleListStore _compileContentRuleListForIdentifier:encodedContentRuleList:completionHandler:]): |
| Moved the code for the "releases argument" version here since the private method is now the |
| actual method that does the work. The public method now simply calls this private one after |
| doing a retain. The optimization of releasing the argument at the correct moment should be intact. |
| |
| * UIProcess/API/Cocoa/WKHTTPCookieStore.mm: Use CFTypeRef for the key to the _observers |
| HashMap since the WTF collections can't yet handle ARC types for keys. |
| (-[WKHTTPCookieStore addObserver:]): Added __bridge cast for compatibility with the above. |
| (-[WKHTTPCookieStore removeObserver:]): Ditto. |
| |
| * UIProcess/API/Cocoa/WKProcessGroup.mm: |
| (setUpConnectionClient): Added a __bridge cast. |
| (setUpHistoryClient): Ditto. |
| |
| * UIProcess/API/Cocoa/WKViewPrivate.h: Added a declaration of the |
| -[WKView _shouldLoadIconWithParameters:completionHandler:] method. This peculiar idiom |
| should be removed, but I didn't bother doing that since the entire WKView class is already |
| deprecated and so will eventually be removed. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: Use __unsafe_unretained for the keys in the page to |
| view map. |
| (accessibilityEventsEnabledChangedCallback): Use a __bridge cast. |
| (-[WKWebView _certificateChain]): Ditto. |
| (-[WKWebView certificateChain]): Ditto. |
| |
| * UIProcess/API/mac/WKView.mm: |
| (-[WKView maybeInstallIconLoadingClient]): Call the method |
| _shouldLoadIconWithParameters:completionHandler: in a normal way rather than using |
| performSelector:withObject:withObject: since ARC is unable to correctly compile a call |
| when it doesn't know argument and result types. |
| |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationClient::webCryptoMasterKey): Use the overload |
| of API::Data::createWithoutCopying that knows how to work with an NSData rather than |
| re-implementing it here. |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): Ditto. Also removed unneeded |
| use of RetainPtr. |
| |
| * UIProcess/Cocoa/WebViewImpl.h: Use NSObject * as the result type of |
| immediateActionAnimationControllerForHitTestResult. Our techniques for defining such |
| functions in headers while remaining compatible with non-Objective-C will still work |
| fine given how we use this, and converting to and from void* rather than NSObject * |
| would be difficult to do correctly under ARC. |
| |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::acceptsFirstMouse): Use CFRetain/CFAutorelease instead of |
| retain/autorelease. |
| (WebKit::WebViewImpl::shouldDelayWindowOrderingForEvent): Ditto. |
| (WebKit::WebViewImpl::immediateActionAnimationControllerForHitTestResult): |
| Updated return type to NSObject *. |
| (WebKit::WebViewImpl::performKeyEquivalent): Use CFRetain/CFAutorelease. |
| |
| * UIProcess/PageClient.h: Use NSObject * as the result type, as above. |
| |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm: |
| (WebKit::RemoteLayerTreeHost::updateLayerTree): Use __bridge casts to be compatible |
| with the changes to the RelatedLayerMap types. |
| (WebKit::recursivelyMapIOSurfaceBackingStore): Use __bridge cast. |
| |
| * Source/WebKit/UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::immediateActionAnimationControllerForHitTestResult): |
| Use NSObject * as the result type, as above. |
| * Source/WebKit/UIProcess/WebPageProxy.h: Ditto. |
| |
| * UIProcess/mac/PageClientImplMac.h: Use NSObject * as the result type, as above. |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::immediateActionAnimationControllerForHitTestResult): |
| Ditto. |
| (WebKit::PageClientImpl::refView): Use __bridge cast. |
| (WebKit::PageClientImpl::derefView): Ditto. |
| |
| * UIProcess/mac/ServicesController.mm: |
| (WebKit::ServicesController::refreshExistingServices): Removed unnecessary use |
| of NeverDestroyed for Objective-C object pointers. Simpler and more efficient |
| both with and without ARC. |
| |
| * UIProcess/mac/WKImmediateActionController.mm: |
| (-[WKImmediateActionController _updateImmediateActionItem]): Removed unneeded |
| cast now that immediateActionAnimationControllerForHitTestResult has a more |
| accurate return type. |
| |
| * UIProcess/mac/WKPrintingView.mm: |
| (-[WKPrintingView dealloc]): Use a more direct approach to making sure we do the |
| non-thread-safe actions on the main thread with a call to callOnMainThread. |
| The old solution, WebCoreObjCScheduleDeallocateOnMainThread, may not be possible |
| in an ARC-compatible way, but this one should work fine. |
| (linkDestinationName): Changed to return an NSString * to make sure we get the |
| object lifetimes correct under ARC. |
| (-[WKPrintingView _drawPDFDocument:page:atPoint:]): Added __bridge casts. |
| |
| * WebProcess/InjectedBundle/API/mac/WKDOMInternals.h: Use __unsafe_unretained |
| for the value types in DOM caches. |
| * WebProcess/InjectedBundle/API/mac/WKDOMInternals.mm: |
| (WebKit::toWKDOMNode): Updated for the above. |
| (WebKit::toWKDOMRange): Ditto. |
| |
| * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm: |
| (WebKit::NetscapePlugin::platformPreInitialize): Rewrote the class_replaceMethod |
| call to sidestep the rules about not using @selector(release) under ARC. |
| (WebKit::NetscapePlugin::updatePluginLayer): Use __bridge casts. |
| |
| * WebProcess/Plugins/PDF/PDFPlugin.mm: Added an include of |
| WebAccessibilityObjectWrapperMac.h, without which this code doesn't compile |
| under ARC. |
| |
| * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm: |
| (WebKit::changeWordCase): Use a function rather than a selector, since ARC is unable |
| to correctly compile a method call when it doesn't know argument and result types. |
| (WebKit::WebEditorClient::uppercaseWord): Updated to use a function rather than a selector. |
| (WebKit::WebEditorClient::lowercaseWord): Ditto. |
| (WebKit::WebEditorClient::capitalizeWord): Ditto. |
| |
| * WebProcess/cocoa/WebProcessCocoa.mm: Added an include of |
| WebAccessibilityObjectWrapperIOS/Mac.h, without which this code doesn't compile |
| under ARC. |
| |
| 2018-08-27 Alex Christensen <achristensen@webkit.org> |
| |
| Fix authentication for clients of WKPageLoaderClient after r234941 |
| https://bugs.webkit.org/show_bug.cgi?id=188939 |
| |
| Reviewed by Youenn Fablet. |
| |
| I simplified the authentication code path elegantly for clients of WKPageNavigationClient/WKNavigationDelegate, |
| but clients of WKPageLoaderClient that do not implement didReceiveAuthenticationChallengeInFrame would hang. |
| This fixes that. I've also made the performDefaultHandling (when delegates are not implemented) and rejectProtectionSpaceAndContinue |
| (when canAuthenticationAgainstProtectionSpace returns false) behave correctly. |
| |
| * UIProcess/API/APILoaderClient.h: |
| (API::LoaderClient::didReachLayoutMilestone): |
| (API::LoaderClient::canAuthenticateAgainstProtectionSpaceInFrame): Deleted. |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetPageLoaderClient): |
| (WKPageSetPageNavigationClient): |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationClient::didReceiveAuthenticationChallenge): |
| |
| 2018-08-26 Sam Weinig <sam@webkit.org> |
| |
| Using _WKRemoteObjectInterface with a protocol that inherits from a non-NSObject protocol crashes |
| https://bugs.webkit.org/show_bug.cgi?id=188958 |
| |
| Reviewed by Anders Carlsson. |
| |
| * Shared/API/Cocoa/_WKRemoteObjectInterface.mm: |
| (initializeMethods): |
| Fix infinite recursion by using the passed in protocol rather |
| than always using the one from the initial interface. |
| |
| 2018-08-26 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Attachment Support] Dropping and pasting images should insert inline image elements with _WKAttachments |
| https://bugs.webkit.org/show_bug.cgi?id=188933 |
| <rdar://problem/43699724> |
| |
| Reviewed by Darin Adler. |
| |
| Support the ability to drop and paste images as image elements, with attachment elements, only if attachment |
| elements are enabled. See changes below for more detail. |
| |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<PromisedAttachmentInfo>::encode): |
| (IPC::ArgumentCoder<PromisedAttachmentInfo>::decode): |
| |
| Rename "filename" to "fileName", for consistency with WKContentView and WebViewImpl. |
| |
| * UIProcess/API/APIAttachment.cpp: |
| (API::Attachment::mimeType const): |
| (API::Attachment::fileName const): |
| * UIProcess/API/APIAttachment.h: |
| |
| Push getters for MIME type, UTI, and the file name down from _WKAttachment to API::Attachment. This allows |
| WKContentView and WebViewImpl to ask an API::Attachment questions about its UTI and file name without |
| additionally creating a wrapper object. |
| |
| * UIProcess/API/Cocoa/APIAttachmentCocoa.mm: Added. |
| (API::mimeTypeInferredFromFileExtension): |
| (API::isDeclaredOrDynamicTypeIdentifier): |
| (API::Attachment::mimeType const): |
| (API::Attachment::utiType const): |
| (API::Attachment::fileName const): |
| * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: |
| |
| Add a private delegate hook to notify the UI delegate when a drop has been performed. This is used by tests to |
| know when a drop with file promises has been processed by the page. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _web_didPerformDragOperation:]): |
| * UIProcess/API/Cocoa/_WKAttachment.mm: |
| (-[_WKAttachmentInfo initWithFileWrapper:filePath:mimeType:utiType:]): |
| (-[_WKAttachmentInfo fileWrapper]): |
| (-[_WKAttachmentInfo contentType]): |
| (-[_WKAttachment info]): |
| (-[_WKAttachmentInfo initWithFileWrapper:filePath:contentType:]): Deleted. |
| (isDeclaredOrDynamicTypeIdentifier): Deleted. |
| (-[_WKAttachmentInfo _typeIdentifierFromPathExtension]): Deleted. |
| (-[_WKAttachmentInfo mimeType]): Deleted. |
| (-[_WKAttachmentInfo utiType]): Deleted. |
| |
| Moved to APIAttachmentCocoa.mm. |
| |
| * UIProcess/API/mac/WKView.mm: |
| (-[WKView _web_didPerformDragOperation:]): |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (-[WKPromisedAttachmentContext initWithIdentifier:blobURL:fileName:]): |
| |
| Adjust this constructor to take each piece of data separately. This is because, in the case where our |
| PromisedAttachmentInfo contains an attachment identifier, we determine the UTI and file name from the associated |
| file wrapper. |
| |
| (-[WKPromisedAttachmentContext fileName]): |
| (WebKit::WebViewImpl::fileNameForFilePromiseProvider): |
| (WebKit::WebViewImpl::didPerformDragOperation): |
| (WebKit::WebViewImpl::startDrag): |
| |
| Determine UTI and file name from the attachment element corresponding to the attachment identifier when |
| dragging. This is because the attachment element in the web process shouldn't need to have type and title |
| attributes set when starting a drag if it already has an identifier that maps to attachment data in the UI |
| process. An example of this is in inline images backed by attachments, for which we don't need to bother keeping |
| specifying display attributes, since they are never visible. |
| |
| (-[WKPromisedAttachmentContext initWithAttachmentInfo:]): Deleted. |
| (-[WKPromisedAttachmentContext filename]): Deleted. |
| * UIProcess/PageClient.h: |
| (WebKit::PageClient::didPerformDragOperation): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didPerformDragOperation): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| |
| Rename DidPerformDataInteractionControllerOperation to DidPerformDragOperation, and make it cross-platform (this |
| was previously only sent on iOS). Add plumbing through PageClient and friends on macOS to notify the UI |
| delegate when a drop is handled by the web process. |
| |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::didPerformDragOperation): |
| (WebKit::PageClientImpl::didPerformDataInteractionControllerOperation): Deleted. |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _didPerformDragOperation:]): |
| (-[WKContentView _prepareToDragPromisedAttachment:]): |
| |
| Just like in WebViewImpl::startDrag, infer content type and file name from the API attachment object. |
| |
| (-[WKContentView _didPerformDataInteractionControllerOperation:]): Deleted. |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::didPerformDataInteractionControllerOperation): Deleted. |
| * UIProcess/mac/PageClientImplMac.h: |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::didPerformDragOperation): |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::performDragControllerAction): |
| |
| 2018-08-23 Jeff Miller <jeffm@apple.com> |
| |
| Remove -[WKNavigationDelegate _webView:decidePolicyForPluginLoadWithCurrentPolicy:pluginInfo:unavailabilityDescription:] |
| https://bugs.webkit.org/show_bug.cgi?id=188889 |
| |
| Reviewed by Alex Christensen. |
| |
| * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: |
| Remove obsolete method. |
| |
| * UIProcess/Cocoa/NavigationState.h: |
| Remove obsolete flag. |
| |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::setNavigationDelegate): |
| Remove obsolete flag. |
| |
| (WebKit::NavigationState::NavigationClient::decidePolicyForPluginLoad): |
| Remove support for obsolete delegate method. |
| |
| 2018-08-24 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Pass in IsComposed flag to Event constructors |
| https://bugs.webkit.org/show_bug.cgi?id=188720 |
| <rdar://problem/43580387> |
| |
| Reviewed by Simon Fraser. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::navigateToPDFLinkWithSimulatedClick): A trusted click event is composed regardless of |
| whether it's simulated or not. |
| |
| 2018-08-24 Alex Christensen <achristensen@webkit.org> |
| |
| Add WKWebView._mainFrame SPI |
| https://bugs.webkit.org/show_bug.cgi?id=188925 |
| |
| Reviewed by Brian Burg. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _mainFrame]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| |
| 2018-08-24 Basuke Suzuki <Basuke.Suzuki@sony.com> |
| |
| [Curl] Match the interface used in NetworkDataTask and ResourceHandle. |
| https://bugs.webkit.org/show_bug.cgi?id=188922 |
| |
| Reviewed by Alex Christensen. |
| |
| The interfaces for NetworkDataTask and ResourceHandle are diverged. |
| It should be same for the same purpose because they do same thing. |
| |
| No change in behavior. |
| |
| * NetworkProcess/curl/NetworkDataTaskCurl.cpp: |
| (WebKit::NetworkDataTaskCurl::NetworkDataTaskCurl): |
| (WebKit::NetworkDataTaskCurl::createCurlRequest): |
| (WebKit::NetworkDataTaskCurl::willPerformHTTPRedirection): |
| (WebKit::NetworkDataTaskCurl::restartWithCredential): |
| * NetworkProcess/curl/NetworkDataTaskCurl.h: |
| |
| 2018-08-24 Alex Christensen <achristensen@webkit.org> |
| |
| Follow up to r235323 |
| https://bugs.webkit.org/show_bug.cgi?id=188923 |
| <rdar://problem/34657861> |
| |
| * UIProcess/API/C/mac/WKInspectorPrivateMac.h: |
| * UIProcess/mac/WebInspectorProxyMac.mm: |
| (-[WKWebInspectorProxyObjCAdapter inspector]): |
| A _WKInspector * accessor in the WKWebInspectorProxyObjCAdapter is nice, too. |
| |
| 2018-08-24 Alex Christensen <achristensen@webkit.org> |
| |
| Introduce _WKInspector |
| https://bugs.webkit.org/show_bug.cgi?id=188923 |
| <rdar://problem/34657861> |
| |
| Reviewed by Brian Burg. |
| |
| * Shared/Cocoa/APIObject.mm: |
| (API::Object::newObject): |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _inspector]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/API/Cocoa/_WKInspector.h: Added. |
| * UIProcess/API/Cocoa/_WKInspector.mm: Added. |
| (-[_WKInspector webView]): |
| (-[_WKInspector isConnected]): |
| (-[_WKInspector isVisible]): |
| (-[_WKInspector isFront]): |
| (-[_WKInspector isProfilingPage]): |
| (-[_WKInspector isElementSelectionActive]): |
| (-[_WKInspector connect]): |
| (-[_WKInspector show]): |
| (-[_WKInspector hide]): |
| (-[_WKInspector close]): |
| (-[_WKInspector showConsole]): |
| (-[_WKInspector showResources]): |
| (-[_WKInspector showMainResourceForFrame:]): |
| (-[_WKInspector attach]): |
| (-[_WKInspector detach]): |
| (-[_WKInspector showTimelines]): |
| (-[_WKInspector togglePageProfiling]): |
| (-[_WKInspector toggleElementSelection]): |
| (-[_WKInspector printErrorToConsole:]): |
| (-[_WKInspector _apiObject]): |
| * UIProcess/API/Cocoa/_WKInspectorInternal.h: Added. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-08-24 Sihui Liu <sihui_liu@apple.com> |
| |
| Don't launch network process in WebCookieManagerProxy::setHTTPCookieAcceptPolicy |
| https://bugs.webkit.org/show_bug.cgi?id=188906 |
| <rdar://problem/43539661> |
| |
| Reviewed by Geoffrey Garen. |
| |
| In WebCookieManagerProxy::setHTTPCookieAcceptPolicy, we persist the cookieAcceptPolicy of |
| sharedCookieStorage. When we launch the network process later, we pass the |
| identifier of sharedCookieStorage to network process, so network process has the correct |
| cookieAcceptPolicy. Therefore, we don't have to launch the network process and send the |
| setting message if the network process is not launched. |
| |
| * UIProcess/WebCookieManagerProxy.cpp: |
| (WebKit::WebCookieManagerProxy::setHTTPCookieAcceptPolicy): |
| |
| 2018-08-23 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK][WPE] Add API to inject/register user content in isolated worlds |
| https://bugs.webkit.org/show_bug.cgi?id=188883 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Add new API to create user scripts/stylesheets for a given script world and to register/unregister user script |
| messages in a given script world. |
| |
| * UIProcess/API/glib/WebKitUserContent.cpp: |
| (webkitUserContentWorld): |
| (_WebKitUserStyleSheet::_WebKitUserStyleSheet): |
| (webkit_user_style_sheet_new): |
| (webkit_user_style_sheet_new_for_world): |
| (_WebKitUserScript::_WebKitUserScript): |
| (webkit_user_script_new): |
| (webkit_user_script_new_for_world): |
| * UIProcess/API/glib/WebKitUserContentManager.cpp: |
| (webkit_user_content_manager_register_script_message_handler_in_world): |
| (webkit_user_content_manager_unregister_script_message_handler_in_world): |
| * UIProcess/API/glib/WebKitUserContentPrivate.h: |
| * UIProcess/API/gtk/WebKitUserContent.h: |
| * UIProcess/API/gtk/WebKitUserContentManager.h: |
| * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: |
| * UIProcess/API/wpe/WebKitUserContent.h: |
| * UIProcess/API/wpe/WebKitUserContentManager.h: |
| * WebProcess/UserContent/WebUserContentController.cpp: |
| (WebKit::WebUserContentController::addUserContentWorlds): |
| |
| 2018-08-23 Tim Horton <timothy_horton@apple.com> |
| |
| Use unified build for UIProcess |
| https://bugs.webkit.org/show_bug.cgi?id=185014 |
| |
| Reviewed by Alex Christensen. |
| |
| * Sources.txt: |
| * SourcesCocoa.txt: |
| * UIProcess/API/APIWebsiteDataStore.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: |
| (-[WKWebViewConfiguration urlSchemeHandlerForURLScheme:]): |
| * UIProcess/API/glib/IconDatabase.cpp: |
| * UIProcess/API/gtk/PageClientImpl.cpp: |
| * UIProcess/API/gtk/WebKitColorChooser.cpp: |
| * UIProcess/API/gtk/WebKitPopupMenu.cpp: |
| * UIProcess/API/gtk/WebKitRemoteInspectorProtocolHandler.cpp: |
| * UIProcess/ApplicationStateTracker.mm: |
| * UIProcess/Authentication/mac/WebCredentialMac.mm: |
| * UIProcess/Automation/cocoa/WebAutomationSessionCocoa.mm: |
| * UIProcess/Automation/ios/WebAutomationSessionIOS.mm: |
| * UIProcess/Automation/mac/WebAutomationSessionMac.mm: |
| * UIProcess/Cocoa/NavigationState.mm: |
| * UIProcess/Cocoa/PlaybackSessionManagerProxy.mm: |
| * UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp: |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.mm: |
| * UIProcess/Cocoa/ViewGestureController.cpp: |
| * UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm: |
| (-[WKWebViewContentProviderRegistry initWithConfiguration:]): |
| (-[WKWebViewContentProviderRegistry addPage:]): |
| (-[WKWebViewContentProviderRegistry removePage:]): |
| * UIProcess/Cocoa/WebPageProxyCocoa.mm: |
| * UIProcess/Cocoa/WebPasteboardProxyCocoa.mm: |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| * UIProcess/Cocoa/WebURLSchemeHandlerCocoa.mm: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (-[WKTextTouchBarItemController itemForIdentifier:]): |
| (WebKit::WebViewImpl::performDragOperation): |
| * UIProcess/Downloads/DownloadProxy.cpp: |
| * UIProcess/DrawingAreaProxy.cpp: |
| * UIProcess/Gamepad/UIGamepad.cpp: |
| * UIProcess/Gamepad/UIGamepadProvider.cpp: |
| * UIProcess/Gamepad/cocoa/UIGamepadProviderCocoa.mm: |
| * UIProcess/HighPerformanceGraphicsUsageSampler.cpp: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| * UIProcess/Notifications/WebNotificationManagerProxy.cpp: |
| * UIProcess/PerActivityStateCPUUsageSampler.cpp: |
| * UIProcess/Plugins/PluginInfoStore.cpp: |
| * UIProcess/Plugins/PluginProcessProxy.cpp: |
| * UIProcess/Plugins/mac/PluginInfoStoreMac.mm: |
| * UIProcess/Plugins/mac/PluginProcessProxyMac.mm: |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm: |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm: |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeScrollingPerformanceData.mm: |
| * UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp: |
| * UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp: |
| * UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm: |
| * UIProcess/RemoteLayerTree/ios/ScrollingTreeOverflowScrollingNodeIOS.mm: |
| * UIProcess/RemoteWebInspectorProxy.cpp: |
| * UIProcess/ResourceLoadStatisticsMemoryStore.cpp: |
| * UIProcess/ServiceWorkerProcessProxy.cpp: |
| * UIProcess/Storage/StorageProcessProxy.cpp: |
| * UIProcess/SuspendedPageProxy.cpp: |
| * UIProcess/TextCheckerCompletion.cpp: |
| * UIProcess/UIMessagePortChannelProvider.cpp: |
| * UIProcess/UserMediaPermissionCheckProxy.cpp: |
| * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: |
| * UIProcess/UserMediaPermissionRequestProxy.cpp: |
| * UIProcess/VisitedLinkStore.cpp: |
| * UIProcess/WKInspectorHighlightView.mm: |
| (findIntersectionOnLineBetweenPoints): |
| (quadIntersection): |
| (layerPathWithHole): |
| (layerPath): |
| (-[WKInspectorHighlightView _layoutForNodeHighlight:offset:]): |
| (-[WKInspectorHighlightView _layoutForNodeListHighlight:]): |
| (-[WKInspectorHighlightView _layoutForRectsHighlight:]): |
| (-[WKInspectorHighlightView update:]): |
| * UIProcess/WebBackForwardList.cpp: |
| * UIProcess/WebContextMenuListenerProxy.cpp: |
| * UIProcess/WebCookieManagerProxy.cpp: |
| * UIProcess/WebEditCommandProxy.cpp: |
| * UIProcess/WebFrameProxy.cpp: |
| * UIProcess/WebFullScreenManagerProxy.cpp: |
| * UIProcess/WebInspectorProxy.cpp: |
| * UIProcess/WebNavigationState.cpp: |
| * UIProcess/WebOpenPanelResultListenerProxy.cpp: |
| * UIProcess/WebPageInjectedBundleClient.cpp: |
| * UIProcess/WebPageProxy.cpp: |
| * UIProcess/WebProcessPool.cpp: |
| * UIProcess/WebProcessProxy.cpp: |
| * UIProcess/WebStorage/LocalStorageDatabaseTracker.cpp: |
| * UIProcess/WebURLSchemeHandler.cpp: |
| * UIProcess/WebURLSchemeTask.cpp: |
| * UIProcess/gtk/AcceleratedBackingStoreWayland.cpp: |
| * UIProcess/gtk/AcceleratedBackingStoreX11.cpp: |
| * UIProcess/ios/DragDropInteractionState.mm: |
| * UIProcess/ios/InputViewUpdateDeferrer.mm: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (-[WKEditCommandObjC initWithWebEditCommandProxy:]): |
| (-[WKEditCommandObjC command]): |
| * UIProcess/ios/SmartMagnificationController.mm: |
| * UIProcess/ios/TextCheckerIOS.mm: |
| * UIProcess/ios/ViewGestureControllerIOS.mm: |
| (WebKit::ViewGestureController::beginSwipeGesture): |
| (WebKit::ViewGestureController::removeSwipeSnapshot): |
| * UIProcess/ios/WKActionSheetAssistant.mm: |
| (presentationStyleForView): |
| * UIProcess/ios/WKApplicationStateTrackingView.mm: |
| (-[WKApplicationStateTrackingView initWithFrame:webView:]): |
| (-[WKApplicationStateTrackingView _applicationDidEnterBackground]): |
| (-[WKApplicationStateTrackingView _applicationDidFinishSnapshottingAfterEnteringBackground]): |
| (-[WKApplicationStateTrackingView _applicationWillEnterForeground]): |
| * UIProcess/ios/WKGeolocationProviderIOS.mm: |
| (-[WKGeolocationProviderIOS _startUpdating]): |
| (-[WKGeolocationProviderIOS _stopUpdating]): |
| (-[WKGeolocationProviderIOS _setEnableHighAccuracy:]): |
| (-[WKGeolocationProviderIOS init]): |
| (-[WKGeolocationProviderIOS initWithProcessPool:]): |
| (-[WKGeolocationProviderIOS decidePolicyForGeolocationRequestFromOrigin:frame:completionHandler:view:]): |
| (-[WKGeolocationProviderIOS geolocationAuthorizationGranted]): |
| (-[WKLegacyCoreLocationProvider positionChanged:]): |
| * UIProcess/ios/WKKeyboardScrollingAnimator.mm: |
| (-[WKKeyboardScrollingAnimator _scrollOffsetForEvent:]): |
| (-[WKKeyboardScrollingAnimator beginWithEvent:]): |
| (-[WKKeyboardScrollingAnimator handleKeyEvent:]): |
| (-[WKKeyboardScrollingAnimator startAnimatedScroll]): |
| (-[WKKeyboardScrollingAnimator stopAnimatedScroll]): |
| * UIProcess/ios/WKLegacyPDFView.mm: |
| * UIProcess/ios/WKPDFView.mm: |
| (-[WKPDFView web_setContentProviderData:suggestedFilename:]): |
| * UIProcess/ios/WKScrollView.mm: |
| (-[WKScrollView _systemContentInset]): |
| * UIProcess/ios/WKSystemPreviewView.mm: |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| * UIProcess/mac/CorrectionPanel.mm: |
| (correctionIndicatorType): |
| * UIProcess/mac/PageClientImplMac.mm: |
| * UIProcess/mac/RemoteWebInspectorProxyMac.mm: |
| (-[WKRemoteWebInspectorProxyObjCAdapter initWithRemoteWebInspectorProxy:]): |
| * UIProcess/mac/TextCheckerMac.mm: |
| * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm: |
| * UIProcess/mac/ViewGestureControllerMac.mm: |
| * UIProcess/mac/ViewSnapshotStore.mm: |
| * UIProcess/mac/WKFullKeyboardAccessWatcher.mm: |
| (-[WKFullKeyboardAccessWatcher notifyAllProcessPools]): |
| * UIProcess/mac/WKFullScreenWindowController.mm: |
| (WebKit::WKFullScreenWindowControllerVideoFullscreenModelClient::setInterface): |
| (WebKit::WKFullScreenWindowControllerVideoFullscreenModelClient::interface const): |
| (-[WKFullScreenWindowController initWithWindow:webView:page:]): |
| (-[WKFullScreenWindowController enterFullScreen:]): |
| (-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]): |
| (-[WKFullScreenWindowController finishedExitFullScreenAnimation:]): |
| (-[WKFullScreenWindowController windowDidEnterFullScreen:]): |
| (-[WKFullScreenWindowController windowDidExitFullScreen:]): |
| (-[WKFullScreenWindowController _manager]): |
| (-[WKFullScreenWindowController _replaceView:with:]): |
| (zoomAnimation): |
| (createMask): |
| (maskAnimation): |
| * UIProcess/mac/WKImmediateActionController.mm: |
| (-[WKImmediateActionController initWithPage:view:viewImpl:recognizer:]): |
| (-[WKImmediateActionController willDestroyView:]): |
| (-[WKImmediateActionController _clearImmediateActionState]): |
| (-[WKImmediateActionController didPerformImmediateActionHitTest:contentPreventsDefault:userData:]): |
| (-[WKImmediateActionController immediateActionRecognizerWillPrepare:]): |
| (-[WKImmediateActionController immediateActionRecognizerWillBeginAnimation:]): |
| (-[WKImmediateActionController _webHitTestResult]): |
| (-[WKImmediateActionController _defaultAnimationController]): |
| (-[WKImmediateActionController menuItem:maxSizeForPoint:]): |
| (-[WKImmediateActionController _animationControllerForDataDetectedText]): |
| (-[WKImmediateActionController _animationControllerForDataDetectedLink]): |
| (-[WKImmediateActionController _animationControllerForText]): |
| * UIProcess/mac/WKInspectorViewController.mm: |
| (-[WKInspectorViewController initWithInspectedPage:]): |
| (-[WKInspectorViewController webView]): |
| (-[WKInspectorViewController configuration]): |
| (-[WKInspectorViewController webView:runOpenPanelWithParameters:initiatedByFrame:completionHandler:]): |
| (-[WKInspectorViewController webView:decidePolicyForNavigationAction:decisionHandler:]): |
| (-[WKInspectorViewController inspectorWKWebViewReload:]): |
| * UIProcess/mac/WKPrintingView.mm: |
| (-[WKPrintingView _expectedPreviewCallbackForRect:]): |
| (pageDidDrawToImage): |
| (-[WKPrintingView _preparePDFDataForPrintingOnSecondaryThread]): |
| (pageDidComputePageRects): |
| (-[WKPrintingView _askPageToComputePageRects]): |
| (-[WKPrintingView _pageForRect:]): |
| (-[WKPrintingView _drawPDFDocument:page:atPoint:]): |
| (-[WKPrintingView _drawPreview:]): |
| (-[WKPrintingView drawRect:]): |
| (-[WKPrintingView rectForPage:]): |
| * UIProcess/mac/WKTextFinderClient.mm: |
| (-[WKTextFinderClient initWithPage:view:]): |
| (-[WKTextFinderClient findMatchesForString:relativeToMatch:findOptions:maxResults:resultCollector:]): |
| (-[WKTextFinderClient getSelectedText:]): |
| (arrayFromRects): |
| (-[WKTextFinderClient didFindStringMatchesWithRects:didWrapAround:]): |
| (-[WKTextFinderClient didGetImageForMatchResult:]): |
| * UIProcess/mac/WKTextInputWindowController.mm: |
| * UIProcess/mac/WKViewLayoutStrategy.mm: |
| (+[WKViewLayoutStrategy layoutStrategyWithPage:view:viewImpl:mode:]): |
| (-[WKViewLayoutStrategy initWithPage:view:viewImpl:mode:]): |
| (-[WKViewViewSizeLayoutStrategy initWithPage:view:viewImpl:mode:]): |
| (-[WKViewFixedSizeLayoutStrategy initWithPage:view:viewImpl:mode:]): |
| (-[WKViewDynamicSizeComputedFromViewScaleLayoutStrategy initWithPage:view:viewImpl:mode:]): |
| (-[WKViewDynamicSizeComputedFromMinimumDocumentSizeLayoutStrategy initWithPage:view:viewImpl:mode:]): |
| * UIProcess/mac/WebColorPickerMac.mm: |
| * UIProcess/mac/WebContextMenuProxyMac.mm: |
| (-[WKMenuTarget forwardContextMenuAction:]): |
| (WebKit::menuItemIdentifier): |
| (WebKit::WebContextMenuProxyMac::createContextMenuItem): |
| * UIProcess/mac/WebInspectorProxyMac.mm: |
| (-[WKWebInspectorProxyObjCAdapter initWithWebInspectorProxy:]): |
| * UIProcess/mac/WebPageProxyMac.mm: |
| * UIProcess/mac/WebPopupMenuProxyMac.mm: |
| * UIProcess/win/PageClientImpl.cpp: |
| * UIProcess/win/TextCheckerWin.cpp: |
| * UIProcess/win/WebContextMenuProxyWin.cpp: |
| * UIProcess/win/WebPopupMenuProxyWin.cpp: |
| * UIProcess/win/WebView.cpp: |
| * UIProcess/wpe/TextCheckerWPE.cpp: |
| * UIProcess/wpe/WebPasteboardProxyWPE.cpp: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-08-23 Sihui Liu <sihui_liu@apple.com> |
| |
| Move legacy directory configuration from WebProcessPool to API::WebsiteDataStore |
| https://bugs.webkit.org/show_bug.cgi?id=188765 |
| <rdar://problem/43633183> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Diretories are parameters of websiteDataStore instead of webProcessPool, so we should move |
| legacy default paths to API::WebsiteDataStore, which already stores default paths for |
| non-legacy cases. |
| |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| (API::ProcessPoolConfiguration::createWithLegacyOptions): |
| (API::ProcessPoolConfiguration::createWithWebsiteDataStoreConfiguration): |
| * UIProcess/API/APIWebsiteDataStore.cpp: |
| (API::WebsiteDataStore::legacyDefaultDataStoreConfiguration): |
| * UIProcess/API/APIWebsiteDataStore.h: |
| * UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm: |
| (API::WebsiteDataStore::legacyDefaultApplicationCacheDirectory): |
| (API::WebsiteDataStore::legacyDefaultNetworkCacheDirectory): |
| (API::WebsiteDataStore::legacyDefaultWebSQLDatabaseDirectory): |
| (API::WebsiteDataStore::legacyDefaultIndexedDBDatabaseDirectory): |
| (API::WebsiteDataStore::legacyDefaultLocalStorageDirectory): |
| (API::WebsiteDataStore::legacyDefaultMediaCacheDirectory): |
| (API::WebsiteDataStore::legacyDefaultMediaKeysStorageDirectory): |
| (API::WebsiteDataStore::legacyDefaultJavaScriptConfigurationDirectory): |
| * UIProcess/API/glib/APIWebsiteDataStoreGLib.cpp: |
| (API::WebsiteDataStore::legacyDefaultApplicationCacheDirectory): |
| (API::WebsiteDataStore::legacyDefaultNetworkCacheDirectory): |
| (API::WebsiteDataStore::legacyDefaultWebSQLDatabaseDirectory): |
| (API::WebsiteDataStore::legacyDefaultIndexedDBDatabaseDirectory): |
| (API::WebsiteDataStore::legacyDefaultLocalStorageDirectory): |
| (API::WebsiteDataStore::legacyDefaultMediaCacheDirectory): |
| (API::WebsiteDataStore::legacyDefaultMediaKeysStorageDirectory): |
| (API::WebsiteDataStore::legacyDefaultJavaScriptConfigurationDirectory): |
| * UIProcess/API/win/APIWebsiteDataStoreWin.cpp: |
| (API::WebsiteDataStore::legacyDefaultApplicationCacheDirectory): |
| (API::WebsiteDataStore::legacyDefaultNetworkCacheDirectory): |
| (API::WebsiteDataStore::legacyDefaultWebSQLDatabaseDirectory): |
| (API::WebsiteDataStore::legacyDefaultIndexedDBDatabaseDirectory): |
| (API::WebsiteDataStore::legacyDefaultLocalStorageDirectory): |
| (API::WebsiteDataStore::legacyDefaultMediaCacheDirectory): |
| (API::WebsiteDataStore::legacyDefaultMediaKeysStorageDirectory): |
| (API::WebsiteDataStore::legacyDefaultJavaScriptConfigurationDirectory): |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultMediaCacheDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultJavaScriptConfigurationDirectory): Deleted. |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/gtk/WebProcessPoolGtk.cpp: |
| (WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultMediaCacheDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultJavaScriptConfigurationDirectory): Deleted. |
| * UIProcess/win/WebProcessPoolWin.cpp: |
| (WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultMediaCacheDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultJavaScriptConfigurationDirectory): Deleted. |
| * UIProcess/wpe/WebProcessPoolWPE.cpp: |
| (WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultMediaCacheDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultJavaScriptConfigurationDirectory): Deleted. |
| |
| 2018-08-23 Alex Christensen <achristensen@webkit.org> |
| |
| Add new _webViewRequestPointerLock SPI with a completionHandler |
| https://bugs.webkit.org/show_bug.cgi?id=188907 |
| <rdar://problem/35871109> |
| |
| Reviewed by Andy Estes. |
| |
| * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: |
| * UIProcess/Cocoa/UIDelegate.h: |
| * UIProcess/Cocoa/UIDelegate.mm: |
| (WebKit::UIDelegate::setDelegate): |
| (WebKit::UIDelegate::UIClient::requestPointerLock): |
| |
| 2018-08-23 Andy Estes <aestes@apple.com> |
| |
| [Apple Pay] Introduce Apple Pay JS v4 on iOS 12 and macOS Mojave |
| https://bugs.webkit.org/show_bug.cgi?id=188829 |
| |
| Reviewed by Tim Horton. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * WebProcess/ApplePay/WebPaymentCoordinator.cpp: |
| (WebKit::WebPaymentCoordinator::supportsVersion): |
| |
| 2018-08-23 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r234942. |
| |
| Caused page loading issues in iTunes |
| |
| Reverted changeset: |
| |
| "Transition more WKWebViewConfiguration ivars to |
| API::PageConfiguration values" |
| https://bugs.webkit.org/show_bug.cgi?id=188663 |
| https://trac.webkit.org/changeset/234942 |
| |
| 2018-08-23 Aditya Keerthi <akeerthi@apple.com> |
| |
| [iOS] Support the inputmode attribute on contenteditable elements |
| https://bugs.webkit.org/show_bug.cgi?id=188878 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Ensured that the assistedNodeInformation for a contenteditable element reflects |
| the value of the element's inputmode attribute. |
| |
| Moved logic to obtain the InputMode from the attribute value into WebCore. |
| |
| * Shared/AssistedNodeInformation.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::getAssistedNodeInformation): |
| |
| 2018-08-22 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Assert in NetworkBlobRegistry::unregisterBlobURL after network process had terminated |
| https://bugs.webkit.org/show_bug.cgi?id=188880 |
| |
| Reviewed by Saam Barati. |
| |
| Removed the debug assertion. WebContent process might be asking this network process |
| to unregister a blob registered from another network processs which had since crashed. |
| |
| We could keep track of which blob had been registered with which network process |
| in WebContent process and avoid sending IPC to the network process but that's a lot of |
| house-keeping for virtually no benefit other than not hitting this assertion. |
| |
| * NetworkProcess/FileAPI/NetworkBlobRegistry.cpp: |
| (WebKit::NetworkBlobRegistry::unregisterBlobURL): |
| |
| 2018-08-23 Sihui Liu <sihui_liu@apple.com> |
| |
| Remove keys of defaults that are no longer used in webProcessPool |
| https://bugs.webkit.org/show_bug.cgi?id=188855 |
| |
| Reviewed by Alex Christensen. |
| |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::registerUserDefaultsIfNeeded): |
| |
| 2018-08-23 Dan Bernstein <mitz@apple.com> |
| |
| [Cocoa] First scroll gesture in pinned, non-rubber-banding WKWebView may fail to initiate back/forward swipe |
| https://bugs.webkit.org/show_bug.cgi?id=188894 |
| <rdar://problem/43651434> |
| |
| Reviewed by Tim Horton. |
| |
| * WebProcess/WebPage/EventDispatcher.cpp: |
| (WebKit::EventDispatcher::wheelEvent): Set the rubber-band state on the ScrollingTree |
| synchronously rather than dispatching doing that to the scrolling thread. This is safe to |
| do because ScrollingTree synchrnoizes access to the rubber-band state with an internal |
| mutex. |
| |
| 2018-08-23 Youenn Fablet <youenn@apple.com> |
| |
| self.isSecureContext undefined in Service Worker |
| https://bugs.webkit.org/show_bug.cgi?id=188842 |
| |
| Reviewed by Alex Christensen. |
| |
| Enable isSecureContext runtime flag. |
| |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::updatePreferencesStore): |
| |
| 2018-08-23 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r235216. |
| https://bugs.webkit.org/show_bug.cgi?id=188887 |
| |
| Caused 50+ Layout Tests to Crash and 173 api Failures on Debug |
| builds (Requested by Truitt on #webkit). |
| |
| Reverted changeset: |
| |
| "Move legacy directory configuration from WebProcessPool to |
| API::WebsiteDataStore" |
| https://bugs.webkit.org/show_bug.cgi?id=188765 |
| https://trac.webkit.org/changeset/235216 |
| |
| 2018-08-23 Zan Dobersek <zdobersek@igalia.com> |
| |
| [CoordGraphics] Remove the remaining CoordinatedGraphicsLayerState cruft |
| https://bugs.webkit.org/show_bug.cgi?id=188881 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Rid CompositingCoordinator class of code that manages now-deleted state |
| tracking of layer creation, update and removal on the |
| CoordinatedGraphicsState class. The syncLayerState() method is changed |
| accordingly, now only enforcing a frame synchronization when called. |
| |
| Use of Nicosia::PlatformLayer::LayerID is adopted since the |
| CoordinatedLayerID type has been removed. |
| |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: |
| (WebKit::CoordinatedGraphicsScene::purgeGLResources): |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h: |
| * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp: |
| (WebKit::CompositingCoordinator::flushPendingLayerChanges): |
| (WebKit::CompositingCoordinator::initializeRootCompositingLayerIfNeeded): |
| (WebKit::CompositingCoordinator::syncLayerState): |
| (WebKit::CompositingCoordinator::createGraphicsLayer): |
| (WebKit::CompositingCoordinator::detachLayer): |
| (WebKit::CompositingCoordinator::attachLayer): |
| (WebKit::CompositingCoordinator::clearPendingStateChanges): Deleted. |
| * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h: |
| |
| 2018-08-22 Antti Koivisto <antti@apple.com> |
| |
| NetworkCache::Storage::lastStableVersion should be a developer-only feature |
| https://bugs.webkit.org/show_bug.cgi?id=188843 |
| <rdar://problem/43574100> |
| |
| Reviewed by Geoffrey Garen. |
| |
| * NetworkProcess/cache/NetworkCacheStorage.cpp: |
| (WebKit::NetworkCache::Storage::deleteOldVersions): |
| |
| Delete old cache versions unconditionally if we are system WebKit. |
| |
| * Shared/ChildProcess.h: |
| * Shared/mac/ChildProcessMac.mm: |
| (WebKit::ChildProcess::isSystemWebKit): |
| |
| Find out if WebKit is installed under '/System/'. |
| |
| 2018-08-22 Zan Dobersek <zdobersek@igalia.com> |
| |
| [CoordGraphics] Remove CoordinatedImageBacking and related functionality |
| https://bugs.webkit.org/show_bug.cgi?id=188847 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Remove the CoordinatedImageBacking class and its intertwining use in the |
| CoordinatedGraphics system. |
| |
| Drop the CoordinatedImageBacking object management from the |
| CompositingCoordinator class, along with the |
| CoordinatedImageBacking::Client inheritance. The corresponding image |
| backing state management on the CoordinatedGraphicsState class can be |
| removed accordingly. |
| |
| * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp: |
| (WebKit::CompositingCoordinator::flushPendingLayerChanges): |
| (WebKit::CompositingCoordinator::clearPendingStateChanges): |
| (WebKit::CompositingCoordinator::purgeBackingStores): |
| (WebKit::CompositingCoordinator::createImageBackingIfNeeded): Deleted. |
| (WebKit::CompositingCoordinator::createImageBacking): Deleted. |
| (WebKit::CompositingCoordinator::updateImageBacking): Deleted. |
| (WebKit::CompositingCoordinator::clearImageBackingContents): Deleted. |
| (WebKit::CompositingCoordinator::removeImageBacking): Deleted. |
| (WebKit::CompositingCoordinator::flushPendingImageBackingChanges): Deleted. |
| * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h: |
| |
| 2018-08-22 Sihui Liu <sihui_liu@apple.com> |
| |
| Move legacy directory configuration from WebProcessPool to API::WebsiteDataStore |
| https://bugs.webkit.org/show_bug.cgi?id=188765 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Diretories are parameters of websiteDataStore instead of webProcessPool, so we should move |
| legacy default paths to API::WebsiteDataStore, which already stores default paths for |
| non-legacy cases. |
| |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| (API::ProcessPoolConfiguration::createWithLegacyOptions): |
| (API::ProcessPoolConfiguration::createWithWebsiteDataStoreConfiguration): |
| * UIProcess/API/APIWebsiteDataStore.cpp: |
| (API::WebsiteDataStore::legacyDefaultDataStoreConfiguration): |
| * UIProcess/API/APIWebsiteDataStore.h: |
| * UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm: |
| (API::WebsiteDataStore::legacyDefaultApplicationCacheDirectory): |
| (API::WebsiteDataStore::legacyDefaultNetworkCacheDirectory): |
| (API::WebsiteDataStore::legacyDefaultWebSQLDatabaseDirectory): |
| (API::WebsiteDataStore::legacyDefaultIndexedDBDatabaseDirectory): |
| (API::WebsiteDataStore::legacyDefaultLocalStorageDirectory): |
| (API::WebsiteDataStore::legacyDefaultMediaCacheDirectory): |
| (API::WebsiteDataStore::legacyDefaultMediaKeysStorageDirectory): |
| (API::WebsiteDataStore::legacyDefaultJavaScriptConfigurationDirectory): |
| * UIProcess/API/glib/APIWebsiteDataStoreGLib.cpp: |
| (API::WebsiteDataStore::legacyDefaultApplicationCacheDirectory): |
| (API::WebsiteDataStore::legacyDefaultNetworkCacheDirectory): |
| (API::WebsiteDataStore::legacyDefaultWebSQLDatabaseDirectory): |
| (API::WebsiteDataStore::legacyDefaultIndexedDBDatabaseDirectory): |
| (API::WebsiteDataStore::legacyDefaultLocalStorageDirectory): |
| (API::WebsiteDataStore::legacyDefaultMediaCacheDirectory): |
| (API::WebsiteDataStore::legacyDefaultMediaKeysStorageDirectory): |
| (API::WebsiteDataStore::legacyDefaultJavaScriptConfigurationDirectory): |
| * UIProcess/API/win/APIWebsiteDataStoreWin.cpp: |
| (API::WebsiteDataStore::legacyDefaultApplicationCacheDirectory): |
| (API::WebsiteDataStore::legacyDefaultNetworkCacheDirectory): |
| (API::WebsiteDataStore::legacyDefaultWebSQLDatabaseDirectory): |
| (API::WebsiteDataStore::legacyDefaultIndexedDBDatabaseDirectory): |
| (API::WebsiteDataStore::legacyDefaultLocalStorageDirectory): |
| (API::WebsiteDataStore::legacyDefaultMediaCacheDirectory): |
| (API::WebsiteDataStore::legacyDefaultMediaKeysStorageDirectory): |
| (API::WebsiteDataStore::legacyDefaultJavaScriptConfigurationDirectory): |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultMediaCacheDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultJavaScriptConfigurationDirectory): Deleted. |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/gtk/WebProcessPoolGtk.cpp: |
| (WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultMediaCacheDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultJavaScriptConfigurationDirectory): Deleted. |
| * UIProcess/win/WebProcessPoolWin.cpp: |
| (WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultMediaCacheDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultJavaScriptConfigurationDirectory): Deleted. |
| * UIProcess/wpe/WebProcessPoolWPE.cpp: |
| (WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultMediaCacheDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory): Deleted. |
| (WebKit::WebProcessPool::legacyPlatformDefaultJavaScriptConfigurationDirectory): Deleted. |
| |
| 2018-08-22 John Wilander <wilander@apple.com> |
| |
| The Storage Access API prompt should show the eTLD+1s, not the full host names |
| https://bugs.webkit.org/show_bug.cgi?id=188830 |
| <rdar://problem/43380645> |
| |
| Reviewed by Brent Fulgham. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::requestStorageAccess): |
| |
| 2018-08-22 Tim Horton <timothy_horton@apple.com> |
| |
| De-unify WebPage |
| https://bugs.webkit.org/show_bug.cgi?id=188865 |
| |
| Reviewed by Wenson Hsieh. |
| |
| * Sources.txt: |
| * WebKit.xcodeproj/project.pbxproj: |
| WebPage being unified is causing mysterious build issues inside Carbon headers |
| on High Sierra only. Also, WebPage by itself takes longer to build than |
| most full unified source files, so it might not make sense to unify it |
| with others (to maximize parallelism). |
| |
| 2018-08-22 David Fenton <david_fenton@apple.com> |
| |
| Unreviewed, rolling out r235204. |
| |
| reverting previous rollout |
| |
| Reverted changeset: |
| |
| "Unreviewed, rolling out r235176." |
| https://bugs.webkit.org/show_bug.cgi?id=185015 |
| https://trac.webkit.org/changeset/235204 |
| |
| 2018-08-22 David Fenton <david_fenton@apple.com> |
| |
| Unreviewed, rolling out r235176. |
| |
| broke internal builds |
| |
| Reverted changeset: |
| |
| "Use unified build for WebProcess" |
| https://bugs.webkit.org/show_bug.cgi?id=185015 |
| https://trac.webkit.org/changeset/235176 |
| |
| 2018-08-22 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Attachment Support] Support dragging attachment elements out as files on macOS |
| https://bugs.webkit.org/show_bug.cgi?id=181294 |
| <rdar://problem/36298801> |
| |
| Reviewed by Tim Horton. |
| |
| Add support for dragging attachment elements on macOS by writing promised files to drag pasteboard. See changes |
| below for more details. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView filePromiseProvider:fileNameForType:]): |
| (-[WKWebView filePromiseProvider:writePromiseToURL:completionHandler:]): |
| (-[WKWebView draggingSession:sourceOperationMaskForDraggingContext:]): |
| (-[WKWebView draggingSession:endedAtPoint:operation:]): |
| * UIProcess/API/mac/WKView.mm: |
| (-[WKView filePromiseProvider:fileNameForType:]): |
| (-[WKView filePromiseProvider:writePromiseToURL:completionHandler:]): |
| (-[WKView draggingSession:sourceOperationMaskForDraggingContext:]): |
| (-[WKView draggingSession:endedAtPoint:operation:]): |
| |
| Plumb NSFilePromiseProviderDelegate and NSDraggingSource method implementations to WebViewImpl. |
| |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (-[WKPromisedAttachmentContext initWithAttachmentInfo:]): |
| (-[WKPromisedAttachmentContext blobURL]): |
| (-[WKPromisedAttachmentContext filename]): |
| (-[WKPromisedAttachmentContext attachmentIdentifier]): |
| |
| Add an object that contains the information needed to deliver a dragged attachment element's data via |
| NSFilePromiseProvider. This is stored as the userInfo of the NSFilePromiseProvider created upon drag start. |
| |
| (WebKit::WebViewImpl::draggedImage): |
| (WebKit::WebViewImpl::sendDragEndToPage): |
| |
| Add a helper method to handle cleanup after the dragging has finished, and call it from -draggedImage:… and |
| -draggingSessionEnded:…. The latter is only triggered in the where -beginDraggingSessionWithItems:… is used, |
| which currently only happens when dragging attachment elements. |
| |
| (WebKit::WebViewImpl::fileNameForFilePromiseProvider): |
| (WebKit::webKitUnknownError): |
| (WebKit::WebViewImpl::writeToURLForFilePromiseProvider): |
| |
| Deliver either NSFileWrapper data to the destination URL (in the case where an attachment identifier is known |
| and the corresponding API::Attachment is backed by a file wrapper), or save the contents of the blob URL to the |
| destination. |
| |
| (WebKit::WebViewImpl::dragSourceOperationMask): |
| (WebKit::WebViewImpl::draggingSessionEnded): |
| (WebKit::WebViewImpl::startDrag): |
| |
| 2018-08-22 Aditya Keerthi <akeerthi@apple.com> |
| |
| [iOS] Add support for the inputmode attribute |
| https://bugs.webkit.org/show_bug.cgi?id=183621 |
| |
| Reviewed by Tim Horton. |
| |
| The inputmode attribute specifies which input mechanism would be most helpful for |
| users entering content in textfield inputs and textareas. This patch adds support |
| for seven values: text, tel, url, email, numeric, decimal and search. |
| |
| On iOS, we can specify UIKeyboardTypes that best match the supplied inputmode. |
| - text: UIKeyboardTypeDefault |
| - tel: UIKeyboardTypePhonePad |
| - url: UIKeyboardTypeURL |
| - email: UIKeyboardTypeEmailAddress |
| - numeric: UIKeyboardTypeNumbersAndPunctuation |
| - decimal: UIKeyboardTypeDecimalPad |
| - search: UIKeyboardTypeWebSearch |
| |
| In the case that the inputmode attribute is not specified, we fall back to using |
| our existing heuristic to determine what kind of keyboard to show for textfields. |
| |
| * Shared/AssistedNodeInformation.cpp: |
| (WebKit::AssistedNodeInformation::encode const): |
| (WebKit::AssistedNodeInformation::decode): |
| * Shared/AssistedNodeInformation.h: Added inputMode field. |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView textInputTraits]): |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::inputModeForElement): |
| (WebKit::WebPage::getAssistedNodeInformation): |
| |
| 2018-08-22 Jeff Miller <jeffm@apple.com> |
| |
| WKNavigationDelegate needs to allow clients to specify a custom blocked plug-in message |
| https://bugs.webkit.org/show_bug.cgi?id=188764 |
| |
| Reviewed by Alex Christensen. |
| |
| Add a new private WKNavigationDelegate method that takes a completion handler so clients can return |
| a custom unavailability description in addition to the policy. Change WebPageProxy::findPlugin() to |
| send a delayed reply and API::LoaderClient::pluginLoadPolicy()/API::NavigationClient::decidePolicyForPluginLoad() |
| to take a completion handler to support this. |
| |
| * UIProcess/API/APILoaderClient.h: |
| (API::LoaderClient::pluginLoadPolicy): |
| Changed to take a completion handler. The default implementation doesn't return a custom |
| unavailability description. |
| |
| * UIProcess/API/APINavigationClient.h: |
| (API::NavigationClient::decidePolicyForPluginLoad): |
| Ditto. |
| |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetPageLoaderClient): |
| Changed pluginLoadPolicy() to take a completion handler. |
| |
| (WKPageSetPageNavigationClient): |
| Changed decidePolicyForPluginLoad() to take a completion handler. |
| |
| * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: |
| Add alternate version of -decidePolicyForPluginLoadWithCurrentPolicy: that allows clients to return |
| the unavailibility description. |
| |
| * UIProcess/Cocoa/NavigationState.h: |
| Add flag for new delegate method. |
| Changed decidePolicyForPluginLoad() to take a completion handler. |
| |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::setNavigationDelegate): |
| Calculate flag for new delegate method. |
| |
| (WebKit::NavigationState::NavigationClient::decidePolicyForPluginLoad): |
| Changed to take a completion handler. |
| Prefer new delegate method, if available. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::findPlugin): |
| Changed to send a delayed reply. |
| Refactored some code into a lambda so it can be shared when using m_navigationClient->decidePolicyForPluginLoad(). |
| Removed unneeded UNUSED_PARAM() macros. |
| |
| * UIProcess/WebPageProxy.h: |
| Changed findPlugin() to send a delayed reply. |
| |
| * UIProcess/WebPageProxy.messages.in: |
| Ditto. |
| |
| 2018-08-22 Sihui Liu <sihui_liu@apple.com> |
| |
| Try removing defaultSessionParameters from NetworkProcessCreationParameters |
| https://bugs.webkit.org/show_bug.cgi?id=188831 |
| |
| Reviewed by Alex Christensen. |
| |
| * 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-08-22 Tim Horton <timothy_horton@apple.com> |
| |
| Use unified build for WebProcess |
| https://bugs.webkit.org/show_bug.cgi?id=185015 |
| |
| Reviewed by Alex Christensen. |
| |
| * Sources.txt: |
| * SourcesCocoa.txt: |
| * UIProcess/WebPageProxy.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp: |
| * WebProcess/Databases/WebDatabaseProvider.cpp: |
| * WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm: |
| * WebProcess/FileAPI/BlobRegistryProxy.cpp: |
| * WebProcess/FullScreen/WebFullScreenManager.cpp: |
| * WebProcess/Gamepad/WebGamepadProvider.cpp: |
| * WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp: |
| * WebProcess/Geolocation/WebGeolocationManager.cpp: |
| * WebProcess/InjectedBundle/API/c/mac/WKBundlePageBannerMac.mm: |
| * WebProcess/InjectedBundle/API/gtk/DOM/GObjectEventListener.cpp: |
| * WebProcess/InjectedBundle/DOM/InjectedBundleCSSStyleDeclarationHandle.cpp: |
| * WebProcess/InjectedBundle/DOM/InjectedBundleFileHandle.cpp: |
| * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp: |
| * WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp: |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| * WebProcess/InjectedBundle/InjectedBundleBackForwardList.cpp: |
| * WebProcess/InjectedBundle/InjectedBundleBackForwardListItem.cpp: |
| * WebProcess/InjectedBundle/InjectedBundleDOMWindowExtension.cpp: |
| * WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp: |
| * WebProcess/InjectedBundle/InjectedBundleNavigationAction.cpp: |
| * WebProcess/InjectedBundle/InjectedBundlePageContextMenuClient.cpp: |
| * WebProcess/InjectedBundle/InjectedBundlePageEditorClient.cpp: |
| * WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp: |
| * WebProcess/InjectedBundle/InjectedBundlePageFullScreenClient.cpp: |
| * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp: |
| * WebProcess/InjectedBundle/InjectedBundlePagePolicyClient.cpp: |
| * WebProcess/InjectedBundle/InjectedBundlePageResourceLoadClient.cpp: |
| * WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp: |
| * WebProcess/InjectedBundle/InjectedBundleScriptWorld.cpp: |
| * WebProcess/InjectedBundle/mac/InjectedBundleMac.mm: |
| * WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp: |
| * WebProcess/Network/NetworkProcessConnection.cpp: |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| * WebProcess/Network/WebResourceLoader.cpp: |
| * WebProcess/Network/WebSocketProvider.cpp: |
| * WebProcess/Network/WebSocketStream.cpp: |
| * WebProcess/Network/webrtc/LibWebRTCProvider.cpp: |
| * WebProcess/Network/webrtc/LibWebRTCResolver.cpp: |
| * WebProcess/Network/webrtc/LibWebRTCResolver.h: |
| * WebProcess/Network/webrtc/LibWebRTCSocket.cpp: |
| * WebProcess/Network/webrtc/LibWebRTCSocket.h: |
| * WebProcess/Network/webrtc/WebMDNSRegister.cpp: |
| * WebProcess/Network/webrtc/WebRTCMonitor.cpp: |
| * WebProcess/Network/webrtc/WebRTCMonitor.h: |
| * WebProcess/Notifications/NotificationPermissionRequestManager.cpp: |
| * WebProcess/Notifications/WebNotificationManager.cpp: |
| * WebProcess/Plugins/Netscape/JSNPMethod.cpp: |
| * WebProcess/Plugins/Netscape/JSNPObject.cpp: |
| * WebProcess/Plugins/Netscape/NPJSObject.cpp: |
| * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp: |
| * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp: |
| * WebProcess/Plugins/Netscape/NetscapePlugin.cpp: |
| * WebProcess/Plugins/Netscape/NetscapePluginNone.cpp: |
| * WebProcess/Plugins/Netscape/NetscapePluginStream.cpp: |
| * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm: |
| * WebProcess/Plugins/PDF/PDFPlugin.mm: |
| * WebProcess/Plugins/PDF/PDFPluginAnnotation.mm: |
| * WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm: |
| * WebProcess/Plugins/PDF/PDFPluginPasswordField.mm: |
| * WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm: |
| * WebProcess/Plugins/Plugin.cpp: |
| * WebProcess/Plugins/PluginProcessConnection.cpp: |
| * WebProcess/Plugins/PluginProxy.cpp: |
| * WebProcess/Plugins/PluginView.cpp: |
| * WebProcess/Plugins/WebPluginInfoProvider.cpp: |
| * WebProcess/Storage/ServiceWorkerClientFetch.cpp: |
| * WebProcess/Storage/WebSWClientConnection.cpp: |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| * WebProcess/Storage/WebSWOriginTable.cpp: |
| * WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp: |
| * WebProcess/Storage/WebServiceWorkerProvider.cpp: |
| * WebProcess/Storage/WebToStorageProcessConnection.cpp: |
| * WebProcess/UserContent/WebUserContentController.cpp: |
| * WebProcess/WebConnectionToUIProcess.cpp: |
| * WebProcess/WebCoreSupport/SessionStateConversion.cpp: |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| * WebProcess/WebCoreSupport/WebColorChooser.cpp: |
| * WebProcess/WebCoreSupport/WebContextMenuClient.cpp: |
| * WebProcess/WebCoreSupport/WebDataListSuggestionPicker.cpp: |
| * WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp: |
| * WebProcess/WebCoreSupport/WebDragClient.cpp: |
| * WebProcess/WebCoreSupport/WebEditorClient.cpp: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| * WebProcess/WebCoreSupport/WebGeolocationClient.cpp: |
| * WebProcess/WebCoreSupport/WebInspectorClient.cpp: |
| * WebProcess/WebCoreSupport/WebMessagePortChannelProvider.cpp: |
| * WebProcess/WebCoreSupport/WebNotificationClient.cpp: |
| * WebProcess/WebCoreSupport/WebPerformanceLoggingClient.cpp: |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: |
| * WebProcess/WebCoreSupport/WebPopupMenu.cpp: |
| * WebProcess/WebCoreSupport/WebProgressTrackerClient.cpp: |
| * WebProcess/WebCoreSupport/WebSearchPopupMenu.cpp: |
| * WebProcess/WebCoreSupport/WebUserMediaClient.cpp: |
| * WebProcess/WebCoreSupport/WebValidationMessageClient.cpp: |
| * WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm: |
| * WebProcess/WebCoreSupport/ios/WebEditorClientIOS.mm: |
| * WebProcess/WebCoreSupport/ios/WebFrameLoaderClientIOS.mm: |
| * WebProcess/WebCoreSupport/mac/WebAlternativeTextClient.cpp: |
| * WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm: |
| * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm: |
| * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm: |
| * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm: |
| * WebProcess/WebCoreSupport/mac/WebPopupMenuMac.mm: |
| * WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp: |
| * WebProcess/WebCoreSupport/win/WebContextMenuClientWin.cpp: |
| * WebProcess/WebCoreSupport/win/WebPopupMenuWin.cpp: |
| * WebProcess/WebCoreSupport/wpe/WebEditorClientWPE.cpp: |
| * WebProcess/WebPage/Cocoa/WebPageCocoa.mm: |
| * WebProcess/WebPage/DrawingArea.cpp: |
| * WebProcess/WebPage/EventDispatcher.cpp: |
| * WebProcess/WebPage/FindController.cpp: |
| * WebProcess/WebPage/LayerTreeHost.cpp: |
| * WebProcess/WebPage/RemoteLayerTree/GraphicsLayerCARemote.cpp: |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp: |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteCustom.mm: |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteTiledBacking.cpp: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.mm: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.mm: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.mm: |
| * WebProcess/WebPage/RemoteWebInspectorUI.cpp: |
| * WebProcess/WebPage/ViewGestureGeometryCollector.cpp: |
| * WebProcess/WebPage/VisitedLinkTableController.cpp: |
| * WebProcess/WebPage/WebBackForwardListProxy.cpp: |
| * WebProcess/WebPage/WebContextMenu.cpp: |
| * WebProcess/WebPage/WebDocumentLoader.cpp: |
| * WebProcess/WebPage/WebFrame.cpp: |
| * WebProcess/WebPage/WebInspector.cpp: |
| * WebProcess/WebPage/WebInspectorUI.cpp: |
| * WebProcess/WebPage/WebPage.cpp: |
| * WebProcess/WebPage/WebPageOverlay.cpp: |
| * WebProcess/WebPage/WebURLSchemeHandlerProxy.cpp: |
| * WebProcess/WebPage/WebURLSchemeTaskProxy.cpp: |
| * WebProcess/WebPage/ios/FindControllerIOS.mm: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| * WebProcess/WebPage/mac/DrawingAreaMac.cpp: |
| * WebProcess/WebPage/mac/PageBannerMac.mm: |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: |
| * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm: |
| * WebProcess/WebPage/mac/WebPageMac.mm: |
| * WebProcess/WebPage/win/WebPageWin.cpp: |
| * WebProcess/WebPage/wpe/AcceleratedSurfaceWPE.cpp: |
| * WebProcess/WebPage/wpe/WebPageWPE.cpp: |
| * WebProcess/WebProcess.cpp: |
| * WebProcess/WebStorage/StorageAreaImpl.cpp: |
| * WebProcess/WebStorage/StorageAreaMap.cpp: |
| * WebProcess/WebStorage/StorageNamespaceImpl.cpp: |
| * WebProcess/WebStorage/WebStorageNamespaceProvider.cpp: |
| * WebProcess/cocoa/PlaybackSessionManager.mm: |
| * WebProcess/cocoa/UserMediaCaptureManager.cpp: |
| * WebProcess/cocoa/VideoFullscreenManager.mm: |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| * WebProcess/win/WebProcessMainWin.cpp: |
| * WebProcess/win/WebProcessWin.cpp: |
| * WebProcess/wpe/WebProcessMainWPE.cpp: |
| |
| 2018-08-22 Daniel Bates <dabates@apple.com> |
| |
| Cleanup: Add type alias for spell document tag |
| https://bugs.webkit.org/show_bug.cgi?id=188817 |
| |
| Reviewed by Simon Fraser. |
| |
| * UIProcess/TextChecker.h: |
| * UIProcess/TextCheckerCompletion.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::~WebPageProxy): |
| (WebKit::WebPageProxy::spellDocumentTag): |
| * UIProcess/WebPageProxy.h: Also addressed FIXME comment and modernized the code to use a std::optional |
| while I am here. |
| * UIProcess/gtk/TextCheckerGtk.cpp: |
| (WebKit::TextChecker::uniqueSpellDocumentTag): |
| (WebKit::TextChecker::closeSpellDocumentWithTag): |
| (WebKit::TextChecker::checkSpellingOfString): |
| (WebKit::TextChecker::checkGrammarOfString): |
| (WebKit::TextChecker::updateSpellingUIWithMisspelledWord): |
| (WebKit::TextChecker::updateSpellingUIWithGrammarString): |
| (WebKit::TextChecker::getGuessesForWord): |
| (WebKit::TextChecker::learnWord): |
| (WebKit::TextChecker::ignoreWord): |
| (WebKit::TextChecker::checkTextOfParagraph): |
| * UIProcess/ios/TextCheckerIOS.mm: |
| (WebKit::spellDocumentTagMap): |
| (WebKit::TextChecker::uniqueSpellDocumentTag): |
| (WebKit::TextChecker::closeSpellDocumentWithTag): |
| (WebKit::textCheckerFor): |
| (WebKit::TextChecker::checkTextOfParagraph): |
| (WebKit::TextChecker::checkSpellingOfString): |
| (WebKit::TextChecker::checkGrammarOfString): |
| (WebKit::TextChecker::updateSpellingUIWithMisspelledWord): |
| (WebKit::TextChecker::updateSpellingUIWithGrammarString): |
| (WebKit::TextChecker::getGuessesForWord): |
| (WebKit::TextChecker::learnWord): |
| (WebKit::TextChecker::ignoreWord): |
| * UIProcess/mac/TextCheckerMac.mm: |
| (WebKit::TextChecker::uniqueSpellDocumentTag): |
| (WebKit::TextChecker::closeSpellDocumentWithTag): |
| (WebKit::TextChecker::checkTextOfParagraph): |
| (WebKit::TextChecker::checkSpellingOfString): |
| (WebKit::TextChecker::checkGrammarOfString): |
| (WebKit::TextChecker::updateSpellingUIWithMisspelledWord): |
| (WebKit::TextChecker::updateSpellingUIWithGrammarString): |
| (WebKit::TextChecker::getGuessesForWord): |
| (WebKit::TextChecker::learnWord): |
| (WebKit::TextChecker::ignoreWord): |
| * UIProcess/win/TextCheckerWin.cpp: |
| (WebKit::TextChecker::uniqueSpellDocumentTag): |
| (WebKit::TextChecker::closeSpellDocumentWithTag): |
| (WebKit::TextChecker::checkSpellingOfString): |
| (WebKit::TextChecker::checkGrammarOfString): |
| (WebKit::TextChecker::updateSpellingUIWithMisspelledWord): |
| (WebKit::TextChecker::updateSpellingUIWithGrammarString): |
| (WebKit::TextChecker::getGuessesForWord): |
| (WebKit::TextChecker::learnWord): |
| (WebKit::TextChecker::ignoreWord): |
| (WebKit::TextChecker::checkTextOfParagraph): |
| * UIProcess/wpe/TextCheckerWPE.cpp: |
| (WebKit::TextChecker::uniqueSpellDocumentTag): |
| (WebKit::TextChecker::closeSpellDocumentWithTag): |
| (WebKit::TextChecker::checkSpellingOfString): |
| (WebKit::TextChecker::checkGrammarOfString): |
| (WebKit::TextChecker::updateSpellingUIWithMisspelledWord): |
| (WebKit::TextChecker::updateSpellingUIWithGrammarString): |
| (WebKit::TextChecker::getGuessesForWord): |
| (WebKit::TextChecker::learnWord): |
| (WebKit::TextChecker::ignoreWord): |
| |
| 2018-08-22 Antti Koivisto <antti@apple.com> |
| |
| Use OptionSet for NetworkCache::Storage::TraverseFlags |
| https://bugs.webkit.org/show_bug.cgi?id=188837 |
| |
| Reviewed by Anders Carlsson. |
| |
| Type safe flags. |
| |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::Caches::initializeSize): |
| (WebKit::CacheStorage::Caches::readRecordsList): |
| * NetworkProcess/cache/NetworkCache.cpp: |
| (WebKit::NetworkCache::Cache::traverse): |
| (WebKit::NetworkCache::Cache::dumpContentsToFile): |
| * NetworkProcess/cache/NetworkCacheStorage.cpp: |
| (WebKit::NetworkCache::Storage::TraverseOperation::TraverseOperation): |
| (WebKit::NetworkCache::Storage::traverse): |
| * NetworkProcess/cache/NetworkCacheStorage.h: |
| * WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp: |
| (WebKit::UserMediaPermissionRequestManager::captureDevicesChanged): |
| (WebKit::UserMediaPermissionRequestManager::activityStateDidChange): |
| |
| Also use OptionSet<>::containsAll() in a few places. |
| |
| 2018-08-22 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [WPE] pkg-config files should require libwpe |
| https://bugs.webkit.org/show_bug.cgi?id=188835 |
| |
| Reviewed by Žan Doberšek. |
| |
| * wpe/wpe-web-extension.pc.in: |
| * wpe/wpe-webkit.pc.in: |
| |
| 2018-08-22 Zan Dobersek <zdobersek@igalia.com> |
| |
| [CoordGraphics] Switch to Nicosia::CompositionLayer state tracking |
| https://bugs.webkit.org/show_bug.cgi?id=188693 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Switch CoordinatedGraphicsScene to utilizing Nicosia::CompositionLayer |
| objects for state updates of the TextureMapper layer tree. |
| |
| CoordinatedGraphicsScene::paintToCurrentGLContext() now calls |
| updateSceneState() at the beginning. This is a new method that manages |
| all updates for a given Nicosia::Scene instance. Any removed layers |
| have their composition-side state cleaned up, and the current set of |
| layers is then iterated to ensure and update the corresponding |
| TextureMapperLayer objects. |
| |
| Layers with any backing (painted backing store, platform-layer or image |
| content) are temporarly stored for updating outside of mutex-controlled |
| scene update. Performing all other state updates outside of this mutex |
| area will be investigated at a later point. |
| |
| We then iterate over vectors for each layer backing, gathering any |
| affected CoordinatedBackingStore or TextureMapperPlatformLayerProxy |
| objects that we have to update. |
| |
| This drops a bunch of member variables and helper methods off the |
| CoordinatedGraphicsScene class. The applyStateChanges() method will be |
| further simplified in the future. coordinateUpdateCompletionWithClient |
| logic in ThreadedCompositor should be checked to see whether it still |
| addresses any real-life problem, because at the moment it imposes a few |
| additional operations in terms of scene updates that we could really do |
| without. This will be checked later and removed if possible. |
| |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: |
| (WebKit::CoordinatedGraphicsScene::applyStateChanges): |
| (WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext): |
| (WebKit::compositionLayerImpl): |
| (WebKit::contentLayerImpl): |
| (WebKit::backingStoreImpl): |
| (WebKit::imageBackingImpl): |
| (WebKit::texmapLayer): |
| (WebKit::updateBackingStore): |
| (WebKit::updateImageBacking): |
| (WebKit::removeLayer): |
| (WebKit::CoordinatedGraphicsScene::commitSceneState): |
| (WebKit::CoordinatedGraphicsScene::updateSceneState): |
| (WebKit::CoordinatedGraphicsScene::purgeGLResources): |
| (WebKit::CoordinatedGraphicsScene::syncPlatformLayerIfNeeded): Deleted. |
| (WebKit::CoordinatedGraphicsScene::setLayerChildrenIfNeeded): Deleted. |
| (WebKit::CoordinatedGraphicsScene::setLayerFiltersIfNeeded): Deleted. |
| (WebKit::CoordinatedGraphicsScene::setLayerState): Deleted. |
| (WebKit::CoordinatedGraphicsScene::getLayerByIDIfExists): Deleted. |
| (WebKit::CoordinatedGraphicsScene::createLayers): Deleted. |
| (WebKit::CoordinatedGraphicsScene::createLayer): Deleted. |
| (WebKit::CoordinatedGraphicsScene::deleteLayers): Deleted. |
| (WebKit::CoordinatedGraphicsScene::deleteLayer): Deleted. |
| (WebKit::CoordinatedGraphicsScene::setRootLayerID): Deleted. |
| (WebKit::CoordinatedGraphicsScene::prepareContentBackingStore): Deleted. |
| (WebKit::CoordinatedGraphicsScene::createBackingStoreIfNeeded): Deleted. |
| (WebKit::CoordinatedGraphicsScene::removeBackingStoreIfNeeded): Deleted. |
| (WebKit::CoordinatedGraphicsScene::resetBackingStoreSizeToLayerSize): Deleted. |
| (WebKit::CoordinatedGraphicsScene::createTilesIfNeeded): Deleted. |
| (WebKit::CoordinatedGraphicsScene::removeTilesIfNeeded): Deleted. |
| (WebKit::CoordinatedGraphicsScene::updateTilesIfNeeded): Deleted. |
| (WebKit::CoordinatedGraphicsScene::syncImageBackings): Deleted. |
| (WebKit::CoordinatedGraphicsScene::createImageBacking): Deleted. |
| (WebKit::CoordinatedGraphicsScene::updateImageBacking): Deleted. |
| (WebKit::CoordinatedGraphicsScene::clearImageBackingContents): Deleted. |
| (WebKit::CoordinatedGraphicsScene::removeImageBacking): Deleted. |
| (WebKit::CoordinatedGraphicsScene::assignImageBackingToLayer): Deleted. |
| (WebKit::CoordinatedGraphicsScene::setLayerAnimationsIfNeeded): Deleted. |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h: |
| (WebKit::CoordinatedGraphicsScene::layerByID): Deleted. |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: |
| (WebKit::ThreadedCompositor::renderLayerTree): |
| * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp: |
| (WebKit::CompositingCoordinator::flushPendingLayerChanges): |
| |
| 2018-08-21 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Replace booleans for modifier keys in UIEventWithKeyState with OptionSet<Modifier> |
| https://bugs.webkit.org/show_bug.cgi?id=188777 |
| |
| Reviewed by Simon Fraser. |
| |
| Added two FIXMEs. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::navigateToPDFLinkWithSimulatedClick): |
| |
| 2018-08-21 Alex Christensen <achristensen@webkit.org> |
| |
| Roll out r235139 and r235146 |
| https://bugs.webkit.org/show_bug.cgi?id=188805 |
| |
| It turns out shouldKeepCurrentBackForwardListItemInList has one use left. |
| |
| * UIProcess/API/APILoaderClient.h: |
| (API::LoaderClient::shouldKeepCurrentBackForwardListItemInList): |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetPageLoaderClient): |
| * UIProcess/WebBackForwardList.cpp: |
| (WebKit::WebBackForwardList::addItem): |
| (WebKit::WebBackForwardList::goToItem): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::shouldKeepCurrentBackForwardListItemInList): |
| * UIProcess/WebPageProxy.h: |
| |
| 2018-08-21 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Attachment Support] Remove _WKAttachments and notify the UI client upon mainframe navigation |
| https://bugs.webkit.org/show_bug.cgi?id=188715 |
| <rdar://problem/43541790> |
| |
| Reviewed by Tim Horton. |
| |
| Adds logic for invalidating Attachment objects upon mainframe navigation, or upon web content process |
| termination. An invalid Attachment's wrapper may still be retained by a UI client; however, calls to -info and |
| other SPI methods will either return nil or immediately invoke their completion handlers with a nil result and |
| an NSError. See changes below for more detail. |
| |
| This patch also takes some extra measures to avoid sending redundant or unexpected removal updates to the UI |
| client upon invalidating all Attachments. |
| |
| See Tools changes for new API tests. |
| |
| * UIProcess/API/APIAttachment.cpp: |
| (API::Attachment::invalidate): |
| * UIProcess/API/APIAttachment.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _didInsertAttachment:withSource:]): |
| (-[WKWebView _didRemoveAttachment:]): |
| |
| Refactor these methods to take references to the API::Attachment that is being inserted or removed, rather than |
| take attachment identifiers. This allows us to keep logic for setting the InsertionState of Attachment objects |
| in WebPageProxy, rather than in platform code. |
| |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| * UIProcess/API/Cocoa/_WKAttachment.h: |
| * UIProcess/API/Cocoa/_WKAttachment.mm: |
| (-[_WKAttachment info]): |
| |
| If the attachment object is invalid, return nil. |
| |
| (-[_WKAttachment setDisplayOptions:completion:]): |
| (-[_WKAttachment setFileWrapper:contentType:completion:]): |
| |
| If the attachment object is invalid, immediately invoke the completion block with an error. |
| |
| (-[_WKAttachment isConnected]): |
| |
| Add a new readonly property for a client to easily determine whether a _WKAttachment is connected to the |
| document, without having to maintain the current set of connected attachment objects by observing insertion and |
| removal callbacks. |
| |
| * UIProcess/Cocoa/PageClientImplCocoa.h: |
| * UIProcess/Cocoa/PageClientImplCocoa.mm: |
| (WebKit::PageClientImplCocoa::didInsertAttachment): |
| (WebKit::PageClientImplCocoa::didRemoveAttachment): |
| |
| Make these take API::Attachment&s rather than identifier strings. |
| |
| * UIProcess/PageClient.h: |
| (WebKit::PageClient::didInsertAttachment): |
| (WebKit::PageClient::didRemoveAttachment): |
| |
| Also make these take API::Attachment&s rather than identifier strings. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didCommitLoadForFrame): |
| (WebKit::WebPageProxy::resetStateAfterProcessExited): |
| (WebKit::WebPageProxy::invalidateAllAttachments): |
| |
| Introduce a helper function that invalidates all Attachments and notifies the UI client if needed. This is |
| invoked upon mainframe navigation, and when the web content process terminates. |
| |
| (WebKit::WebPageProxy::platformRegisterAttachment): |
| (WebKit::WebPageProxy::didInsertAttachmentWithIdentifier): |
| (WebKit::WebPageProxy::didRemoveAttachmentWithIdentifier): |
| (WebKit::WebPageProxy::didInsertAttachment): |
| (WebKit::WebPageProxy::didRemoveAttachment): |
| |
| Keep track of whether we've notified the UI client that an Attachment has been inserted into the document. This |
| allows us to send removal updates to the UI client only for Attachments that are currently in the document, from |
| the perspective of the UI client, and allows us to avoid sending extra removal updates in |
| invalidateAllAttachments for Attachments that either have already been removed, or Attachments which we haven't |
| inserted yet. |
| |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/WebCoreSupport/WebEditorClient.cpp: |
| (WebKit::WebEditorClient::didInsertAttachmentWithIdentifier): |
| (WebKit::WebEditorClient::didRemoveAttachmentWithIdentifier): |
| (WebKit::WebEditorClient::didInsertAttachment): Deleted. |
| (WebKit::WebEditorClient::didRemoveAttachment): Deleted. |
| * WebProcess/WebCoreSupport/WebEditorClient.h: |
| |
| Rename did{Insert|Remove}Attachment to did{Insert|Remove}AttachmentWithIdentifier. |
| |
| 2018-08-21 Megan Gardner <megan_gardner@apple.com> |
| |
| Change Selection modification to not snap the grabber when selecting above or below the selection anchor |
| https://bugs.webkit.org/show_bug.cgi?id=188826 |
| |
| Reviewed by Tim Horton. |
| |
| Selecting single lines is sometimes difficult because we currently snap selections to single |
| characters if we move past the position of the other anchor in our selection. This patch changes |
| this behaviour to reflect the behaviour in the rest of this system, which snaps the selection |
| to the position on the line of the other anchor, rather than snapping it all the way a single |
| character. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::rangeForPointInRootViewCoordinates): |
| |
| 2018-08-21 Daniel Bates <dabates@apple.com> |
| |
| Cleanup: Remove unused file-local static variable from TextCheckerIOS.mm |
| https://bugs.webkit.org/show_bug.cgi?id=188818 |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/ios/TextCheckerIOS.mm: |
| (WebKit::TextChecker::isSmartInsertDeleteEnabled): |
| |
| 2018-08-21 Daniel Bates <dabates@apple.com> |
| |
| [iOS][WK2] Misspelled words are not underlined |
| https://bugs.webkit.org/show_bug.cgi?id=188800 |
| <rdar://problem/34811332> |
| |
| Reviewed by Wenson Hsieh. |
| |
| Implement enough of TextChecker for iOS to compute the list of misspelled words in a |
| paragraph and advertise support for continuous spell checking. The WebCore editing |
| machinery queries TextChecker for the list of the misspelled words, creating document |
| markers that demarcate the misspelled words. When we paint a line of text we paint |
| the spelling correction dots under each misspelled word. |
| |
| On iOS we make use of UITextChecker to perform spell checking of a string. We maintain |
| a side table that maps a "spell document tag" to a UITextChecker* to conform to the |
| shape of the TextChecker interface. |
| |
| * Platform/spi/ios/UIKitSPI.h: Forward declare some SPI. |
| * UIProcess/ios/TextCheckerIOS.mm: |
| (WebKit::mutableState): Added. |
| (WebKit::TextChecker::state): Turns around and returns mutableState(). |
| (WebKit::TextChecker::isContinuousSpellCheckingAllowed): Returns true if we are building |
| with USE(UNIFIED_TEXT_CHECKING). Otherwise, do what we do now. |
| (WebKit::TextChecker::setContinuousSpellCheckingEnabled): Update state. |
| (WebKit::TextChecker::continuousSpellCheckingEnabledStateChanged): Ditto. |
| (WebKit::spellDocumentTagMap): Returns HashMap that maps a "spell document tag" (int64_t) to |
| a RetainPtr<UITextChecker>>. |
| (WebKit::TextChecker::uniqueSpellDocumentTag): Generates a unique identifier for the page |
| this text checker is associated with. |
| (WebKit::TextChecker::closeSpellDocumentWithTag): Removes the entry for the specified identifier |
| from the HashMap. |
| (WebKit::textCheckerFor): Query the HashMap for the UITextChecker for the specified spell |
| document tag, if it exists. Otherwise, create a new UITextChecker and add a new map entry |
| that associates it with the specified spell document tag. |
| (WebKit::TextChecker::checkTextOfParagraph): Spell check the specified string and return a list |
| that represents the misspelled words. |
| (WebKit::TextChecker::checkSpellingOfString): Added a comment to explain that iOS does not implement |
| this function and instead implements checkTextOfParagraph(). |
| (WebKit::TextChecker::checkGrammarOfString): Ditto. |
| |
| 2018-08-21 Alex Christensen <achristensen@webkit.org> |
| |
| Transition ResizeReversePaginatedWebView API test from WKPageLoaderClient to WKPageNavigationClient |
| https://bugs.webkit.org/show_bug.cgi?id=188821 |
| |
| Reviewed by Simon Fraser. |
| |
| Add some more values to WKPageRenderingProgressEvents which were already supported by _WKRenderingProgressEvents and WKLayoutMilestones. |
| |
| * UIProcess/API/C/WKPageRenderingProgressEvents.h: |
| * UIProcess/API/C/WKPageRenderingProgressEventsInternal.h: |
| (pageRenderingProgressEvents): |
| |
| 2018-08-21 Alex Christensen <achristensen@webkit.org> |
| |
| Fix API tests after r235139 |
| https://bugs.webkit.org/show_bug.cgi?id=188805 |
| |
| Apparently the call to didChangeBackForwardList with no changes was observable. We should rename, but I'm restoring existing behavior for now. |
| |
| * UIProcess/WebBackForwardList.cpp: |
| (WebKit::WebBackForwardList::goToItem): |
| |
| 2018-08-21 John Wilander <wilander@apple.com> |
| |
| Storage Access API: The call to ResourceLoadStatisticsMemoryStore::grantStorageAccessInternal() should send eTLD+1s, not full host names |
| https://bugs.webkit.org/show_bug.cgi?id=188783 |
| <rdar://problem/43559215> |
| |
| Reviewed by Alex Christensen. |
| |
| * UIProcess/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ResourceLoadStatisticsMemoryStore::grantStorageAccess): |
| Now sends the eTLD+1 for the top frame and sub frame. |
| |
| 2018-08-21 Megan Gardner <megan_gardner@apple.com> |
| |
| Use VisiblePosition to calculate selection ranges |
| https://bugs.webkit.org/show_bug.cgi?id=188767 |
| <rdar://problem/43577166> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Switches to using VisiblePosition, instead of Position. This code used to use VisiblePosiiton, |
| but it has been changed a lot lately, and using Position causes issues with next and previous |
| when trying to snap a selection. VisiblePosition gives us the correct information, and does not |
| result in collapsed ranges. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::rangeForPointInRootViewCoordinates): |
| |
| 2018-08-21 Alex Christensen <achristensen@webkit.org> |
| |
| Remove unused shouldKeepCurrentBackForwardListItemInList check |
| https://bugs.webkit.org/show_bug.cgi?id=188805 |
| |
| Reviewed by Andy Estes. |
| |
| The check was only done in WKPageLoaderClient, and nobody implements the check. |
| It was not needed to put in WKPageNavigationClient or WKNavigationDelegate, so let's remove it! |
| This removes the unused ability to go back and remove the current back/forward list item. |
| |
| * UIProcess/API/APILoaderClient.h: |
| (API::LoaderClient::didChangeBackForwardList): |
| (API::LoaderClient::shouldKeepCurrentBackForwardListItemInList): Deleted. |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetPageLoaderClient): |
| * UIProcess/WebBackForwardList.cpp: |
| (WebKit::WebBackForwardList::addItem): |
| (WebKit::WebBackForwardList::goToItem): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::shouldKeepCurrentBackForwardListItemInList): Deleted. |
| * UIProcess/WebPageProxy.h: |
| |
| 2018-08-21 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Attachment Support] Augment _WKAttachment SPI to handle NSFileWrappers in addition to NSData |
| https://bugs.webkit.org/show_bug.cgi?id=188496 |
| <rdar://problem/43216836> |
| |
| Reviewed by Tim Horton. |
| |
| Adjusts WebKit's attachment editing SPI with the following modifications: |
| • Deprecate `-_insertAttachmentWithFilename:contentType:data:options:completion:` in favor of |
| `-_insertAttachmentWithFileWrapper:contentType:options:completion:`. |
| • Deprecate `-requestInfo:` and in favor of just `-info`. |
| • Add a `-fileWrapper` property to `_WKAttachmentInfo` that returns an `NSFileWrapper`. |
| • Remove some SPI methods that would otherwise be deprecated, but are not even necessary, since they're no |
| longer even used by Mail. |
| |
| To make this possible, we refactor where and how attachment data is tracked. Currently, the data is stored in |
| the network process, and made accessible to the web process via blob URLs stored in the File object in the |
| attachment element. As such, requests from the UI process for attachment data would first be routed through the |
| web process to network process and back. |
| |
| Instead, we now keep the relevant attachment data (in the form of NSFileWrapper on Cocoa platforms) in the UI |
| process, on API::Attachment. We additionally keep a map of attachment identifiers to API::Attachments, which |
| allows us to propagate the same _WKAttachment wrapper object to the SPI client for each uniquely identified |
| attachment element. This also has the benefit of allowing us to remove the asynchronous version of `-requestInfo:` |
| and replace it with just an `info` property. |
| |
| Changes are covered by new and existing API tests. |
| |
| * PlatformMac.cmake: |
| |
| Remove APIAttachment.cpp, now that APIAttachment.cpp is listed in Sources.txt. |
| |
| * Scripts/webkit/messages.py: |
| * Shared/Cocoa/APIObject.mm: |
| (API::Object::newObject): |
| |
| Guard _WKAttachment creation with ENABLE_ATTACHMENT_ELEMENT. |
| |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<PromisedAttachmentInfo>::encode): |
| (IPC::ArgumentCoder<PromisedAttachmentInfo>::decode): |
| (IPC::ArgumentCoder<PromisedBlobInfo>::encode): Deleted. |
| (IPC::ArgumentCoder<PromisedBlobInfo>::decode): Deleted. |
| (IPC::ArgumentCoder<AttachmentInfo>::encode): Deleted. |
| (IPC::ArgumentCoder<AttachmentInfo>::decode): Deleted. |
| * Shared/WebCoreArgumentCoders.h: |
| |
| Continue removing encoding support for WebCore::AttachmentInfo. Additionally, rename PromisedBlobInfo to |
| PromisedAttachmentInfo. |
| |
| * Sources.txt: |
| * SourcesCocoa.txt: |
| |
| Move APIAttachment.cpp from the SourcesCocoa.txt to the platform-agnostic Sources.txt. |
| |
| * UIProcess/API/APIAttachment.cpp: |
| (API::Attachment::updateAttributes): |
| |
| Rename setDataAndContentType to just updateAttributes; instead of sending data, only send the information needed |
| to update the presentational attributes of the attachment element. |
| |
| (API::Attachment::requestInfo): Deleted. |
| |
| Just call the completion handler with the result of `self.info`. |
| |
| (API::Attachment::setDataAndContentType): Deleted. |
| * UIProcess/API/APIAttachment.h: |
| |
| Add additional attributes: a content type, a file path, and (on Cocoa platforms) an NSFileWrapper. |
| |
| * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: |
| |
| Remove -_webView:didInsertAttachment:, since this is unused by any client currently, and is superceded by |
| -_webView:didInsertAttachment:withSource:. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _didInsertAttachment:withSource:]): |
| (-[WKWebView _didRemoveAttachment:]): |
| |
| Look up the API::Attachment corresponding to the identifier, and send its wrapper object to the client. |
| |
| (-[WKWebView _insertAttachmentWithFilename:contentType:data:options:completion:]): |
| (-[WKWebView _insertAttachmentWithFileWrapper:contentType:options:completion:]): |
| |
| Add a way to insert an attachment using NSFileWrapper, and reimplement _insertAttachmentWithFilename: using it. |
| |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/API/Cocoa/_WKAttachment.h: |
| * UIProcess/API/Cocoa/_WKAttachment.mm: |
| (-[_WKAttachmentInfo initWithFileWrapper:filePath:contentType:]): |
| (-[_WKAttachmentInfo data]): |
| (-[_WKAttachmentInfo name]): |
| (isDeclaredOrDynamicTypeIdentifier): |
| (-[_WKAttachmentInfo _typeIdentifierFromPathExtension]): |
| (-[_WKAttachmentInfo contentType]): |
| (-[_WKAttachmentInfo mimeType]): |
| (-[_WKAttachmentInfo utiType]): |
| (-[_WKAttachmentInfo fileWrapper]): |
| (-[_WKAttachment info]): |
| (-[_WKAttachment requestInfo:]): |
| |
| Add a property on _WKAttachment to retrieve a _WKAttachmentInfo (a snapshot of the current state of the |
| attachment, along with the NSFileWrapper). Reimplement requestInfo using this property. |
| |
| (-[_WKAttachment setFileWrapper:contentType:completion:]): |
| (-[_WKAttachment setData:newContentType:newFilename:completion:]): |
| |
| Reimplemented by calling -setFileWrapper:contentType:completion: with an NSFileWrapper created using the given |
| data. Additionally, create and associate the unique identifier with an API::Attachment right away. |
| |
| (-[_WKAttachment uniqueIdentifier]): |
| (-[_WKAttachment description]): |
| (-[_WKAttachmentInfo initWithInfo:]): Deleted. |
| (-[_WKAttachmentInfo fileLoadingError]): Deleted. |
| (-[_WKAttachment isEqual:]): Deleted. |
| (-[_WKAttachment hash]): Deleted. |
| |
| There's no longer any point to implementing these methods, since the SPI client is now guaranteed a unique |
| mapping of _WKAttachments to attachment elements in the document. |
| |
| * UIProcess/Cocoa/PageClientImplCocoa.mm: |
| (WebKit::PageClientImplCocoa::didInsertAttachment): |
| * UIProcess/Cocoa/WebPageProxyCocoa.mm: |
| (WebKit::WebPageProxy::platformRegisterAttachment): |
| (WebKit::WebPageProxy::platformCloneAttachment): |
| |
| Extend the behavior of registering new attachment data on Cocoa platforms by additionally creating and setting |
| NSFileWrappers on the API::Attachment. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::resetStateAfterProcessExited): |
| |
| Clear out the map of attachment identifiers to API::Attachments when the web content process is terminated. |
| |
| (WebKit::WebPageProxy::attachmentForIdentifier const): |
| |
| Helper function to look up an API::Attachment for the given attachment identifier. Returns null if the |
| attachment is not found, or the attachment identifier is invalid. |
| |
| (WebKit::WebPageProxy::insertAttachment): |
| (WebKit::WebPageProxy::updateAttachmentAttributes): |
| (WebKit::WebPageProxy::registerAttachmentIdentifierFromData): |
| (WebKit::WebPageProxy::registerAttachmentIdentifierFromFilePath): |
| (WebKit::WebPageProxy::cloneAttachmentData): |
| (WebKit::WebPageProxy::platformRegisterAttachment): |
| (WebKit::WebPageProxy::platformCloneAttachment): |
| (WebKit::WebPageProxy::didInsertAttachment): |
| |
| Create an entry in the attachment identifier to API::Attachment map when an attachment is inserted, if one does |
| not already exist. An attachment mapping would not exist only in the case where an attachment element was |
| created via bindings; in this case, the client wouldn't have access to an NSFileWrapper containing the contents |
| of the file; in the future, this can be improved by adding a mechanism to register an attachment element with |
| this data, but for now, this is unnecessary for Mail's purposes. |
| |
| (WebKit::WebPageProxy::didRemoveAttachment): |
| (WebKit::WebPageProxy::ensureAttachment): |
| |
| Ensures an attachment identifier to API::Attachment mapping. |
| |
| (WebKit::WebPageProxy::attachmentInfoCallback): Deleted. |
| (WebKit::WebPageProxy::requestAttachmentInfo): Deleted. |
| (WebKit::WebPageProxy::setAttachmentDataAndContentType): Deleted. |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _startDrag:item:]): |
| (-[WKContentView _prepareToDragPromisedAttachment:]): |
| (-[WKContentView _prepareToDragPromisedBlob:]): Deleted. |
| |
| Reimplement the way promised attachment data is delivered to the destination when an attachment element is |
| dragged. Instead of relying on the blob URL of the File on the attachment element, first try to find an API |
| Attachment object corresponding to the unique identifier of the dragged attachment, and use its NSFileWrapper to |
| deliver promised data to the destination file URL. The blob URL codepath still exists in the case where script |
| specifies the dragged attachment's File. |
| |
| * UIProcess/mac/PageClientImplMac.h: |
| * UIProcess/mac/PageClientImplMac.mm: |
| * WebProcess/WebCoreSupport/WebEditorClient.cpp: |
| (WebKit::WebEditorClient::registerAttachmentIdentifier): |
| (WebKit::WebEditorClient::cloneAttachmentData): |
| * WebProcess/WebCoreSupport/WebEditorClient.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::insertAttachment): |
| (WebKit::WebPage::updateAttachmentAttributes): |
| (WebKit::WebPage::requestAttachmentInfo): Deleted. |
| (WebKit::WebPage::setAttachmentDataAndContentType): Deleted. |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| More renaming and IPC message plumbing. |
| |
| 2018-08-21 Alex Christensen <achristensen@webkit.org> |
| |
| Increment NetworkCache::Storage::lastStableVersion after r233742 |
| https://bugs.webkit.org/show_bug.cgi?id=188798 |
| <rdar://43561761> |
| |
| Reviewed by Geoffrey Garen. |
| |
| * NetworkProcess/cache/NetworkCacheStorage.h: |
| |
| 2018-08-21 Brent Fulgham <bfulgham@apple.com> |
| |
| Remove experimental affiliated domain code now that StorageAccess API is available |
| https://bugs.webkit.org/show_bug.cgi?id=188756 |
| <rdar://problem/43527848> |
| |
| Reviewed by Alex Christensen. |
| |
| In Bug 174661 we added a compatibility quirk to support wsj.com authentication. This quirk is no longer needed, |
| since the StorageAccess API provides the necessary tools to do this type of interaction without needing global |
| cross-site access. |
| |
| * UIProcess/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ResourceLoadStatisticsMemoryStore::logFrameNavigation): |
| * UIProcess/ResourceLoadStatisticsMemoryStore.h: |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::logFrameNavigation): |
| (WebKit::areDomainsAssociated): Deleted. |
| |
| 2018-08-21 Alex Christensen <achristensen@webkit.org> |
| |
| Add _WKWebsiteDataStoreConfiguration. sourceApplicationBundleIdentifier and sourceApplicationSecondaryIdentifier |
| https://bugs.webkit.org/show_bug.cgi?id=188748 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * NetworkProcess/NetworkSessionCreationParameters.h: |
| (WebKit::NetworkSessionCreationParameters::encode const): |
| (WebKit::NetworkSessionCreationParameters::decode): |
| * NetworkProcess/cocoa/NetworkSessionCocoa.h: |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| * Shared/WebsiteDataStoreParameters.cpp: |
| (WebKit::WebsiteDataStoreParameters::privateSessionParameters): |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _initWithConfiguration:]): |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h: |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm: |
| (-[_WKWebsiteDataStoreConfiguration setSourceApplicationBundleIdentifier:]): |
| (-[_WKWebsiteDataStoreConfiguration sourceApplicationBundleIdentifier]): |
| (-[_WKWebsiteDataStoreConfiguration sourceApplicationSecondaryIdentifier]): |
| (-[_WKWebsiteDataStoreConfiguration setSourceApplicationSecondaryIdentifier:]): |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| |
| 2018-08-21 Per Arne Vollan <pvollan@apple.com> |
| |
| [WebGL] Contexts are not updated when display configuration changed. |
| https://bugs.webkit.org/show_bug.cgi?id=188750 |
| |
| Reviewed by Brent Fulgham. |
| |
| Calling CGDisplayRegisterReconfigurationCallback in GraphicsContext3DManager::addContext |
| returns kCGErrorSuccess when WindowServer access is blocked in the WebContent process, |
| but the callback function is never called. We should register the callback function in |
| the UI process, and send a message to the WebContent process when the display |
| configuration changed. |
| |
| * Sources.txt: |
| * UIProcess/API/C/WKMockDisplay.cpp: Added. |
| (WKSendDisplayConfigurationChangedMessageForTesting): |
| * UIProcess/API/C/WKMockDisplay.h: Added. |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::displayReconfigurationCallBack): |
| (WebKit::WebProcessPool::sendDisplayConfigurationChangedMessageForTesting): |
| * UIProcess/WebProcessPool.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::displayConfigurationChanged): |
| |
| 2018-08-21 John Wilander <wilander@apple.com> |
| |
| Make ResourceLoadObserver::logWebSocketLoading() handle websockets in detached frames |
| https://bugs.webkit.org/show_bug.cgi?id=188757 |
| <rdar://problem/38713390> |
| |
| Reviewed by Alex Christensen. |
| |
| These changes are test infrastructure to support the new WebKitTestRunner |
| function isStatisticsRegisteredAsSubresourceUnder(). |
| |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreIsStatisticsRegisteredAsSubresourceUnder): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| * UIProcess/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ResourceLoadStatisticsMemoryStore::isRegisteredAsSubresourceUnder const): |
| * UIProcess/ResourceLoadStatisticsMemoryStore.h: |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::isRegisteredAsSubresourceUnder): |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| |
| 2018-08-21 Daniel Bates <dabates@apple.com> |
| |
| Replace TextCheckingTypeMask with OptionSet |
| https://bugs.webkit.org/show_bug.cgi?id=188678 |
| |
| Reviewed by Antti Koivisto. |
| |
| * Scripts/webkit/messages.py: Add WebCore::TextCheckingType to the special case map so that |
| the generator knows what header has the definition for this type. |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<TextCheckingRequestData>::encode): |
| (IPC::ArgumentCoder<TextCheckingRequestData>::decode): |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::coreTextCheckingType): |
| (WebKit::textCheckingResultFromNSTextCheckingResult): |
| * UIProcess/TextChecker.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::checkTextOfParagraph): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/gtk/TextCheckerGtk.cpp: |
| (WebKit::TextChecker::requestCheckingOfString): |
| (WebKit::TextChecker::checkTextOfParagraph): Also simplified return expressions. |
| * UIProcess/ios/TextCheckerIOS.mm: |
| (WebKit::TextChecker::checkTextOfParagraph): |
| * UIProcess/mac/TextCheckerMac.mm: |
| (WebKit::TextChecker::checkTextOfParagraph): |
| * UIProcess/win/TextCheckerWin.cpp: |
| (WebKit::TextChecker::checkTextOfParagraph): |
| * WebProcess/WebCoreSupport/WebEditorClient.cpp: |
| (WebKit::WebEditorClient::shouldEraseMarkersAfterChangeSelection const): |
| (WebKit::WebEditorClient::checkTextOfParagraph): |
| * WebProcess/WebCoreSupport/WebEditorClient.h: |
| |
| 2018-08-21 Adrian Perez de Castro <aperez@igalia.com> |
| |
| Unreviewed. Update OptionsWPE.cmake and NEWS for 2.21.91 release. |
| |
| * wpe/NEWS: Add release notes for the 2.21.91 release. |
| |
| 2018-08-21 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r234981. |
| https://bugs.webkit.org/show_bug.cgi?id=188793 |
| |
| It was not the main cause of the high CPU usage in the end |
| (Requested by KaL on #webkit). |
| |
| Reverted changeset: |
| |
| "Unreviewed, rolling out r234259." |
| https://bugs.webkit.org/show_bug.cgi?id=188005 |
| https://trac.webkit.org/changeset/234981 |
| |
| 2018-08-20 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Use unified build for NetworkProcess |
| https://bugs.webkit.org/show_bug.cgi?id=185011 |
| |
| Reviewed by Alex Christensen. |
| |
| * NetworkProcess/Cookies/WebCookieManager.cpp: |
| * NetworkProcess/Downloads/Download.cpp: |
| * NetworkProcess/Downloads/DownloadManager.cpp: |
| * NetworkProcess/Downloads/PendingDownload.cpp: |
| * NetworkProcess/FileAPI/NetworkBlobRegistry.cpp: |
| * NetworkProcess/NetworkCORSPreflightChecker.cpp: |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| * NetworkProcess/NetworkContentRuleListManager.cpp: |
| * NetworkProcess/NetworkDataTask.cpp: |
| * NetworkProcess/NetworkDataTaskBlob.cpp: |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| * NetworkProcess/NetworkProcess.cpp: |
| * NetworkProcess/NetworkProcessPlatformStrategies.cpp: |
| * NetworkProcess/NetworkResourceLoadParameters.cpp: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| * NetworkProcess/NetworkSession.cpp: |
| * NetworkProcess/NetworkSocketStream.cpp: |
| * NetworkProcess/PingLoad.cpp: |
| * NetworkProcess/cache/CacheStorageEngine.cpp: |
| * NetworkProcess/cache/CacheStorageEngineCache.cpp: |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| * NetworkProcess/cache/CacheStorageEngineConnection.cpp: |
| * NetworkProcess/cache/NetworkCache.cpp: |
| * NetworkProcess/capture/NetworkCaptureEvent.cpp: |
| * NetworkProcess/capture/NetworkCaptureManager.cpp: |
| * NetworkProcess/capture/NetworkCaptureRecorder.cpp: |
| * NetworkProcess/capture/NetworkCaptureReplayer.cpp: |
| * NetworkProcess/capture/NetworkDataTaskReplay.cpp: |
| * NetworkProcess/webrtc/NetworkMDNSRegister.cpp: |
| * NetworkProcess/Downloads/cocoa/DownloadCocoa.mm: |
| (WebKit::Download::platformCancelNetworkLoad): |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (-[WKNetworkSessionDelegate URLSession:didBecomeInvalidWithError:]): |
| (-[WKNetworkSessionDelegate URLSession:dataTask:willCacheResponse:completionHandler:]): |
| Fix the build with unified sources. |
| |
| * Sources.txt: Un-@no-unify NetworkProcess/*. |
| * SourcesCocoa.txt: Un-@no-unify NetworkProcess/*. |
| |
| 2018-08-20 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [CMake] Sync unified build with Cocoa ports |
| https://bugs.webkit.org/show_bug.cgi?id=188732 |
| |
| Reviewed by Tim Horton. |
| |
| Sync unified build with Cocoa ports. This enables unified build for WebKit/Platform and |
| WebKit/Shared. |
| |
| Lots of files need to be moved around since the existing Sources.txt was not copied from |
| CMakeLists.txt. This replaces the Sources.txt with the sources list from CMakeList.txt. |
| Files that are not built for Cocoa are moved to SourcesGTK.txt, SourcesWPE.txt, and |
| PlatformWin.cmake. Files that are built only on Cocoa are moved to SourcesCocoa.txt. There's |
| plenty of room to determine if many of these files really need to be platform-specific in |
| the future, but let's not change that now. |
| |
| Unfortunately, several files under Shared and PluginProcess need to be un-unified to be |
| usable for GTK's WebKitPluginProcess2. I've never managed to understand why, but it won't |
| link otherwise. Fortunately, this only affects a few files (listed in |
| PluginProcessGTK2_SOURCES), only a couple dozen of which are cross-platform. |
| |
| * CMakeLists.txt: |
| * PlatformWin.cmake: |
| * Sources.txt: |
| * SourcesCocoa.txt: |
| * SourcesGTK.txt: |
| * SourcesWPE.txt: |
| |
| 2018-08-20 Tim Horton <timothy_horton@apple.com> |
| |
| Fix the iOSMac build with unified sources |
| |
| * Shared/mac/ArgumentCodersMac.mm: |
| * Shared/mac/ChildProcessMac.mm: |
| * Shared/mac/NativeWebKeyboardEventMac.mm: |
| |
| 2018-08-20 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Move capture device monitoring to WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=188521 |
| <rdar://problem/43251787> |
| |
| Reviewed by Youenn Fablet. |
| |
| * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: |
| (WebKit::UserMediaPermissionRequestManagerProxy::captureDevicesChanged): Notify as appropriate. |
| (WebKit::UserMediaPermissionRequestManagerProxy::viewIsBecomingVisible): Change name from |
| viewIsBecomingVisible. Call captureDevicesChanged if a change happened when not visible. |
| (WebKit::UserMediaPermissionRequestManagerProxy::watchdogTimerFired): Clear m_pendingDeviceChangeEvent. |
| (WebKit::UserMediaPermissionRequestManagerProxy::processPregrantedRequests): Deleted. |
| * UIProcess/UserMediaPermissionRequestManagerProxy.h: |
| |
| * UIProcess/UserMediaProcessManager.cpp: |
| (WebKit::UserMediaProcessManager::UserMediaProcessManager): Initialize timer. |
| (WebKit::UserMediaProcessManager::captureDevicesChanged): New, notify each manager. |
| (WebKit::UserMediaProcessManager::beginMonitoringCaptureDevices): Cache the device list and |
| register device change listener the first time it is called. |
| * UIProcess/UserMediaProcessManager.h: |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::viewIsBecomingVisible): |
| (WebKit::WebPageProxy::beginMonitoringCaptureDevices): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| |
| * WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp: |
| (WebKit::UserMediaPermissionRequestManager::addDeviceChangeObserver): Add listener, tell page |
| to start monitoring device changes. |
| (WebKit::UserMediaPermissionRequestManager::removeDeviceChangeObserver): Remove listener. |
| (WebKit::UserMediaPermissionRequestManager::captureDevicesChanged): Call listeners. |
| * WebProcess/MediaStream/UserMediaPermissionRequestManager.h: |
| |
| * WebProcess/WebCoreSupport/WebUserMediaClient.cpp: |
| (WebKit::WebUserMediaClient::addDeviceChangeObserver): |
| (WebKit::WebUserMediaClient::removeDeviceChangeObserver): |
| * WebProcess/WebCoreSupport/WebUserMediaClient.h: |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::captureDevicesChanged): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::addMockMediaDevice): |
| (WebKit::WebProcess::clearMockMediaDevices): |
| (WebKit::WebProcess::removeMockMediaDevice): |
| (WebKit::WebProcess::resetMockMediaDevices): |
| (WebKit::WebProcess::captureDevicesChanged): |
| * WebProcess/WebProcess.h: |
| |
| 2018-08-20 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Fix GTK/WPE cookie API tests after r234396. |
| |
| * UIProcess/WebsiteData/WebsiteDataRecord.cpp: |
| (WebKit::WebsiteDataRecord::displayNameForCookieHostName): Bring back the check to handle localhost as an |
| special case for non cocoa ports. |
| |
| 2018-08-19 Darin Adler <darin@apple.com> |
| |
| [Cocoa] Update uses of wrapper template functions in WebKit for clarity, simplicity, better ARC readiness |
| https://bugs.webkit.org/show_bug.cgi?id=188735 |
| |
| Reviewed by Dan Bernstein. |
| |
| Because of argument-dependent lookup, there should never be a reason to call |
| the wrapper function as WebKit::wrapper or API::wrapper unless there is a need |
| to resolve a name conflict, so removed the explicit namespacing. |
| |
| * UIProcess/API/C/mac/WKPagePrivateMac.mm: |
| (WKPageLoadURLRequestReturningNavigation): Removed explicit null check and |
| leakRef/autorelease pair, both done by the wrapper template function now. |
| |
| * UIProcess/API/Cocoa/WKBackForwardList.mm: |
| (toWKBackForwardListItem): Deleted. |
| (-[WKBackForwardList currentItem]): Use wrapper instead of toWKBackForwardListItem. |
| (-[WKBackForwardList backItem]): Ditto. |
| (-[WKBackForwardList forwardItem]): Ditto. |
| (-[WKBackForwardList itemAtIndex:]): Ditto. |
| (-[WKBackForwardList backList]): Removed leakRef/autorelease pair. |
| (-[WKBackForwardList forwardList]): Ditto. |
| |
| * UIProcess/API/Cocoa/WKContentRuleListStore.mm: |
| (+[WKContentRuleListStore defaultStore]): Removed explicit WebKit namespace. |
| (+[WKContentRuleListStore storeWithURL:]): Fixed a storage leak by removing leakRef, |
| which was not balanced. This is not a copy or create function, so it should not |
| return an object that requires a release to balance it. |
| (-[WKContentRuleListStore _compileContentRuleListForIdentifier:encodedContentRuleList:completionHandler:releasesArgument:]): |
| Removed explicit WebKit namespace and unneeded get(). |
| (-[WKContentRuleListStore lookUpContentRuleListForIdentifier:completionHandler:]): |
| Removed explicit WebKit namespace. |
| (+[WKContentRuleListStore defaultStoreWithLegacyFilename]): Ditto. |
| (+[WKContentRuleListStore storeWithURLAndLegacyFilename:]): Fixed storage leak, |
| as above in storeWithURL. |
| |
| * UIProcess/API/Cocoa/WKFrameInfo.mm: |
| (-[WKFrameInfo _handle]): Removed explicit WebKit namespace. |
| * UIProcess/API/Cocoa/WKHTTPCookieStore.mm: |
| (WKHTTPCookieStoreObserver::cookiesDidChange): Ditto. |
| |
| * UIProcess/API/Cocoa/WKNavigationAction.mm: |
| (-[WKNavigationAction sourceFrame]): Removed explicit null check, now done by |
| the wrapper template function. |
| (-[WKNavigationAction targetFrame]): Ditto. |
| (-[WKNavigationAction _userInitiatedAction]): Ditto. |
| (-[WKNavigationAction _mainFrameNavigation]): Ditto. |
| |
| * UIProcess/API/Cocoa/WKOpenPanelParameters.mm: |
| (-[WKOpenPanelParameters _acceptedMIMETypes]): Removed leakRef/autorelease pair, |
| now done by the wrapper template function. |
| (-[WKOpenPanelParameters _acceptedFileExtensions]): Ditto. |
| |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences copyWithZone:]): Use retain instead of leakRef; slightly clearer |
| for when we convert to ARC. |
| (+[WKPreferences _experimentalFeatures]): Removed leakRef/autorelease pair, |
| now done by the wrapper template function. |
| |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _configuration]): Fixed a storage leak by removing leakRef, |
| which was not balanced. This is not a copy or create function, so it should not |
| return an object that requires a release to balance it. |
| |
| * UIProcess/API/Cocoa/WKURLSchemeTaskInternal.h: |
| Replaced inline wrapper function with WrapperTraits structure template specialization. |
| |
| * UIProcess/API/Cocoa/WKUserScript.mm: |
| (-[WKUserScript _userContentWorld]): Removed explicit API namespace. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView loadRequest:]): Removed explicit null check and |
| leakRef/autorelease pair, both done by the wrapper template function now. |
| (-[WKWebView loadFileURL:allowingReadAccessToURL:]): Ditto. |
| (-[WKWebView loadData:MIMEType:characterEncodingName:baseURL:]): Ditto. |
| (-[WKWebView goToBackForwardListItem:]): Ditto. |
| (-[WKWebView goBack]): Ditto. |
| (-[WKWebView goForward]): Ditto. |
| (-[WKWebView reload]): Ditto. |
| (-[WKWebView reloadFromOrigin]): Ditto. |
| (-[WKWebView _didInsertAttachment:withSource:]): Removed leakRef/autorelease pairs, |
| now done by the wrapper template function. |
| (-[WKWebView _didRemoveAttachment:]): Ditto. |
| (-[WKWebView _loadData:MIMEType:characterEncodingName:baseURL:userData:]): Removed |
| explicit null check and leakRef/autorelease pair, both done by the wrapper template |
| function now. |
| (-[WKWebView _loadRequest:shouldOpenExternalURLs:]): Ditto. |
| (-[WKWebView _reloadWithoutContentBlockers]): Ditto. |
| (-[WKWebView _reloadExpiredOnly]): Ditto. |
| (-[WKWebView _sessionStateData]): Removed explicit leakRef/autorelease pair, done |
| by the wrapper template function now. Also, the old version explicitly dereferenced |
| and would not work when the result of encodeLegacySessionState was null. Decided |
| not to add a call to releaseNonNull to preserve that possibly-incorrect optimization, |
| instead allowing the wrapper function to generate code to handle the null case. |
| (-[WKWebView _sessionState]): Use the Objective-C autorelease instead of adoptNS |
| and RetainPtr's autorelease. |
| (-[WKWebView _sessionStateWithFilter:]): Ditto. |
| (-[WKWebView _restoreSessionState:andNavigate:]): Removed explicit null check and |
| leakRef/autorelease pair, both done by the wrapper template function now. |
| (-[WKWebView _insertAttachmentWithFilename:contentType:data:options:completion:]): |
| Removed explicit leakRef/autorelease pair, done by the wrapper template function now. |
| (-[WKWebView _diagnosticLoggingDelegate]): Replaced a leakRef/autorelease pair with |
| use of RetainPtr's autorelease. |
| (-[WKWebView _findDelegate]): Ditto. |
| |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: |
| (-[WKWebViewConfiguration _applicationManifest]): Removed explicit null check, |
| done by the wrapper template function now. |
| |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (+[WKWebsiteDataStore defaultDataStore]): Removed explicit WebKit namespace |
| and unneeded call to get(). |
| (+[WKWebsiteDataStore nonPersistentDataStore]): Removed explicit WebKit namespace |
| and leakRef/autorelease pair, done by the wrapper template function now. |
| (-[WKWebsiteDataStore httpCookieStore]): Removed explicit WebKit namespace. |
| |
| * UIProcess/API/Cocoa/_WKApplicationManifest.mm: |
| (+[_WKApplicationManifest applicationManifestFromJSON:manifestURL:documentURL:]): |
| Removed explicit leakRef/autorelease pair, done by the wrapper template function now. |
| * UIProcess/API/Cocoa/_WKGeolocationPosition.mm: |
| (WebKit::wrapper): Ditto. |
| |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: |
| (-[_WKProcessPoolConfiguration copyWithZone:]): Use retain instead of leakRef; |
| slightly clearer for when we convert to ARC. |
| |
| * UIProcess/API/Cocoa/_WKUserContentWorld.mm: |
| (+[_WKUserContentWorld worldWithName:]): Removed explicit leakRef/autorelease pair, |
| done by the wrapper template function now. |
| |
| * UIProcess/API/Cocoa/_WKWebsitePolicies.mm: |
| (-[_WKWebsitePolicies websiteDataStore]): Removed explicit null check, done by |
| the wrapper template function now. |
| |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationClient::didChangeBackForwardList): Removed |
| explicit null check, done by the wrapper template function now. |
| (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): Ditto. |
| (WebKit::NavigationState::NavigationClient::didStartProvisionalNavigation): Ditto. |
| (WebKit::NavigationState::NavigationClient::didReceiveServerRedirectForProvisionalNavigation): Ditto. |
| (WebKit::NavigationState::NavigationClient::didFailProvisionalNavigationWithError): Ditto. |
| (WebKit::NavigationState::NavigationClient::didFailProvisionalLoadInSubframeWithError): Ditto. |
| (WebKit::NavigationState::NavigationClient::didCommitNavigation): Ditto. |
| (WebKit::NavigationState::NavigationClient::didFinishDocumentLoad): Ditto. |
| (WebKit::NavigationState::NavigationClient::didFinishNavigation): Ditto. |
| (WebKit::NavigationState::NavigationClient::didFailNavigationWithError): Ditto. |
| (WebKit::NavigationState::NavigationClient::didSameDocumentNavigation): Ditto. |
| |
| * UIProcess/Cocoa/SessionStateCoding.mm: |
| (WebKit::encodeSessionState): Removed explicit leakRef/autorelease pair, done |
| by the wrapper template function now. Also, the old version explicitly dereferenced |
| and would not work when the result of encodeLegacySessionState was null. Decided |
| not to add a call to releaseNonNull to preserve that possibly-incorrect optimization, |
| instead allowing the wrapper function to generate code to handle the null case. |
| |
| * UIProcess/mac/WKInspectorViewController.mm: |
| (-[WKInspectorViewController configuration]): Removed explicit WebKit namespace. |
| |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm: |
| (+[WKWebProcessPlugInFrame lookUpFrameFromHandle:]): Removed explicit null check, |
| done by the wrapper template function now. |
| (-[WKWebProcessPlugInFrame hitTest:]): Removed explicit leakRef/autorelease pair, done |
| by the wrapper template function now. Also, the old version explicitly dereferenced |
| and would not work when the result of hitTest was null. Decided not to add a call to |
| releaseNonNull to preserve that possibly-incorrect optimization, instead allowing the |
| wrapper function to generate code to handle the null case. |
| (-[WKWebProcessPlugInFrame childFrames]): Removed explicit leakRef/autorelease pair, |
| done by the wrapper template function now. |
| (-[WKWebProcessPlugInFrame handle]): Ditto. |
| (-[WKWebProcessPlugInFrame _parentFrame]): Removed explicit null check, done by the |
| wrapper template function now. |
| |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInHitTestResult.mm: |
| (-[WKWebProcessPlugInHitTestResult nodeHandle]): Removed explicit null check and |
| leakRef/autorelease pair, both done by the wrapper template function now. |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm: |
| (+[WKWebProcessPlugInNodeHandle nodeHandleWithJSValue:inContext:]): Ditto. |
| (-[WKWebProcessPlugInNodeHandle htmlIFrameElementContentFrame]): Ditto. |
| (-[WKWebProcessPlugInNodeHandle HTMLTableCellElementCellAbove]): Ditto. |
| (-[WKWebProcessPlugInNodeHandle frame]): Ditto. |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInRangeHandle.mm: |
| (+[WKWebProcessPlugInRangeHandle rangeHandleWithJSValue:inContext:]): Ditto. |
| (-[WKWebProcessPlugInRangeHandle frame]): Ditto. |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInScriptWorld.mm: |
| (+[WKWebProcessPlugInScriptWorld world]): Ditto. |
| * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm: |
| (-[WKWebProcessPlugInBrowserContextController mainFrame]): Ditto. |
| (+[WKWebProcessPlugInBrowserContextController lookUpBrowsingContextFromHandle:]): Ditto. |
| |
| 2018-08-19 Darin Adler <darin@apple.com> |
| |
| [Cocoa] Consolidate inline "wrapper" functions in WebKit API into function templates and WrapperTraits |
| https://bugs.webkit.org/show_bug.cgi?id=188733 |
| |
| Reviewed by Sam Weinig. |
| |
| Replaced all the different functions named "wrapper" that were all boilerplate doing Objective-C |
| casts with WrapperTraits specializations. The only thing about this that was at all tricky was |
| the loose mixing of the WebKit namespace, the API namespace, and the global namespace. My choice |
| for this first step was to put WrapperTraits into the WebKit namespace and to put the wrapper |
| function into both the WebKit and API namespaces with "using". This turned out pretty clean: did |
| not have to touch any of the code calling wrapper just to make things work, although we can now |
| clean up by changing call sites to get rid of unnecessary explicit use of leakRef and autorelease. |
| Doing this will make ARC conversion practical and easy, which is the motivation behind pursuing |
| this set of changes. |
| |
| * Shared/Cocoa/WKObject.h: Tweaked style of the ObjectStorage structure template, |
| using a class name instead of "T". Added WrapperTraits structure template, checkedObjCCast |
| function template, and multiple wrapper functions templates that take a variety of pointer, |
| reference, smart pointer, and smart reference types, and return the wrapper for each one, |
| handling object lifetime appropriately. |
| |
| * Shared/API/Cocoa/_WKFrameHandleInternal.h: |
| * Shared/API/Cocoa/_WKHitTestResultInternal.h: |
| * Shared/Cocoa/WKNSArray.h: |
| * Shared/Cocoa/WKNSData.h: |
| * Shared/Cocoa/WKNSDictionary.h: |
| * Shared/Cocoa/WKNSError.h: |
| * Shared/Cocoa/WKNSNumber.h: |
| * Shared/Cocoa/WKNSString.h: |
| * Shared/Cocoa/WKNSURL.h: |
| * Shared/Cocoa/WKNSURLRequest.h: |
| * UIProcess/API/Cocoa/WKBackForwardListInternal.h: |
| * UIProcess/API/Cocoa/WKBackForwardListItemInternal.h: |
| * UIProcess/API/Cocoa/WKBrowsingContextGroupInternal.h: |
| * UIProcess/API/Cocoa/WKConnectionInternal.h: |
| * UIProcess/API/Cocoa/WKContentRuleListInternal.h: |
| * UIProcess/API/Cocoa/WKContentRuleListStoreInternal.h: |
| * UIProcess/API/Cocoa/WKFrameInfoInternal.h: |
| * UIProcess/API/Cocoa/WKHTTPCookieStoreInternal.h: |
| * UIProcess/API/Cocoa/WKNSURLAuthenticationChallenge.h: |
| * UIProcess/API/Cocoa/WKNavigationActionInternal.h: |
| * UIProcess/API/Cocoa/WKNavigationDataInternal.h: |
| * UIProcess/API/Cocoa/WKNavigationInternal.h: |
| * UIProcess/API/Cocoa/WKNavigationResponseInternal.h: |
| * UIProcess/API/Cocoa/WKOpenPanelParametersInternal.h: |
| * UIProcess/API/Cocoa/WKPreferencesInternal.h: |
| * UIProcess/API/Cocoa/WKProcessPoolInternal.h: |
| * UIProcess/API/Cocoa/WKSecurityOriginInternal.h: |
| * UIProcess/API/Cocoa/WKUserContentControllerInternal.h: |
| * UIProcess/API/Cocoa/WKUserScriptInternal.h: |
| * UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h: |
| * UIProcess/API/Cocoa/WKWebsiteDataStoreInternal.h: |
| * UIProcess/API/Cocoa/WKWindowFeaturesInternal.h: |
| * UIProcess/API/Cocoa/_WKApplicationManifestInternal.h: |
| * UIProcess/API/Cocoa/_WKAttachmentInternal.h: |
| * UIProcess/API/Cocoa/_WKAutomationSessionInternal.h: |
| * UIProcess/API/Cocoa/_WKExperimentalFeatureInternal.h: |
| * UIProcess/API/Cocoa/_WKGeolocationPositionInternal.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfigurationInternal.h: |
| * UIProcess/API/Cocoa/_WKUserContentWorldInternal.h: |
| * UIProcess/API/Cocoa/_WKUserInitiatedActionInternal.h: |
| * UIProcess/API/Cocoa/_WKUserStyleSheetInternal.h: |
| * UIProcess/API/Cocoa/_WKVisitedLinkStoreInternal.h: |
| * UIProcess/API/Cocoa/_WKWebsitePoliciesInternal.h: |
| * UIProcess/Cocoa/DownloadClient.mm: |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrameInternal.h: |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInHitTestResultInternal.h: |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandleInternal.h: |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInPageGroupInternal.h: |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInRangeHandleInternal.h: |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInScriptWorldInternal.h: |
| * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerInternal.h: |
| * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInInternal.h: |
| Replaced inline wrapper functions with WrapperTraits structure template |
| specializations. This is always in the WebKit namespace, unlike the functions, |
| which were in a mix of namespaces. Also deleted some unneeded "#pragma once". |
| |
| 2018-08-19 David Kilzer <ddkilzer@apple.com> |
| |
| REGRESSION (r234396): Leak of CFURLRef in WebKit::NetworkProcess::deleteHSTSCacheForHostNames() |
| <https://webkit.org/b/188725> |
| |
| Reviewed by Dan Bernstein. |
| |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::deleteHSTSCacheForHostNames): Use |
| adoptCF() to prevent a leak. |
| |
| 2018-08-18 Andy Estes <aestes@apple.com> |
| |
| [watchOS] NetworkProximityManager should use WTF_MAKE_FAST_ALLOCATED |
| https://bugs.webkit.org/show_bug.cgi?id=188723 |
| |
| Reviewed by Sam Weinig. |
| |
| * NetworkProcess/watchos/NetworkProximityManager.h: |
| |
| 2018-08-18 Andy Estes <aestes@apple.com> |
| |
| [watchOS] Add more assertions to NetworkProximityAssertion |
| https://bugs.webkit.org/show_bug.cgi?id=188721 |
| |
| Reviewed by Wenson Hsieh. |
| |
| * NetworkProcess/watchos/NetworkProximityAssertion.mm: |
| (WebKit::NetworkProximityAssertion::hold): |
| (WebKit::NetworkProximityAssertion::release): |
| (WebKit::NetworkProximityAssertion::releaseTimerFired): |
| |
| 2018-08-18 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS] Paste is missing from callout bar when pasteboard only contains custom data |
| https://bugs.webkit.org/show_bug.cgi?id=184271 |
| <rdar://problem/39256708> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Currently, the "paste:" selector action cannot be performed during editing if the pasteboard only contains |
| custom pasteboard data. This is because logic in -[WKContentView canPerformActionForWebView:withSender:] only |
| checks against a list of pasteboard types which does not include the type identifier for custom pasteboard data. |
| To fix this, we allow pasting only in the case where none of the other type identifiers exist in the pasteboard, |
| as long as the custom pasteboard data type identifier is present, and the custom pasteboard data's origin |
| matches the origin of the focused frame's document. |
| |
| Test: PasteMixedContent.CopyAndPasteWithCustomPasteboardDataOnly |
| |
| * Shared/EditorState.cpp: |
| (WebKit::EditorState::encode const): |
| (WebKit::EditorState::decode): |
| * Shared/EditorState.h: |
| |
| Add a originIdentifierForPasteboard field, and add support for encoding it when propagating EditorState via IPC. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView canPerformActionForWebView:withSender:]): |
| |
| If none of the conventional pasteboard type identifiers for rich or plain text editing are present, check to see |
| if we have custom pasteboard data; if so, only allow pasting if the custom pasteboard data's origin matches that |
| of the focused frame's document origin. |
| |
| Additionally refactor a bit of logic by pulling out `_page->editorState()` into a separate local variable, used |
| throughout the rest of the method. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::editorState const): |
| |
| Send the focused frame's document origin to the UI process via EditorState. |
| |
| 2018-08-17 Tim Horton <timothy_horton@apple.com> |
| |
| Start bringing up Unified Sources in WebKit2 |
| https://bugs.webkit.org/show_bug.cgi?id=188703 |
| |
| Reviewed by Simon Fraser. |
| |
| * Configurations/BaseTarget.xcconfig: |
| Add SRCROOT to the include path, so unified sources can find the source files. |
| |
| * Shared/APIWebArchive.mm: |
| (API::releaseWebArchiveData): |
| (API::WebArchive::data): |
| (API::releaseCFData): Deleted. |
| * Shared/APIWebArchiveResource.mm: |
| (API::releaseWebArchiveResourceData): |
| (API::WebArchiveResource::data): |
| (API::releaseCFData): Deleted. |
| Disambiguate two static methods by renaming them. |
| |
| * Shared/cf/ArgumentCodersCF.cpp: |
| Leave a comment about the bizarreness of this file. |
| |
| * Shared/NavigationActionData.cpp: |
| (WebKit::NavigationActionData::decode): |
| * Shared/WebPlatformTouchPoint.cpp: |
| * Shared/WebPopupItem.cpp: |
| (WebKit::WebPopupItem::WebPopupItem): |
| (WebKit::WebPopupItem::decode): |
| * Shared/WebPreferencesStore.cpp: |
| * Shared/WebRenderLayer.cpp: |
| (WebKit::WebRenderLayer::create): |
| (WebKit::WebRenderLayer::createArrayFromLayerList): |
| (WebKit::WebRenderLayer::WebRenderLayer): |
| * Shared/gtk/WebEventFactory.cpp: |
| * Shared/mac/WebCoreArgumentCodersMac.mm: |
| * Shared/mac/WebEventFactory.mm: |
| (WebKit::WebEventFactory::createWebMouseEvent): |
| (WebKit::WebEventFactory::createWebWheelEvent): |
| (WebKit::WebEventFactory::createWebKeyboardEvent): |
| * Shared/mac/WebMemorySampler.mac.mm: |
| (WebKit::WebMemorySampler::sampleWebKit const): |
| * UIProcess/API/APIAutomationSessionClient.h: |
| (API::AutomationSessionClient::sessionIdentifier const): |
| (API::AutomationSessionClient::messageOfCurrentJavaScriptDialogOnPage): |
| * Shared/RemoteLayerTree/RemoteLayerBackingStore.mm: |
| (WebKit::RemoteLayerBackingStore::ensureBackingStore): |
| (WebKit::RemoteLayerBackingStore::setNeedsDisplay): |
| (WebKit::RemoteLayerBackingStore::backingStoreSize const): |
| (WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer): |
| (WebKit::RemoteLayerBackingStore::display): |
| (WebKit::RemoteLayerBackingStore::drawInContext): |
| (WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer): |
| * Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm: |
| (WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::LayerCreationProperties): |
| (WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties): |
| (WebKit::RemoteLayerTreeTransaction::LayerProperties::decode): |
| (WebKit::RemoteLayerTreeTransaction::decode): |
| (WebKit::RemoteLayerTreeTransaction::setRootLayerID): |
| (WebKit::RemoteLayerTreeTransaction::setDestroyedLayerIDs): |
| (WebKit::RemoteLayerTreeTransaction::setLayerIDsWithNewlyUnreachableBackingStore): |
| (WebKit::dumpChangedLayers): |
| (WebKit::RemoteLayerTreeTransaction::description const): |
| * Shared/WebPlatformTouchPoint.cpp: |
| (WebKit::WebPlatformTouchPoint::WebPlatformTouchPoint): |
| Get rid of lots of `using namespace`. |
| |
| * Sources.txt: Added. |
| * SourcesCocoa.txt: Added. |
| * WebKit.xcodeproj/project.pbxproj: |
| Set up unified sources. |
| Right now, we only unify Platform/ and Shared/[^API]. |
| |
| 2018-08-17 Aditya Keerthi <akeerthi@apple.com> |
| |
| [Datalist][iOS] Display suggestions for input[type=color] |
| https://bugs.webkit.org/show_bug.cgi?id=188669 |
| |
| Reviewed by Tim Horton. |
| |
| An input[type=color] element that has an associated datalist element should |
| display the color values provided on iOS. Similar to macOS, we now support 1-12 |
| suggested colors, that will be displayed at the top of the color picker. |
| |
| Also ensured that we get rounded corners on both sides of a color swatch if it is |
| the only one in its row. |
| |
| * Shared/AssistedNodeInformation.cpp: Added suggestedColors field. |
| (WebKit::AssistedNodeInformation::encode const): |
| (WebKit::AssistedNodeInformation::decode): |
| * Shared/AssistedNodeInformation.h: |
| * UIProcess/ios/forms/WKFormColorPicker.mm: |
| (+[WKColorPicker defaultTopColorMatrix]): |
| (-[WKColorPicker initWithView:]): Use the list of suggestedColors if it exists. |
| (-[WKColorPicker drawSelectionIndicatorForColorButton:]): |
| * WebProcess/WebCoreSupport/WebColorChooser.cpp: |
| (WebKit::WebColorChooser::WebColorChooser): |
| (WebKit::WebColorChooser::reattachColorChooser): |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::getAssistedNodeInformation): |
| |
| 2018-08-17 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r234991. |
| |
| Caused an assertion failure on the bots. |
| |
| Reverted changeset: |
| |
| "Pass webPageID and webFrameID to NetworkLoad for speculative |
| loads" |
| https://bugs.webkit.org/show_bug.cgi?id=188682 |
| https://trac.webkit.org/changeset/234991 |
| |
| 2018-08-17 Alex Christensen <achristensen@webkit.org> |
| |
| Add some plumbing for safe browsing |
| https://bugs.webkit.org/show_bug.cgi?id=188709 |
| |
| Reviewed by Tim Horton. |
| |
| Also adding a URL to SafeBrowsingResult because we'll need it. |
| Also adding a bool to LoadParameters because we will need to do special things |
| when loading the safe browsing warning, like adding a way to skip the safe browsing check. |
| |
| * Shared/LoadParameters.cpp: |
| (WebKit::LoadParameters::encode const): |
| (WebKit::LoadParameters::decode): |
| * Shared/LoadParameters.h: |
| * UIProcess/Cocoa/SafeBrowsingResultCocoa.mm: |
| (WebKit::SafeBrowsingResult::SafeBrowsingResult): |
| * UIProcess/Cocoa/WebPageProxyCocoa.mm: |
| (WebKit::WebPageProxy::beginSafeBrowsingCheck): |
| * UIProcess/SafeBrowsingResult.h: |
| (WebKit::SafeBrowsingResult::url const): |
| * 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-08-16 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Replace canBubble and cancelable booleans in Event by enum classes |
| https://bugs.webkit.org/show_bug.cgi?id=188692 |
| |
| Reviewed by Alex Christensen. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::navigateToPDFLinkWithSimulatedClick): |
| |
| 2018-08-17 Andy Estes <aestes@apple.com> |
| |
| [Xcode] Fix up file reference paths in Source/WebKit/NetworkProcess |
| https://bugs.webkit.org/show_bug.cgi?id=188700 |
| |
| Rubber-stamped by Dan Bernstein. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-08-17 Alex Christensen <achristensen@webkit.org> |
| |
| Pass webPageID and webFrameID to NetworkLoad for speculative loads |
| https://bugs.webkit.org/show_bug.cgi?id=188682 |
| |
| Reviewed by Youenn Fablet. |
| |
| This also removes an authentication shortcut I introduced in r234941 |
| |
| * NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp: |
| (WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad): |
| (WebKit::NetworkCache::SpeculativeLoad::didReceiveResponse): |
| * Shared/Authentication/AuthenticationManager.cpp: |
| (WebKit::AuthenticationManager::didReceiveAuthenticationChallenge): |
| |
| 2018-08-17 Alex Christensen <achristensen@webkit.org> |
| |
| Simplify server trust authentication flow |
| https://bugs.webkit.org/show_bug.cgi?id=188684 |
| |
| Reviewed by Youenn Fablet. |
| |
| We unnecessarily had the allowsSpecificHTTPSCertificateForHost check at two different abstraction levels. |
| |
| * NetworkProcess/NetworkLoad.cpp: |
| (WebKit::NetworkLoad::didReceiveChallenge): |
| * NetworkProcess/NetworkSession.cpp: |
| (WebKit::NetworkSession::allowsSpecificHTTPSCertificateForHost): Deleted. |
| * NetworkProcess/NetworkSession.h: |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]): |
| |
| 2018-08-17 Alex Christensen <achristensen@webkit.org> |
| |
| Fix API tests after r234985 |
| https://bugs.webkit.org/show_bug.cgi?id=188679 |
| |
| * UIProcess/API/C/WKPage.cpp: |
| (encodingOf): |
| (dataFrom): |
| The encoding of null strings had changed, which is no big deal because there's no data in that encoding, |
| but switching it back fixes the tests. |
| |
| 2018-08-17 Alex Christensen <achristensen@webkit.org> |
| |
| Replace WebPageProxy::loadAlternateHTMLString with loadAlternateHTML |
| https://bugs.webkit.org/show_bug.cgi?id=188679 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * Shared/LoadParameters.cpp: |
| (WebKit::LoadParameters::encode const): |
| (WebKit::LoadParameters::decode): |
| * Shared/LoadParameters.h: |
| * UIProcess/API/C/WKPage.cpp: |
| (encodingOf): |
| (dataFrom): |
| (loadString): |
| (WKPageLoadAlternateHTMLString): |
| (WKPageLoadAlternateHTMLStringWithUserData): |
| * UIProcess/API/Cocoa/WKBrowsingContextController.mm: |
| (-[WKBrowsingContextController loadAlternateHTMLString:baseURL:forUnreachableURL:]): |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _loadAlternateHTMLString:baseURL:forUnreachableURL:]): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::loadAlternateHTML): |
| (WebKit::WebPageProxy::loadAlternateHTMLString): Deleted. |
| * UIProcess/WebPageProxy.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::loadAlternateHTMLString): |
| |
| 2018-08-17 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, rolling out r234259. |
| |
| Caused excessive CPU usage |
| |
| Reverted changeset: |
| |
| "[GTK][WPE] Improve the way request displayRefresh |
| notifications" |
| https://bugs.webkit.org/show_bug.cgi?id=188005 |
| https://trac.webkit.org/changeset/234259 |
| |
| 2018-08-16 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r234958. |
| https://bugs.webkit.org/show_bug.cgi?id=188683 |
| |
| Breaking builds due to copy failure (Requested by brichards on |
| #webkit). |
| |
| Reverted changeset: |
| |
| "Add script to generate WebContent service resource files" |
| https://bugs.webkit.org/show_bug.cgi?id=188601 |
| https://trac.webkit.org/changeset/234958 |
| |
| 2018-08-16 Sihui Liu <sihui_liu@apple.com> |
| |
| Remove unused parentProcessName from NetworkProcessCreationParameters |
| https://bugs.webkit.org/show_bug.cgi?id=188618 |
| |
| Reviewed by Alex Christensen. |
| |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeNetworkProcess): |
| |
| 2018-08-16 Andy Estes <aestes@apple.com> |
| |
| [watchOS] Upstream Proximity Networking (nee Wi-Fi Assertions) |
| https://bugs.webkit.org/show_bug.cgi?id=188664 |
| |
| Reviewed by Tim Horton. |
| |
| Proximity Networking provides two features for speeding up page loads on watchOS: |
| |
| 1. Binding requests to the Apple Watch's Wi-Fi interface even when the iPhone is in proximity. |
| 2. When Wi-Fi isn't available, preemptively upgrading the Bluetooth link to its fastest data |
| rate prior to starting page loads. |
| |
| * Configurations/WebKit.xcconfig: |
| |
| Added LDFLAGS for Proximity Networking. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::NetworkProcess): |
| (WebKit::NetworkProcess::proximityManager): |
| * NetworkProcess/NetworkProcess.h: |
| |
| Added NetworkProximityManager as a supplement. |
| |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| |
| Renamed ENABLE(WIFI_ASSERTIONS) to ENABLE(PROXIMITY_NETWORKING). |
| |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.h: |
| |
| Renamed m_wiFiAssertionHolder to m_proximityAssertionToken and changed its type from an |
| optional WiFiAssertionHolder to an optional NetworkProximityAssertion::Token. |
| |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa): |
| (WebKit::NetworkProcess::platformPrepareToSuspend): |
| (WebKit::NetworkProcess::platformProcessDidResume): |
| (WebKit::NetworkProcess::platformProcessDidTransitionToBackground): |
| (WebKit::NetworkProcess::platformProcessDidTransitionToForeground): |
| |
| Changed to use NetworkProximityManager. |
| |
| * NetworkProcess/cocoa/WiFiAssertionHolder.h: Removed. |
| * NetworkProcess/cocoa/WiFiAssertionHolder.mm: Removed. |
| * NetworkProcess/watchos/NetworkProximityAssertion.h: Added. |
| (WebKit::NetworkProximityAssertion::Token::Token): |
| (WebKit::NetworkProximityAssertion::Token::~Token): |
| |
| Added. NetworkDataTasks hold these tokens to keep Bluetooth or Wi-Fi assertions active |
| during loading. When the last token is destroyed, its associated assertion will be |
| deactivated. |
| |
| * NetworkProcess/watchos/NetworkProximityAssertion.mm: Added. |
| (WebKit::NetworkProximityAssertion::NetworkProximityAssertion): |
| (WebKit::NetworkProximityAssertion::hold): |
| (WebKit::NetworkProximityAssertion::release): |
| (WebKit::NetworkProximityAssertion::resume): |
| (WebKit::NetworkProximityAssertion::suspend): |
| (WebKit::NetworkProximityAssertion::suspendNow): |
| (WebKit::NetworkProximityAssertion::releaseTimerFired): |
| (WebKit::NetworkProximityAssertion::suspendAfterBackgroundingTimerFired): |
| |
| Added. NetworkProximityAssertion is the base class for Bluetooth and Wi-Fi assertions. It |
| manages the logic for holding and releasing assertions as well as responding to network |
| process backgrounding and suspension. |
| |
| (WebKit::BluetoothProximityAssertion::BluetoothProximityAssertion): |
| (WebKit::BluetoothProximityAssertion::suspend): |
| (WebKit::BluetoothProximityAssertion::holdNow): |
| (WebKit::BluetoothProximityAssertion::releaseNow): |
| |
| Added. Holds a Bluetooth assertion by calling -[IDSService setLinkPreferences:]. |
| |
| (WebKit::WiFiProximityAssertion::WiFiProximityAssertion): |
| (WebKit::WiFiProximityAssertion::holdNow): |
| (WebKit::WiFiProximityAssertion::releaseNow): |
| |
| Added. Holds a Wi-Fi assertion by using WiFiManagerClient. |
| |
| * NetworkProcess/watchos/NetworkProximityManager.h: Added. |
| * NetworkProcess/watchos/NetworkProximityManager.mm: Added. |
| (-[WKProximityServiceDelegate setClient:]): |
| (-[WKProximityServiceDelegate service:devicesChanged:]): |
| (-[WKProximityServiceDelegate service:nearbyDevicesChanged:]): |
| (WebKit::NetworkProximityManager::NetworkProximityManager): |
| (WebKit::NetworkProximityManager::~NetworkProximityManager): |
| (WebKit::NetworkProximityManager::supplementName): |
| (WebKit::bindRequestToWiFi): |
| (WebKit::NetworkProximityManager::applyProperties): |
| (WebKit::NetworkProximityManager::resume): |
| (WebKit::NetworkProximityManager::suspend): |
| (WebKit::NetworkProximityManager::recommendation const): |
| (WebKit::NetworkProximityManager::processRecommendations): |
| (WebKit::toProcessID): |
| (WebKit::NetworkProximityManager::resumeRecommendations): |
| (WebKit::NetworkProximityManager::suspendRecommendations): |
| (WebKit::NetworkProximityManager::updateCompanionProximity): |
| (WebKit::NetworkProximityManager::updateRecommendation): |
| (WebKit::NetworkProximityManager::initialize): |
| (WebKit::NetworkProximityManager::devicesChanged): |
| |
| Added. NetworkProximityManager is a network process supplement that can bind |
| NetworkDataTasks to Wi-Fi, associate assertions with NetworkDataTasks, check for companion |
| proximity, ask for proximity network recommendations, and respond to network process |
| backgrounding and suspending. |
| |
| * Platform/Logging.h: |
| |
| Renamed the WiFiAssertions log channel to ProximityNetworking. |
| |
| * Platform/spi/ios/MobileWiFiSPI.h: |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| (API::ProcessPoolConfiguration::copy): |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeNetworkProcess): |
| |
| Renamed ENABLE(WIFI_ASSERTIONS) to ENABLE(PROXIMITY_NETWORKING). |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| * config.h: |
| |
| Removed unused definition of HAVE_MOBILE_WIFI. |
| |
| 2018-08-16 Alex Christensen <achristensen@webkit.org> |
| |
| Remove unused and deprecated _WKProcessPoolConfiguration.allowsCellularAccess |
| https://bugs.webkit.org/show_bug.cgi?id=188681 |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: |
| (-[_WKProcessPoolConfiguration allowsCellularAccess]): Deleted. |
| (-[_WKProcessPoolConfiguration setAllowsCellularAccess:]): Deleted. |
| |
| 2018-08-16 Alex Christensen <achristensen@webkit.org> |
| |
| Deprecate SPI that is or ought to be unused |
| https://bugs.webkit.org/show_bug.cgi?id=188616 |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: |
| * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): |
| * UIProcess/Cocoa/UIDelegate.mm: |
| (WebKit::UIDelegate::ContextMenuClient::menuFromProposedMenu): |
| |
| 2018-08-16 Alex Christensen <achristensen@webkit.org> |
| |
| Add temporary SPI WKContextHandlesSafeBrowsing |
| https://bugs.webkit.org/show_bug.cgi?id=188676 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| WebKit showing the safe browsing warning doesn't play well with Safari showing the safe browsing warning. |
| I plan to adopt this SPI in Safari to disable Safari's safe browsing check if it's true. |
| Then when I implement safe browsing in WebKit, I can switch this value to true in the same change and |
| not have a broken Safari. |
| |
| * UIProcess/API/C/mac/WKContextPrivateMac.h: |
| * UIProcess/API/C/mac/WKContextPrivateMac.mm: |
| (WKContextHandlesSafeBrowsing): |
| |
| 2018-08-16 Ben Richards <benton_richards@apple.com> |
| |
| Add script to generate WebContent service resource files |
| https://bugs.webkit.org/show_bug.cgi?id=188601 |
| |
| Reviewed by Dan Bernstein. |
| |
| Added new build phase to WebContent service to copy resource files to WebKit.framework/PrivateHeaders/CustomWebContentResource. |
| These resources are intended to be used by a client to create a custom WebContent service. |
| |
| * Scripts/copy-webcontent-resources-to-private-headers.sh: Added. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-08-16 Alex Christensen <achristensen@webkit.org> |
| |
| Consolidate data/string API loading paths |
| https://bugs.webkit.org/show_bug.cgi?id=188417 |
| |
| Reviewed by Michael Catanzaro. |
| |
| loadHTMLString and loadData are basically duplicate code. |
| loadPlainTextString was also basically the same except it didn't set up a navigation, which |
| was almost certainly a bug, but nobody uses it in all of Apple and Debian. We should probably deprecate |
| and remove it, but for now I make it use the same data loading path. |
| |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageLoadData): |
| (WKPageLoadDataWithUserData): |
| (loadString): |
| (WKPageLoadHTMLString): |
| (WKPageLoadHTMLStringWithUserData): |
| (WKPageLoadPlainTextString): |
| (WKPageLoadPlainTextStringWithUserData): |
| * UIProcess/API/Cocoa/WKBrowsingContextController.mm: |
| (-[WKBrowsingContextController loadHTMLString:baseURL:userData:]): |
| (-[WKBrowsingContextController loadData:MIMEType:textEncodingName:baseURL:userData:]): |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView loadData:MIMEType:characterEncodingName:baseURL:]): |
| (-[WKWebView _loadData:MIMEType:characterEncodingName:baseURL:userData:]): |
| * UIProcess/API/glib/WebKitWebView.cpp: |
| (webkit_web_view_load_html): |
| (webkit_web_view_load_plain_text): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::loadData): |
| (WebKit::WebPageProxy::loadHTMLString): Deleted. |
| (WebKit::WebPageProxy::loadPlainTextString): Deleted. |
| * UIProcess/WebPageProxy.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::loadData): |
| (WebKit::WebPage::loadString): Deleted. |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2018-08-16 Alex Christensen <achristensen@webkit.org> |
| |
| Transition more WKWebViewConfiguration ivars to API::PageConfiguration values |
| https://bugs.webkit.org/show_bug.cgi?id=188665 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| APPLICATION_MANIFEST is enabled on all Cocoa platforms, so I removed some guards, too! |
| |
| * UIProcess/API/APIPageConfiguration.cpp: |
| (API::PageConfiguration::applicationManifest const): |
| * UIProcess/API/APIPageConfiguration.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: |
| (-[WKWebViewConfiguration init]): |
| (-[WKWebViewConfiguration copyWithZone:]): |
| (-[WKWebViewConfiguration _applicationManifest]): |
| (-[WKWebViewConfiguration _setApplicationManifest:]): |
| (-[WKWebViewConfiguration _setCPULimit:]): |
| (-[WKWebViewConfiguration _cpuLimit]): |
| |
| 2018-08-16 Alex Christensen <achristensen@webkit.org> |
| |
| Transition more WKWebViewConfiguration ivars to API::PageConfiguration values |
| https://bugs.webkit.org/show_bug.cgi?id=188663 |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: |
| (-[WKWebViewConfiguration init]): |
| (-[WKWebViewConfiguration copyWithZone:]): |
| (-[WKWebViewConfiguration _drawsBackground]): |
| (-[WKWebViewConfiguration _setDrawsBackground:]): |
| (-[WKWebViewConfiguration _waitsForPaintAfterViewDidMoveToWindow]): |
| (-[WKWebViewConfiguration _setWaitsForPaintAfterViewDidMoveToWindow:]): |
| (-[WKWebViewConfiguration _isControlledByAutomation]): |
| (-[WKWebViewConfiguration _setControlledByAutomation:]): |
| |
| 2018-08-16 Alex Christensen <achristensen@webkit.org> |
| |
| Stop using canAuthenticateAgainstProtectionSpace in modern WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=188639 |
| |
| Reviewed by Youenn Fablet. |
| |
| canAuthenticateAgainstProtectionSpace is an unnecessary step in the authentication process. |
| It is leftover from when it was necessary when we used NSURLConnection, which is only used in WebKitLegacy now. |
| Now it's just an extra IPC roundtrip asking if we should use NSURLSessionAuthChallengeRejectProtectionSpace |
| or if we are going to ask the API client. We can move this step into the C API for compatibility |
| with the 1 client that still uses it (not for long, see rdar://problem/43358403) and simplify and optimize |
| authentication. |
| |
| * NetworkProcess/Downloads/PendingDownload.cpp: |
| (WebKit::PendingDownload::canAuthenticateAgainstProtectionSpaceAsync): Deleted. |
| * NetworkProcess/Downloads/PendingDownload.h: |
| * NetworkProcess/NetworkCORSPreflightChecker.cpp: |
| (WebKit::NetworkCORSPreflightChecker::didReceiveChallenge): |
| * NetworkProcess/NetworkLoad.cpp: |
| (WebKit::NetworkLoad::~NetworkLoad): |
| (WebKit::NetworkLoad::didReceiveChallenge): |
| (WebKit::NetworkLoad::completeAuthenticationChallenge): Deleted. |
| (WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace): Deleted. |
| * NetworkProcess/NetworkLoad.h: |
| * NetworkProcess/NetworkLoadClient.h: |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::cancelDownload): |
| (WebKit::NetworkProcess::canAuthenticateAgainstProtectionSpace): Deleted. |
| (WebKit::NetworkProcess::continueCanAuthenticateAgainstProtectionSpace): Deleted. |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::canAuthenticateAgainstProtectionSpaceAsync): Deleted. |
| * NetworkProcess/NetworkResourceLoader.h: |
| * NetworkProcess/PreconnectTask.cpp: |
| (WebKit::PreconnectTask::canAuthenticateAgainstProtectionSpaceAsync): Deleted. |
| * NetworkProcess/PreconnectTask.h: |
| * NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp: |
| (WebKit::NetworkCache::SpeculativeLoad::canAuthenticateAgainstProtectionSpaceAsync): Deleted. |
| * NetworkProcess/cache/NetworkCacheSpeculativeLoad.h: |
| * Shared/Authentication/AuthenticationManager.cpp: |
| (WebKit::AuthenticationManager::didReceiveAuthenticationChallenge): |
| * Shared/Authentication/AuthenticationManager.h: |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetPageNavigationClient): |
| * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: |
| * UIProcess/Cocoa/NavigationState.h: |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::setNavigationDelegate): |
| (WebKit::NavigationState::NavigationClient::didReceiveAuthenticationChallenge): |
| (WebKit::NavigationState::NavigationClient::canAuthenticateAgainstProtectionSpace): Deleted. |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::canAuthenticateAgainstProtectionSpace): Deleted. |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::canAuthenticateAgainstProtectionSpace): Deleted. |
| * UIProcess/WebPageProxy.h: |
| |
| 2018-08-15 Jer Noble <jer.noble@apple.com> |
| |
| Add Experimental Feature support for SourceBuffer.changeType() |
| https://bugs.webkit.org/show_bug.cgi?id=188626 |
| |
| Reviewed by Eric Carlson. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetSourceBufferChangeTypeEnabled): |
| (WKPreferencesGetSourceBufferChangeTypeEnabled): |
| * UIProcess/API/C/WKPreferencesRefPrivate.h: |
| |
| 2018-08-16 Alex Christensen <achristensen@webkit.org> |
| |
| Transition more WKWebViewConfiguration ivars to API::PageConfiguration values |
| https://bugs.webkit.org/show_bug.cgi?id=188661 |
| |
| Reviewed by Anders Carlsson. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: |
| (-[WKWebViewConfiguration init]): |
| (-[WKWebViewConfiguration copyWithZone:]): |
| (-[WKWebViewConfiguration _alwaysRunsAtForegroundPriority]): |
| (-[WKWebViewConfiguration _setAlwaysRunsAtForegroundPriority:]): |
| (-[WKWebViewConfiguration _initialCapitalizationEnabled]): |
| (-[WKWebViewConfiguration _setInitialCapitalizationEnabled:]): |
| (-[WKWebViewConfiguration _overrideContentSecurityPolicy]): |
| (-[WKWebViewConfiguration _setOverrideContentSecurityPolicy:]): |
| |
| 2018-08-16 Aditya Keerthi <akeerthi@apple.com> |
| |
| Support drag-and-drop for input[type=color] |
| https://bugs.webkit.org/show_bug.cgi?id=188464 |
| |
| Reviewed by Wenson Hsieh. |
| |
| On iOS, the drag preview for the color input is a rounded rectangle. In order to |
| ensure that the corners appear transparent, the visiblePath property of the |
| UIDragPreviewParameters was set to match the preview's shape. This also required |
| the creation of an additional ArgumentCoder for Path. |
| |
| When beginning the drag session, the preview should appear centered about the |
| color input. This is managed in createTargetedDragPreview. However, once the |
| preview is dragged, the preview should be at the center of the touch location. |
| Consequently, DragSourceActionColor was added to the list of sources that could |
| update the drag preview after lifting. |
| |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<Path>::decode): |
| * Shared/WebCoreArgumentCoders.h: |
| * UIProcess/Cocoa/WebPasteboardProxyCocoa.mm: |
| (WebKit::WebPasteboardProxy::setPasteboardColor): |
| * UIProcess/WebPasteboardProxy.h: |
| * UIProcess/WebPasteboardProxy.messages.in: |
| * UIProcess/ios/DragDropInteractionState.h: |
| * UIProcess/ios/DragDropInteractionState.mm: |
| (WebKit::createTargetedDragPreview): |
| (WebKit::shouldUseDragImageToCreatePreviewForDragSource): |
| (WebKit::shouldUseVisiblePathToCreatePreviewForDragSource): |
| (WebKit::canUpdatePreviewForActiveDragSource): |
| (WebKit::DragDropInteractionState::previewForDragItem const): |
| (WebKit::DragDropInteractionState::stageDragItem): |
| (WebKit::DragDropInteractionState::updatePreviewsForActiveDragSources): |
| * UIProcess/ios/forms/WKFormColorPicker.mm: |
| (-[WKColorPicker initWithView:]): |
| * UIProcess/mac/WebColorPickerMac.h: |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: |
| (WebKit::WebPlatformStrategies::setColor): |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.h: |
| |
| 2018-08-16 Per Arne Vollan <pvollan@apple.com> |
| |
| Assert that calling CGSSetDenyWindowServerConnections(true) succeeds |
| https://bugs.webkit.org/show_bug.cgi?id=188615 |
| |
| Reviewed by Brent Fulgham. |
| |
| If the call to CGSSetDenyWindowServerConnections(true) fails, it means there are open WindowServer connections |
| at this point, and future WindowServer connections will not be denied. We should assert that this call succeeds. |
| |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::platformInitializeProcess): |
| |
| 2018-08-16 Philippe Normand <pnormand@igalia.com> |
| |
| Unreviewed, WPE build fix after r234920. |
| |
| * UIProcess/API/wpe/PageClientImpl.cpp: |
| (WebKit::PageClientImpl::isViewWindowActive): |
| (WebKit::PageClientImpl::isViewFocused): |
| (WebKit::PageClientImpl::isViewVisible): |
| (WebKit::PageClientImpl::isViewInWindow): |
| * UIProcess/API/wpe/WPEView.cpp: |
| (WKWPE::View::setViewState): |
| * UIProcess/API/wpe/WPEView.h: |
| |
| 2018-08-16 Antti Koivisto <antti@apple.com> |
| |
| Use OptionSet for ActivityState::Flags |
| https://bugs.webkit.org/show_bug.cgi?id=188554 |
| |
| Reviewed by Brent Fulgham. |
| |
| * Shared/WebPageCreationParameters.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::windowDidOrderOffScreen): |
| (WebKit::WebViewImpl::windowDidOrderOnScreen): |
| (WebKit::WebViewImpl::viewDidMoveToWindow): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::updateActivityState): |
| (WebKit::WebPageProxy::activityStateDidChange): |
| (WebKit::WebPageProxy::dispatchActivityStateChange): |
| (WebKit::WebPageProxy::setMuted): |
| (WebKit::WebPageProxy::isPlayingMediaDidChange): |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::isInWindow const): |
| (WebKit::WebPageProxy::isViewVisible const): |
| (WebKit::WebPageProxy::isViewFocused const): |
| (WebKit::WebPageProxy::isViewWindowActive const): |
| * WebProcess/Plugins/PluginView.cpp: |
| (WebKit::PluginView::activityStateDidChange): |
| * WebProcess/Plugins/PluginView.h: |
| * WebProcess/WebPage/DrawingArea.h: |
| (WebKit::DrawingArea::activityStateDidChange): |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm: |
| (WebKit::RemoteLayerTreeDrawingArea::activityStateDidChange): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::updateThrottleState): |
| (WebKit::WebPage::updateIsInWindow): |
| (WebKit::WebPage::visibilityDidChange): |
| (WebKit::WebPage::setActivityState): |
| * WebProcess/WebPage/WebPage.h: |
| (WebKit::WebPage::isVisible const): |
| (WebKit::WebPage::isVisibleOrOccluded const): |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h: |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: |
| (WebKit::TiledCoreAnimationDrawingArea::activityStateDidChange): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::pageActivityStateDidChange): |
| * WebProcess/WebProcess.h: |
| |
| 2018-08-15 Ansh Shukla <ansh_shukla@apple.com> |
| |
| NSURLAuthenticationMethodOAuth challenges are surfaced to clients in -didReceiveAuthenticationChallenge as NSURLAuthenticationMethodDefault |
| https://bugs.webkit.org/show_bug.cgi?id=186870 |
| <rdar://problem/41314410> |
| |
| Reviewed by Alex Christensen. |
| |
| Correctly expose the OAuth protection space type in API. |
| |
| * UIProcess/API/C/WKAPICast.h: |
| (WebKit::toAPI): |
| * UIProcess/API/C/WKProtectionSpaceTypes.h: |
| |
| 2018-08-15 Ben Richards <benton_richards@apple.com> |
| |
| We should cache the compiled sandbox profile in a data vault |
| https://bugs.webkit.org/show_bug.cgi?id=184991 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| This patch changes a few things (note: data vaults and sandbox entitlements are only used in internal builds): |
| (1) Instead of compiling a sandbox every time a process is launched, processes now look for a cached sandbox |
| in a process specific data vault on macOS platforms. (ChildProcessMac.mm) |
| (2) If a valid cached sandbox is not found, a process will create the data vault (or ensure that it exists), |
| compile a sandbox, and cache it. |
| (3) In order to create process specific data vaults, each process now has their own <process name>-OSX-sandbox.entitlements |
| file which contains an entitlement with a process specific "storage class" which ensures that each process |
| can only ever access its own data vault. (See the article on confluence "Data Vaults and Restricted Files" for more info) |
| (4) The sandbox entitlements file for the Network and WebContent services are loaded dynamically |
| through Scripts/<process name>-process-entitlements.sh which is triggered in a new build phase for each service. |
| The Storage process sandbox entitlements are loaded directly in Configurations/StorageService.xcconfig. |
| The reason that the sandbox entitlements are applied dynamically is so that these sandbox entitlements |
| are only applied when WK_USE_RESTRICTED_ENTITLEMENTS is YES. This means that open source builds will still work. |
| |
| * Configurations/Network-OSX-sandbox.entitlements: Added. |
| * Configurations/Storage-OSX-sandbox.entitlements: Added. |
| * Configurations/StorageService.xcconfig: |
| * Configurations/WebContent-OSX-sandbox.entitlements: Added. |
| * Configurations/WebKit.xcconfig: |
| * NetworkProcess/NetworkProcess.h: |
| * PluginProcess/PluginProcess.h: |
| * Scripts/process-network-sandbox-entitlements.sh: Added. |
| * Scripts/process-webcontent-sandbox-entitlements.sh: Added. |
| * Shared/ChildProcess.h: |
| * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h: |
| (WebKit::XPCServiceInitializer): |
| * Shared/SandboxInitializationParameters.h: |
| (WebKit::SandboxInitializationParameters::setOverrideSandboxProfilePath): |
| (WebKit::SandboxInitializationParameters::overrideSandboxProfilePath const): |
| (WebKit::SandboxInitializationParameters::setSandboxProfile): |
| (WebKit::SandboxInitializationParameters::sandboxProfile const): |
| (): Deleted. |
| * Shared/mac/ChildProcessMac.mm: |
| (WebKit::SandboxProfileDeleter::operator()): |
| (WebKit::SandboxParametersDeleter::operator()): |
| (WebKit::SandboxInfo::SandboxInfo): |
| (WebKit::fileContents): |
| (WebKit::processStorageClass): |
| (WebKit::setAndSerializeSandboxParameters): |
| (WebKit::sandboxDataVaultParentDirectory): |
| (WebKit::sandboxDirectory): |
| (WebKit::sandboxFilePath): |
| (WebKit::ensureSandboxCacheDirectory): |
| (WebKit::writeSandboxDataToCacheFile): |
| (WebKit::compileAndCacheSandboxProfile): |
| (WebKit::tryApplyCachedSandbox): |
| (WebKit::webKit2Bundle): |
| (WebKit::getSandboxProfileOrProfilePath): |
| (WebKit::compileAndApplySandboxSlowCase): |
| (WebKit::applySandbox): |
| (WebKit::initializeSandboxParameters): |
| (WebKit::ChildProcess::initializeSandbox): |
| * Shared/mac/SandboxInitialiationParametersMac.mm: |
| (WebKit::SandboxInitializationParameters::SandboxInitializationParameters): |
| * StorageProcess/StorageProcess.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebProcess.h: |
| |
| 2018-08-15 Ross Kirsling <ross.kirsling@sony.com> |
| |
| [WinCairo] Unreviewed build fix after r234896. |
| |
| * NetworkProcess/curl/NetworkDataTaskCurl.cpp: |
| (WebKit::NetworkDataTaskCurl::tryHttpAuthentication): |
| |
| 2018-08-15 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Can't share an app on AppStore to WeChat due to a release assert |
| https://bugs.webkit.org/show_bug.cgi?id=188621 |
| <rdar://problem/43343976> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Disable the thread safety check when the app is not linked on or after iOS 12 since this release assert |
| is getting hit by third party applications on iOS in UI process. |
| |
| * UIProcess/Cocoa/VersionChecks.h: |
| (WebKit::SDKVersion::FirstWithMainThreadReleaseAssertionInWebPageProxy): Added. It's iOS 12 or macOS 10.14 Mojave. |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::isMainThreadOrCheckDisabled): Added. Returns true whether when we're in the main thread or if the app |
| is not linked on or after iOS 12 or macOS 10.14 Mojave. |
| (WebKit::globalPageMap): |
| (WebKit::m_isInPrewarmedPool): |
| (WebKit::WebProcessProxy::~WebProcessProxy): |
| (WebKit::WebProcessProxy::shutDown): |
| (WebKit::WebProcessProxy::deleteWebsiteDataForTopPrivatelyControlledDomainsInAllPersistentDataStores): |
| (WebKit::WebProcessProxy::topPrivatelyControlledDomainsWithWebsiteData): |
| (WebKit::WebProcessProxy::didFinishLaunching): |
| |
| 2018-08-15 Alex Christensen <achristensen@webkit.org> |
| |
| Remove WKNavigationDelegatePrivate's canAuthenticateAgainstProtectionSpace |
| https://bugs.webkit.org/show_bug.cgi?id=188622 |
| |
| Reviewed by Timothy Hatcher. |
| |
| It's been deprecated for a release now, nobody uses it, and it's a concept from NSURLConnection, which we don't use any more in WebKit2. |
| |
| * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: |
| * UIProcess/Cocoa/NavigationState.h: |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::setNavigationDelegate): |
| (WebKit::NavigationState::NavigationClient::canAuthenticateAgainstProtectionSpace): |
| |
| 2018-08-15 Tim Horton <timothy_horton@apple.com> |
| |
| Crashes in Quip under _dictionaryPopupInfoForRange, in setObject:forKey: |
| https://bugs.webkit.org/show_bug.cgi?id=188569 |
| <rdar://problem/34201095> |
| |
| Reviewed by Megan Gardner. |
| |
| * WebProcess/WebPage/mac/WebPageMac.mm: |
| (WebKit::WebPage::dictionaryPopupInfoForRange): |
| Speculative fix; the crashes indicate font is null, but we just checked it, |
| so it must be getting made null by convertFont:toSize:. Check again! |
| |
| 2018-08-15 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r234870. |
| |
| The test introduced with this change is a flaky failure. |
| |
| Reverted changeset: |
| |
| "NSURLAuthenticationMethodOAuth challenges are surfaced to |
| clients in -didReceiveAuthenticationChallenge as |
| NSURLAuthenticationMethodDefault" |
| https://bugs.webkit.org/show_bug.cgi?id=186870 |
| https://trac.webkit.org/changeset/234870 |
| |
| 2018-08-15 Alex Christensen <achristensen@webkit.org> |
| |
| NetworkCORSPreflightChecker should proceed in case of ProtectionSpaceAuthenticationSchemeServerTrustEvaluationRequested even though the WebKit app is not implementing the didReceiveAuthenticationChallenge/didReceiveAuthenticationChallengeInFrame callback |
| https://bugs.webkit.org/show_bug.cgi?id=188592 |
| <rdar://problem/43210331> |
| |
| Reviewed by Youenn Fablet. |
| |
| Do a canAuthenticateAgainstProtectionSpace check in NetworkCORSPreflightChecker like we do in NetworkLoad. |
| Use CompletionHandlers to make the now 3 different canAuthenticateAgainstProtectionSpace checks look the same from the NetworkProcess. |
| |
| * NetworkProcess/NetworkCORSPreflightChecker.cpp: |
| (WebKit::NetworkCORSPreflightChecker::didReceiveChallenge): |
| * NetworkProcess/NetworkCORSPreflightChecker.h: |
| * NetworkProcess/NetworkDataTask.h: |
| * NetworkProcess/NetworkLoad.cpp: |
| (WebKit::NetworkLoad::didReceiveChallenge): |
| * NetworkProcess/NetworkLoad.h: |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::canAuthenticateAgainstProtectionSpace): |
| (WebKit::NetworkProcess::continueCanAuthenticateAgainstProtectionSpace): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::canAuthenticateAgainstProtectionSpaceAsync): |
| (WebKit::NetworkResourceLoader::continueCanAuthenticateAgainstProtectionSpace): Deleted. |
| * NetworkProcess/NetworkResourceLoader.h: |
| * NetworkProcess/PingLoad.cpp: |
| (WebKit::PingLoad::didReceiveChallenge): |
| * NetworkProcess/PingLoad.h: |
| * NetworkProcess/PreconnectTask.cpp: |
| (WebKit::PreconnectTask::canAuthenticateAgainstProtectionSpaceAsync): |
| (WebKit::PreconnectTask::continueCanAuthenticateAgainstProtectionSpace): Deleted. |
| * NetworkProcess/PreconnectTask.h: |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.h: |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::didReceiveChallenge): |
| |
| 2018-08-15 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [WPE][GTK] WaylandCompositor fails to properly remove surface from its page map |
| https://bugs.webkit.org/show_bug.cgi?id=188520 |
| |
| Reviewed by Alex Christensen. |
| |
| willDestroySurface overwrites the surface pointer in the map's iterator in an attempt to |
| change the value of the surface pointer in the map, but it doesn't work because changing |
| the iterator does not change the map itself. There's no need to fix this function: it's |
| better to use WeakPtr instead. |
| |
| * UIProcess/gtk/WaylandCompositor.cpp: |
| (WebKit::WaylandCompositor::getTexture): |
| (WebKit::WaylandCompositor::bindSurfaceToWebPage): |
| (WebKit::WaylandCompositor::unregisterWebPage): |
| (WebKit::WaylandCompositor::willDestroySurface): Deleted. |
| * UIProcess/gtk/WaylandCompositor.h: |
| |
| 2018-08-15 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Attachment SPI] Remove attachment display mode options |
| https://bugs.webkit.org/show_bug.cgi?id=188596 |
| |
| Reviewed by Dan Bernstein. |
| |
| Remove attachment display mode from WebKit. Note that _WKAttachmentDisplayOptions needs to remain in the private |
| header for source compatibility with Mail. |
| |
| * UIProcess/API/Cocoa/_WKAttachment.mm: |
| (-[_WKAttachmentDisplayOptions coreDisplayOptions]): Deleted. |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::setAttachmentDisplayOptions): |
| |
| 2018-08-14 Sihui Liu <sihui_liu@apple.com> |
| |
| Crash in WebKit::filterPreloadHSTSEntry via NetworkProcess::getHostNamesWithHSTSCache |
| https://bugs.webkit.org/show_bug.cgi?id=188576 |
| <rdar://problem/43148977> |
| |
| Reviewed by Alex Christensen. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::fetchWebsiteData): |
| |
| 2018-08-14 Alex Christensen <achristensen@webkit.org> |
| |
| isValidCSSSelector is unsafe to be called from a non-main thread |
| https://bugs.webkit.org/show_bug.cgi?id=188581 |
| <rdar://problem/40517358> |
| |
| Reviewed by Sam Weinig. |
| |
| * UIProcess/API/APIContentRuleListStore.cpp: |
| (API::compiledToFile): |
| (API::ContentRuleListStore::lookupContentRuleList): |
| (API::ContentRuleListStore::getAvailableContentRuleListIdentifiers): |
| (API::ContentRuleListStore::compileContentRuleList): |
| (API::ContentRuleListStore::removeContentRuleList): |
| (API::ContentRuleListStore::getContentRuleListSource): |
| * UIProcess/API/APIContentRuleListStore.h: |
| * UIProcess/API/Cocoa/WKContentRuleListStore.mm: |
| |
| 2018-08-14 Ansh Shukla <ansh_shukla@apple.com> |
| |
| NSURLAuthenticationMethodOAuth challenges are surfaced to clients in -didReceiveAuthenticationChallenge as NSURLAuthenticationMethodDefault |
| https://bugs.webkit.org/show_bug.cgi?id=186870 |
| <rdar://problem/41314410> |
| |
| Reviewed by Alex Christensen. |
| |
| Correctly expose the OAuth protection space type in API. |
| |
| * UIProcess/API/C/WKAPICast.h: |
| (WebKit::toAPI): |
| * UIProcess/API/C/WKProtectionSpaceTypes.h: |
| |
| 2018-08-14 Ben Richards <benton_richards@apple.com> |
| |
| Remove api misuse check so that custom webcontent service identifier can be set at runtime |
| https://bugs.webkit.org/show_bug.cgi?id=188579 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Changed API misuse check so that a custom bundle identifier can be set at runtime with a debug flag |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::setCustomWebContentServiceBundleIdentifier): |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::getLaunchOptions): |
| |
| 2018-08-14 Antti Koivisto <antti@apple.com> |
| |
| RemoteLayerTreeTransaction should use OptionSet for change flags |
| https://bugs.webkit.org/show_bug.cgi?id=188547 |
| |
| Reviewed by Simon Fraser. |
| |
| * Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm: |
| (WebKit::RemoteLayerTreePropertyApplier::applyProperties): |
| * Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h: |
| (WebKit::RemoteLayerTreeTransaction::LayerProperties::notePropertiesChanged): |
| (WebKit::RemoteLayerTreeTransaction::LayerProperties::resetChangedProperties): |
| |
| Also remove unused everChangedProperties. |
| |
| * Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm: |
| (WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties): |
| (WebKit::RemoteLayerTreeTransaction::LayerProperties::encode const): |
| (WebKit::RemoteLayerTreeTransaction::LayerProperties::decode): |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp: |
| (WebKit::PlatformCALayerRemote::recursiveBuildTransaction): |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm: |
| (WebKit::RemoteLayerTreeDrawingArea::flushLayers): |
| |
| 2018-08-13 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [WK2] [macOS] Implement a mechanism to test drag and drop |
| https://bugs.webkit.org/show_bug.cgi?id=181898 |
| <rdar://problem/39181698> |
| |
| Reviewed by Simon Fraser. |
| |
| Adds a new SPI method, `-_doAfterProcessingAllPendingMouseEvents:`, to WKWebView. This invokes the given |
| callback after all queued mouse events have been handled by the web process. See Tools/ChangeLog for more |
| detail. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _doAfterProcessingAllPendingMouseEvents:]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/API/gtk/PageClientImpl.h: |
| * UIProcess/API/wpe/PageClientImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::processDidExit): |
| |
| Invoke any outstanding callbacks for processing pending mouse events when the web process is terminated. |
| |
| (WebKit::WebViewImpl::doAfterProcessingAllPendingMouseEvents): |
| |
| Either invoke the callback immediately if there are no mouse events to be processed, or insert the callback in |
| a queue that will be flushed once all mouse events have been handled. |
| |
| (WebKit::WebViewImpl::didFinishProcessingAllPendingMouseEvents): |
| (WebKit::WebViewImpl::flushPendingMouseEventCallbacks): |
| * UIProcess/PageClient.h: |
| (WebKit::PageClient::pinnedStateWillChange): |
| (WebKit::PageClient::pinnedStateDidChange): |
| (WebKit::PageClient::videoControlsManagerDidChange): |
| |
| Drive-by tweaks: remove unnecessary semicolons after empty implementation stubs. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didReceiveEvent): |
| |
| Notify the page client when there are no remaining mouse events left in the queue. |
| |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/mac/PageClientImplMac.h: |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::didFinishProcessingAllPendingMouseEvents): |
| |
| Add some plumbing through PageClient, so that WebPageProxy can tell WebViewImpl when it is finished processing |
| all mouse events. |
| |
| * UIProcess/win/PageClientImpl.h: |
| |
| 2018-08-13 Alex Christensen <achristensen@webkit.org> |
| |
| Fix linux build after r234811 |
| https://bugs.webkit.org/show_bug.cgi?id=188501 |
| |
| * UIProcess/API/glib/WebKitWebsiteData.cpp: |
| (recordContainsSupportedDataTypes): |
| |
| 2018-08-13 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r234747. |
| https://bugs.webkit.org/show_bug.cgi?id=188524 |
| |
| plugin processes crash on launch (Requested by smfr on |
| #webkit). |
| |
| Reverted changeset: |
| |
| "We should cache the compiled sandbox profile in a data vault" |
| https://bugs.webkit.org/show_bug.cgi?id=184991 |
| https://trac.webkit.org/changeset/234747 |
| |
| 2018-08-13 Alex Christensen <achristensen@webkit.org> |
| |
| Use a 1-byte enum class for TextDirection |
| https://bugs.webkit.org/show_bug.cgi?id=188350 |
| |
| Reviewed by Simon Fraser. |
| |
| * Shared/WebPopupItem.cpp: |
| (WebKit::WebPopupItem::WebPopupItem): |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView webSelectionRectsForSelectionRects:]): |
| * UIProcess/mac/WebPopupMenuProxyMac.mm: |
| (WebKit::WebPopupMenuProxyMac::populate): |
| (WebKit::WebPopupMenuProxyMac::showPopupMenu): |
| * WebProcess/WebCoreSupport/WebPopupMenu.cpp: |
| (WebKit::WebPopupMenu::show): |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::getAssistedNodeInformation): |
| |
| 2018-08-13 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, silence "enumeral and non-enumeral type in conditional expression" warning |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::dispatchActivityStateChange): |
| |
| 2018-08-12 Aditya Keerthi <akeerthi@apple.com> |
| |
| [macOS] Color wells should appear pressed when presenting a color picker |
| https://bugs.webkit.org/show_bug.cgi?id=188477 |
| |
| Reviewed by Tim Horton. |
| |
| In order for the color well to accurately reflect the state of the picker, it is |
| necessary to ensure that the picker is destroyed at the appropriate time. |
| |
| Added windowWillClose and didClosePopover delegate methods to destroy the picker |
| it has been closed. Also added a call to WebColorPicker::endPicker in |
| WebColorPickerMac's implementation of endPicker to ensure that the object is |
| destroyed. Removed redundant calls to endPicker in the WebPageProxy. |
| |
| The hitTest method was overridden in WKPopoverColorWell to ensure that AppKit's |
| view does not block our drawn color well from receiving click events. |
| |
| * UIProcess/WebColorPicker.cpp: |
| (WebKit::WebColorPicker::endPicker): |
| * UIProcess/WebColorPicker.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::endColorPicker): |
| (WebKit::WebPageProxy::didEndColorPicker): |
| (WebKit::WebPageProxy::resetState): |
| (WebKit::WebPageProxy::closeOverlayedViews): |
| * UIProcess/mac/WebColorPickerMac.mm: |
| (WebKit::WebColorPickerMac::~WebColorPickerMac): |
| (WebKit::WebColorPickerMac::endPicker): |
| (-[WKPopoverColorWell popoverDidClose:]): |
| (-[WKPopoverColorWell hitTest:]): |
| (-[WKColorPopoverMac setAndShowPicker:withColor:suggestions:]): |
| (-[WKColorPopoverMac invalidate]): |
| (-[WKColorPopoverMac windowWillClose:]): |
| (-[WKColorPopoverMac didClosePopover]): |
| |
| 2018-08-10 David Kilzer <ddkilzer@apple.com> |
| |
| [Cocoa] WebKit::PlatformPopupMenuData should use member initialization |
| <https://webkit.org/b/188478> |
| <rdar://problem/43154363> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * Shared/PlatformPopupMenuData.cpp: |
| (WebKit::PlatformPopupMenuData::PlatformPopupMenuData): Delete |
| implementation. This constructor caused the warning by never |
| initializing its member variables. |
| * Shared/PlatformPopupMenuData.h: |
| (WebKit::PlatformPopupMenuData::PlatformPopupMenuData): |
| - Use default constructor. |
| (WebKit::PlatformPopupMenuData::shouldPopOver): |
| (WebKit::PlatformPopupMenuData::hideArrows): |
| (WebKit::PlatformPopupMenuData::menuSize): |
| - Add struct member initialization. |
| |
| 2018-08-10 Chris Dumez <cdumez@apple.com> |
| |
| Crash under NetworkResourceLoader::convertToDownload() |
| https://bugs.webkit.org/show_bug.cgi?id=188479 |
| <rdar://problem/42201724> |
| |
| Reviewed by Alex Christensen. |
| |
| In NetworkResourceLoader::convertToDownload(), if m_networkLoad is null then we're trying |
| to convert a load that came from the disk cache. Since we do not currently support converting |
| such a load, cancel the current load and start a fresh download. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::convertToDownload): |
| |
| 2018-08-10 Sihui Liu <sihui_liu@apple.com> |
| |
| Incorrect log message in NetworkSession when creating NetworkDataTask |
| https://bugs.webkit.org/show_bug.cgi?id=188463 |
| |
| Reviewed by Chris Dumez. |
| |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): |
| |
| 2018-08-09 Ben Richards <benton_richards@apple.com> |
| |
| We should cache the compiled sandbox profile in a data vault |
| https://bugs.webkit.org/show_bug.cgi?id=184991 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| This patch changes a few things (note: data vaults and sandbox entitlements are only used in internal builds): |
| (1) Instead of compiling a sandbox every time a process is launched, processes now look for a cached sandbox |
| in a process specific data vault on macOS platforms. (ChildProcessMac.mm) |
| (2) If a valid cached sandbox is not found, a process will create the data vault (or ensure that it exists), |
| compile a sandbox, and cache it. |
| (3) In order to create process specific data vaults, each process now has their own <process name>-OSX-sandbox.entitlements |
| file which contains an entitlement with a process specific "storage class" which ensures that each process |
| can only ever access its own data vault. (See the article on confluence "Data Vaults and Restricted Files" for more info) |
| (4) The sandbox entitlements file for the Network, WebContent and Plugin services are loaded dynamically |
| through Scripts/<process name>-process-entitlements.sh which is triggered in a new build phase for each service. |
| The Storage process sandbox entitlements are loaded directly in Configurations/StorageService.xcconfig. |
| The reason that the sandbox entitlements are applied dynamically is so that these sandbox entitlements |
| are only applied when WK_USE_RESTRICTED_ENTITLEMENTS is YES. This means that open source builds will still work. |
| |
| * Configurations/Network-OSX-sandbox.entitlements: Added. |
| * Configurations/Storage-OSX-sandbox.entitlements: Added. |
| * Configurations/StorageService.xcconfig: |
| * Configurations/WebContent-OSX-sandbox.entitlements: Added. |
| * Configurations/WebKit.xcconfig: |
| * NetworkProcess/NetworkProcess.h: |
| * PluginProcess/PluginProcess.h: |
| * Scripts/process-network-sandbox-entitlements.sh: Added. |
| * Scripts/process-webcontent-sandbox-entitlements.sh: Added. |
| * Shared/ChildProcess.h: |
| * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h: |
| (WebKit::XPCServiceInitializer): |
| * Shared/SandboxInitializationParameters.h: |
| (WebKit::SandboxInitializationParameters::setOverrideSandboxProfilePath): |
| (WebKit::SandboxInitializationParameters::overrideSandboxProfilePath const): |
| (WebKit::SandboxInitializationParameters::setSandboxProfile): |
| (WebKit::SandboxInitializationParameters::sandboxProfile const): |
| (): Deleted. |
| * Shared/mac/ChildProcessMac.mm: |
| (WebKit::SandboxProfileDeleter::operator()): |
| (WebKit::SandboxParametersDeleter::operator()): |
| (WebKit::SandboxInfo::SandboxInfo): |
| (WebKit::fileContents): |
| (WebKit::processStorageClass): |
| (WebKit::setAndSerializeSandboxParameters): |
| (WebKit::sandboxDataVaultParentDirectory): |
| (WebKit::sandboxDirectory): |
| (WebKit::sandboxFilePath): |
| (WebKit::ensureSandboxCacheDirectory): |
| (WebKit::writeSandboxDataToCacheFile): |
| (WebKit::compileAndCacheSandboxProfile): |
| (WebKit::tryApplyCachedSandbox): |
| (WebKit::webKit2Bundle): |
| (WebKit::sandboxProfilePath): |
| (WebKit::compileAndApplySandboxSlowCase): |
| (WebKit::applySandbox): |
| (WebKit::initializeSandboxParameters): |
| (WebKit::ChildProcess::initializeSandbox): |
| * Shared/mac/SandboxInitialiationParametersMac.mm: |
| (WebKit::SandboxInitializationParameters::SandboxInitializationParameters): |
| * StorageProcess/StorageProcess.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebProcess.h: |
| |
| 2018-08-09 Jer Noble <jer.noble@apple.com> |
| |
| Video playback is using more power |
| https://bugs.webkit.org/show_bug.cgi?id=188452 |
| |
| Reviewed by Eric Carlson. |
| |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences _setLowPowerVideoAudioBufferSizeEnabled:]): |
| (-[WKPreferences _lowPowerVideoAudioBufferSizeEnabled]): |
| |
| 2018-08-09 Alex Christensen <achristensen@webkit.org> |
| |
| Fix URLSchemeHandler.SyncXHR API test after r234735. |
| https://bugs.webkit.org/show_bug.cgi?id=188358 |
| |
| * UIProcess/WebURLSchemeTask.cpp: |
| (WebKit::WebURLSchemeTask::didReceiveData): |
| Return after appending data for synchronous loads. We used to send unused messages. |
| |
| 2018-08-09 Alex Christensen <achristensen@webkit.org> |
| |
| REGRESSION(234640) Loading stalls in environments without SafariSafeBrowsing framework |
| https://bugs.webkit.org/show_bug.cgi?id=188453 |
| <rdar://problem/43102553> |
| |
| Reviewed by Chris Dumez. |
| |
| * UIProcess/Cocoa/WebPageProxyCocoa.mm: |
| (WebKit::WebPageProxy::beginSafeBrowsingCheck): |
| |
| 2018-08-09 Alex Christensen <achristensen@webkit.org> |
| |
| WKURLSchemeHandler crashes when sent errors with sync XHR |
| https://bugs.webkit.org/show_bug.cgi?id=188358 |
| |
| Reviewed by Chris Dumez. |
| |
| * UIProcess/WebURLSchemeTask.cpp: |
| (WebKit::WebURLSchemeTask::didReceiveData): |
| (WebKit::WebURLSchemeTask::didComplete): |
| * UIProcess/WebURLSchemeTask.h: |
| |
| 2018-08-09 Sihui Liu <sihui_liu@apple.com> |
| |
| REGRESSION (r232083): WKWebView loses first-party cookies on iOS |
| https://bugs.webkit.org/show_bug.cgi?id=188443 |
| <rdar://problem/42991584> |
| |
| Reviewed by Chris Dumez. |
| |
| Revert the change to set sharedCookieStorage for iOS as it is breaking Kayak. |
| |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa): |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::encode const): |
| (WebKit::WebProcessCreationParameters::decode): |
| * Shared/WebProcessCreationParameters.h: |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): |
| (WebKit::WebProcessPool::platformInitializeNetworkProcess): |
| |
| 2018-08-09 Per Arne Vollan <pvollan@apple.com> |
| |
| DisplayRefreshMonitorMac should hold a weak pointer to WebPage. |
| https://bugs.webkit.org/show_bug.cgi?id=186683 |
| |
| Reviewed by Brent Fulgham. |
| |
| Instead of DisplayRefreshMonitorMac having a RefPtr to WebPage, it should have a weak pointer. |
| Having a RefPtr could in theory create reference cycles. This potential problem has not been |
| observed in practice, but it is safer to use a weak pointer. |
| |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/mac/DrawingAreaMac.cpp: |
| (WebKit::DisplayRefreshMonitorMac::DisplayRefreshMonitorMac): |
| (WebKit::DisplayRefreshMonitorMac::~DisplayRefreshMonitorMac): |
| (WebKit::DisplayRefreshMonitorMac::requestRefreshCallback): |
| |
| 2018-08-09 Ali Juma <ajuma@chromium.org> |
| |
| Import WPTs for IntersectionObserver |
| https://bugs.webkit.org/show_bug.cgi?id=188416 |
| |
| Reviewed by Simon Fraser. |
| |
| Make IntersectionObserver an experimental feature, so that it is enabled in |
| WebKitTestRunner. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-08-08 Tim Horton <timothy_horton@apple.com> |
| |
| Yet more crashes in MobileSafari under -[WKFormInputSession setSuggestions:] |
| https://bugs.webkit.org/show_bug.cgi?id=188427 |
| <rdar://problem/43064672> |
| |
| Reviewed by Wenson Hsieh. |
| |
| Speculatively fix more crashes seen under setSuggestions. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKFormInputSession isValid]): |
| (-[WKFormInputSession setSuggestions:]): |
| (-[WKFormInputSession invalidate]): |
| Belt-and-suspenders fix: use WeakObjCPtr for WKFormInputSession's WKContentView reference. |
| |
| (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]): |
| Invalidate the WKFormInputSession before replacing it; we theorize that |
| there is a path in which we get here without having previously called stopAssistingNode. |
| Most of the code is OK with this, but this leaves WKFormInputSession |
| with a raw reference to WKContentView which can later become stale. |
| |
| 2018-08-08 Don Olmstead <don.olmstead@sony.com> |
| |
| [Curl] Surface additional NetworkLoadMetrics |
| https://bugs.webkit.org/show_bug.cgi?id=188391 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * NetworkProcess/curl/NetworkDataTaskCurl.cpp: |
| (WebKit::NetworkDataTaskCurl::curlDidReceiveResponse): |
| |
| 2018-08-08 Alex Christensen <achristensen@webkit.org> |
| |
| Fix possible null dereference in WebBackForwardList::restoreFromState |
| https://bugs.webkit.org/show_bug.cgi?id=188418 |
| <rdar://problem/42531726> |
| |
| Reviewed by Chris Dumez. |
| |
| * UIProcess/WebBackForwardList.cpp: |
| (WebKit::WebBackForwardList::restoreFromState): |
| Null-check m_page like we do everywhere else in this file because it can be set to null when closing the page. |
| |
| 2018-08-08 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r234314, r234320, and r234321. |
| https://bugs.webkit.org/show_bug.cgi?id=188414 |
| |
| Caused email sign in issue (Requested by ryanhaddad on |
| #webkit). |
| |
| Reverted changesets: |
| |
| "Remove unused WKNavigationDelegatePrivate |
| decidePolicyForNavigationAction SPI" |
| https://bugs.webkit.org/show_bug.cgi?id=188077 |
| https://trac.webkit.org/changeset/234314 |
| |
| "Fix API tests after r234314" |
| https://bugs.webkit.org/show_bug.cgi?id=188077 |
| https://trac.webkit.org/changeset/234320 |
| |
| "Fix API tests after r234314" |
| https://bugs.webkit.org/show_bug.cgi?id=188077 |
| https://trac.webkit.org/changeset/234321 |
| |
| 2018-08-08 Simon Fraser <simon.fraser@apple.com> |
| |
| Add a WebKit2 logging channel for ActivityState |
| https://bugs.webkit.org/show_bug.cgi?id=188411 |
| |
| Reviewed by Tim Horton. |
| |
| Add logging for ActivityState changes and the entrypoints that affect ActivityState. |
| |
| * Platform/Logging.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::windowDidOrderOffScreen): |
| (WebKit::WebViewImpl::windowDidOrderOnScreen): |
| (WebKit::WebViewImpl::windowDidChangeOcclusionState): |
| (WebKit::WebViewImpl::viewDidMoveToWindow): |
| (WebKit::WebViewImpl::viewDidHide): |
| (WebKit::WebViewImpl::viewDidUnhide): |
| (WebKit::WebViewImpl::activeSpaceDidChange): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::activityStateDidChange): |
| (WebKit::WebPageProxy::dispatchActivityStateChange): |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::isViewVisible): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::setActivityState): |
| |
| 2018-08-05 Darin Adler <darin@apple.com> |
| |
| [Cocoa] More tweaks and refactoring to prepare for ARC |
| https://bugs.webkit.org/show_bug.cgi?id=188245 |
| |
| Reviewed by Dan Bernstein. |
| |
| * Platform/cocoa/WKCrashReporter.mm: |
| (WebKit::setCrashLogMessage): Refactor into a separate function for clarity. |
| (WebKit::setCrashReportApplicationSpecificInformation): Use a bridging cast. |
| |
| * Shared/mac/PasteboardTypes.mm: |
| (WebKit::PasteboardTypes::forEditing): Use a bridging cast. |
| |
| * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm: |
| (WebKit::convertToNPNNString): Added. Uses CFStringRef rather than NSString so we can |
| manually manage the autoreleasing. |
| (WebKit::initializeKeyboardEvent): Use convertToNPNNString. |
| (WebKit::NetscapePlugin::sendComplexTextInput): Ditto. |
| |
| * WebProcess/Plugins/PDF/PDFPlugin.mm: Use __unsafe_unretained explicitly |
| for a parent pointer. We could consider moving to __weak after switching to ARC. |
| |
| 2018-08-07 Ben Richards <benton_richards@apple.com> |
| |
| Add SPI for launching WebContent process with pre-linked injected bundle |
| https://bugs.webkit.org/show_bug.cgi?id=188367 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Added SPI to allow applications to set a "customWebContentServiceBundleIdentifier" which will be launched instead of the default WebContent XPC service. |
| The "customWebContentServiceBundleIdentifier" should be the bundle identifier for an XPC service that calls [WKProcessPool _webContentProcessXPCMain]. |
| The new XPC service should be hard linked to the application's injected bundle in order to receive the intended performance benefit. |
| |
| * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h: |
| * Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.mm: |
| (WebKit::XPCServiceMain): |
| (main): |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextSetCustomWebContentServiceBundleIdentifier): |
| * UIProcess/API/C/WKContext.h: |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (+[WKProcessPool _webContentProcessXPCMain]): |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: |
| (-[_WKProcessPoolConfiguration customWebContentServiceBundleIdentifier]): |
| (-[_WKProcessPoolConfiguration setCustomWebContentServiceBundleIdentifier:]): |
| * UIProcess/Launcher/ProcessLauncher.h: |
| * UIProcess/Launcher/mac/ProcessLauncherMac.mm: |
| (WebKit::ProcessLauncher::launchProcess): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::setCustomWebContentServiceBundleIdentifier): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::getLaunchOptions): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-08-07 Chris Dumez <cdumez@apple.com> |
| |
| StorageManager should stop ref'ing IPC::Connections as this is leak-prone |
| https://bugs.webkit.org/show_bug.cgi?id=188380 |
| |
| Reviewed by Alex Christensen. |
| |
| StorageManager should stop ref'ing IPC::Connections as this is leak-prone. Instead, assign a unique identifier |
| to each IPC::Connection and store this identifier intead of a RefPtr<IPC::Connection>. When the StorageManager |
| needs an actual IPC::Connection, it can look it up from the identifier. |
| |
| * Platform/IPC/Connection.cpp: |
| (IPC::Connection::Connection): |
| (IPC::Connection::~Connection): |
| (IPC::Connection::connection): |
| * Platform/IPC/Connection.h: |
| (IPC::Connection::uniqueID const): |
| * UIProcess/WebStorage/StorageManager.cpp: |
| (WebKit::StorageManager::StorageArea::addListener): |
| (WebKit::StorageManager::StorageArea::removeListener): |
| (WebKit::StorageManager::StorageArea::hasListener const): |
| (WebKit::StorageManager::StorageArea::setItem): |
| (WebKit::StorageManager::StorageArea::removeItem): |
| (WebKit::StorageManager::StorageArea::clear): |
| (WebKit::StorageManager::StorageArea::dispatchEvents const): |
| (WebKit::StorageManager::SessionStorageNamespace::allowedConnection const): |
| (WebKit::StorageManager::SessionStorageNamespace::setAllowedConnection): |
| (WebKit::StorageManager::setAllowedSessionStorageNamespaceConnection): |
| (WebKit::StorageManager::processDidCloseConnection): |
| (WebKit::StorageManager::createLocalStorageMap): |
| (WebKit::StorageManager::createTransientLocalStorageMap): |
| (WebKit::StorageManager::createSessionStorageMap): |
| (WebKit::StorageManager::destroyStorageMap): |
| (WebKit::StorageManager::setItem): |
| (WebKit::StorageManager::removeItem): |
| (WebKit::StorageManager::clear): |
| (WebKit::StorageManager::applicationWillTerminate): |
| (WebKit::StorageManager::findStorageArea const): |
| * UIProcess/WebStorage/StorageManager.h: |
| |
| 2018-08-07 Eric Carlson <eric.carlson@apple.com> |
| |
| NotReadableError when calling getUserMedia |
| https://bugs.webkit.org/show_bug.cgi?id=188309 |
| <rdar://problem/42916838> |
| |
| Reviewed by Brent Fulgham. |
| |
| * UIProcess/UserMediaProcessManager.cpp: |
| (WebKit::UserMediaProcessManager::willCreateMediaStream): Deal with audio and video sandbox |
| extensions being issued at different times. Use new ProcessState methods. |
| (WebKit::UserMediaProcessManager::endedCaptureSession): Use new ProcessState methods. |
| |
| 2018-08-07 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| REGRESSION (r233778): Text selection sometimes cannot be extended in iframes |
| https://bugs.webkit.org/show_bug.cgi?id=188374 |
| <rdar://problem/42928657> |
| |
| Reviewed by Simon Fraser. |
| |
| rangeForPoint contains logic for converting a selection handle location in root view coordinates to an updated |
| selection. In doing so, we first convert the selection handle location to content coordinates; however, the call |
| site to EventHandler::hitTestResultAtPoint still hit-tests using the location in root view coordinates rather |
| than content coordinates, which means that when the focused frame is a subframe, hit-testing will fail to find |
| nodes within the subframe under the selection handle. This manifests in behaviors such as snapping to a single |
| character when selecting text in subframes. |
| |
| To fix this, we just need to pass in the point in the frame's content coordinates when hit-testing. |
| |
| Tests: editing/selection/ios/selection-handles-in-iframe.html |
| editing/selection/ios/selection-handles-in-readonly-input.html |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::rangeForPointInRootViewCoordinates): |
| |
| Make a couple of other minor adjustments: |
| 1. Take a Frame& instead of a Frame*, since Frame& is assumed to be non-null here. |
| 2. Rename rangeForPoint to rangeForPointInRootViewCoordinates, as well as the point argument to |
| pointInRootViewCoordinates. |
| |
| (WebKit::WebPage::updateSelectionWithTouches): |
| (WebKit::rangeForPoint): Deleted. |
| |
| 2018-08-07 Alex Christensen <achristensen@webkit.org> |
| |
| Fix things after r234640 |
| https://bugs.webkit.org/show_bug.cgi?id=188133 |
| |
| * UIProcess/WebFramePolicyListenerProxy.cpp: |
| (WebKit::WebFramePolicyListenerProxy::use): |
| (WebKit::WebFramePolicyListenerProxy::download): |
| (WebKit::WebFramePolicyListenerProxy::ignore): |
| Fix assertions as I had in r234552. Also fix a possible race condition with fragment navigations by only keeping the first "use" response. |
| * config.h: |
| Fix IOSMAC build. |
| |
| 2018-08-07 Per Arne Vollan <pvollan@apple.com> |
| |
| [macOS] Scrollbars are not visible when using 3rd party mouse |
| https://bugs.webkit.org/show_bug.cgi?id=188372 |
| |
| Reviewed by Simon Fraser. |
| |
| The scrollbars are not visible because they are not updated with the recommended scroller style |
| when a 3rd party mouse is used. They still have the overlay style, but the system is |
| recommending the legacy style in this case. The UI process is currently notifying the WebProcess |
| about changes in the scroller style, but the current style is not set in the WebProcess on |
| startup. This patch sets the initial scroller style in the WebProcess by passing it as part of |
| the WebProcess creation parameters. Also, to make sure hot-plugging of a 3rd party mouse is |
| is visually changing the scroller style of the current page, a class method in NSScrollerImpPair |
| is called to update all NSScrollerImpPairs with the new recommended style. This method was |
| previously called by AppKit, but after blocking WindowServer access, AppKit is no longer calling |
| this method. This has been manually tested by using a 3rd party mouse. |
| |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::encode const): |
| (WebKit::WebProcessCreationParameters::decode): |
| * Shared/WebProcessCreationParameters.h: |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::platformInitializeWebProcess): |
| (WebKit::WebProcess::scrollerStylePreferenceChanged): |
| |
| 2018-08-06 Andy Estes <aestes@apple.com> |
| |
| [Wi-Fi Assertions] suspendWiFiAssertions() should be able to delay sending ProcessReadyToSuspend |
| https://bugs.webkit.org/show_bug.cgi?id=188373 |
| <rdar://problem/42857398> |
| |
| Reviewed by Tim Horton. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::actualPrepareToSuspend): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::platformPrepareToSuspend): |
| (WebKit::NetworkProcess::platformProcessDidTransitionToBackground): |
| * NetworkProcess/curl/NetworkProcessCurl.cpp: |
| (WebKit::NetworkProcess::platformPrepareToSuspend): |
| * NetworkProcess/soup/NetworkProcessSoup.cpp: |
| (WebKit::NetworkProcess::platformPrepareToSuspend): |
| |
| 2018-08-06 Alex Christensen <achristensen@webkit.org> |
| |
| Check with SafeBrowsing during navigation in WKWebView |
| https://bugs.webkit.org/show_bug.cgi?id=188133 |
| |
| Reviewed by Chris Dumez. |
| |
| This turns WebFramePolicyListenerProxy into an object that now listens for the results |
| of two processes happening in parallel: the API::NavigationClient's decidePolicyForNavigation{Action, Response} |
| (which it was already waiting for) and, on platforms that support it, the SafariSafeBrowsing framework's check. |
| The first result is stored as it waits for the second result unless the first result is the API::NavigationClient |
| saying to cancel or convert the navigation to a download, in which cases we don't care what the safe browsing |
| framework results are because we won't show the URL in the browser. |
| |
| Nothing is done with the safe browsing results yet. |
| |
| * UIProcess/Cocoa/SafeBrowsingResultCocoa.mm: Added. |
| (WebKit::SafeBrowsingResult::SafeBrowsingResult): |
| * UIProcess/Cocoa/WebPageProxyCocoa.mm: |
| (WebKit::WebPageProxy::beginSafeBrowsingCheck): |
| * UIProcess/SafeBrowsingResult.h: Added. |
| (WebKit::SafeBrowsingResult::provider const): |
| (WebKit::SafeBrowsingResult::isPhishing const): |
| (WebKit::SafeBrowsingResult::isMalware const): |
| (WebKit::SafeBrowsingResult::isUnwantedSoftware const): |
| (WebKit::SafeBrowsingResult::isKnownToBeUnsafe const): |
| * UIProcess/WebFramePolicyListenerProxy.cpp: |
| (WebKit::WebFramePolicyListenerProxy::WebFramePolicyListenerProxy): |
| (WebKit::WebFramePolicyListenerProxy::didReceiveSafeBrowsingResults): |
| (WebKit::WebFramePolicyListenerProxy::use): |
| (WebKit::WebFramePolicyListenerProxy::download): |
| (WebKit::WebFramePolicyListenerProxy::ignore): |
| * UIProcess/WebFramePolicyListenerProxy.h: |
| (WebKit::WebFramePolicyListenerProxy::create): |
| * UIProcess/WebFrameProxy.cpp: |
| (WebKit::WebFrameProxy::setUpPolicyListenerProxy): |
| * UIProcess/WebFrameProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::decidePolicyForNewWindowAction): |
| (WebKit::WebPageProxy::decidePolicyForResponse): |
| * UIProcess/WebPageProxy.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-08-06 Chris Dumez <cdumez@apple.com> |
| |
| Regression(NetworkLoadChecker): CORS preflights are no longer able to deal with client certificate authentication |
| https://bugs.webkit.org/show_bug.cgi?id=188355 |
| <rdar://problem/42546319> |
| |
| Reviewed by Alex Christensen. |
| |
| Before we started using the NetworkLoadChecker to do CORS-preflighting in the Network process, challenges would |
| use the NetworkLoad::completeAuthenticationChallenge() code path with isAllowedToAskUserForCredentials to set |
| to false. This would call: |
| 1. completionHandler(AuthenticationChallengeDisposition::UseCredential, { }); for TLS handshakes (server trust |
| evaluation & client certification authentication) |
| 2. NetworkProcess::singleton().authenticationManager().didReceiveAuthenticationChallenge() otherwise |
| |
| However, NetworkCORSPreflightChecker::didReceiveChallenge() was behaving differently and calling: |
| 1. completionHandler(AuthenticationChallengeDisposition::RejectProtectionSpace, { }); for server trust evaluations |
| 2. completionHandler(AuthenticationChallengeDisposition::Cancel, { }); otherwise |
| |
| Restore previous behavior by aligning NetworkCORSPreflightChecker::didReceiveChallenge() with |
| NetworkLoad::completeAuthenticationChallenge() when isAllowedToAskUserForCredentials is set to false. This means |
| we end up asking the AuthenticationManager for client certificate authentication instead or cancelling the |
| preflight. |
| |
| This fixes CORS-preflighting on some internal sites. |
| |
| * NetworkProcess/NetworkCORSPreflightChecker.cpp: |
| (WebKit::NetworkCORSPreflightChecker::didReceiveChallenge): |
| * NetworkProcess/NetworkCORSPreflightChecker.h: |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::NetworkLoadChecker): |
| (WebKit::NetworkLoadChecker::checkCORSRequestWithPreflight): |
| * NetworkProcess/NetworkLoadChecker.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| * NetworkProcess/PingLoad.cpp: |
| (WebKit::PingLoad::PingLoad): |
| |
| 2018-08-06 Alex Christensen <achristensen@webkit.org> |
| |
| Use enum classes and OptionSets for PaintPhase and PaintBehavior |
| https://bugs.webkit.org/show_bug.cgi?id=188323 |
| |
| Reviewed by Simon Fraser. |
| |
| * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp: |
| (WebKit::imageForRect): |
| * WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp: |
| (WebKit::InjectedBundleRangeHandle::renderedImage): |
| * WebProcess/Plugins/PluginView.cpp: |
| (WebKit::PluginView::shouldCreateTransientPaintingSnapshot const): |
| |
| 2018-08-06 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r234552. |
| |
| Introduced 2 layout test failures on High Sierra. |
| |
| Reverted changeset: |
| |
| "Check with SafeBrowsing during navigation in WKWebView" |
| https://bugs.webkit.org/show_bug.cgi?id=188133 |
| https://trac.webkit.org/changeset/234552 |
| |
| 2018-08-06 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r234569. |
| |
| Breaks internal builds. |
| |
| Reverted changeset: |
| |
| "We should cache the compiled sandbox profile in a data vault" |
| https://bugs.webkit.org/show_bug.cgi?id=184991 |
| https://trac.webkit.org/changeset/234569 |
| |
| 2018-08-06 Chris Dumez <cdumez@apple.com> |
| |
| Fix IPC::Connection leak in StorageManager |
| https://bugs.webkit.org/show_bug.cgi?id=188321 |
| <rdar://problem/42748485> |
| |
| Reviewed by Alex Christensen. |
| |
| When a StorageMap is destroyed on WebContent process side, StorageManager::destroyStorageMap() |
| gets called via IPC with a (IPC::Connection, StorageMapID) pair. Normally, it removes this |
| pair from m_storageAreasByConnection. However, if this is a *transient* StorageMap (sessionStorage), |
| then we keep the pair in the map and we merely remove the StorageMapID as a listener from the |
| StorageArea. We do this so that: |
| 1. The StorageArea stays alive so that it can be reused later on for the same security origin, on |
| the same IPC::Connection (logic for this is in StorageManager::createTransientLocalStorageMap() |
| 2. Removing the StorageMapID as a listener from the StorageArea is important because |
| StorageArea::m_eventListeners holds a strong reference to the IPC::Connection in a std::pair |
| with the StorageMapID (HashSet<std::pair<RefPtr<IPC::Connection>, uint64_t>> m_eventListeners). |
| |
| As mentioned in 1 above, in StorageManager::createTransientLocalStorageMap(), there is logic to |
| check if there is already an existing StorageArea for the given IPC::Connection that is transient |
| and is for the same security origin. In this case, we could avoid constructing a new StorageArea |
| and we would: |
| 1. Add a new entry to m_storageAreasByConnection with the key (connection, newStorageMapID), using |
| same same StorageArea as value. |
| 2. Remove the previous (connection, oldStorageMapID) key from m_storageAreasByConnection. |
| |
| Step 2 here is wrong and is updated in this patch. It is only safe to remove the previous |
| (connection, oldStorageMapID) if this oldStorageMapID no longer exists (i.e. destroyStorageMap() |
| was already called for it). This patch thus adds a check before removing (connection, oldStorageMapID) |
| from the HashMap to make sure that the oldStorageMapID is no longer a listener of the StorageArea). |
| |
| This would cause leaks in the following case: |
| 1. We construct a StorageArea for (connection1, storageMapId1) |
| 2. We ask for a StorageArea for (connection1, storageMapId2) and decide to reuse the existing StorageArea |
| since it has the same SecurityOrigin. |
| 3. As a result of step2, we would remove (connection1, storageMapId1) from m_storageAreasByConnection |
| and add (connection1, storageMapId2), even though there is still a StorageMap with storageMapId1 |
| on WebContent process side. |
| 4. Later on, we would try to call destroyStorageMap(connection1, storageMap1), it would fail to find |
| it in m_storageAreasByConnection and return early. It would therefore fail to remove storageMapId1 |
| as a listener of the StorageArea which still exists. |
| -> This would leak the IPC::Connection that there would be a std::pair<RefPtr<IPC::Connection>, StorageMapID> |
| with value (connection1, storageMap1) which would get leaked and it would ref the IPC::Connection. |
| |
| This code should really be refactored to be less leak prone but I have kept the patch minimal for now |
| to facilitate cherry-picking. |
| |
| Note that this would reproduce very easily on sina.com.cn, when clicking bold links at the top, which |
| opens new tabs to different pages in the same WebContent process. When closing all Safari windows, the |
| IPC::Connection for this WebContent process would stay alive. |
| |
| * UIProcess/WebStorage/StorageManager.cpp: |
| (WebKit::StorageManager::StorageArea::hasListener const): |
| (WebKit::StorageManager::createTransientLocalStorageMap): |
| |
| 2018-08-06 Alex Christensen <achristensen@webkit.org> |
| |
| Make BlendMode an enum class |
| https://bugs.webkit.org/show_bug.cgi?id=188325 |
| |
| Reviewed by Darin Adler. |
| |
| * Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm: |
| (WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties): |
| |
| 2018-08-06 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS] Caret disappears after resigning and becoming first responder if active focus state is retained |
| https://bugs.webkit.org/show_bug.cgi?id=188322 |
| <rdar://problem/42455270> |
| |
| Reviewed by Tim Horton. |
| |
| Prior to r230745, when a user selects a word in non-editable web content without a prior selection, we would |
| always try to activate the text interaction assistant, creating a selection view (a UITextSelectionView). After |
| the long press is recognized, this text selection view is configured for "highlight mode", which is a special |
| mode for presenting selection UI where the grabber handles at the start and end of the selection are suppressed. |
| UIKit then prepares to show the selection by asking WKContentView for the number of selection rects; if this |
| number is zero, the UITextSelectionView is removed from the superview, and state that keeps track of whether the |
| selection view is in "highlight mode" is reset. |
| |
| In the case where there's no prior selection, our cached EditorState in the UI process will not be up to date |
| yet when the gesture is recognized. This means that when UIKit asks us for the number of selection rects, we'll |
| return 0, which causes any state tracking "highlight mode" for the selection to be reset, subsequently resulting |
| in selection handles showing up before the user has ended the initial loupe gesture. |
| |
| r230745 addressed this bug by removing logic to activate the text selection when becoming first responder, |
| instead deferring until the next `-_selectionChanged` call with post-layout editor state data to activate the |
| selection. While this does ensure that selection handles don't erroneously appear, it also means that clients |
| that call -becomeFirstResponder to show selection UI and the keyboard in a web view while an element is already |
| focused will not have an active selection assistant (i.e. the selection view will still be hidden). One way this |
| happens is when Safari uses `-_retainActiveFocusedState` in combination with `-resignFirstResponder` and |
| `-becomeFirstResponder` to temporarily switch focus away from the web view when the URL bar is tapped. |
| |
| To fix both the inactive selection after `-becomeFirstResponder` as well as the selection handles showing up |
| when performing a loupe gesture, we simply make the check in `-becomeFirstResponderForWebView` more nuanced. |
| Instead of always activating the selection or never activating the selection, only activate the selection if the |
| current editor state has information about a selection to avoid causing the selection view to be immediately |
| removed and "highlight mode" to be reset when selecting a word via loupe gesture for the first time. |
| |
| Tests: KeyboardInputTests.CaretSelectionRectAfterRestoringFirstResponder |
| KeyboardInputTests.RangedSelectionRectAfterRestoringFirstResponder |
| editing/selection/ios/selection-handles-after-touch-end.html |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView becomeFirstResponderForWebView]): |
| (-[WKContentView canShowNonEmptySelectionView]): |
| |
| 2018-08-06 Zan Dobersek <zdobersek@igalia.com> |
| |
| [Nicosia] Add Nicosia::Scene |
| https://bugs.webkit.org/show_bug.cgi?id=188340 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| CompositingCoordinator spawns a Nicosia::Scene object that it shares |
| with the CoordinatedGraphicsSceneState instance. All the |
| Nicosia::CompositionLayer objects indirectly managed by |
| CompositingCoordinator are now stored in a local Nicosia::Scene::State |
| member object. Upon each flush that requires frame synchronization the |
| Nicosia::Scene object is updated in a thread-safe manner, increasing |
| the scene ID value as well as copying the local HashSet and root layer |
| values into the shared Scene object, allowing for the consumer (which |
| currently is the related CoordinatedGraphicsScene instance) to update |
| its output accordingly. |
| |
| * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp: |
| (WebKit::CompositingCoordinator::CompositingCoordinator): |
| (WebKit::CompositingCoordinator::flushPendingLayerChanges): |
| (WebKit::CompositingCoordinator::initializeRootCompositingLayerIfNeeded): |
| (WebKit::CompositingCoordinator::createGraphicsLayer): |
| (WebKit::CompositingCoordinator::detachLayer): |
| (WebKit::CompositingCoordinator::attachLayer): |
| * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h: |
| |
| 2018-08-05 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| Add support for microtasks in workers |
| https://bugs.webkit.org/show_bug.cgi?id=188246 |
| |
| Reviewed by Darin Adler. |
| |
| Rename JSMainThreadExecState.h to JSExecState.h. |
| |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMAttr.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMBlob.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCDATASection.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRule.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRuleList.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleDeclaration.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleSheet.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSValue.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCharacterData.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRect.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRectList.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMComment.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMImplementation.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMSelection.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMTokenList.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDeprecated.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentFragment.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentGtk.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentType.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElementGtk.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEvent.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFile.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFileList.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAnchorElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAppletElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAreaElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBRElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBaseElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBodyElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLButtonElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCanvasElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCollection.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDListElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDirectoryElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDivElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDocument.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLEmbedElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFieldSetElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFontElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFormElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameSetElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHRElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadingElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHtmlElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLIFrameElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLImageElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLIElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLabelElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLegendElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLinkElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMapElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMarqueeElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMenuElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMetaElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLModElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOListElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLObjectElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptGroupElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionsCollection.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParagraphElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParamElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPreElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLQuoteElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLScriptElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLSelectElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLStyleElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCaptionElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCellElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableColElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableRowElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableSectionElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTextAreaElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTitleElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLUListElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMKeyboardEvent.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaList.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMouseEvent.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNamedNodeMap.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeGtk.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeIterator.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeList.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMProcessingInstruction.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMRange.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheet.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheetList.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMText.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTreeWalker.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMUIEvent.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMWheelEvent.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathExpression.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathNSResolver.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathResult.cpp: |
| |
| 2018-08-03 Ben Richards <benton_richards@apple.com> |
| |
| We should cache the compiled sandbox profile in a data vault |
| https://bugs.webkit.org/show_bug.cgi?id=184991 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| This patch changes a few things (note: data vaults and sandbox entitlements are only used in internal builds): |
| (1) Instead of compiling a sandbox every time a process is launched, processes now look for a cached sandbox |
| in a process specific data vault on macOS platforms. (ChildProcessMac.mm) |
| (2) If a valid cached sandbox is not found, a process will create the data vault (or ensure that it exists), |
| compile a sandbox, and cache it. |
| (3) In order to create process specific data vaults, each process now has their own <process name>-OSX-sandbox.entitlements |
| file which contains an entitlement with a process specific "storage class" which ensures that each process |
| can only ever access its own data vault. (See the article on confluence "Data Vaults and Restricted Files" for more info) |
| (4) The sandbox entitlements file for the Network, WebContent and Plugin services are loaded dynamically |
| through Scripts/<process name>-process-entitlements.sh which is triggered in a new build phase for each service. |
| The Storage process sandbox entitlements are loaded directly in Configurations/StorageService.xcconfig. |
| The reason that the sandbox entitlements are applied dynamically is so that these sandbox entitlements |
| are only applied when WK_USE_RESTRICTED_ENTITLEMENTS is YES. This means that open source builds will still work. |
| |
| * Configurations/Network-OSX-sandbox.entitlements: Added. |
| * Configurations/Plugin-OSX-sandbox.entitlements: Added. |
| * Configurations/Storage-OSX-sandbox.entitlements: Added. |
| * Configurations/StorageService.xcconfig: |
| * Configurations/WebContent-OSX-sandbox.entitlements: Added. |
| * Configurations/WebKit.xcconfig: |
| * NetworkProcess/NetworkProcess.h: |
| * PluginProcess/PluginProcess.h: |
| * Scripts/process-network-entitlements.sh: Added. |
| * Scripts/process-plugin-entitlements.sh: Added. |
| * Scripts/process-webcontent-entitlements.sh: |
| * Shared/ChildProcess.h: |
| * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h: |
| (WebKit::XPCServiceInitializer): |
| * Shared/SandboxInitializationParameters.h: |
| (WebKit::SandboxInitializationParameters::setOverrideSandboxProfilePath): |
| (WebKit::SandboxInitializationParameters::overrideSandboxProfilePath const): |
| (WebKit::SandboxInitializationParameters::setSandboxProfile): |
| (WebKit::SandboxInitializationParameters::sandboxProfile const): |
| (): Deleted. |
| * Shared/mac/ChildProcessMac.mm: |
| (WebKit::SandboxProfileDeleter::operator()): |
| (WebKit::SandboxParametersDeleter::operator()): |
| (WebKit::SandboxInfo::SandboxInfo): |
| (WebKit::fileContents): |
| (WebKit::processStorageClass): |
| (WebKit::setAndSerializeSandboxParameters): |
| (WebKit::getUserCacheDirectory): |
| (WebKit::sandboxDataVaultParentDirectory): |
| (WebKit::sandboxDirectory): |
| (WebKit::sandboxFilePath): |
| (WebKit::ensureSandboxCacheDirectory): |
| (WebKit::writeSandboxDataToCacheFile): |
| (WebKit::compileAndCacheSandboxProfile): |
| (WebKit::tryApplyCachedSandbox): |
| (WebKit::webKit2Bundle): |
| (WebKit::sandboxProfilePath): |
| (WebKit::compileAndApplySandboxSlowCase): |
| (WebKit::applySandbox): |
| (WebKit::initializeSandboxParameters): |
| (WebKit::ChildProcess::initializeSandbox): |
| * Shared/mac/SandboxInitialiationParametersMac.mm: |
| (WebKit::SandboxInitializationParameters::SandboxInitializationParameters): |
| * StorageProcess/StorageProcess.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebProcess.h: |
| |
| 2018-08-03 Alex Christensen <achristensen@webkit.org> |
| |
| Fix spelling of "overridden" |
| https://bugs.webkit.org/show_bug.cgi?id=188315 |
| |
| Reviewed by Darin Adler. |
| |
| * Platform/IPC/mac/ConnectionMac.mm: |
| (IPC::Connection::receiveSourceEventHandler): |
| * Shared/WebPreferencesStore.cpp: |
| (WebKit::WebPreferencesStore::encode const): |
| (WebKit::WebPreferencesStore::decode): |
| (WebKit::valueForKey): |
| (WebKit::setValueForKey): |
| (WebKit::WebPreferencesStore::setStringValueForKey): |
| (WebKit::WebPreferencesStore::getStringValueForKey const): |
| (WebKit::WebPreferencesStore::setBoolValueForKey): |
| (WebKit::WebPreferencesStore::getBoolValueForKey const): |
| (WebKit::WebPreferencesStore::setUInt32ValueForKey): |
| (WebKit::WebPreferencesStore::getUInt32ValueForKey const): |
| (WebKit::WebPreferencesStore::setDoubleValueForKey): |
| (WebKit::WebPreferencesStore::getDoubleValueForKey const): |
| (WebKit::WebPreferencesStore::setOverrideDefaultsStringValueForKey): |
| (WebKit::WebPreferencesStore::setOverrideDefaultsBoolValueForKey): |
| (WebKit::WebPreferencesStore::setOverrideDefaultsUInt32ValueForKey): |
| (WebKit::WebPreferencesStore::setOverrideDefaultsDoubleValueForKey): |
| * Shared/WebPreferencesStore.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView dragInteraction:previewForLiftingItem:session:]): |
| (-[WKContentView dragInteraction:previewForCancellingItem:withDefault:]): |
| * UIProcess/ios/WKScrollView.mm: |
| (-[WKScrollView _systemContentInset]): |
| |
| 2018-08-03 David Fenton <david_fenton@apple.com> |
| |
| Unreviewed, rolling out r234517. |
| |
| Caused API test failures on iOS |
| |
| Reverted changeset: |
| |
| "[Cocoa] setCookie API fails to set session cookies for |
| defaultDataStore if processPool created but not used" |
| https://bugs.webkit.org/show_bug.cgi?id=188209 |
| https://trac.webkit.org/changeset/234517 |
| |
| 2018-08-03 Ben Richards <benton_richards@apple.com> |
| |
| Add configuration for automatic process pre-warming |
| https://bugs.webkit.org/show_bug.cgi?id=187108 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Added configurations to allow setting the maximum number of processes that should be automatically prewarmed. |
| |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| (API::ProcessPoolConfiguration::copy): |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextSetMaximumNumberOfPrewarmedProcesses): |
| * UIProcess/API/C/WKContextPrivate.h: |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _setMaximumNumberOfPrewarmedProcesses:]): |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: |
| (-[_WKProcessPoolConfiguration setMaximumPrewarmedProcessCount:]): |
| (-[_WKProcessPoolConfiguration maximumPrewarmedProcessCount]): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didFinishLoadForFrame): Moved call to notifyProcessPoolToPrewarm from didFirstVisuallyNonEmptyLayoutForFrame to here. |
| This is to try to ensure that frame loading and prewarming don't happen at the same time as this would be heavy for some devices. |
| (WebKit::WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::setMaximumNumberOfProcesses): Condition changed so that calling setMaximumNumberOfProcesses after warmInitialProcess |
| doesn't result in a crash. |
| (WebKit::WebProcessPool::setMaximumNumberOfPrewarmedProcesses): |
| (WebKit::WebProcessPool::warmInitialProcess): |
| (WebKit::WebProcessPool::didReachGoodTimeToPrewarm): |
| * UIProcess/WebProcessPool.h: |
| |
| 2018-08-03 Alex Christensen <achristensen@webkit.org> |
| |
| Check with SafeBrowsing during navigation in WKWebView |
| https://bugs.webkit.org/show_bug.cgi?id=188133 |
| |
| Reviewed by Chris Dumez. |
| |
| This turns WebFramePolicyListenerProxy into an object that now listens for the results |
| of two processes happening in parallel: the API::NavigationClient's decidePolicyForNavigation{Action, Response} |
| (which it was already waiting for) and, on platforms that support it, the SafariSafeBrowsing framework's check. |
| The first result is stored as it waits for the second result unless the first result is the API::NavigationClient |
| saying to cancel or convert the navigation to a download, in which cases we don't care what the safe browsing |
| framework results are because we won't show the URL in the browser. |
| |
| Nothing is done with the safe browsing results yet. |
| |
| * UIProcess/Cocoa/SafeBrowsingResultCocoa.mm: Added. |
| (WebKit::SafeBrowsingResult::SafeBrowsingResult): |
| * UIProcess/Cocoa/WebPageProxyCocoa.mm: |
| (WebKit::WebPageProxy::beginSafeBrowsingCheck): |
| * UIProcess/SafeBrowsingResult.h: Added. |
| (WebKit::SafeBrowsingResult::provider const): |
| (WebKit::SafeBrowsingResult::isPhishing const): |
| (WebKit::SafeBrowsingResult::isMalware const): |
| (WebKit::SafeBrowsingResult::isUnwantedSoftware const): |
| (WebKit::SafeBrowsingResult::isKnownToBeUnsafe const): |
| * UIProcess/WebFramePolicyListenerProxy.cpp: |
| (WebKit::WebFramePolicyListenerProxy::WebFramePolicyListenerProxy): |
| (WebKit::WebFramePolicyListenerProxy::didReceiveSafeBrowsingResults): |
| (WebKit::WebFramePolicyListenerProxy::use): |
| (WebKit::WebFramePolicyListenerProxy::download): |
| (WebKit::WebFramePolicyListenerProxy::ignore): |
| * UIProcess/WebFramePolicyListenerProxy.h: |
| (WebKit::WebFramePolicyListenerProxy::create): |
| * UIProcess/WebFrameProxy.cpp: |
| (WebKit::WebFrameProxy::setUpPolicyListenerProxy): |
| * UIProcess/WebFrameProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::decidePolicyForNewWindowAction): |
| (WebKit::WebPageProxy::decidePolicyForResponse): |
| * UIProcess/WebPageProxy.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-08-03 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r234513. |
| |
| 14 API tests fail the assertions added in this change. |
| |
| Reverted changeset: |
| |
| "Check with SafeBrowsing during navigation in WKWebView" |
| https://bugs.webkit.org/show_bug.cgi?id=188133 |
| https://trac.webkit.org/changeset/234513 |
| |
| 2018-08-03 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [WPE] WebDriver: add support for action commands |
| https://bugs.webkit.org/show_bug.cgi?id=188301 |
| |
| Reviewed by Žan Doberšek. |
| |
| WPE doesn't support action commands because the platform specific code for handling events is not implemented. |
| |
| * SourcesWPE.txt: Add new file to compilation. |
| * UIProcess/API/glib/WebKitUIClient.cpp: Use the drawing area size as window size in WPE. |
| * UIProcess/API/wpe/PageClientImpl.cpp: |
| (WebKit::PageClientImpl::viewBackend): Return the WPE backend of the view. |
| * UIProcess/API/wpe/PageClientImpl.h: |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::performMouseInteraction): |
| (WebKit::WebAutomationSession::performKeyboardInteractions): |
| (WebKit::WebAutomationSession::performInteractionSequence): |
| (WebKit::WebAutomationSession::cancelInteractionSequence): |
| * UIProcess/Automation/wpe/WebAutomationSessionWPE.cpp: Added. |
| (WebKit::modifiersToEventState): |
| (WebKit::mouseButtonToWPEButton): |
| (WebKit::stateModifierForWPEButton): |
| (WebKit::doMouseEvent): |
| (WebKit::doMotionEvent): |
| (WebKit::WebAutomationSession::platformSimulateMouseInteraction): |
| (WebKit::doKeyStrokeEvent): |
| (WebKit::keyCodeForVirtualKey): |
| (WebKit::modifiersForKeyCode): |
| (WebKit::WebAutomationSession::platformSimulateKeyboardInteraction): |
| (WebKit::WebAutomationSession::platformSimulateKeySequence): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/wpe/WebPageProxyWPE.cpp: |
| (WebKit::WebPageProxy::viewBackend): Return the WPE backend. |
| |
| 2018-08-03 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [WPE] Implement MouseEvent.buttons |
| https://bugs.webkit.org/show_bug.cgi?id=187998 |
| |
| Reviewed by Žan Doberšek. |
| |
| Pass buttons currently pressed to WebMouseEvent. |
| |
| * Shared/wpe/WebEventFactory.cpp: |
| (WebKit::pressedMouseButtons): Helper to get the pressed buttons mask for the WPE modifiers. |
| (WebKit::WebEventFactory::createWebMouseEvent): Use pressedMouseButtons(). |
| * UIProcess/API/wpe/PageClientImpl.cpp: |
| (WebKit::PageClientImpl::doneWithTouchEvent): Update the event modifiers. |
| |
| 2018-08-03 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [WPE] Use WPE key symbols and new API instead of xkbcommon and the key mapper |
| https://bugs.webkit.org/show_bug.cgi?id=188093 |
| |
| Reviewed by Žan Doberšek. |
| |
| * Shared/WebEvent.h: Add WebKeyboardEvent constructor for WPE. |
| * Shared/WebKeyboardEvent.cpp: |
| (WebKit::WebKeyboardEvent::WebKeyboardEvent): WebKeyboardEvent constructor for WPE. |
| * Shared/wpe/WebEventFactory.cpp: |
| (WebKit::isWPEKeyCodeFromKeyPad): Helper tpo check if a key symbols is from key pad. |
| (WebKit::WebEventFactory::createWebKeyboardEvent): Use PlatformKeyboardEvent API to provide key code, hardware |
| key code, key identifier and windows key code to WebKeyboardEvent. |
| * UIProcess/API/wpe/WPEView.cpp: |
| (WKWPE::m_backend): Use WPE key symbols. |
| |
| 2018-08-02 Tim Horton <timothy_horton@apple.com> |
| |
| PDFPlugin: Context menus in RTL are left-aligned |
| https://bugs.webkit.org/show_bug.cgi?id=188292 |
| <rdar://problem/32293787> |
| |
| Reviewed by Simon Fraser. |
| |
| * WebProcess/Plugins/PDF/PDFLayerControllerSPI.h: |
| Add some SPI. |
| |
| * WebProcess/Plugins/PDF/PDFPlugin.mm: |
| (WebKit::PDFPlugin::handleContextMenuEvent): |
| Translate UI layout direction back into the platform enum, and pass it to PDFKit. |
| |
| * WebProcess/WebPage/WebPage.h: |
| (WebKit::WebPage::userInterfaceLayoutDirection const): |
| Add a getter for UI layout direction. |
| |
| 2018-08-02 Chris Dumez <cdumez@apple.com> |
| |
| Regression(r234486): assertion hit in ~CallbackAggregator() |
| https://bugs.webkit.org/show_bug.cgi?id=188283 |
| <rdar://problem/42851342> |
| |
| Reviewed by Alex Christensen. |
| |
| [NSHTTPCookieStorage _saveCookies:] SPI may call its completion block on the background queue |
| so we need to make sure we dispatch back to the main thread before calling our completion |
| handler. |
| |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::saveCookies): |
| (WebKit::NetworkProcess::platformSyncAllCookies): |
| |
| 2018-08-02 Alex Christensen <achristensen@webkit.org> |
| |
| Fix some builds after r234516 |
| https://bugs.webkit.org/show_bug.cgi?id=188250 |
| |
| * Platform/IPC/ArgumentCoders.h: |
| This assertion was comparing integers of different signs. |
| Since we don't allow exception throwing in WebKit, valueless_by_exception won't be true, |
| so this assertion will always be true. I'll just remove it. |
| |
| 2018-08-02 Sihui Liu <sihui_liu@apple.com> |
| |
| httpCookieStore.getAllCookies() does not always call completion block |
| https://bugs.webkit.org/show_bug.cgi?id=188242 |
| |
| Reviewed by Chris Dumez. |
| |
| Take background assertion for network process to keep it alive during cookieStore API calls. |
| |
| * UIProcess/GenericCallback.h: |
| * UIProcess/WebCookieManagerProxy.cpp: |
| (WebKit::WebCookieManagerProxy::getHostnamesWithCookies): |
| (WebKit::WebCookieManagerProxy::deleteCookie): |
| (WebKit::WebCookieManagerProxy::deleteAllCookiesModifiedSince): |
| (WebKit::WebCookieManagerProxy::setCookie): |
| (WebKit::WebCookieManagerProxy::setCookies): |
| (WebKit::WebCookieManagerProxy::getAllCookies): |
| (WebKit::WebCookieManagerProxy::getCookies): |
| (WebKit::WebCookieManagerProxy::setHTTPCookieAcceptPolicy): |
| (WebKit::WebCookieManagerProxy::getHTTPCookieAcceptPolicy): |
| |
| 2018-08-02 Sihui Liu <sihui_liu@apple.com> |
| |
| [Cocoa] setCookie API fails to set session cookies for defaultDataStore if processPool created but not used |
| https://bugs.webkit.org/show_bug.cgi?id=188209 |
| |
| Reviewed by Geoffrey Garen. |
| |
| If defaultDataStore is already created when launching network process, it means user |
| probably set cookies for default session via API, so we should update m_websiteDataStore to |
| make sure pendingCookies is passed to network process. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| |
| 2018-08-02 Alex Christensen <achristensen@webkit.org> |
| |
| Use WTF::Variant for WebPreferencesStore::Value |
| https://bugs.webkit.org/show_bug.cgi?id=188250 |
| |
| Reviewed by Sam Weinig. |
| |
| It was conceptually a variant. This just uses an actual WTF::Variant. |
| Since it's encoded and decoded, I wrote variadic template encoders and decoders |
| like we have for other types (Expected, std::tuple, KeyValuePair, etc.) |
| |
| * Platform/IPC/ArgumentCoders.h: |
| (IPC::VariantCoder::encode): |
| (IPC::VariantCoder::decode): |
| Introduce ArgumentCoder<Variant>, which encodes which type the Variant currently |
| holds followed by the encoding of the current type. |
| * Platform/IPC/Decoder.cpp: |
| (IPC::Decoder::Decoder): |
| * Platform/IPC/Decoder.h: |
| * Platform/IPC/mac/ConnectionMac.mm: |
| (IPC::createMessageDecoder): |
| Use move semantics to prevent an unnecessary copy of the Vector<Attachment> |
| * Scripts/PreferencesTemplates/WebPreferencesStoreDefaultsMap.cpp.erb: |
| * Shared/WebPreferencesStore.cpp: |
| (WebKit::WebPreferencesStore::decode): |
| Use modern std::optional-based decoding supported by the new Variant decoding. |
| (WebKit::valueForKey): |
| Use WTF::get and WTF::holds_alternative instead of custom type checks. |
| (WebKit::WebPreferencesStore::Value::encode const): Deleted. |
| (WebKit::WebPreferencesStore::Value::decode): Deleted. |
| (WebKit::as<String>): Deleted. |
| (WebKit::as<bool>): Deleted. |
| (WebKit::as<uint32_t>): Deleted. |
| (WebKit::as<double>): Deleted. |
| * Shared/WebPreferencesStore.h: |
| (WebKit::WebPreferencesStore::Value::Value): Deleted. |
| (WebKit::WebPreferencesStore::Value::operator=): Deleted. |
| (WebKit::WebPreferencesStore::Value::~Value): Deleted. |
| (WebKit::WebPreferencesStore::Value::type const): Deleted. |
| (WebKit::WebPreferencesStore::Value::asString const): Deleted. |
| (WebKit::WebPreferencesStore::Value::asBool const): Deleted. |
| (WebKit::WebPreferencesStore::Value::asUInt32 const): Deleted. |
| (WebKit::WebPreferencesStore::Value::asDouble const): Deleted. |
| (WebKit::WebPreferencesStore::Value::destroy): Deleted. |
| (): Deleted. |
| Use WTF::Variant instead of a custom type/union pair. |
| |
| 2018-08-02 Alex Christensen <achristensen@webkit.org> |
| |
| Check with SafeBrowsing during navigation in WKWebView |
| https://bugs.webkit.org/show_bug.cgi?id=188133 |
| |
| Reviewed by Chris Dumez. |
| |
| This turns WebFramePolicyListenerProxy into an object that now listens for the results |
| of two processes happening in parallel: the API::NavigationClient's decidePolicyForNavigation{Action, Response} |
| (which it was already waiting for) and, on platforms that support it, the SafariSafeBrowsing framework's check. |
| The first result is stored as it waits for the second result unless the first result is the API::NavigationClient |
| saying to cancel or convert the navigation to a download, in which cases we don't care what the safe browsing |
| framework results are because we won't show the URL in the browser. |
| |
| Nothing is done with the safe browsing results yet. |
| |
| * UIProcess/Cocoa/SafeBrowsingResultCocoa.mm: Added. |
| (WebKit::SafeBrowsingResult::SafeBrowsingResult): |
| * UIProcess/Cocoa/WebPageProxyCocoa.mm: |
| (WebKit::WebPageProxy::beginSafeBrowsingCheck): |
| * UIProcess/SafeBrowsingResult.h: Added. |
| (WebKit::SafeBrowsingResult::provider const): |
| (WebKit::SafeBrowsingResult::isPhishing const): |
| (WebKit::SafeBrowsingResult::isMalware const): |
| (WebKit::SafeBrowsingResult::isUnwantedSoftware const): |
| (WebKit::SafeBrowsingResult::isKnownToBeUnsafe const): |
| * UIProcess/WebFramePolicyListenerProxy.cpp: |
| (WebKit::WebFramePolicyListenerProxy::WebFramePolicyListenerProxy): |
| (WebKit::WebFramePolicyListenerProxy::didReceiveSafeBrowsingResults): |
| (WebKit::WebFramePolicyListenerProxy::use): |
| (WebKit::WebFramePolicyListenerProxy::download): |
| (WebKit::WebFramePolicyListenerProxy::ignore): |
| * UIProcess/WebFramePolicyListenerProxy.h: |
| (WebKit::WebFramePolicyListenerProxy::create): |
| * UIProcess/WebFrameProxy.cpp: |
| (WebKit::WebFrameProxy::setUpPolicyListenerProxy): |
| * UIProcess/WebFrameProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::decidePolicyForNewWindowAction): |
| (WebKit::WebPageProxy::decidePolicyForResponse): |
| * UIProcess/WebPageProxy.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-08-02 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS] Keyboard becomes unresponsive after pressing delete while pressing down on a character key with accents |
| https://bugs.webkit.org/show_bug.cgi?id=188251 |
| <rdar://problem/37842108> |
| |
| Reviewed by Tim Horton. |
| |
| Fixes a bug in key event handling where invoking -handleKeyWebEvent:withCompletionHandler: from within the |
| completion callback of a previous call to -handleKeyWebEvent:withCompletionHandler: would cause the completion |
| callback to be cleared out prematurely. In some cases (as described in the title of this bug), UIKit exercises |
| this codepath and subsequently hangs due to their completion block never getting invoked by WebKit. |
| |
| Test: KeyboardInputTests.CanHandleKeyEventInCompletionHandler |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView handleKeyWebEvent:withCompletionHandler:]): |
| (-[WKContentView _didHandleKeyEvent:eventWasHandled:]): |
| |
| 2018-08-01 Dan Bernstein <mitz@apple.com> |
| |
| Optionally expose Attr::style to JavaScript |
| https://bugs.webkit.org/show_bug.cgi?id=188226 |
| <rdar://problem/42818113> |
| |
| Reviewed by Darin Adler. |
| |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::encode const): Encode new attrStyleEnabled member. |
| (WebKit::WebProcessCreationParameters::decode): Decode new attrStyleEnabled member. |
| * Shared/WebProcessCreationParameters.h: Define new attrStyleEnabled member, initialized to |
| false. |
| |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| (API::ProcessPoolConfiguration::copy): Copy new m_attrStyleEnabled member. |
| * UIProcess/API/APIProcessPoolConfiguration.h: Define new m_attrStyleEnabled member. |
| |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: Declare new attrStyleEnabled boolean |
| property. |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: |
| (-[_WKProcessPoolConfiguration attrStyleEnabled]): New accessor. |
| (-[_WKProcessPoolConfiguration setAttrStyleEnabled:]): Ditto. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::initializeNewWebProcess): Initialize parameters.attrStyleEnabled |
| from the configuration. |
| |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeWebProcess): Set the attrStyleEnabled runtime feature based |
| on the creation parameters. |
| |
| 2018-08-02 David Fenton <david_fenton@apple.com> |
| |
| Unreviewed, rolling out r234489. |
| |
| Caused 50+ crashes and 60+ API failures on iOS |
| |
| Reverted changeset: |
| |
| "[WTF] Rename String::format to String::deprecatedFormat" |
| https://bugs.webkit.org/show_bug.cgi?id=188191 |
| https://trac.webkit.org/changeset/234489 |
| |
| 2018-08-01 Tomas Popela <tpopela@redhat.com> |
| |
| [WTF] Rename String::format to String::deprecatedFormat |
| https://bugs.webkit.org/show_bug.cgi?id=188191 |
| |
| Reviewed by Darin Adler. |
| |
| It should be replaced with string concatenation. |
| |
| * NetworkProcess/soup/NetworkProcessSoup.cpp: |
| (WebKit::buildAcceptLanguages): |
| * Platform/IPC/win/ConnectionWin.cpp: |
| (IPC::Connection::createServerAndClientIdentifiers): |
| * Shared/WebMemorySampler.cpp: |
| (WebKit::WebMemorySampler::writeHeaders): |
| * Shared/win/WebEventFactory.cpp: |
| (WebKit::keyIdentifierFromEvent): |
| * Shared/wpe/WebEventFactory.cpp: |
| (WebKit::identifierStringForKeyEvent): |
| * UIProcess/API/APINavigation.cpp: |
| (API::Navigation::loggingString const): |
| * UIProcess/API/glib/IconDatabase.cpp: |
| (WebKit::IconDatabase::performURLImport): |
| * UIProcess/Cocoa/ViewGestureController.cpp: |
| (WebKit::ViewGestureController::SnapshotRemovalTracker::startWatchdog): |
| * UIProcess/SuspendedPageProxy.cpp: |
| (WebKit::SuspendedPageProxy::loggingString const): |
| * UIProcess/WebBackForwardList.cpp: |
| (WebKit::WebBackForwardList::loggingString): |
| * UIProcess/WebInspectorUtilities.cpp: |
| (WebKit::inspectorPageGroupIdentifierForPage): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processDidFinishLaunching): |
| (WebKit::WebProcessPool::startMemorySampler): |
| * UIProcess/gtk/InputMethodFilter.cpp: |
| (WebKit::InputMethodFilter::logHandleKeyboardEventForTesting): |
| (WebKit::InputMethodFilter::logHandleKeyboardEventWithCompositionResultsForTesting): |
| (WebKit::InputMethodFilter::logConfirmCompositionForTesting): |
| (WebKit::InputMethodFilter::logSetPreeditForTesting): |
| |
| 2018-08-01 Tim Horton <timothy_horton@apple.com> |
| |
| Using the keyboard arrow keys to scroll a webpage is very slow, not smooth, takes too long |
| https://bugs.webkit.org/show_bug.cgi?id=188239 |
| <rdar://problem/22997654> |
| |
| Reviewed by Simon Fraser. |
| |
| Instead of depending on key repeat to drive scrolling with arrow keys held down, |
| run a display link that animates the scroll. We still do a single discrete scroll |
| first (so that you can tap the key and shift by line/page), but then on the first |
| repeat we ramp up to a constant velocity determined by the desired increment, |
| stopping when the key is lifted or a different key is pressed. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _scrollByContentOffset:animated:]): |
| (-[WKWebView _scrollByContentOffset:]): Deleted. |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| Add animated parameter to scrollByContentOffset, and plumb it through to UIScrollView. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| Add a WKKeyboardScrollingAnimator member. |
| Conform to WKKeyboardScrollable. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView setupInteraction]): |
| Install the WKKeyboardScrollingAnimator. |
| |
| (-[WKContentView cleanupInteraction]): |
| Uninstall the WKKeyboardScrollingAnimator. |
| |
| (-[WKContentView unscaledView]): |
| Fix a stupid style nit. |
| |
| (-[WKContentView handleKeyWebEvent:]): |
| Give WKKeyboardScrollingAnimator the first shot at incoming keyboard events. |
| It will only consume events here if it's already performing a scrolling animation |
| (because otherwise they should go straight through to the page). |
| |
| (-[WKContentView _interpretKeyEvent:isCharEvent:]): |
| Give WKKeyboardScrollingAnimator a shot at handling keyboard events that |
| the web content did not handle. We will only start a scrolling animation |
| if the page did not handle an event that would start a scroll. |
| |
| (-[WKContentView isKeyboardScrollable]): |
| Part of WKKeyboardScrollable; only report ourselves as scrollable if |
| we would previously have allowed scrolling from keyboard events (if |
| we're not in contenteditable, and don't have a <select> focused). |
| |
| (-[WKContentView distanceForScrollingIncrement:]): |
| Part of WKKeyboardScrollable; compute the distance for each scrolling increment. |
| |
| (-[WKContentView scrollByContentOffset:animated:]): |
| Part of WKKeyboardScrollable; plumb scrolls up to WKWebView. |
| |
| (-[WKContentView _scrollOffsetForEvent:]): Moved to WKKeyboardScrollingAnimator.mm. |
| |
| * UIProcess/ios/WKKeyboardScrollingAnimator.h: Added. |
| * UIProcess/ios/WKKeyboardScrollingAnimator.mm: Added. |
| (-[WKKeyboardScrollingAnimator init]): |
| (-[WKKeyboardScrollingAnimator initWithScrollable:]): |
| (-[WKKeyboardScrollingAnimator invalidate]): |
| (-[WKKeyboardScrollingAnimator _scrollOffsetForEvent:]): |
| Compute the scroll offset given a particular event. This is moved from WKContentView; |
| otherwise the primary change is that it now asks the WKKeyboardScrollable |
| for the distance instead of computing it directly. |
| |
| (-[WKKeyboardScrollingAnimator beginWithEvent:]): |
| If we're currently in the initial state (WaitingForFirstEvent), and |
| a given event should start a scroll, transition into WaitingForRepeat, |
| and do a single animated scroll of the appropriate distance. |
| |
| (-[WKKeyboardScrollingAnimator handleKeyEvent:]): |
| If this key event should terminate a scroll (because it is either a keyup |
| or a non-scrolling keydown), shut down any running animations. |
| |
| If this is the first key repeat after the initial scroll, start a scrolling |
| animation. |
| |
| Eat the event if it either started or continued a scroll. |
| |
| (-[WKKeyboardScrollingAnimator startAnimatedScroll]): |
| (-[WKKeyboardScrollingAnimator stopAnimatedScroll]): |
| Helpers to start and stop the display link and do some bookkeeping. |
| |
| (-[WKKeyboardScrollingAnimator displayLinkFired:]): |
| Ask the WKKeyboardScrollable to scroll the content based on the frame time, |
| an acceleration curve, and the current animation's scrolling increment. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-08-01 Chris Dumez <cdumez@apple.com> |
| |
| Make sure cookies get flushed to disk before exiting or suspending the network process |
| https://bugs.webkit.org/show_bug.cgi?id=188241 |
| <rdar://problem/42831831> |
| |
| Reviewed by Alex Christensen and Geoffrey Garen. |
| |
| Make sure cookies get flushed to disk before exiting or suspending the network process, |
| to make sure they do not get lost. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::didClose): |
| (WebKit::NetworkProcess::actualPrepareToSuspend): |
| (WebKit::NetworkProcess::platformSyncAllCookies): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::syncAllCookies): |
| (WebKit::NetworkProcess::platformSyncAllCookies): |
| * Shared/ChildProcess.cpp: |
| (WebKit::ChildProcess::didClose): |
| (WebKit::callExitNow): |
| (WebKit::callExitSoon): |
| (WebKit::ChildProcess::initialize): |
| (WebKit::didCloseOnConnectionWorkQueue): Deleted. |
| * Shared/ChildProcess.h: |
| (WebKit::ChildProcess::shouldCallExitWhenConnectionIsClosed const): |
| |
| 2018-08-01 Alex Christensen <achristensen@webkit.org> |
| |
| Move all calls to ResourceLoader::start to WebKitLegacy |
| https://bugs.webkit.org/show_bug.cgi?id=184946 |
| |
| Reviewed by Andy Estes. |
| |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::setDefersLoading): |
| * WebProcess/Network/WebLoaderStrategy.h: |
| |
| 2018-08-01 Nan Wang <n_wang@apple.com> |
| |
| AX: AOM: Add ARIA IDL Attribute Reflection |
| https://bugs.webkit.org/show_bug.cgi?id=184676 |
| <rdar://problem/39476882> |
| |
| Added ARIA property string reflection on Element, behind |
| a new runtime flag. |
| Spec: https://w3c.github.io/aria/#idl-interface |
| |
| Reviewed by Chris Fleizach. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetAriaReflectionEnabled): |
| (WKPreferencesGetAriaReflectionEnabled): |
| * UIProcess/API/C/WKPreferencesRefPrivate.h: |
| |
| 2018-08-01 Alex Christensen <achristensen@webkit.org> |
| |
| Allow WebFramePolicyListenerProxy to be used multiple times |
| https://bugs.webkit.org/show_bug.cgi?id=188229 |
| |
| Reviewed by Chris Dumez. |
| |
| This fixes a regression from r234210 in clients that misuse the API. |
| |
| * UIProcess/WebFramePolicyListenerProxy.cpp: |
| (WebKit::WebFramePolicyListenerProxy::use): |
| (WebKit::WebFramePolicyListenerProxy::download): |
| (WebKit::WebFramePolicyListenerProxy::ignore): |
| |
| 2018-08-01 Aditya Keerthi <akeerthi@apple.com> |
| |
| [iOS] Color picker should have a border when presented in a popover |
| https://bugs.webkit.org/show_bug.cgi?id=188207 |
| |
| Reviewed by Wenson Hsieh. |
| |
| The color picker should have a border when presented in a popover. This matches |
| the behavior of color pickers in other parts of iOS. |
| |
| Since the popover will resize its view to fill its size, we first place the |
| color picker in a container view. The container view can then fill the popover, |
| while the smaller color picker is centered in it's container - creating the |
| appearance of a border. |
| |
| * UIProcess/ios/forms/WKFormColorControl.mm: |
| (-[WKColorPopover initWithView:]): |
| * UIProcess/ios/forms/WKFormColorPicker.mm: |
| |
| 2018-08-01 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r234443 and r234445. |
| https://bugs.webkit.org/show_bug.cgi?id=188224 |
| |
| Revision caused 3 api failures across all platforms. |
| (Requested by Truitt on #webkit). |
| |
| Reverted changesets: |
| |
| "Add configuration for automatic process pre-warming" |
| https://bugs.webkit.org/show_bug.cgi?id=187108 |
| https://trac.webkit.org/changeset/234443 |
| |
| "Add configuration for automatic process pre-warming" |
| https://bugs.webkit.org/show_bug.cgi?id=187108 |
| https://trac.webkit.org/changeset/234445 |
| |
| 2018-08-01 Aditya Keerthi <akeerthi@apple.com> |
| |
| [iOS] WKColorPicker's selection indicator doesn't always cover the selected swatch |
| https://bugs.webkit.org/show_bug.cgi?id=188124 |
| |
| Reviewed by Wenson Hsieh. |
| |
| - On iPhone, the size of an individual color swatch can change on rotation. In |
| this case, we should resize the selection indicator along with the swatch. Added |
| a new delegate method to WKColorMatrixViewDelegate to notify the color picker if |
| the matrix was redrawn. We then resize the selection indicator to match the |
| selected swatch's size. |
| |
| - On iPad, the selection indicator should have rounded corners if it's at the |
| corner of the color picker. Otherwise, part of the indicator will be hidden by |
| the popover. The selected swatch's position is checked before drawing the |
| indicator. If it's at one of the four corners of the picker, the appropriate mask |
| is applied to the color selection indicator's border. |
| |
| * UIProcess/ios/forms/WKFormColorPicker.h: |
| * UIProcess/ios/forms/WKFormColorPicker.mm: |
| (-[WKColorMatrixView layoutSubviews]): |
| (-[WKColorPicker initWithView:]): |
| (-[WKColorPicker drawSelectionIndicatorForColorButton:]): |
| (-[WKColorPicker colorMatrixViewDidLayoutSubviews:]): |
| (-[WKColorPicker colorMatrixView:didTapColorButton:]): |
| (-[WKColorPicker didPanColors:]): |
| |
| 2018-08-01 Zan Dobersek <zdobersek@igalia.com> |
| |
| [CoordGraphics] Move CoordinatedBackingStore to WebCore |
| https://bugs.webkit.org/show_bug.cgi?id=188158 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Move the CoordinatedBackingStore class from WebKit to WebCore. It has no |
| dependency on anything in the WebKit layer, and it's more suitable to |
| future needs to keep it in the WebCore layer. |
| |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h: |
| * SourcesGTK.txt: |
| * SourcesWPE.txt: |
| |
| 2018-07-31 Alex Christensen <achristensen@webkit.org> |
| |
| REGRESSION (r231107): MoviStar+ launches to a blank black screen |
| https://bugs.webkit.org/show_bug.cgi?id=188139 |
| |
| Reviewed by Brent Fulgham. |
| |
| Add infrastructure to check UIProcess SDK from the WebProcess and NetworkProcess for linked-on-or-after checks. |
| |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa): |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::encode const): |
| (WebKit::WebProcessCreationParameters::decode): |
| * Shared/WebProcessCreationParameters.h: |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): |
| (WebKit::WebProcessPool::platformInitializeNetworkProcess): |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::platformInitializeWebProcess): |
| |
| 2018-07-31 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Add configuration for automatic process pre-warming |
| https://bugs.webkit.org/show_bug.cgi?id=187108 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Added the missing availability macros. |
| |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: |
| |
| 2018-07-31 Ben Richards <benton_richards@apple.com> |
| |
| Add configuration for automatic process pre-warming |
| https://bugs.webkit.org/show_bug.cgi?id=187108 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Added configurations to allow setting the maximum number of processes that should be automatically prewarmed. |
| |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| (API::ProcessPoolConfiguration::copy): |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextSetMaximumNumberOfPrewarmedProcesses): |
| * UIProcess/API/C/WKContextPrivate.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: |
| (-[_WKProcessPoolConfiguration setMaximumPrewarmedProcessCount:]): |
| (-[_WKProcessPoolConfiguration maximumPrewarmedProcessCount]): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didFinishLoadForFrame): Moved call to notifyProcessPoolToPrewarm from didFirstVisuallyNonEmptyLayoutForFrame to here. |
| This is to try to ensure that frame loading and prewarming don't happen at the same time as this would be heavy for some devices. |
| (WebKit::WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::setMaximumNumberOfProcesses): Condition changed so that calling setMaximumNumberOfProcesses after warmInitialProcess |
| doesn't result in a crash. |
| (WebKit::WebProcessPool::setMaximumNumberOfPrewarmedProcesses): |
| (WebKit::WebProcessPool::warmInitialProcess): |
| (WebKit::WebProcessPool::didReachGoodTimeToPrewarm): |
| * UIProcess/WebProcessPool.h: |
| |
| 2018-07-31 Stephan Szabo <stephan.szabo@sony.com> |
| |
| [WinCairo] <select> elements do not popup options |
| https://bugs.webkit.org/show_bug.cgi?id=188172 |
| |
| Reviewed by Fujii Hironori. |
| |
| * PlatformWin.cmake: Add WebPopupMenuProxyWin |
| * Shared/PlatformPopupMenuData.cpp: |
| (WebKit::PlatformPopupMenuData::encode const): Encode |
| windows parameters |
| (WebKit::PlatformPopupMenuData::decode): Decode windows |
| parameters |
| * Shared/PlatformPopupMenuData.h: Add the windows specific |
| parameters (based on removed Windows implementation) |
| * UIProcess/win/PageClientImpl.cpp: |
| (WebKit::PageClientImpl::createPopupMenuProxy): |
| * UIProcess/win/WebPopupMenuProxyWin.cpp: Added. (based on |
| removed Windows implementation plus some fixes/api changes |
| since the removal) |
| (WebKit::isASCIIPrintable): |
| (WebKit::translatePoint): |
| (WebKit::WebPopupMenuProxyWin::WebPopupMenuProxyWndProc): |
| (WebKit::WebPopupMenuProxyWin::wndProc): |
| (WebKit::WebPopupMenuProxyWin::registerWindowClass): |
| (WebKit::WebPopupMenuProxyWin::WebPopupMenuProxyWin): |
| (WebKit::WebPopupMenuProxyWin::~WebPopupMenuProxyWin): |
| (WebKit::WebPopupMenuProxyWin::showPopupMenu): |
| (WebKit::WebPopupMenuProxyWin::hidePopupMenu): |
| (WebKit::WebPopupMenuProxyWin::calculatePositionAndSize): |
| (WebKit::WebPopupMenuProxyWin::clientRect const): |
| (WebKit::WebPopupMenuProxyWin::invalidateItem): |
| (WebKit::WebPopupMenuProxyWin::scrollSize const): |
| (WebKit::WebPopupMenuProxyWin::setScrollOffset): |
| (WebKit::WebPopupMenuProxyWin::visibleSize const): |
| (WebKit::WebPopupMenuProxyWin::contentsSize const): |
| (WebKit::WebPopupMenuProxyWin::scrollableAreaBoundingBox const): |
| (WebKit::WebPopupMenuProxyWin::scrollTo): |
| (WebKit::WebPopupMenuProxyWin::invalidateScrollbarRect): |
| (WebKit::WebPopupMenuProxyWin::onMouseActivate): |
| (WebKit::WebPopupMenuProxyWin::onSize): |
| (WebKit::WebPopupMenuProxyWin::onKeyDown): |
| (WebKit::WebPopupMenuProxyWin::onChar): |
| (WebKit::WebPopupMenuProxyWin::onMouseMove): |
| (WebKit::WebPopupMenuProxyWin::onLButtonDown): |
| (WebKit::WebPopupMenuProxyWin::onLButtonUp): |
| (WebKit::WebPopupMenuProxyWin::onMouseWheel): |
| (WebKit::WebPopupMenuProxyWin::onPaint): |
| (WebKit::WebPopupMenuProxyWin::onPrintClient): |
| (WebKit::WebPopupMenuProxyWin::down): |
| (WebKit::WebPopupMenuProxyWin::up): |
| (WebKit::WebPopupMenuProxyWin::paint): |
| (WebKit::WebPopupMenuProxyWin::setFocusedIndex): |
| (WebKit::WebPopupMenuProxyWin::visibleItems const): |
| (WebKit::WebPopupMenuProxyWin::listIndexAtPoint const): |
| (WebKit::WebPopupMenuProxyWin::focusedIndex const): |
| (WebKit::WebPopupMenuProxyWin::focusFirst): |
| (WebKit::WebPopupMenuProxyWin::focusLast): |
| (WebKit::WebPopupMenuProxyWin::incrementWheelDelta): |
| (WebKit::WebPopupMenuProxyWin::reduceWheelDelta): |
| (WebKit::WebPopupMenuProxyWin::scrollToRevealSelection): |
| * UIProcess/win/WebPopupMenuProxyWin.h: Added. (based on |
| removed Windows implementation plus some fixes/api changes |
| since then) |
| (WebKit::WebPopupMenuProxyWin::create): |
| (WebKit::WebPopupMenuProxyWin::hide): |
| (WebKit::WebPopupMenuProxyWin::scrollbar const): |
| (WebKit::WebPopupMenuProxyWin::itemHeight const): |
| (WebKit::WebPopupMenuProxyWin::windowRect const): |
| (WebKit::WebPopupMenuProxyWin::wheelDelta const): |
| (WebKit::WebPopupMenuProxyWin::setWasClicked): |
| (WebKit::WebPopupMenuProxyWin::wasClicked const): |
| (WebKit::WebPopupMenuProxyWin::scrollbarCapturingMouse const): |
| (WebKit::WebPopupMenuProxyWin::setScrollbarCapturingMouse): |
| * WebProcess/WebCoreSupport/win/WebPopupMenuWin.cpp: |
| (WebKit::WebPopupMenu::setUpPlatformData): Make the data to |
| pass between processes. |
| |
| 2018-07-31 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Remove partitioned cookies for reduced complexity, lower memory footprint, and ability to support more platforms |
| https://bugs.webkit.org/show_bug.cgi?id=188109 |
| <rdar://problem/42664391> |
| |
| Reviewed by Brent Fulgham, Chris Dumez, and Alex Christensen. |
| |
| This patch removes cookie partitioning which reduces the model to just |
| blocked cookies (in third-party contexts) and first-party cookie access. |
| |
| Several of the changes are renaming to reflect that there are no more |
| cookie partitions. However, the compile-time check remains for now since |
| this change is not ready to ship. |
| |
| The API changes are mostly in C APIs used for layout tests. The slight |
| change in Cocoa API is that there no longer is a functionality to |
| "enable" cookie partitioning. The boolean member is still there but it |
| no longer does anything. |
| |
| The functional changes are in WebKit::ResourceLoadStatisticsMemoryStore |
| and WebKit::NetworkDataTaskCocoa where cookie partitioning used to be |
| managed and applied respectively. The IPC communication has changed to |
| reflect this. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::updatePrevalentDomainsToBlockCookiesFor): |
| Name change from updatePrevalentDomainsToPartitionOrBlockCookies(). |
| No longer supports the partitioned category. |
| (WebKit::NetworkProcess::removeAllStorageAccess): |
| Now supports a completion handler. This change was made to address |
| flakiness that came after layout test changes that were needed because |
| of the removal of partitioned cookies. |
| (WebKit::NetworkProcess::updatePrevalentDomainsToPartitionOrBlockCookies): Deleted. |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| Partitioning removed from message name. |
| RemoveAllStorageAccess message now supports a completion handler |
| as explained above |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| Removed parameter cookieStoragePartitioningEnabled. |
| (WebKit::NetworkProcessCreationParameters::decode): |
| Removed parameter cookieStoragePartitioningEnabled. |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::logCookieInformation): |
| No longer takes partitioning into account. |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.h: |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): |
| Now only applies cookie blocking. |
| (WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection): |
| Now only applies cookie blocking. |
| (WebKit::NetworkDataTaskCocoa::applyCookiePartitioningPolicy): Deleted. |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa): |
| Removed the call to setCookieStoragePartitioningEnabled(). |
| (WebKit::NetworkProcess::setCookieStoragePartitioningEnabled): Deleted. |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]): |
| (-[WKNetworkSessionDelegate URLSession:task:_schemeUpgraded:completionHandler:]): |
| WebCore::NetworkStorageSession::shouldBlockCookies() now takes a |
| frame ID and page ID to resolve cookie access with the Storage |
| Access API. This was previously handled by |
| WebCore::NetworkStorageSession::cookieStoragePartition(). |
| * UIProcess/API/C/WKCookieManager.cpp: |
| (WKCookieManagerSetCookieStoragePartitioningEnabled): Deleted. |
| * UIProcess/API/C/WKCookieManager.h: |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreStatisticsUpdateCookieBlocking): |
| (WKWebsiteDataStoreSetStatisticsHasHadNonRecentUserInteraction): Deleted. |
| There is no longer a difference between recent and non-recent |
| user interaction so this test function was removed. |
| (WKWebsiteDataStoreSetStatisticsTimeToLiveCookiePartitionFree): Deleted. |
| (WKWebsiteDataStoreStatisticsUpdateCookiePartitioning): Deleted. |
| (WKWebsiteDataStoreSetStatisticsShouldPartitionCookiesForHost): Deleted. |
| Deleted because partitioning is no longer a thing. |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| Deprecated _isCookieStoragePartitioningEnabled() and |
| _setCookieStoragePartitioningEnabled() via WK_API_DEPRECATED. |
| * UIProcess/Cocoa/ResourceLoadStatisticsMemoryStoreCocoa.mm: |
| (WebKit::ResourceLoadStatisticsMemoryStore::registerUserDefaultsIfNeeded): |
| Removed support for ResourceLoadStatisticsTimeToLiveCookiePartitionFree. |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeNetworkProcess): |
| No longer sets a parameter based on cookieStoragePartitioningEnabled(). |
| (WebKit::WebProcessPool::setCookieStoragePartitioningEnabled): |
| Added a FIXME comment that this setter no longer does anything meaningful. |
| Removed the IPC call to the network process to propagate the setting. |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::clearCallbackStates): |
| Name change from m_updatePartitionOrBlockCookiesCallbackMap to |
| m_updateBlockCookiesCallbackMap. |
| (WebKit::NetworkProcessProxy::updatePrevalentDomainsToBlockCookiesFor): |
| Name change plus it now just takes one vector of strings named domainsToBlock. |
| (WebKit::NetworkProcessProxy::didUpdateBlockCookies): |
| Name change from didUpdatePartitionOrBlockCookies(). |
| (WebKit::NetworkProcessProxy::storageAccessRequestResult): |
| Just moved to its right place. |
| (WebKit::NetworkProcessProxy::removeAllStorageAccess): |
| Now take a completion handler. |
| (WebKit::NetworkProcessProxy::didRemoveAllStorageAccess): |
| To call the completion handler. |
| (WebKit::NetworkProcessProxy::updatePrevalentDomainsToPartitionOrBlockCookies): Deleted. |
| Name change. |
| (WebKit::NetworkProcessProxy::didUpdatePartitionOrBlockCookies): Deleted. |
| Name change. |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| Name change and added completion handler message for removeAllStorageAccess(). |
| * UIProcess/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ResourceLoadStatisticsMemoryStore::hasStorageAccess): |
| (WebKit::ResourceLoadStatisticsMemoryStore::requestStorageAccess): |
| (WebKit::ResourceLoadStatisticsMemoryStore::requestStorageAccessUnderOpener): |
| (WebKit::ResourceLoadStatisticsMemoryStore::scheduleStatisticsProcessingRequestIfNecessary): |
| (WebKit::ResourceLoadStatisticsMemoryStore::logUserInteraction): |
| (WebKit::ResourceLoadStatisticsMemoryStore::mergeWithDataFromDecoder): |
| (WebKit::ResourceLoadStatisticsMemoryStore::clear): |
| (WebKit::ResourceLoadStatisticsMemoryStore::wasAccessedAsFirstPartyDueToUserInteraction const): |
| (WebKit::ResourceLoadStatisticsMemoryStore::shouldBlockAndKeepCookies): |
| (WebKit::ResourceLoadStatisticsMemoryStore::shouldBlockAndPurgeCookies): |
| (WebKit::ResourceLoadStatisticsMemoryStore::updateCookieBlocking): |
| (WebKit::ResourceLoadStatisticsMemoryStore::updateCookieBlockingForDomains): |
| (WebKit::ResourceLoadStatisticsMemoryStore::clearBlockingStateForDomains): |
| (WebKit::ResourceLoadStatisticsMemoryStore::resetCookieBlockingState): |
| (WebKit::ResourceLoadStatisticsMemoryStore::removeAllStorageAccess): |
| (WebKit::ResourceLoadStatisticsMemoryStore::logNonRecentUserInteraction): Deleted. |
| There is no longer a difference between recent and non-recent |
| user interaction so this test function was removed. |
| (WebKit::ResourceLoadStatisticsMemoryStore::setTimeToLiveCookiePartitionFree): Deleted. |
| (WebKit::ResourceLoadStatisticsMemoryStore::shouldPartitionCookies): Deleted. |
| (WebKit::ResourceLoadStatisticsMemoryStore::shouldBlockCookies): Deleted. |
| Now split into shouldBlockAndKeepCookies() and shouldBlockAndPurgeCookies(). |
| (WebKit::ResourceLoadStatisticsMemoryStore::updateCookiePartitioning): Deleted. |
| (WebKit::ResourceLoadStatisticsMemoryStore::updateCookiePartitioningForDomains): Deleted. |
| (WebKit::ResourceLoadStatisticsMemoryStore::clearPartitioningStateForDomains): Deleted. |
| (WebKit::ResourceLoadStatisticsMemoryStore::resetCookiePartitioningState): Deleted. |
| * UIProcess/ResourceLoadStatisticsMemoryStore.h: |
| * UIProcess/ResourceLoadStatisticsPersistentStorage.cpp: |
| (WebKit::ResourceLoadStatisticsPersistentStorage::startMonitoringDisk): |
| Added an empty completion handler to the m_memoryStore.clear() call. |
| * UIProcess/WebCookieManagerProxy.cpp: |
| (WebKit::WebCookieManagerProxy::setCookieStoragePartitioningEnabled): Deleted. |
| * UIProcess/WebCookieManagerProxy.h: |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::resourceLoadStatisticsUpdated): |
| (WebKit::WebResourceLoadStatisticsStore::removeAllStorageAccess): |
| Now has a completion handler. |
| (WebKit::WebResourceLoadStatisticsStore::scheduleCookieBlockingUpdate): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleCookieBlockingUpdateForDomains): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleClearBlockingStateForDomains): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleCookieBlockingStateReset): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemory): |
| Now supports a completion handler for removeAllStorageAccess(). |
| (WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent): |
| (WebKit::WebResourceLoadStatisticsStore::callUpdatePrevalentDomainsToBlockCookiesForHandler): |
| (WebKit::WebResourceLoadStatisticsStore::logNonRecentUserInteraction): Deleted. |
| There is no longer a difference between recent and non-recent |
| user interaction so this test function was removed. |
| (WebKit::WebResourceLoadStatisticsStore::scheduleCookiePartitioningUpdate): Deleted. |
| Renamed to scheduleCookieBlockingUpdate(). |
| (WebKit::WebResourceLoadStatisticsStore::scheduleCookiePartitioningUpdateForDomains): Deleted. |
| Renamed to scheduleCookieBlockingUpdateForDomains(). |
| (WebKit::WebResourceLoadStatisticsStore::scheduleClearPartitioningStateForDomains): Deleted. |
| Renamed to scheduleClearBlockingStateForDomains(). |
| (WebKit::WebResourceLoadStatisticsStore::scheduleCookiePartitioningStateReset): Deleted. |
| Renamed to scheduleCookieBlockingStateReset(). |
| (WebKit::WebResourceLoadStatisticsStore::setTimeToLiveCookiePartitionFree): Deleted. |
| (WebKit::WebResourceLoadStatisticsStore::callUpdatePrevalentDomainsToPartitionOrBlockCookiesHandler): Deleted. |
| Renamed callUpdatePrevalentDomainsToBlockCookiesForHandler(). |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::updatePrevalentDomainsToBlockCookiesFor): |
| (WebKit::WebsiteDataStore::removeAllStorageAccessHandler): |
| Now supports a completion handler for removeAllStorageAccess(). |
| (WebKit::WebsiteDataStore::networkProcessDidCrash): |
| Name change in function called to get rid of "partitioning." |
| (WebKit::WebsiteDataStore::updatePrevalentDomainsToPartitionOrBlockCookies): Deleted. |
| Renamed updatePrevalentDomainsToBlockCookiesFor(). |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| |
| 2018-07-31 Rob Buis <rbuis@igalia.com> |
| |
| Remove ResourceResponse::cacheBodyKey API |
| https://bugs.webkit.org/show_bug.cgi?id=188192 |
| |
| Reviewed by Frédéric Wang. |
| |
| Remove unused API. |
| |
| * NetworkProcess/cache/NetworkCacheEntry.cpp: |
| (WebKit::NetworkCache::Entry::decodeStorageRecord): |
| |
| 2018-07-30 Sihui Liu <sihui_liu@apple.com> |
| |
| Add support for fetching and remove type _WKWebsiteDataTypeHSTSCache |
| https://bugs.webkit.org/show_bug.cgi?id=187379 |
| <rdar://problem/41879559> |
| |
| WKWebsiteDataStore should support _WKWebsiteDataTypeHSTSCache so Safari could list HSTS cache entries |
| and be able to remove them on a per-domain basis. |
| |
| Reviewed by Geoffrey Garen. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::fetchWebsiteData): |
| (WebKit::NetworkProcess::deleteWebsiteDataForOrigins): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::filterPreloadHSTSEntry): |
| (WebKit::NetworkProcess::getHostNamesWithHSTSCache): |
| (WebKit::NetworkProcess::deleteHSTSCacheForHostNames): |
| * Shared/WebsiteData/WebsiteData.cpp: |
| (WebKit::WebsiteData::encode const): |
| (WebKit::WebsiteData::decode): |
| * Shared/WebsiteData/WebsiteData.h: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::deleteWebsiteDataForOrigins): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/WebsiteData/WebsiteDataRecord.cpp: |
| (WebKit::WebsiteDataRecord::displayNameForCookieHostName): |
| (WebKit::WebsiteDataRecord::displayNameForHostName): |
| (WebKit::WebsiteDataRecord::addHSTSCacheHostname): |
| (WebKit::WebsiteDataRecord::displayNameForPluginDataHostName): Deleted. |
| * UIProcess/WebsiteData/WebsiteDataRecord.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::fetchDataAndApply): |
| (WebKit::WebsiteDataStore::removeData): |
| |
| 2018-07-30 Simon Fraser <simon.fraser@apple.com> |
| |
| Shrink GraphicsLayerCA |
| https://bugs.webkit.org/show_bug.cgi?id=188141 |
| |
| Reviewed by Zalan Bujtas. |
| |
| Shrink GraphicsLayerCA from 1040 to 880 bytes by: |
| * moving all the clone-related stuff into the lazily-allocated m_layerClones |
| * moving all the animation-related stuff into the lazily-allocated m_animations |
| * making enums be 8-bit |
| * re-ordering data members |
| |
| * Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm: |
| (WebKit::updateCustomAppearance): |
| (WebKit::RemoteLayerTreePropertyApplier::applyProperties): |
| * Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm: |
| (WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties): |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp: |
| (WebKit::PlatformCALayerRemote::requiresCustomAppearanceUpdateOnBoundsChange const): |
| |
| 2018-07-30 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| REGRESSION (r230817): Terrible performance when selecting text on Stash code review |
| https://bugs.webkit.org/show_bug.cgi?id=188144 |
| <rdar://problem/42642489> |
| |
| Reviewed by Darin Adler. |
| |
| After r230817, mouse events were serially dispatched to the web process and handled before the subsequent mouse |
| event. However, this resulted in rapid-fire mouse move events filling up the mouse event queue in the case where |
| mouse move events were being handled by the web process at a slower rate than the UI process was enqueueing |
| them. To mitigate this, r231511 introduced a mechanism for replacing the most recently enqueued mouse move event |
| with an incoming mouse move event. |
| |
| However, when a user with a force-click-enabled trackpad performs a mouse drag, a rapid stream of |
| "mouseforcechanged" events is interleaved alongside the stream of "mousemove" events. This renders r231511 |
| ineffective, since the most recently queued event is often a "mouseforcechanged" event instead of a "mousemove". |
| On the stash code review page, this can result in hundreds of mouse events being backed up in the mouse event |
| queue, causing perceived slowness when selecting text. |
| |
| To fix this, we extend the mechanism introduced in r231511, such that it is capable of replacing both |
| "mouseforcechanged" and "mousemove" events in the queue. Rather than consider only the most recently queued |
| item, we instead find the most recently queued event that matches the type of the incoming event, remove it from |
| the queue, and then append the incoming event to the end of the queue. To avoid the risk of removing the only |
| "mousemove" or "mouseforcechanged" event in the middle of a mouse down and mouse up, we also bail when searching |
| backwards for an event to replace if we come across any event that is neither of these types. |
| |
| This effectively throttles the rate at which mouseforcechanged or mousemove events are dispatched when a user |
| with force-click-enabled hardware clicks and drags the mouse across the page. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::removeOldRedundantEvent): |
| (WebKit::WebPageProxy::handleMouseEvent): |
| |
| 2018-07-30 Devin Rousso <webkit@devinrousso.com> |
| |
| Add missing CoreGraphics SPI |
| https://bugs.webkit.org/show_bug.cgi?id=188177 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| |
| 2018-07-30 Rob Buis <rbuis@igalia.com> |
| |
| https://bugs.webkit.org/show_bug.cgi?id=188137 |
| Merge PlatformCookieJar functions into NetworkStorageSession |
| |
| Adapt callsites to use NetworkStorageSession instead of CookieJar functions. |
| |
| Reviewed by Alex Christensen. |
| |
| * NetworkProcess/Cookies/WebCookieManager.cpp: |
| (WebKit::WebCookieManager::getHostnamesWithCookies): |
| (WebKit::WebCookieManager::deleteCookiesForHostname): |
| (WebKit::WebCookieManager::deleteAllCookies): |
| (WebKit::WebCookieManager::deleteAllCookiesModifiedSince): |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::cookiesForDOM): |
| (WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM): |
| (WebKit::NetworkConnectionToWebProcess::cookiesEnabled): |
| (WebKit::NetworkConnectionToWebProcess::cookieRequestHeaderFieldValue): |
| (WebKit::NetworkConnectionToWebProcess::getRawCookies): |
| (WebKit::NetworkConnectionToWebProcess::deleteCookie): |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::fetchWebsiteData): |
| (WebKit::NetworkProcess::deleteWebsiteData): |
| (WebKit::NetworkProcess::deleteWebsiteDataForOrigins): |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::logCookieInformationInternal): |
| * NetworkProcess/cache/NetworkCache.cpp: |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: |
| |
| 2018-07-30 Alex Christensen <achristensen@webkit.org> |
| |
| Add RefCounted CompletionHandler wrapping abstraction for sending policy decisions back to WebProcess |
| https://bugs.webkit.org/show_bug.cgi?id=188089 |
| |
| Reviewed by Geoffrey Garen and Said Abou-Hallawa. |
| |
| This will be necessary for when I add an asynchronous parallel step to decidePolicyForNavigationAction. |
| We will want to wait for that asynchronous step for decidePolicyForNavigationActionSync but not for a client. |
| |
| No change in behavior. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::PolicyDecisionSender::create): |
| (WebKit::WebPageProxy::PolicyDecisionSender::operator()): |
| (WebKit::WebPageProxy::PolicyDecisionSender::PolicyDecisionSender): |
| (WebKit::WebPageProxy::receivedPolicyDecision): |
| (WebKit::WebPageProxy::decidePolicyForNavigationActionAsync): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::decidePolicyForNavigationActionSync): |
| (WebKit::WebPageProxy::decidePolicyForNewWindowAction): |
| (WebKit::WebPageProxy::decidePolicyForResponse): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| |
| 2018-07-30 David Fenton <david_fenton@apple.com> |
| |
| Unreviewed, rolling out r234327. |
| |
| Caused 2 crashes on macOS and iOS debug API tests |
| |
| Reverted changeset: |
| |
| "Add RefCounted CompletionHandler wrapping abstraction for |
| sending policy decisions back to WebProcess" |
| https://bugs.webkit.org/show_bug.cgi?id=188089 |
| https://trac.webkit.org/changeset/234327 |
| |
| 2018-07-30 Chris Dumez <cdumez@apple.com> |
| |
| Potential null dereference under WebPage::applicationDidBecomeActive() |
| https://bugs.webkit.org/show_bug.cgi?id=188170 |
| <rdar://problem/37493418> |
| |
| Reviewed by Wenson Hsieh. |
| |
| WebPage::m_page gets nulled out when the page is closed but the WebPage object may receive IPC |
| until it gets destroyed. Therefore, we need to null-check m_page before using it in IPC message |
| handlers. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::applicationDidEnterBackground): |
| (WebKit::WebPage::applicationWillEnterForeground): |
| (WebKit::WebPage::applicationDidBecomeActive): |
| |
| 2018-07-29 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Fix incorrect guards around a method declaration in PageClient.h |
| https://bugs.webkit.org/show_bug.cgi?id=188153 |
| |
| Reviewed by Tim Horton. |
| |
| `WebCore::DragItem` is forward declared under `ENABLE(DRAG_SUPPORT)`, but `startDrag` is declared under |
| `PLATFORM(COCOA)`. If `ENABLE(DRAG_SUPPORT)` is off but `PLATFORM(COCOA)` is on, the build breaks. |
| |
| We fix this by moving `startDrag` under `ENABLE(DRAG_SUPPORT)`. |
| |
| * UIProcess/PageClient.h: |
| (WebKit::PageClient::startDrag): |
| |
| 2018-07-28 Andy Estes <aestes@apple.com> |
| |
| [Wi-Fi Assertions] Pass a ResumptionReason to resumeWiFiAssertions |
| https://bugs.webkit.org/show_bug.cgi?id=188142 |
| <rdar://problem/42628842> |
| |
| Reviewed by Darin Adler. |
| |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::platformProcessDidResume): |
| (WebKit::NetworkProcess::platformProcessDidTransitionToForeground): |
| |
| 2018-07-28 Darin Adler <darin@apple.com> |
| |
| [Cocoa] Update more WebCore Objective-C code to be ARC compatible |
| https://bugs.webkit.org/show_bug.cgi?id=188140 |
| |
| Reviewed by Sam Weinig. |
| |
| * UIProcess/mac/WKFullScreenWindowController.mm: |
| (-[WKFullScreenWindowController enterFullScreen:]): Removed the call to |
| setAction: since the full screen placeholder view now always uses the |
| cancelOperation: method. |
| |
| * WebProcess/Plugins/PDF/PDFPlugin.mm: |
| (WebKit::PDFPlugin::lookupTextAtLocation): Updated to use the new |
| DictionaryLookup function that returns a tuple instead of using an out argument. |
| * WebProcess/WebPage/mac/WebPageMac.mm: |
| (WebKit::WebPage::performDictionaryLookupAtLocation): Ditto. |
| (WebKit::WebPage::performDictionaryLookupForSelection): Ditto. |
| |
| 2018-07-27 Chris Dumez <cdumez@apple.com> |
| |
| Fix thread-safety issues related to RealtimeMediaSource::audioSamplesAvailable() |
| https://bugs.webkit.org/show_bug.cgi?id=188097 |
| <rdar://problem/42558823> |
| |
| Reviewed by Eric Carlson. |
| |
| * UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp: |
| |
| 2018-07-27 Alex Christensen <achristensen@webkit.org> |
| |
| Don't include WebPageProxy.h just for UndoOrRedo |
| https://bugs.webkit.org/show_bug.cgi?id=188086 |
| |
| Reviewed by Saam Barati. |
| |
| * Shared/UndoOrRedo.h: Added. |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::registerEditCommand): |
| * UIProcess/PageClient.h: |
| * UIProcess/WebEditCommandProxy.cpp: |
| (WebKit::WebEditCommandProxy::unapply): |
| (WebKit::WebEditCommandProxy::reapply): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::registerEditCommandForUndo): |
| (WebKit::WebPageProxy::canUndoRedo): |
| (WebKit::WebPageProxy::executeUndoRedo): |
| (WebKit::WebPageProxy::canUndo): |
| (WebKit::WebPageProxy::canRedo): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::registerEditCommand): |
| (WebKit::PageClientImpl::canUndoRedo): |
| (WebKit::PageClientImpl::executeUndoRedo): |
| * UIProcess/mac/PageClientImplMac.h: |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::registerEditCommand): |
| (WebKit::PageClientImpl::canUndoRedo): |
| (WebKit::PageClientImpl::executeUndoRedo): |
| * UIProcess/mac/WebContextMenuProxyMac.mm: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebCoreSupport/WebEditorClient.cpp: |
| (WebKit::WebEditorClient::canUndo const): |
| (WebKit::WebEditorClient::canRedo const): |
| (WebKit::WebEditorClient::undo): |
| (WebKit::WebEditorClient::redo): |
| |
| 2018-07-27 Alex Christensen <achristensen@webkit.org> |
| |
| Make CompletionHandler more const correct |
| https://bugs.webkit.org/show_bug.cgi?id=186543 |
| |
| Reviewed by Saam Barati. |
| |
| * NetworkProcess/PingLoad.cpp: |
| (WebKit::PingLoad::willPerformHTTPRedirection): |
| * NetworkProcess/cache/CacheStorageEngine.cpp: |
| (WebKit::CacheStorage::Engine::clearAllCaches): |
| * UIProcess/Automation/SimulatedInputDispatcher.cpp: |
| (WebKit::SimulatedInputDispatcher::transitionInputSourceToState): |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::simulateMouseInteraction): |
| (WebKit::WebAutomationSession::simulateKeyboardInteraction): |
| * UIProcess/Cocoa/AutomationSessionClient.mm: |
| (WebKit::AutomationSessionClient::requestNewPageWithOptions): |
| (WebKit::AutomationSessionClient::requestSwitchToPage): |
| (WebKit::AutomationSessionClient::requestHideWindowOfPage): |
| (WebKit::AutomationSessionClient::requestRestoreWindowOfPage): |
| * 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::decidePolicyForNotificationPermissionRequest): |
| (WebKit::UIDelegate::UIClient::runOpenPanel): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::createNewPage): |
| (WebKit::WebPageProxy::webGLPolicyForURL): |
| (WebKit::WebPageProxy::resolveWebGLPolicyForURL): |
| (WebKit::WebPageProxy::getWindowFrame): |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::hasStorageAccess): |
| (WebKit::WebResourceLoadStatisticsStore::requestStorageAccess): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent): |
| (WebKit::WebResourceLoadStatisticsStore::updateCookiePartitioning): |
| |
| 2018-07-27 Simon Fraser <simon.fraser@apple.com> |
| |
| Be more conservative with compositing layer creation when memory is low |
| https://bugs.webkit.org/show_bug.cgi?id=187866 |
| rdar://problem/42366345 |
| |
| Reviewed by Zalan Bujtas. |
| |
| When process physical footprint is above a fraction of the jetsam limit, be more conservative in making |
| compositing layers. We avoid compositing for these situations: |
| 1. Layers with 3D transforms which are affine (like translateZ(0)). |
| 2. Layers with will-change |
| 3. Layers for canvases (other than WebGL/WebGPU) |
| |
| We reuse some macOS code in MemoryPressureHandler() but choose different thresholds for iOS, |
| falling into "conservative mode" at 50% of jetsam limit, and "strict mode" at 65%. |
| Compositing chooses to be more conservative in either "conservative" or "strict" memory modes. |
| |
| Plumb through a "compositingPolicyOverride" both so that on-device testing isn't |
| flakily falling into a different mode, and so that we can impose the conservative |
| mode for testing. |
| |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: |
| (WKBundlePageSetCompositingPolicyOverride): |
| * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h: |
| |
| 2018-07-27 Alex Christensen <achristensen@webkit.org> |
| |
| Add RefCounted CompletionHandler wrapping abstraction for sending policy decisions back to WebProcess |
| https://bugs.webkit.org/show_bug.cgi?id=188089 |
| |
| Reviewed by Geoffrey Garen. |
| |
| This will be necessary for when I add an asynchronous parallel step to decidePolicyForNavigationAction. |
| We will want to wait for that asynchronous step for decidePolicyForNavigationActionSync but not for a client. |
| |
| No change in behavior. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::PolicyDecisionSender::create): |
| (WebKit::WebPageProxy::PolicyDecisionSender::operator()): |
| (WebKit::WebPageProxy::PolicyDecisionSender::PolicyDecisionSender): |
| (WebKit::WebPageProxy::receivedPolicyDecision): |
| (WebKit::WebPageProxy::decidePolicyForNavigationActionAsync): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::decidePolicyForNavigationActionSync): |
| (WebKit::WebPageProxy::decidePolicyForNewWindowAction): |
| (WebKit::WebPageProxy::decidePolicyForResponse): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| |
| 2018-07-27 Saam Barati <sbarati@apple.com> |
| |
| Use SPI to compute the jetsam limit on iOS instead of hardcoding 840MB |
| https://bugs.webkit.org/show_bug.cgi?id=188091 |
| <rdar://problem/42647697> |
| |
| Reviewed by Simon Fraser. |
| |
| Give the Network/Storage/WebContent process the com.apple.private.memorystatus |
| entitlement. This allows them to read the process jetsam limit. |
| |
| * Configurations/Databases-iOS.entitlements: |
| * Configurations/Network-iOS.entitlements: |
| * Configurations/WebContent-iOS.entitlements: |
| |
| 2018-07-03 David Fenton <david_fenton@apple.com> |
| |
| Unreviewed, rolling out r233461. |
| |
| assertions triggered on ios11 Debug wk2 |
| |
| Reverted changeset: |
| |
| "[iOS] Add assert to catch improper use of WebCore::Timer in |
| UI Process" |
| https://bugs.webkit.org/show_bug.cgi?id=185330 |
| https://trac.webkit.org/changeset/233461 |
| |
| 2018-07-27 Alex Christensen <achristensen@webkit.org> |
| |
| Remove unused WKNavigationDelegatePrivate decidePolicyForNavigationAction SPI |
| https://bugs.webkit.org/show_bug.cgi?id=188077 |
| |
| Reviewed by Darin Adler. |
| |
| The one client has moved to the version with userInfo, and it never used the SPI |
| on old operating systems. |
| |
| * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: |
| * UIProcess/Cocoa/NavigationState.h: |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::setNavigationDelegate): |
| (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): |
| |
| 2018-07-27 Alex Christensen <achristensen@webkit.org> |
| |
| Begin making WKWebViewConfiguration a wrapper around an API::PageConfiguration |
| https://bugs.webkit.org/show_bug.cgi?id=188030 |
| |
| Reviewed by Sam Weinig. |
| |
| Eventually WKWebViewConfiguration should become just a API::ObjectStorage<API::PageConfiguration>. |
| The transition includes adding fields that exist in WKWebViewConfiguration to API::PageConfiguration |
| and making WKWebViewConfiguration's getters and setters just call API::PageConfiguration's corresponding methods |
| instead of having an ivar for each value then copying it to an API::PageConfiguration we construct in |
| the WKWebView constructor. To transition incrementally, I've added a RefPtr<API::PageConfiguration> ivar to |
| WKWebViewConfiguration and moved a few ivars to use the values stored in that API::PageConfiguration instead. |
| I've arbitrarily chosen _treatsSHA1SignedCertificatesAsInsecure and _urlSchemeHandlers as the first two |
| properties to transition, and I'll continue transitioning each ivar in small, easy-to-review bunches. |
| |
| * UIProcess/API/APIPageConfiguration.cpp: |
| (API::PageConfiguration::copy const): |
| (API::PageConfiguration::urlSchemeHandlerForURLScheme): |
| (API::PageConfiguration::setURLSchemeHandlerForURLScheme): |
| * UIProcess/API/APIPageConfiguration.h: |
| (API::PageConfiguration::urlSchemeHandlers): |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: |
| (-[WKWebViewConfiguration init]): |
| (-[WKWebViewConfiguration copyWithZone:]): |
| (-[WKWebViewConfiguration setURLSchemeHandler:forURLScheme:]): |
| (-[WKWebViewConfiguration urlSchemeHandlerForURLScheme:]): |
| (-[WKWebViewConfiguration copyPageConfiguration]): |
| (-[WKWebViewConfiguration _treatsSHA1SignedCertificatesAsInsecure]): |
| (-[WKWebViewConfiguration _setTreatsSHA1SignedCertificatesAsInsecure:]): |
| (-[WKWebViewConfiguration _urlSchemeHandlers]): Deleted. |
| * UIProcess/API/Cocoa/WKWebViewConfigurationInternal.h: |
| |
| 2018-07-27 Chris Dumez <cdumez@apple.com> |
| |
| Loading a file URL and then issuing a reload right away causes the load to fail due to sandboxing |
| https://bugs.webkit.org/show_bug.cgi?id=188078 |
| <rdar://problem/42562493> |
| |
| Unreviewed, follow-up fix after r234290 to address assertion hits on the bots. Make the fix |
| specific to reloads as we know the existing provisional sandbox extension is for the same |
| URL then. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::reload): |
| (WebKit::WebPage::SandboxExtensionTracker::beginLoad): |
| (WebKit::WebPage::SandboxExtensionTracker::beginReload): |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2018-07-26 Andy VanWagoner <andy@vanwagoner.family> |
| |
| [INTL] Remove INTL sub-feature compile flags |
| https://bugs.webkit.org/show_bug.cgi?id=188081 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2018-07-26 Chris Dumez <cdumez@apple.com> |
| |
| Loading a file URL and then issuing a reload right away causes the load to fail due to sandboxing |
| https://bugs.webkit.org/show_bug.cgi?id=188078 |
| <rdar://problem/42562493> |
| |
| Reviewed by Geoff Garen. |
| |
| When WebPageProxy::loadFile() is called, we create a SandboxExtension::Handle for the resource path provided |
| by the caller and pass it to the WebProcess. WebPage::loadRequest() then calls SandboxExtensionTracker::beginLoad() |
| to store this handle in m_provisionalSandboxExtension for later consumption. |
| |
| If a reload is issued before this sandbox extension has been consumed, then the following happens: |
| 1. WebPageProxy::reload() does NOT create a SandboxExtension::Handle because it has already issued one earlier. |
| maybeInitializeSandboxExtensionHandle() returns early due to m_process->hasAssumedReadAccessToURL(url) check. |
| 2. WebPage::reload() then calls SandboxExtensionTracker::beginLoad() with a null handle, which overwrites the |
| previous m_provisionalSandboxExtension its needs. |
| 3. The load fails because the WebContent process is missing the sandbox extension. |
| |
| To address the issue, SandboxExtensionTracker::beginLoad() is updated to only overwrite m_provisionalSandboxExtension |
| if the new handle is not null. This avoids inadvertently clearing a valid sandbox extension we may need for the load, |
| since the UIProcess sends us a null handle if it previously sent us a sandbox extension for the path in question. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::SandboxExtensionTracker::beginLoad): |
| |
| 2018-07-26 Chris Dumez <cdumez@apple.com> |
| |
| It should be possible to use WTF::CallbackAggregator from a background thread |
| https://bugs.webkit.org/show_bug.cgi?id=188084 |
| |
| Reviewed by Alex Christensen. |
| |
| This code was passing CallbackAggregator objects for background thread and not being |
| careful on which thread the CallbackAggregator gets destroyed. This patch fixes this |
| since the CallbackAggregator destructor no longer takes care of dispatching to the |
| main thread. |
| |
| * NetworkProcess/cache/CacheStorageEngine.cpp: |
| (WebKit::CacheStorage::Engine::clearAllCaches): |
| (WebKit::CacheStorage::Engine::clearCachesForOrigin): |
| |
| 2018-07-26 Ross Kirsling <ross.kirsling@sony.com> |
| |
| String(View) should have a splitAllowingEmptyEntries function instead of a flag parameter |
| https://bugs.webkit.org/show_bug.cgi?id=187963 |
| |
| Reviewed by Alex Christensen. |
| |
| * NetworkProcess/cache/CacheStorageEngineCache.cpp: |
| (WebKit::CacheStorage::updateVaryInformation): |
| * NetworkProcess/capture/NetworkCaptureManager.cpp: |
| (WebKit::NetworkCapture::Manager::fuzzyMatchURLs): |
| * Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm: |
| (WebKit::getPluginInfoFromPropertyLists): |
| (WebKit::PluginVersion::parse): |
| * Shared/Plugins/Netscape/unix/NetscapePluginModuleUnix.cpp: |
| (WebKit::NetscapePluginModule::parseMIMEDescription): |
| * Shared/Plugins/unix/PluginSearchPath.cpp: |
| (WebKit::pluginsDirectories): |
| * Shared/mac/ChildProcessMac.mm: |
| (WebKit::ChildProcess::initializeSandbox): |
| * UIProcess/API/gtk/WebKitRemoteInspectorProtocolHandler.cpp: |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::fileCanBeAcceptedForUpload): |
| * UIProcess/Launcher/glib/ProcessLauncherGLib.cpp: |
| (WebKit::ProcessLauncher::launchProcess): |
| * UIProcess/Launcher/mac/ProcessLauncherMac.mm: |
| (WebKit::ProcessLauncher::launchProcess): |
| * UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp: |
| (WebKit::PluginProcessProxy::scanPlugin): |
| * WebProcess/Plugins/Netscape/NetscapePlugin.cpp: |
| (WebKit::isTransparentSilverlightBackgroundValue): |
| Update split/splitAllowingEmptyEntries usage. |
| |
| 2018-07-26 Alex Christensen <achristensen@webkit.org> |
| |
| Fix assertions introduced in r234210 |
| https://bugs.webkit.org/show_bug.cgi?id=188074 |
| |
| Reviewed by Chris Dumez. |
| |
| There is a client that uses WKFramePolicyListenerUseWithPolicies to send website policies as |
| a response to the WKPageNavigationClient's decidePolicyForNavigationResponse. That is wasting |
| effort to generate policies that don't change anything. Once that client adopts WKWebView |
| they won't be able to do this any more, so temporarily remove the assertion. |
| Also, make the assertion about process swapping a release assert to prevent that client |
| from adopting WKFramePolicyListenerUseInNewProcessWithPolicies for navigation responses. |
| It should only be used for navigation actions. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::decidePolicyForNewWindowAction): |
| (WebKit::WebPageProxy::decidePolicyForResponse): |
| |
| 2018-07-26 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r234181 and r234189. |
| https://bugs.webkit.org/show_bug.cgi?id=188075 |
| |
| These are not needed right now (Requested by thorton on |
| #webkit). |
| |
| Reverted changesets: |
| |
| "Enable Web Content Filtering on watchOS" |
| https://bugs.webkit.org/show_bug.cgi?id=187979 |
| https://trac.webkit.org/changeset/234181 |
| |
| "HAVE(PARENTAL_CONTROLS) should be true on watchOS" |
| https://bugs.webkit.org/show_bug.cgi?id=187985 |
| https://trac.webkit.org/changeset/234189 |
| |
| 2018-07-26 Chris Dumez <cdumez@apple.com> |
| |
| ERROR: Unhandled web process message 'WebPage:SetUseDarkAppearance' when browsing in dark mode |
| https://bugs.webkit.org/show_bug.cgi?id=188028 |
| |
| Reviewed by Wenson Hsieh. |
| |
| The issue was that the WebViewImpl constructor was calling setUseDarkAppearance() *before* calling |
| initializeWebPage(), which would cause us to send IPC the WebContent process for a pageID that does |
| not exist on WebProcess side yet. |
| |
| To address the issue, the WebViewImpl constructor no longer calls setUseDarkAppearance() and WebPageProxy |
| no longer holds a flag indicates is dark appearance is used. Instead, the WebPageProxy asks the WebView |
| for the value whenever it needs to, via the PageClient. |
| |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::WebViewImpl): |
| (WebKit::WebViewImpl::effectiveAppearanceDidChange): |
| (WebKit::WebViewImpl::setUseDarkAppearance): Deleted. |
| * UIProcess/PageClient.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::creationParameters): |
| (WebKit::WebPageProxy::useDarkAppearance const): |
| (WebKit::WebPageProxy::effectiveAppearanceDidChange): |
| (WebKit::WebPageProxy::showPlaybackTargetPicker): |
| (WebKit::WebPageProxy::setUseDarkAppearance): Deleted. |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::useDarkAppearance const): Deleted. |
| * UIProcess/mac/PageClientImplMac.h: |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::effectiveAppearanceIsDark const): |
| |
| 2018-07-26 Sihui Liu <sihui_liu@apple.com> |
| |
| Remove a forward protocol declaration of '_WKWebViewPrintProvider' |
| https://bugs.webkit.org/show_bug.cgi?id=188012 |
| <rdar://problem/42309526> |
| |
| Reviewed by Darin Adler. |
| |
| @procotol() expressions emit invalid protocol metadata when used with forward @protocol declarations. |
| Clang is going to make it an error for using a forward-declared protocol in a @protocol expression, so |
| we need to stop doing this. |
| |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| |
| 2018-07-26 Chris Dumez <cdumez@apple.com> |
| |
| Disable Dark Mode in the Plugin process to avoid rendering issues |
| https://bugs.webkit.org/show_bug.cgi?id=188059 |
| <rdar://problem/42369281> |
| |
| Reviewed by Tim Horton. |
| |
| Plugins generally do not support dark mode and this causes rendering issues so |
| disable dark mode in the plugin process. |
| |
| * PluginProcess/mac/PluginProcessMac.mm: |
| (WebKit::PluginProcess::platformInitializePluginProcess): |
| |
| 2018-07-26 Chris Dumez <cdumez@apple.com> |
| |
| WebSiteData-related methods should take in CompletionHandlers instead of Functions |
| https://bugs.webkit.org/show_bug.cgi?id=188027 |
| |
| Reviewed by Alex Christensen. |
| |
| WebSiteData-related methods should take in CompletionHandlers instead of Functions since |
| they are need to be called and are only called once. |
| |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::fetchWebsiteData): |
| (WebKit::NetworkProcessProxy::deleteWebsiteData): |
| (WebKit::NetworkProcessProxy::deleteWebsiteDataForOrigins): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Plugins/PluginProcessProxy.cpp: |
| (WebKit::PluginProcessProxy::fetchWebsiteData): |
| (WebKit::PluginProcessProxy::deleteWebsiteData): |
| (WebKit::PluginProcessProxy::deleteWebsiteDataForHostNames): |
| * UIProcess/Plugins/PluginProcessProxy.h: |
| * UIProcess/Storage/StorageProcessProxy.cpp: |
| (WebKit::StorageProcessProxy::fetchWebsiteData): |
| (WebKit::StorageProcessProxy::deleteWebsiteData): |
| (WebKit::StorageProcessProxy::deleteWebsiteDataForOrigins): |
| * UIProcess/Storage/StorageProcessProxy.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::deleteWebsiteDataForTopPrivatelyControlledDomainsInAllPersistentDataStores): |
| (WebKit::WebProcessProxy::topPrivatelyControlledDomainsWithWebsiteData): |
| (WebKit::WebProcessProxy::fetchWebsiteData): |
| (WebKit::WebProcessProxy::deleteWebsiteData): |
| (WebKit::WebProcessProxy::deleteWebsiteDataForOrigins): |
| * UIProcess/WebProcessProxy.h: |
| |
| 2018-07-26 Miguel Gomez <magomez@igalia.com> |
| |
| [GTK][WPE] Improve the way request displayRefresh notifications |
| https://bugs.webkit.org/show_bug.cgi?id=188005 |
| |
| Reviewed by Žan Doberšek. |
| |
| Add a new interface ThreadedDisplayRefreshMonitor::Client and use it to pipe the the |
| requestDisplayRefreshMonitorUpdate and handleDisplayRefreshMonitorUpdate to the |
| ThreadedCoordinatedLayerTreeHost. |
| |
| In response to requestDisplayRefreshMonitorUpdate, the LayerTreeHost will force a layer |
| flush that in the end causes a repaint, which generates the requested display refresh |
| event. |
| |
| In response to handleDisplayRefreshMonitorUpdate, the call to renderNextFrame will happen, |
| and if the DisplayRefreshMonitor has been rescheduled, renderNextFrame will also force |
| a new layer flush, causing the repaint that will generate the display refreh event. |
| |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: |
| (WebKit::ThreadedCompositor::create): |
| (WebKit::ThreadedCompositor::ThreadedCompositor): |
| (WebKit::m_displayRefreshMonitor): |
| (WebKit::ThreadedCompositor::handleDisplayRefreshMonitorUpdate): |
| (WebKit::ThreadedCompositor::requestDisplayRefreshMonitorUpdate): Deleted. |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h: |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.cpp: |
| (WebKit::ThreadedDisplayRefreshMonitor::ThreadedDisplayRefreshMonitor): |
| (WebKit::ThreadedDisplayRefreshMonitor::requestRefreshCallback): |
| (WebKit::ThreadedDisplayRefreshMonitor::dispatchDisplayRefreshCallback): |
| (WebKit::ThreadedDisplayRefreshMonitor::invalidate): |
| (WebKit::ThreadedDisplayRefreshMonitor::displayRefreshCallback): |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.h: |
| (WebKit::ThreadedDisplayRefreshMonitor::create): |
| * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp: |
| (WebKit::CoordinatedLayerTreeHost::renderNextFrame): |
| (WebKit::CoordinatedLayerTreeHost::flushLayersAndForceRepaint): |
| * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h: |
| * WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp: |
| (WebKit::ThreadedCoordinatedLayerTreeHost::ThreadedCoordinatedLayerTreeHost): |
| (WebKit::ThreadedCoordinatedLayerTreeHost::requestDisplayRefreshMonitorUpdate): |
| (WebKit::ThreadedCoordinatedLayerTreeHost::handleDisplayRefreshMonitorUpdate): |
| * WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h: |
| |
| 2018-07-25 Brent Fulgham <bfulgham@apple.com> |
| |
| [macOS] Update sandboxes for revised OpenCL calls and streaming media |
| https://bugs.webkit.org/show_bug.cgi?id=188013 |
| <rdar://problem/42594262> |
| |
| Reviewed by Eric Carlson. |
| |
| Testing logs from recent Mojave builds shows that OpenCL is checking more CPU-specific values as part of WebKit |
| painting operations. We need to allow these checks in the sandbox to support these more optimized drawing operations. |
| |
| I also corrected some sandbox violations I found while investigating streaming media issues. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-07-25 Jeremy Jones <jeremyj@apple.com> |
| |
| Mask AVBackgroundView to the corner radius. |
| https://bugs.webkit.org/show_bug.cgi?id=187976 |
| rdar://problem/41810866 |
| |
| Reviewed by Jon Lee. |
| |
| This changes sets the appropriate mask to the layer so the corners look correct. |
| |
| * UIProcess/ios/fullscreen/WKFullscreenStackView.mm: |
| (-[WKFullscreenStackView init]): |
| |
| 2018-07-25 Zalan Bujtas <zalan@apple.com> |
| |
| REGRESSION(r227577) Text on TV & Movies page doesn't wrap properly in iTunes |
| https://bugs.webkit.org/show_bug.cgi?id=188018 |
| <rdar://problem/42517520> |
| |
| Reviewed by Dean Jackson. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_credentialsMessenger): |
| |
| 2018-07-25 Tim Horton <timothy_horton@apple.com> |
| |
| Fix the build. |
| |
| * UIProcess/mac/ServicesController.mm: |
| (WebKit::hasCompatibleServicesForItems): |
| I can't even. |
| |
| 2018-07-25 Tim Horton <timothy_horton@apple.com> |
| |
| Crashing on some builds that don't have async NSSharingService API |
| https://bugs.webkit.org/show_bug.cgi?id=188015 |
| <rdar://problem/42593935> |
| |
| Reviewed by Eric Carlson. |
| |
| * UIProcess/mac/ServicesController.mm: |
| (WebKit::hasCompatibleServicesForItems): |
| |
| 2018-07-25 Chris Dumez <cdumez@apple.com> |
| |
| navigator.userAgent may return outdated value after webView.customUserAgent is set |
| https://bugs.webkit.org/show_bug.cgi?id=188009 |
| <rdar://problem/42566456> |
| |
| Reviewed by Alex Christensen. |
| |
| Let the page know when the user agent changes. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::setUserAgent): |
| |
| 2018-07-25 Alex Christensen <achristensen@webkit.org> |
| |
| Use CompletionHandler for policy decisions |
| https://bugs.webkit.org/show_bug.cgi?id=187975 |
| |
| Reviewed by Chris Dumez. |
| |
| * UIProcess/WebFramePolicyListenerProxy.cpp: |
| (WebKit::WebFramePolicyListenerProxy::WebFramePolicyListenerProxy): |
| (WebKit::WebFramePolicyListenerProxy::use): |
| (WebKit::WebFramePolicyListenerProxy::download): |
| (WebKit::WebFramePolicyListenerProxy::ignore): |
| (WebKit::WebFramePolicyListenerProxy::receivedPolicyDecision): Deleted. |
| (WebKit::WebFramePolicyListenerProxy::setNavigation): Deleted. |
| * UIProcess/WebFramePolicyListenerProxy.h: |
| (WebKit::WebFramePolicyListenerProxy::create): |
| (WebKit::WebFramePolicyListenerProxy::policyListenerType const): Deleted. |
| (WebKit::WebFramePolicyListenerProxy::listenerID const): Deleted. |
| (): Deleted. |
| * UIProcess/WebFrameProxy.cpp: |
| (WebKit::WebFrameProxy::setUpPolicyListenerProxy): |
| (WebKit::WebFrameProxy::receivedPolicyDecision): Deleted. |
| (WebKit::WebFrameProxy::activePolicyListenerProxy): Deleted. |
| (WebKit::WebFrameProxy::changeWebsiteDataStore): Deleted. |
| * UIProcess/WebFrameProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::receivedPolicyDecision): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::decidePolicyForNewWindowAction): |
| (WebKit::WebPageProxy::decidePolicyForResponse): |
| * UIProcess/WebPageProxy.h: |
| |
| 2018-07-25 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r234196. |
| https://bugs.webkit.org/show_bug.cgi?id=188011 |
| |
| broke API tests (Requested by alexchristensen on #webkit). |
| |
| Reverted changeset: |
| |
| "Use CompletionHandler for policy decisions" |
| https://bugs.webkit.org/show_bug.cgi?id=187975 |
| https://trac.webkit.org/changeset/234196 |
| |
| 2018-07-25 Alex Christensen <achristensen@webkit.org> |
| |
| Use CompletionHandler for policy decisions |
| https://bugs.webkit.org/show_bug.cgi?id=187975 |
| |
| Reviewed by Chris Dumez. |
| |
| * UIProcess/WebFramePolicyListenerProxy.cpp: |
| (WebKit::WebFramePolicyListenerProxy::WebFramePolicyListenerProxy): |
| (WebKit::WebFramePolicyListenerProxy::use): |
| (WebKit::WebFramePolicyListenerProxy::download): |
| (WebKit::WebFramePolicyListenerProxy::ignore): |
| (WebKit::WebFramePolicyListenerProxy::receivedPolicyDecision): Deleted. |
| (WebKit::WebFramePolicyListenerProxy::setNavigation): Deleted. |
| * UIProcess/WebFramePolicyListenerProxy.h: |
| (WebKit::WebFramePolicyListenerProxy::create): |
| (WebKit::WebFramePolicyListenerProxy::policyListenerType const): Deleted. |
| (WebKit::WebFramePolicyListenerProxy::listenerID const): Deleted. |
| (): Deleted. |
| * UIProcess/WebFrameProxy.cpp: |
| (WebKit::WebFrameProxy::setUpPolicyListenerProxy): |
| (WebKit::WebFrameProxy::receivedPolicyDecision): Deleted. |
| (WebKit::WebFrameProxy::activePolicyListenerProxy): Deleted. |
| (WebKit::WebFrameProxy::changeWebsiteDataStore): Deleted. |
| * UIProcess/WebFrameProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::receivedPolicyDecision): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::decidePolicyForNewWindowAction): |
| (WebKit::WebPageProxy::decidePolicyForResponse): |
| * UIProcess/WebPageProxy.h: |
| |
| 2018-07-25 Brent Fulgham <bfulgham@apple.com> |
| |
| [macOS] PluginProcess needs TCC entitlements for media capture |
| https://bugs.webkit.org/show_bug.cgi?id=187981 |
| <rdar://problem/42433634> |
| |
| Reviewed by Chris Dumez. |
| |
| The changes needed in Bug 185526 are also needed for the plugin process, or else the UIProcess |
| (e.g., Safari) is not able to pass the user's camera/microphone access permission to the plugin process. |
| |
| This patch has the following changes: |
| |
| 1. Rename "WebContent-OSX-restricted.entitlements" to "WebContent-or-Plugin-OSX-restricted.entitlements" |
| 2. Rename "process-webcontent-entitlements.sh" to "process-webcontent-or-plugin-entitlements.sh" |
| 3. Add a run-script step to the Plugin.64 and Plugin.32 builds to add the relevant entitlements. |
| 4. Silence some Flash plugin sandbox exceptions triggered after activating the camera. |
| |
| * Configurations/WebContent-or-Plugin-OSX-restricted.entitlements: Renamed from Source/WebKit/Configurations/WebContent-OSX-restricted.entitlements. |
| * Resources/PlugInSandboxProfiles/com.macromedia.Flash Player ESR.plugin.sb: Address sandbox violations needed by camera use. |
| * Resources/PlugInSandboxProfiles/com.macromedia.Flash Player.plugin.sb: Ditto. |
| * Scripts/process-webcontent-or-plugin-entitlements.sh: Renamed from Source/WebKit/Scripts/process-webcontent-entitlements.sh. |
| * WebKit.xcodeproj/project.pbxproj: Update for renaming, and perform entitlement steps on Plugin process. |
| |
| 2018-07-24 Tim Horton <timothy_horton@apple.com> |
| |
| Enable Web Content Filtering on watchOS |
| https://bugs.webkit.org/show_bug.cgi?id=187979 |
| <rdar://problem/42559346> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2018-07-24 Aditya Keerthi <akeerthi@apple.com> |
| |
| [Datalist][macOS] Display suggestions for input[type=color] |
| https://bugs.webkit.org/show_bug.cgi?id=187794 |
| |
| Reviewed by Tim Horton. |
| |
| An input[type=color] element that has an associated datalist element should |
| display the color values provided. We now support 1-12 suggested colors, that |
| will be displayed at the top of the color selection popover. If no suggestions |
| are specified we keep the existing default colors. |
| |
| Created an NSPopoverColorWell subclass that allows custom colors to be specified |
| in the form of an NSColorList. |
| |
| Also fixed a bug where an additional color well was displayed when clicking on |
| the input element. |
| |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<Color>::decode): |
| * Shared/WebCoreArgumentCoders.h: |
| * UIProcess/API/gtk/PageClientImpl.cpp: |
| (WebKit::PageClientImpl::createColorPicker): |
| * UIProcess/API/gtk/PageClientImpl.h: |
| * UIProcess/PageClient.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::showColorPicker): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::createColorPicker): |
| * UIProcess/mac/PageClientImplMac.h: |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::createColorPicker): |
| * UIProcess/mac/WebColorPickerMac.h: |
| * UIProcess/mac/WebColorPickerMac.mm: |
| (WebKit::WebColorPickerMac::create): |
| (WebKit::WebColorPickerMac::WebColorPickerMac): |
| (WebKit::WebColorPickerMac::showColorPicker): |
| (+[WKPopoverColorWell _colorPopoverCreateIfNecessary:]): |
| (-[WKPopoverColorWell _showPopover]): |
| (-[WKPopoverColorWell setSuggestedColors:]): |
| (-[WKColorPopoverMac initWithFrame:inView:]): |
| (-[WKColorPopoverMac setAndShowPicker:withColor:suggestions:]): |
| (-[WKColorPanelMac setAndShowPicker:withColor:suggestions:]): |
| * WebProcess/WebCoreSupport/WebColorChooser.cpp: |
| (WebKit::WebColorChooser::WebColorChooser): |
| (WebKit::WebColorChooser::reattachColorChooser): |
| |
| 2018-07-24 Alex Christensen <achristensen@webkit.org> |
| |
| Modernize NavigationState |
| https://bugs.webkit.org/show_bug.cgi?id=187966 |
| |
| Reviewed by Andy Estes. |
| |
| Don't ignore switch warnings any more. |
| Use BlockPtr. |
| |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): |
| (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationResponse): |
| |
| 2018-07-24 Alex Christensen <achristensen@webkit.org> |
| |
| Remove WebFramePolicyListenerProxy::changeWebsiteDataStore |
| https://bugs.webkit.org/show_bug.cgi?id=187967 |
| |
| Reviewed by Andy Estes. |
| |
| We need to call WebFrameProxy::changeWebsiteDataStore if the _WKWebsitePolicies has a WKWebsiteDataStore. |
| We're doing that in a weird way that is not in the right layer. Inside the call to WebFramePolicyListenerProxy::use |
| we can inform the frame if there's a new WebsiteDataStore. |
| |
| No change in behavior, as verified by the WebKit.WebsitePoliciesDataStore API test. |
| This is a step towards using lambdas in WebFramePolicyListenerProxy. |
| |
| * UIProcess/API/APINavigationClient.h: |
| (API::NavigationClient::decidePolicyForNavigationAction): |
| (API::NavigationClient::decidePolicyForNavigationResponse): |
| * UIProcess/API/APIPolicyClient.h: |
| (API::PolicyClient::decidePolicyForNavigationAction): |
| (API::PolicyClient::decidePolicyForNewWindowAction): |
| (API::PolicyClient::decidePolicyForResponse): |
| * UIProcess/API/C/WKFramePolicyListener.cpp: |
| (WKFramePolicyListenerUse): |
| (WKFramePolicyListenerUseInNewProcess): |
| (useWithPolicies): |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetPagePolicyClient): |
| (WKPageSetPageNavigationClient): |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): |
| (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationResponse): |
| * UIProcess/WebFramePolicyListenerProxy.cpp: |
| (WebKit::WebFramePolicyListenerProxy::use): |
| (WebKit::WebFramePolicyListenerProxy::changeWebsiteDataStore): Deleted. |
| * UIProcess/WebFramePolicyListenerProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| * UIProcess/mac/PageClientImplMac.mm: |
| |
| 2018-07-24 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r234121. |
| |
| Caused perf test failures. |
| |
| Reverted changeset: |
| |
| "We should cache the compiled sandbox profile in a data vault" |
| https://bugs.webkit.org/show_bug.cgi?id=184991 |
| https://trac.webkit.org/changeset/234121 |
| |
| 2018-07-24 Jeff Miller <jeffm@apple.com> |
| |
| WKUIDelegate needs an alternate decideDatabaseQuotaForSecurityOrigin method that provides the database name and display name |
| https://bugs.webkit.org/show_bug.cgi?id=187567 |
| |
| Reviewed by Alex Christensen. |
| |
| * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: |
| Declare alternate decideDatabaseQuotaForSecurityOrigin method, copying the existing FIXME comment |
| from the old method. |
| |
| * UIProcess/Cocoa/UIDelegate.h: |
| Add flag for new delegate method. |
| |
| * UIProcess/Cocoa/UIDelegate.mm: |
| (WebKit::UIDelegate::setDelegate): |
| Initialize new flag. |
| |
| (WebKit::UIDelegate::UIClient::exceededDatabaseQuota): |
| Prefer the new UIDelegate method that takes the database name and display name, falling back to the |
| existing method if the client doesn't implement it. |
| |
| 2018-07-24 Stephan Szabo <stephan.szabo@sony.com> |
| |
| [WinCairo] Add support to WebView for setting tooltips |
| https://bugs.webkit.org/show_bug.cgi?id=187930 |
| |
| Reviewed by Fujii Hironori. |
| |
| * UIProcess/win/PageClientImpl.cpp: |
| (WebKit::PageClientImpl::toolTipChanged): Set tooltip on WebView |
| * UIProcess/win/WebView.cpp: |
| (WebKit::WebView::setToolTip): Add support for updating the |
| tooltip text in Windows. |
| * UIProcess/win/WebView.h: |
| |
| 2018-07-24 Alex Christensen <achristensen@webkit.org> |
| |
| Reduce getters/setters in WebFramePolicyListenerProxy |
| https://bugs.webkit.org/show_bug.cgi?id=187830 |
| |
| Reviewed by Dean Jackson. |
| |
| This is a step towards making it a lambda, which has no getters or setters. |
| No change in behavior. |
| |
| setApplyPolicyInNewProcessIfPossible can be replaced by passing another parameter. |
| This bit was just piggy-backing on the WebFramePolicyListenerProxy. |
| |
| isMainFrame was only used in an assert, which has a corresponding ObjC exception in |
| NavigationState::NavigationClient::decidePolicyForNavigationAction for the one relevant client. |
| |
| * UIProcess/API/C/WKFramePolicyListener.cpp: |
| (WKFramePolicyListenerUseInNewProcess): |
| (useWithPolicies): |
| (WKFramePolicyListenerUseWithPolicies): |
| (WKFramePolicyListenerUseInNewProcessWithPolicies): |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): |
| * UIProcess/WebFramePolicyListenerProxy.cpp: |
| (WebKit::WebFramePolicyListenerProxy::receivedPolicyDecision): |
| (WebKit::WebFramePolicyListenerProxy::use): |
| (WebKit::WebFramePolicyListenerProxy::download): |
| (WebKit::WebFramePolicyListenerProxy::ignore): |
| (WebKit::WebFramePolicyListenerProxy::isMainFrame const): Deleted. |
| * UIProcess/WebFramePolicyListenerProxy.h: |
| (WebKit::WebFramePolicyListenerProxy::setApplyPolicyInNewProcessIfPossible): Deleted. |
| (WebKit::WebFramePolicyListenerProxy::applyPolicyInNewProcessIfPossible const): Deleted. |
| * UIProcess/WebFrameProxy.cpp: |
| (WebKit::WebFrameProxy::receivedPolicyDecision): |
| * UIProcess/WebFrameProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::receivedPolicyDecision): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigation): |
| (WebKit::WebProcessPool::processForNavigationInternal): |
| * UIProcess/WebProcessPool.h: |
| |
| 2018-07-24 Alex Christensen <achristensen@webkit.org> |
| |
| Remove WebFramePolicyListenerProxy::invalidate |
| https://bugs.webkit.org/show_bug.cgi?id=187833 |
| |
| Reviewed by Dean Jackson. |
| |
| When we're invalidating the listener, calling ignore instead will at worst cause |
| an ignored message to be sent. The load will be cancelled either way. |
| Removing the invalidate method gets it closer to being a lambda. |
| |
| * UIProcess/WebFramePolicyListenerProxy.cpp: |
| (WebKit::WebFramePolicyListenerProxy::invalidate): Deleted. |
| * UIProcess/WebFramePolicyListenerProxy.h: |
| * UIProcess/WebFrameProxy.cpp: |
| (WebKit::WebFrameProxy::webProcessWillShutDown): |
| (WebKit::WebFrameProxy::setUpPolicyListenerProxy): |
| |
| 2018-07-24 Chris Dumez <cdumez@apple.com> |
| |
| WebFullScreenManagerProxy does not need to be ref counted |
| https://bugs.webkit.org/show_bug.cgi?id=187928 |
| |
| Reviewed by Eric Carlson. |
| |
| WebFullScreenManagerProxy does not need to be ref counted, it is owned by WebPageProxy. |
| It is also error-prone because WebFullScreenManagerProxy has a raw pointer to its WebPageProxy |
| and anybody could extend the lifetime of the WebFullScreenManagerProxy by refing it, which |
| would make the WebPageProxy pointer stale. |
| |
| * UIProcess/WebFullScreenManagerProxy.cpp: |
| (WebKit::WebFullScreenManagerProxy::WebFullScreenManagerProxy): |
| (WebKit::WebFullScreenManagerProxy::willEnterFullScreen): |
| (WebKit::WebFullScreenManagerProxy::didEnterFullScreen): |
| (WebKit::WebFullScreenManagerProxy::willExitFullScreen): |
| (WebKit::WebFullScreenManagerProxy::didExitFullScreen): |
| (WebKit::WebFullScreenManagerProxy::setAnimatingFullScreen): |
| (WebKit::WebFullScreenManagerProxy::requestExitFullScreen): |
| (WebKit::WebFullScreenManagerProxy::saveScrollPosition): |
| (WebKit::WebFullScreenManagerProxy::restoreScrollPosition): |
| (WebKit::WebFullScreenManagerProxy::setFullscreenInsets): |
| (WebKit::WebFullScreenManagerProxy::setFullscreenAutoHideDuration): |
| (WebKit::WebFullScreenManagerProxy::setFullscreenControlsHidden): |
| (WebKit::WebFullScreenManagerProxy::invalidate): |
| * UIProcess/WebFullScreenManagerProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::m_resetRecentCrashCountTimer): |
| (WebKit::WebPageProxy::reattachToWebProcess): |
| * UIProcess/WebPageProxy.h: |
| |
| 2018-07-24 Zan Dobersek <zdobersek@igalia.com> |
| |
| [TextureMapper] Separate repaint counter state from debug visuals |
| https://bugs.webkit.org/show_bug.cgi?id=187946 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Instead of managing the repaint counter visibility along with the |
| debug border visuals, do that together with the repaint count value. |
| |
| In the CoordinatedGraphicsScene class, remove the helper |
| setLayerRepaintCountIfNeeded() method that's only been called in one |
| place, and instead set the repaint count information on the |
| TextureMapperLayer object directly from setLayerState(). The repaint |
| counter visiblity and count value are gathered from the new struct |
| that's kept on the CoordinatedGraphicsLayerState object. |
| |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: |
| (WebKit::CoordinatedGraphicsScene::setLayerState): |
| (WebKit::CoordinatedGraphicsScene::setLayerRepaintCountIfNeeded): Deleted. |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h: |
| |
| 2018-07-24 Thibault Saunier <tsaunier@igalia.com> |
| |
| [WPE][GTK] Implement WebRTC based on libwebrtc |
| https://bugs.webkit.org/show_bug.cgi?id=186932 |
| |
| Reviewed by Philippe Normand. |
| |
| * WebProcess/Network/webrtc/LibWebRTCProvider.h: Use LibWebRTCProviderGlib when building WPE or GTK ports. |
| |
| 2018-07-23 Stephan Szabo <stephan.szabo@sony.com> |
| |
| [WinCairo] Add implementation for setting cursors |
| https://bugs.webkit.org/show_bug.cgi?id=187868 |
| |
| Reviewed by Fujii Hironori. |
| |
| * UIProcess/win/PageClientImpl.cpp: |
| (WebKit::PageClientImpl::setCursor): Set cursor on the webview |
| * UIProcess/win/WebView.cpp: |
| (WebKit::WebView::setCursor): Add implementation to set the |
| web cursor to update the Windows cursor |
| * UIProcess/win/WebView.h: |
| |
| 2018-07-23 Jeremy Jones <jeremyj@apple.com> |
| |
| Crash when loadViewIfRequired called while WKFullScreenViewController is being deallocated. |
| https://bugs.webkit.org/show_bug.cgi?id=187920 |
| rdar://problem/41324023 |
| |
| Reviewed by Eric Carlson. |
| |
| Clear dangling weak-ref. |
| Prevent async playback state calls from instantiating the interface. |
| Release WKFullScreenViewController when it is no longer needed. |
| |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.mm: |
| (-[WKFullScreenViewController dealloc]): |
| (-[WKFullScreenViewController setPlaying:]): |
| (-[WKFullScreenViewController setAnimating:]): |
| * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm: |
| (-[WKFullScreenWindowController _completedExitFullScreen]): |
| |
| 2018-07-23 Timothy Horton <timothy_horton@apple.com> |
| |
| Try to fix the build. |
| |
| * UIProcess/mac/ServicesController.mm: |
| (WebKit::hasCompatibleServicesForItems): |
| |
| 2018-07-23 Ben Richards <benton_richards@apple.com> |
| |
| We should cache the compiled sandbox profile in a data vault |
| https://bugs.webkit.org/show_bug.cgi?id=184991 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| This patch changes a few things (note: data vaults and sandbox entitlements are only used in internal builds): |
| (1) Instead of compiling a sandbox every time a process is launched, processes now look for a cached sandbox |
| in a process specific data vault on macOS platforms. (ChildProcessMac.mm) |
| (2) If a valid cached sandbox is not found, a process will create the data vault (or ensure that it exists), |
| compile a sandbox, and cache it. |
| (3) In order to create process specific data vaults, each process now has their own <process name>-OSX-sandbox.entitlements |
| file which contains an entitlement with a process specific "storage class" which ensures that each process |
| can only ever access its own data vault. (See the article on confluence "Data Vaults and Restricted Files" for more info) |
| (4) The sandbox entitlements file for the Network, WebContent and Plugin services are loaded dynamically |
| through Scripts/<process name>-process-entitlements.sh which is triggered in a new build phase for each service. |
| The Storage process sandbox entitlements are loaded directly in Configurations/StorageService.xcconfig. |
| The reason that the sandbox entitlements are applied dynamically is so that these sandbox entitlements |
| are only applied when WK_USE_RESTRICTED_ENTITLEMENTS is YES. This means that open source builds will still work. |
| |
| * Configurations/Network-OSX-sandbox.entitlements: Added. |
| * Configurations/Plugin-OSX-sandbox.entitlements: Added. |
| * Configurations/Storage-OSX-sandbox.entitlements: Added. |
| * Configurations/StorageService.xcconfig: |
| * Configurations/WebContent-OSX-sandbox.entitlements: Added. |
| * Configurations/WebKit.xcconfig: |
| * NetworkProcess/NetworkProcess.h: |
| * PluginProcess/PluginProcess.h: |
| * Scripts/process-network-entitlements.sh: Added. |
| * Scripts/process-plugin-entitlements.sh: Added. |
| * Scripts/process-webcontent-entitlements.sh: |
| * Shared/ChildProcess.h: |
| * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h: |
| (WebKit::XPCServiceInitializer): |
| * Shared/SandboxInitializationParameters.h: |
| (WebKit::SandboxInitializationParameters::setOverrideSandboxProfilePath): |
| (WebKit::SandboxInitializationParameters::overrideSandboxProfilePath const): |
| (WebKit::SandboxInitializationParameters::setSandboxProfile): |
| (WebKit::SandboxInitializationParameters::sandboxProfile const): |
| (): Deleted. |
| * Shared/mac/ChildProcessMac.mm: |
| (WebKit::SandboxProfileDeleter::operator()): |
| (WebKit::SandboxParametersDeleter::operator()): |
| (WebKit::SandboxInfo::SandboxInfo): |
| (WebKit::fileContents): |
| (WebKit::processStorageClass): |
| (WebKit::setAndSerializeSandboxParameters): |
| (WebKit::getUserCacheDirectory): |
| (WebKit::sandboxDataVaultParentDirectory): |
| (WebKit::sandboxDirectory): |
| (WebKit::sandboxFilePath): |
| (WebKit::ensureSandboxCacheDirectory): |
| (WebKit::writeSandboxDataToCacheFile): |
| (WebKit::compileAndCacheSandboxProfile): |
| (WebKit::tryApplyCachedSandbox): |
| (WebKit::webKit2Bundle): |
| (WebKit::sandboxProfilePath): |
| (WebKit::compileAndApplySandboxSlowCase): |
| (WebKit::applySandbox): |
| (WebKit::initializeSandboxParameters): |
| (WebKit::ChildProcess::initializeSandbox): |
| * Shared/mac/SandboxInitialiationParametersMac.mm: |
| (WebKit::SandboxInitializationParameters::SandboxInitializationParameters): |
| * StorageProcess/StorageProcess.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebProcess.h: |
| |
| 2018-07-23 Tim Horton <timothy_horton@apple.com> |
| |
| Creating and loading content in a WKWebView triggers Main Thread Checker warnings under ServicesController |
| https://bugs.webkit.org/show_bug.cgi?id=186963 |
| <rdar://problem/41393682> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UIProcess/mac/ServicesController.h: |
| * UIProcess/mac/ServicesController.mm: |
| (WebKit::hasCompatibleServicesForItems): |
| (WebKit::ServicesController::refreshExistingServices): |
| Adopt async ShareKit SPI that is actually thread-safe instead of the not-quite-safe |
| synchronous API. Request all three sets of services immediately, and dispatch |
| to the Web Content processes when all three have returned. |
| |
| 2018-07-23 Chris Dumez <cdumez@apple.com> |
| |
| WebResourceLoadStatisticsStore fails to unregister itself as a MessageReceiver in its destructor |
| https://bugs.webkit.org/show_bug.cgi?id=187910 |
| <rdar://problem/42356526> |
| |
| Reviewed by Brent Fulgham. |
| |
| The WebResourceLoadStatisticsStore was only removing itself as a MessageReceiver from the WebProcessProxy |
| and that WebProcessProxy's connection was getting closed. However, it is possible for the |
| WebResourceLoadStatisticsStore to get destroyed before this happens. This would lead to crashes such as |
| the one in <rdar://problem/42356526>. |
| |
| To address the issue, we let the WebsiteDataStore take care of registering / unregistering the |
| WebResourceLoadStatisticsStore as a MessageReceiver with the WebProcessProxy. This is more reliable since |
| the WebsiteDataStore is the one that subclasses WebProcessLifetimeObserver. Make sure the |
| WebResourceLoadStatisticsStore is removed as a MessageReceiver whenever the WebsiteDataStore is destroyed |
| or WebsiteDataStore::m_resourceLoadStatistics gets cleared. |
| |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| Drop logic to add / remove the WebResourceLoadStatisticsStore as a receiver now that the |
| WebsiteDataStore takes care of it. |
| |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::~WebsiteDataStore): |
| Make sure the WebResourceLoadStatisticsStore gets unregistered as a MessageReceiver from all associated |
| WebProcessProxy objects when the WebsiteDataStore gets destroyed. |
| |
| (WebKit::WebsiteDataStore::webProcessWillOpenConnection): |
| (WebKit::WebsiteDataStore::webProcessDidCloseConnection): |
| Register / Unregister the WebResourceLoadStatisticsStore as a MessageReceiver with the WebProcessProxy. |
| |
| (WebKit::WebsiteDataStore::setResourceLoadStatisticsEnabled): |
| Make sure we unregister the WebResourceLoadStatisticsStore as a MessageReceiver with all associated |
| WebProcessProxy objects before we clear m_resourceLoadStatistics as this will causes the |
| WebResourceLoadStatisticsStore to get destroyed. |
| |
| (WebKit::WebsiteDataStore::unregisterWebResourceLoadStatisticsStoreAsMessageReceiver): |
| (WebKit::WebsiteDataStore::registerWebResourceLoadStatisticsStoreAsMessageReceiver): |
| Add utility functions to register / unregister WebResourceLoadStatisticsStore as a MessageReceiver with |
| all associated WebProcessProxy objects. |
| |
| (WebKit::WebsiteDataStore::enableResourceLoadStatisticsAndSetTestingCallback): |
| Register the new WebResourceLoadStatisticsStore as a MessageReceiver with all associated WebProcessProxy |
| objects in case setResourceLoadStatisticsEnabled(true) gets called *after* we've already started |
| WebProcesses. |
| |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| |
| 2018-07-23 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Add logging of Storage Access API use in experimental debug mode |
| https://bugs.webkit.org/show_bug.cgi?id=187918 |
| <rdar://problem/42509062> |
| |
| Reviewed by Jiewen Tan. |
| |
| Tested manually by looking at log output. |
| |
| * UIProcess/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ResourceLoadStatisticsMemoryStore::removeDataRecords): |
| This is just a clean-up change. |
| (WebKit::ResourceLoadStatisticsMemoryStore::requestStorageAccess): |
| (WebKit::ResourceLoadStatisticsMemoryStore::requestStorageAccessUnderOpener): |
| Both these now log proper info in debug mode. |
| |
| 2018-07-23 Aditya Keerthi <akeerthi@apple.com> |
| |
| [iOS] Add support for input[type=color] |
| https://bugs.webkit.org/show_bug.cgi?id=187871 |
| |
| Reviewed by Tim Horton. |
| |
| Created WKFormColorControl to display a color picker once a color input gains |
| focus. The control is presented as an inputView on iPhone and as a popover on |
| iPad. The picker itself consists of two color matrices. The first is a set of 12 |
| default colors, displayed on the top row of the picker. In a subsequent patch, |
| this top row will be made customizable through the use of the datalist element. |
| The second matrix is a grid of 120 colors, provided by the system. Colors can be |
| selected from either matrix by tapping or with a pan gesture. |
| |
| WKColorMatrixView represents a single color matrix and is comprised of |
| WKColorButtons that represent each color in the matrix. |
| |
| * Shared/AssistedNodeInformation.h: |
| * UIProcess/API/Cocoa/_WKFocusedElementInfo.h: |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::createColorPicker): |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKFocusedElementInfo initWithAssistedNodeInformation:isUserInitiated:userObject:]): |
| (-[WKContentView _requiresKeyboardWhenFirstResponder]): |
| (-[WKContentView inputView]): |
| (-[WKContentView requiresAccessoryView]): |
| (isAssistableInputType): |
| (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]): |
| (-[WKContentView actionNameForFocusedFormControlView:]): |
| * UIProcess/ios/forms/WKFormColorControl.h: Added. |
| * UIProcess/ios/forms/WKFormColorControl.mm: Added. |
| (-[WKColorPopover initWithView:]): |
| (-[WKColorPopover controlView]): |
| (-[WKColorPopover controlBeginEditing]): |
| (-[WKColorPopover controlEndEditing]): |
| (-[WKFormColorControl initWithView:]): |
| (-[WKFormColorControl assistantView]): |
| (-[WKFormColorControl beginEditing]): |
| (-[WKFormColorControl endEditing]): |
| * UIProcess/ios/forms/WKFormColorPicker.h: Added. |
| * UIProcess/ios/forms/WKFormColorPicker.mm: Added. |
| (+[WKColorButton colorButtonWithColor:]): |
| (-[WKColorMatrixView initWithFrame:]): |
| (-[WKColorMatrixView initWithFrame:colorMatrix:]): |
| (-[WKColorMatrixView layoutSubviews]): |
| (-[WKColorMatrixView colorButtonTapped:]): |
| (+[WKColorPicker defaultTopColorMatrix]): |
| (-[WKColorPicker initWithView:]): |
| (-[WKColorPicker setControlValueFromUIColor:]): |
| (-[WKColorPicker controlView]): |
| (-[WKColorPicker controlBeginEditing]): |
| (-[WKColorPicker controlEndEditing]): |
| (-[WKColorPicker colorMatrixView:didTapColorButton:]): |
| (-[WKColorPicker didPanColors:]): |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::isAssistableElement): |
| (WebKit::WebPage::getAssistedNodeInformation): |
| |
| 2018-07-23 Stephan Szabo <stephan.szabo@sony.com> |
| |
| [WinCairo] Fix detection of held modifier keys for key events |
| https://bugs.webkit.org/show_bug.cgi?id=187862 |
| |
| Reviewed by Fujii Hironori. |
| |
| * Shared/win/WebEventFactory.cpp: |
| (WebKit::IsKeyInDownState): Use requested modifier not VK_MENU |
| |
| 2018-07-20 Jer Noble <jer.noble@apple.com> |
| |
| REGRESSION(r233925): Can't go into PiP twice |
| https://bugs.webkit.org/show_bug.cgi?id=187876 |
| <rdar://problem/42444520> |
| |
| Reviewed by Jon Lee. |
| |
| We fail to enter PiP the second time because the video fullscreen interface no longer has a |
| model, and so gives a contentSize of 0x0. This happens because we disassociate the |
| interface from the model in didCleanupFullscreen. However, the interface and model can still |
| be re-used if they're kept alive by another client. We should delay disassociating the model |
| from the interface until just before the model is destroyed in removeClientForContext. |
| |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.mm: |
| (WebKit::VideoFullscreenManagerProxy::removeClientForContext): |
| (WebKit::VideoFullscreenManagerProxy::didCleanupFullscreen): |
| |
| 2018-07-20 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Enable basic functionality in experimental debug mode |
| https://bugs.webkit.org/show_bug.cgi?id=187835 |
| <rdar://problem/42408590> |
| |
| Reviewed by Chris Dumez. |
| |
| This patch makes the experimental ITP Debug Mode feature work, at least |
| to a basic level. This means: |
| - Debug logging on the INFO level. |
| - Permanently treat 3rdpartytestwebkit.org as a prevalent resource. |
| - Support manual setting of a custom permanently prevalent resource through user |
| defaults on Cocoa platforms. |
| |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreSetResourceLoadStatisticsDebugModeWithCompletionHandler): |
| (WKWebsiteDataStoreSetResourceLoadStatisticsPrevalentResourceForDebugMode): |
| Test infrastructure. |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| * UIProcess/Cocoa/ResourceLoadStatisticsMemoryStoreCocoa.mm: |
| (WebKit::ResourceLoadStatisticsMemoryStore::registerUserDefaultsIfNeeded): |
| Used to pick up custom set prevalent resource on Cocoa platforms (for debug mode). |
| * UIProcess/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ResourceLoadStatisticsMemoryStore::isPrevalentDueToDebugMode): |
| (WebKit::ResourceLoadStatisticsMemoryStore::processStatisticsAndDataRecords): |
| Now skips processing of debug mode prevalent resources so that they |
| stay prevalent. |
| (WebKit::ResourceLoadStatisticsMemoryStore::ensurePrevalentResourcesForDebugMode): |
| Convenience function to make 3rdpartytestwebkit.org and any custom domain |
| set through ResourceLoadStatisticsMemoryStore::setPrevalentResourceForDebugMode() |
| be prevalent resources. |
| (WebKit::ResourceLoadStatisticsMemoryStore::setResourceLoadStatisticsDebugMode): |
| (WebKit::ResourceLoadStatisticsMemoryStore::setPrevalentResourceForDebugMode): |
| Sets a custom domain to always be treated as prevalent in debug mode. |
| (WebKit::ResourceLoadStatisticsMemoryStore::clear): |
| Now makes sure 3rdpartytestwebkit.org and any custom domain set through |
| ResourceLoadStatisticsMemoryStore::setPrevalentResourceForDebugMode() |
| are prevalent resources even after a clear of the store. |
| (WebKit::debugLogDomainsInBatches): |
| We may have too many domain names to fit in a single log statement. |
| This function logs them in batches of 50, if we have more than 50. |
| (WebKit::ResourceLoadStatisticsMemoryStore::updateCookiePartitioning): |
| Now makes use of debugLogDomainsInBatches() in debug mode. |
| * UIProcess/ResourceLoadStatisticsMemoryStore.h: |
| (WebKit::ResourceLoadStatisticsMemoryStore::isDebugModeEnabled const): |
| * UIProcess/ResourceLoadStatisticsPersistentStorage.cpp: |
| (WebKit::ResourceLoadStatisticsPersistentStorage::populateMemoryStoreFromDisk): |
| Now accepts a non-empty memory store in debug mode. This is to support a |
| pre-populated store with 3rdpartytestwebkit.org and any custom domain already |
| set as prevalent. |
| (WebKit::ResourceLoadStatisticsPersistentStorage::setResourceLoadStatisticsDebugMode): |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::setResourceLoadStatisticsDebugMode): |
| (WebKit::WebResourceLoadStatisticsStore::setPrevalentResourceForDebugMode): |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::setResourceLoadStatisticsDebugMode): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| |
| 2018-07-20 Tim Horton <timothy_horton@apple.com> |
| |
| Occasional crash under -[WKFormInputSession setSuggestions:] |
| https://bugs.webkit.org/show_bug.cgi?id=187869 |
| <rdar://problem/41357063> |
| |
| Reviewed by Dean Jackson. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView inputDelegate]): |
| Make inputDelegate weak. |
| |
| 2018-07-20 Brent Fulgham <bfulgham@apple.com> |
| |
| [macOS] Relax WebKit sandbox to permit proper App Store behavior |
| https://bugs.webkit.org/show_bug.cgi?id=187831 |
| <rdar://problem/42047455> |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| The Mac App Store is unable to perform some gift card redemption tasks on macOS due to missing sandbox permissions. |
| This patch adds those permissions. |
| |
| * PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in: |
| |
| 2018-07-20 Brady Eidson <beidson@apple.com> |
| |
| Add WKNavigation/WKNavigationAction related SPI. |
| https://bugs.webkit.org/show_bug.cgi?id=187826 |
| |
| Reviewed by Chris Dumez. |
| |
| * UIProcess/API/APINavigationAction.h: |
| |
| * UIProcess/API/C/mac/WKPagePrivateMac.h: |
| * UIProcess/API/C/mac/WKPagePrivateMac.mm: |
| (WKPageLoadURLRequestReturningNavigation): |
| |
| * UIProcess/API/Cocoa/WKNavigationAction.mm: |
| (-[WKNavigationAction _mainFrameNavigation]): |
| * UIProcess/API/Cocoa/WKNavigationActionPrivate.h: |
| |
| * UIProcess/API/glib/WebKitUIClient.cpp: |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::decidePolicyForNewWindowAction): |
| |
| 2018-07-20 Philippe Normand <pnormand@igalia.com> |
| |
| [GTK][WPE] enable-media-capabilities websetting |
| https://bugs.webkit.org/show_bug.cgi?id=187847 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Add a new WebKitSetting for the MediaCapabilities spec defined in: |
| https://wicg.github.io/media-capabilities/ |
| |
| * UIProcess/API/glib/WebKitSettings.cpp: |
| (webKitSettingsSetProperty): |
| (webKitSettingsGetProperty): |
| (webkit_settings_class_init): |
| (webkit_settings_get_enable_media_capabilities): |
| (webkit_settings_set_enable_media_capabilities): |
| * UIProcess/API/gtk/WebKitSettings.h: |
| * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: |
| * UIProcess/API/wpe/WebKitSettings.h: |
| |
| 2018-07-20 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Update OptionsGTK.cmake and NEWS for 2.21.5 release. |
| |
| * gtk/NEWS: Add release notes for 2.21.5. |
| * webkitglib-symbols.map: Remove symbols. |
| |
| 2018-07-19 Chris Dumez <cdumez@apple.com> |
| |
| Null pointer dereference under WebPage::autofillLoginCredentials() |
| https://bugs.webkit.org/show_bug.cgi?id=187823 |
| <rdar://problem/37152195> |
| |
| Reviewed by David Kilzer. |
| |
| Deal with m_assistedNode being null under WebPage::autofillLoginCredentials(). |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::autofillLoginCredentials): |
| |
| 2018-07-19 Chris Dumez <cdumez@apple.com> |
| |
| [ITP] Crash under ResourceLoadStatisticsMemoryStore::removeDataRecords() |
| https://bugs.webkit.org/show_bug.cgi?id=187821 |
| <rdar://problem/42112693> |
| |
| Reviewed by David Kilzer. |
| |
| In two cases, ResourceLoadStatisticsMemoryStore (which lives on a background queue) needs to call WebPageProxy |
| operations on the main thread and then dispatch back on the background queue when the operation completes. |
| However, it is possible for the ResourceLoadStatisticsMemoryStore to get destroyed on the background queue |
| during this time and we would then crash when trying to use m_workQueue to re-dispatch. To address the issue, |
| I now ref the work queue in the lambda so that we're guaranteed to be able to re-dispatch to the background |
| queue. When we're back on the background queue, we'll realize that weakThis in gone and we'll call the callback |
| and return early. |
| |
| Note that I am not checking weakThis on the main thread as this would not be safe. weakThis should only be |
| used on the background queue. |
| |
| * UIProcess/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ResourceLoadStatisticsMemoryStore::removeDataRecords): |
| (WebKit::ResourceLoadStatisticsMemoryStore::grandfatherExistingWebsiteData): |
| |
| 2018-07-19 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| Move WebFrameListenerProxy to WebFramePolicyListenerProxy, its only subclass |
| https://bugs.webkit.org/show_bug.cgi?id=187825 |
| <rdar://problem/42405081> |
| |
| Unreviewed build fix for Windows port. |
| |
| RefPtr.h(45): error C2027: use of undefined type 'API::Navigation' |
| |
| * UIProcess/win/WebInspectorProxyWin.cpp: Include "APINavigation.h". |
| |
| 2018-07-19 Alex Christensen <achristensen@webkit.org> |
| |
| Move WebFrameListenerProxy to WebFramePolicyListenerProxy, its only subclass |
| https://bugs.webkit.org/show_bug.cgi?id=187825 |
| |
| Reviewed by Brady Eidson. |
| |
| * CMakeLists.txt: |
| * UIProcess/API/C/WKPage.cpp: |
| * UIProcess/API/Cocoa/WKBrowsingContextController.mm: |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| * UIProcess/RemoteWebInspectorProxy.cpp: |
| * UIProcess/WebFormSubmissionListenerProxy.h: |
| (WebKit::WebFormSubmissionListenerProxy::create): |
| (WebKit::WebFormSubmissionListenerProxy::WebFormSubmissionListenerProxy): |
| * UIProcess/WebFrameListenerProxy.cpp: Removed. |
| * UIProcess/WebFrameListenerProxy.h: Removed. |
| * UIProcess/WebFramePolicyListenerProxy.cpp: |
| (WebKit::WebFramePolicyListenerProxy::WebFramePolicyListenerProxy): |
| (WebKit::WebFramePolicyListenerProxy::receivedPolicyDecision): |
| (WebKit::WebFramePolicyListenerProxy::changeWebsiteDataStore): |
| (WebKit::WebFramePolicyListenerProxy::invalidate): |
| (WebKit::WebFramePolicyListenerProxy::isMainFrame const): |
| (WebKit::WebFramePolicyListenerProxy::setNavigation): |
| * UIProcess/WebFramePolicyListenerProxy.h: |
| (WebKit::WebFramePolicyListenerProxy::listenerID const): |
| (WebKit::WebFramePolicyListenerProxy::operator new): Deleted. |
| * UIProcess/WebFrameProxy.cpp: |
| (WebKit::WebFrameProxy::activePolicyListenerProxy): |
| * UIProcess/WebFrameProxy.h: |
| * UIProcess/WebInspectorProxy.cpp: |
| * UIProcess/WebProcessPool.cpp: |
| * UIProcess/ios/ViewGestureControllerIOS.mm: |
| * UIProcess/mac/ViewGestureControllerMac.mm: |
| * UIProcess/mac/WKInspectorViewController.mm: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-07-19 Jon Lee <jonlee@apple.com> |
| |
| Update iOS fullscreen alert text again |
| https://bugs.webkit.org/show_bug.cgi?id=187797 |
| rdar://problem/42373783 |
| |
| Reviewed by Jer Noble. |
| |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.mm: |
| (-[WKFullScreenViewController _showPhishingAlert]): |
| |
| 2018-07-19 Brady Eidson <beidson@apple.com> |
| |
| Add an SPI policy action to allow clients to explicitly ask for a new process on a navigation. |
| https://bugs.webkit.org/show_bug.cgi?id=187789 |
| |
| Reviewed by Andy Estes. |
| |
| At navigation policy time, when a client says "use/allow", they can now say "use/allow in a new process if possible" |
| |
| * UIProcess/API/C/WKFramePolicyListener.cpp: |
| (WKFramePolicyListenerUseInNewProcess): |
| (WKFramePolicyListenerUseInNewProcessWithPolicies): |
| * UIProcess/API/C/WKFramePolicyListener.h: |
| |
| * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: |
| |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): |
| |
| * UIProcess/WebFrameListenerProxy.h: |
| (WebKit::WebFrameListenerProxy::setApplyPolicyInNewProcessIfPossible): |
| (WebKit::WebFrameListenerProxy::applyPolicyInNewProcessIfPossible const): |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::receivedPolicyDecision): |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigation): |
| (WebKit::WebProcessPool::processForNavigationInternal): |
| * UIProcess/WebProcessPool.h: |
| |
| 2018-07-19 Youenn Fablet <youenn@apple.com> |
| |
| Ensure experimentalPlugInSandboxProfilesEnabled is set on PluginProcess |
| https://bugs.webkit.org/show_bug.cgi?id=187729 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| experimentalPlugInSandboxProfilesEnabled flag is used at initialization of the plugin process sandbox. |
| This flag value should be set according to the value of this flag in the UIProcess. |
| We set this value in the plugin process manager. |
| At launch of the plugin process, this flag will also be passed to it so that it is set properly. |
| |
| * PluginProcess/EntryPoint/mac/XPCService/PluginServiceEntryPoint.mm: |
| (WebKit::PluginServiceInitializerDelegate::getExtraInitializationData): |
| * PluginProcess/mac/PluginProcessMac.mm: |
| (WebKit::PluginProcess::platformInitializeProcess): |
| * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetPluginSandboxProfilesEnabledForAllPlugins): |
| (WKPreferencesGetPluginSandboxProfilesEnabledForAllPlugins): |
| * UIProcess/API/C/WKPreferencesRefPrivate.h: |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences _setExperimentalPlugInSandboxProfilesEnabled:]): |
| (-[WKPreferences _experimentalPlugInSandboxProfilesEnabled]): |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: |
| * UIProcess/Plugins/PluginProcessManager.h: |
| (WebKit::PluginProcessManager::experimentalPlugInSandboxProfilesEnabled const): |
| * UIProcess/Plugins/mac/PluginProcessManagerMac.mm: |
| (WebKit::PluginProcessManager::setExperimentalPlugInSandboxProfilesEnabled): |
| * UIProcess/Plugins/mac/PluginProcessProxyMac.mm: |
| (WebKit::PluginProcessProxy::platformGetLaunchOptions): |
| |
| 2018-07-18 Ricky Mondello <rmondello@apple.com> |
| |
| Let clients override _WKThumbnailView's background color |
| |
| https://bugs.webkit.org/show_bug.cgi?id=187788 |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/API/Cocoa/_WKThumbnailView.h: Declare a property. |
| * UIProcess/API/Cocoa/_WKThumbnailView.mm: Define an ivar. |
| (-[_WKThumbnailView updateLayer]): Consult the background color. |
| (-[_WKThumbnailView setOverrideBackgroundColor:]): Notably, call -updateLayer. |
| (-[_WKThumbnailView overrideBackgroundColor]): Added. |
| |
| 2018-07-18 Jer Noble <jer.noble@apple.com> |
| |
| CRASH at WebKit: WebKit::WebFullScreenManagerProxy::saveScrollPosition |
| https://bugs.webkit.org/show_bug.cgi?id=187769 |
| <rdar://problem/42160666> |
| |
| Reviewed by Tim Horton. |
| |
| Null-check all uses of _page and _manager in WKFullScreenWindowControllerIOS. |
| |
| * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm: |
| (WebKit::WKWebViewState::applyTo): |
| (WebKit::WKWebViewState::store): |
| (-[WKFullScreenWindowController enterFullScreen]): |
| (-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:finalFrame:]): |
| (-[WKFullScreenWindowController _completedExitFullScreen]): |
| |
| 2018-07-18 Chris Dumez <cdumez@apple.com> |
| |
| WebContent crash in WebProcess::ensureNetworkProcessConnection |
| https://bugs.webkit.org/show_bug.cgi?id=187791 |
| <rdar://problem/41995022> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| If the WebProcessProxy::GetNetworkProcessConnection synchronous IPC between the WebProcess |
| and the UIProcess succeeded but we received an invalid connection identifier, then try |
| once more. This may indicate the network process has crashed, in which case it will be |
| relaunched. |
| |
| * WebProcess/WebProcess.cpp: |
| (WebKit::getNetworkProcessConnection): |
| (WebKit::WebProcess::ensureNetworkProcessConnection): |
| |
| 2018-07-18 Per Arne Vollan <pvollan@apple.com> |
| |
| The WebContent process does not suspend when MiniBrowser is minimized. |
| https://bugs.webkit.org/show_bug.cgi?id=187708 |
| |
| Reviewed by Chris Dumez. |
| |
| Using the NSRunLoop runloop type prevents the WebContent process from suspending. Instead, use the new |
| _WebKit runloop type. Also do not leak a boost to the WebContent process, since this also prevents the |
| WebContent process from going to sleep. Calling SetApplicationIsDaemon prevents the WebContent process |
| from being assigned the application process priority level. To block WindowServer connections, call |
| CGSSetDenyWindowServerConnections(true) instead. Finally, App nap must be manually enabled, since the |
| WebContent process is no longer a NSApplication. |
| |
| * Configurations/WebContentService.xcconfig: |
| * UIProcess/Launcher/mac/ProcessLauncherMac.mm: |
| (WebKit::shouldLeakBoost): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::updateThrottleState): |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::platformInitializeProcess): |
| |
| 2018-07-18 Chris Dumez <cdumez@apple.com> |
| |
| Crash under WebKit::SuspendedPageProxy::webProcessDidClose(WebKit::WebProcessProxy&) |
| https://bugs.webkit.org/show_bug.cgi?id=187780 |
| |
| Reviewed by Brady Eidson. |
| |
| Protect |this| in SuspendedPageProxy::webProcessDidClose() since the call to |
| WebPageProxy::suspendedPageClosed() may destroy us before the method is done |
| executing. |
| |
| * UIProcess/SuspendedPageProxy.cpp: |
| (WebKit::SuspendedPageProxy::webProcessDidClose): |
| |
| 2018-07-18 Jer Noble <jer.noble@apple.com> |
| |
| -_beginAnimatedResizeWithUpdates: can leave view in bad state if called during an existing animation |
| https://bugs.webkit.org/show_bug.cgi?id=187739 |
| |
| Reviewed by Tim Horton. |
| |
| It's not enough to reset _dynamicViewportUpdateMode to NotResizing; other parts of the code |
| check whether _resizeAnimationView is non-nil, the contentView may be hidden, etc. Add a new |
| internal method _cancelAnimatedResize that cleans up state when a call to |
| _beginAnimatedResizeWithUpdates: fails. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _processDidExit]): |
| (-[WKWebView _cancelAnimatedResize]): |
| (-[WKWebView _didCompleteAnimatedResize]): |
| (-[WKWebView _beginAnimatedResizeWithUpdates:]): |
| |
| 2018-07-18 Jer Noble <jer.noble@apple.com> |
| |
| PiP from Element Fullscreen should match AVKit's behavior |
| https://bugs.webkit.org/show_bug.cgi?id=187623 |
| |
| Reviewed by Jon Lee. |
| |
| * UIProcess/Cocoa/PlaybackSessionManagerProxy.h: |
| (WebKit::PlaybackSessionManagerProxy::controlsManagerContextId const): |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.h: |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.mm: |
| (WebKit::VideoFullscreenModelContext::willEnterPictureInPicture): |
| (WebKit::VideoFullscreenModelContext::didEnterPictureInPicture): |
| (WebKit::VideoFullscreenModelContext::failedToEnterPictureInPicture): |
| (WebKit::VideoFullscreenModelContext::willExitPictureInPicture): |
| (WebKit::VideoFullscreenModelContext::didExitPictureInPicture): |
| (WebKit::VideoFullscreenModelContext::failedToExitPictureInPicture): |
| (WebKit::VideoFullscreenManagerProxy::controlsManagerInterface): |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.mm: |
| (WKFullScreenViewControllerVideoFullscreenModelClient::setParent): |
| (WKFullScreenViewControllerVideoFullscreenModelClient::setInterface): |
| (WKFullScreenViewControllerVideoFullscreenModelClient::interface const): |
| (-[WKFullScreenViewController initWithWebView:]): |
| (-[WKFullScreenViewController dealloc]): |
| (-[WKFullScreenViewController videoControlsManagerDidChange]): |
| (-[WKFullScreenViewController ensurePiPAnimator]): |
| (-[WKFullScreenViewController willEnterPictureInPicture]): |
| (-[WKFullScreenViewController didEnterPictureInPicture]): |
| (-[WKFullScreenViewController failedToEnterPictureInPicture]): |
| (-[WKFullScreenViewController loadView]): |
| (-[WKFullScreenViewController viewWillAppear:]): |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::videoControlsManagerDidChange): |
| * UIProcess/mac/WKFullScreenWindowController.h: |
| * UIProcess/mac/WKFullScreenWindowController.mm: |
| (WebKit::WKFullScreenWindowControllerVideoFullscreenModelClient::setParent): |
| (WebKit::WKFullScreenWindowControllerVideoFullscreenModelClient::setInterface): |
| (WebKit::WKFullScreenWindowControllerVideoFullscreenModelClient::interface const): |
| (-[WKFullScreenWindowController initWithWindow:webView:page:]): |
| (-[WKFullScreenWindowController dealloc]): |
| (-[WKFullScreenWindowController videoControlsManagerDidChange]): |
| (-[WKFullScreenWindowController willEnterPictureInPicture]): |
| |
| 2018-07-18 Jer Noble <jer.noble@apple.com> |
| |
| Dissociate the VideoFullscreenInterface from its VideoFullscreenModel before removing it from the manager |
| https://bugs.webkit.org/show_bug.cgi?id=187775 |
| <rdar://problem/42343229> |
| |
| Reviewed by Jon Lee. |
| |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.mm: |
| (WebKit::VideoFullscreenManagerProxy::didCleanupFullscreen): |
| |
| 2018-07-18 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Add SPI to defer running async script until after document load |
| https://bugs.webkit.org/show_bug.cgi?id=187748 |
| <rdar://problem/42317378> |
| |
| Reviewed by Ryosuke Niwa and Tim Horton. |
| |
| Add plumbing for a new ShouldDeferAsynchronousScriptsUntilAfterDocumentLoad configuration that determines |
| whether async script execution should be deferred until document load (i.e. DOMContentLoaded). This |
| configuration defaults to NO on all platforms. See WebCore ChangeLog for more detail. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: |
| (-[WKWebViewConfiguration init]): |
| (-[WKWebViewConfiguration copyWithZone:]): |
| (-[WKWebViewConfiguration _shouldDeferAsynchronousScriptsUntilAfterDocumentLoad]): |
| (-[WKWebViewConfiguration _setShouldDeferAsynchronousScriptsUntilAfterDocumentLoad:]): |
| * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: |
| |
| 2018-07-18 Zan Dobersek <zdobersek@igalia.com> |
| |
| [CoordGraphics] Start tracking Nicosia layers in CoordinatedGraphicsState |
| https://bugs.webkit.org/show_bug.cgi?id=187751 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Start including the Nicosia::CompositionLayer objects in the |
| CoordinatedGraphicsState struct, under a separate NicosiaState struct. |
| References to all the layers in a given scene are kept in a HashSet, |
| and a separate reference to the root layer kept in a separate member |
| variable. |
| |
| CompositingCoordinator now takes care of adding or removing the |
| Nicosia::CompositionLayer objects to the NicosiaState's HashSet, as well |
| as setting the root layer object when it's being initialized. Additions |
| and removals of Nicosia::CompositionLayer correspond to the additions |
| and removals of CoordinatedGraphicsLayer objects to the coordinator's |
| m_registeredLayers HashMap. |
| |
| Upon each state commit that's done in CoordinatedGraphicsScene, the |
| NicosiaState object will be copied into the member variable. Nothing is |
| done yet with that state object, but in the near future it will be used |
| to finally commit all the state details into the TextureMapper layers. |
| |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: |
| (WebKit::CoordinatedGraphicsScene::commitSceneState): |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h: |
| * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp: |
| (WebKit::CompositingCoordinator::initializeRootCompositingLayerIfNeeded): |
| (WebKit::CompositingCoordinator::createGraphicsLayer): |
| (WebKit::CompositingCoordinator::detachLayer): |
| (WebKit::CompositingCoordinator::attachLayer): |
| |
| 2018-07-17 Tim Horton <timothy_horton@apple.com> |
| |
| REGRESSION (iOS 12): Can't scroll to the bottom of the page in WKWebView while keyboard is up on pages with viewport-fit=cover |
| https://bugs.webkit.org/show_bug.cgi?id=187743 |
| <rdar://problem/41651546> |
| |
| Reviewed by Simon Fraser. |
| |
| UIScrollView's _systemContentInset no longer includes keyboard insets |
| in apps linked on iOS 12+ when contentInsetAdjustmentBehavior is None. |
| |
| We use contentInsetAdjustmentBehavior to control adjustment of other |
| sources of insets, but expect the keyboard inset to always be applied. |
| |
| For now, barring a more comprehensive way to separate insets, re-add |
| the keyboard inset in cases where UIKit does not. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| Move some IPI to the SPI header. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _haveSetObscuredInsets]): |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| Make it possible for WKScrollView to check whether the client is overriding insets. |
| |
| * UIProcess/Cocoa/VersionChecks.h: |
| Add a linkedOnOrAfter() version for this new UIScrollView behavior. |
| |
| * UIProcess/ios/WKScrollView.mm: |
| (-[WKScrollView initWithFrame:]): |
| Force WKScrollView's scroll indicator to always respect insets. We always |
| want the scroll bars in a sensible place, even if the page sets |
| viewport-fit=cover. |
| |
| (-[WKScrollView _adjustForAutomaticKeyboardInfo:animated:lastAdjustment:]): |
| Store the bottom inset due to the keyboard. |
| |
| (-[WKScrollView _systemContentInset]): |
| Add the bottom inset due to the keyboard to the systemContentInset |
| in all cases where UIKit does not. Also avoid adding it if the client takes |
| full control of the insets, because the only client that does (MobileSafari) |
| includes insets-due-to-keyboard in their custom insets. |
| |
| 2018-07-17 Chris Dumez <cdumez@apple.com> |
| |
| RELEASE_ASSERT() under IPC::Connection::sendSync() from PluginProxy::supportsSnapshotting() |
| https://bugs.webkit.org/show_bug.cgi?id=187740 |
| <rdar://problem/41818955> |
| |
| Reviewed by Youenn Fablet. |
| |
| As per the crash trace, PluginProxy::supportsSnapshotting() can be called during layout but does synchronous |
| IPC. As a result, we need to prevent WebCore re-entrancy by using DoNotProcessIncomingMessagesWhenWaitingForSyncReply |
| sendOption. |
| |
| * WebProcess/Plugins/PluginProxy.cpp: |
| (WebKit::PluginProxy::supportsSnapshotting const): |
| |
| 2018-07-17 Chris Dumez <cdumez@apple.com> |
| |
| Turn on PSON in WebKitTestRunner |
| https://bugs.webkit.org/show_bug.cgi?id=186542 |
| |
| Reviewed by Brady Eidson. |
| |
| Fix leaking of pre-warmed WebContent processes which became obvious when turning |
| on process-swap-on-navigation by default in WebKitTestRunner. The issue was that |
| the WebProcessPool holds a strong reference to its WebProcessProxy objects via |
| m_processes data members. In turn, WebProcessProxy objects hold a strong reference |
| to their WebProcessPool via their m_processPool data member. This reference cycle |
| normally gets broken by calling WebProcessProxy::shutDown() which removes the |
| WebProcessProxy objects from its WebProcessPool's m_processes container. |
| WebProcessProxy::shutDown() normally gets called when a WebProcessProxy no longer |
| has any WebPageProxy objects. However, in the case of unused pre-warmed |
| WebProcessProxy objects, those never get any page and therefore we'd never break |
| the reference cycle. To address the issue, pre-warmed WebProcessProxy objects |
| now only hold a Weak reference to their process pool, only regular WebProcessProxy |
| objects hold a strong reference to their pool. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::~WebProcessPool): |
| (WebKit::WebProcessPool::tryTakePrewarmedProcess): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::WebProcessProxy): |
| (WebKit::WebProcessProxy::getLaunchOptions): |
| (WebKit::WebProcessProxy::markIsNoLongerInPrewarmedPool): |
| * UIProcess/WebProcessProxy.h: |
| (WebKit::WebProcessProxy::processPool): |
| (WebKit::WebProcessProxy::WeakOrStrongPtr::WeakOrStrongPtr): |
| (WebKit::WebProcessProxy::WeakOrStrongPtr::setIsWeak): |
| (WebKit::WebProcessProxy::WeakOrStrongPtr::get const): |
| (WebKit::WebProcessProxy::WeakOrStrongPtr::operator-> const): |
| (WebKit::WebProcessProxy::WeakOrStrongPtr::operator* const): |
| (WebKit::WebProcessProxy::WeakOrStrongPtr::operator bool const): |
| (WebKit::WebProcessProxy::WeakOrStrongPtr::updateStrongReference): |
| |
| 2018-07-17 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Add an SPI hook to allow clients to yield document parsing and script execution |
| https://bugs.webkit.org/show_bug.cgi?id=187682 |
| <rdar://problem/42207453> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Add hooks to WKDOMDocument to create and return an internal WKDOMDocumentParserYieldToken object, whose lifetime |
| is tied to a document parser yield token. See WebCore ChangeLog for more detail. |
| |
| * WebProcess/InjectedBundle/API/mac/WKDOMDocument.h: |
| * WebProcess/InjectedBundle/API/mac/WKDOMDocument.mm: |
| (-[WKDOMDocumentParserYieldToken initWithDocument:]): |
| (-[WKDOMDocument parserYieldToken]): |
| |
| 2018-07-17 John Wilander <wilander@apple.com> |
| |
| Add completion handlers to TestRunner functions setStatisticsLastSeen(), setStatisticsPrevalentResource(), setStatisticsVeryPrevalentResource(), setStatisticsHasHadUserInteraction(), and setStatisticsHasHadNonRecentUserInteraction() |
| https://bugs.webkit.org/show_bug.cgi?id=187710 |
| <rdar://problem/42252757> |
| |
| Reviewed by Chris Dumez. |
| |
| These changes are to back the completion handler functionality of |
| TestRunner functions: |
| - setStatisticsLastSeen(), |
| - setStatisticsPrevalentResource(), |
| - setStatisticsVeryPrevalentResource(), |
| - setStatisticsHasHadUserInteraction(), and |
| - setStatisticsHasHadNonRecentUserInteraction(). |
| |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreSetStatisticsLastSeen): |
| (WKWebsiteDataStoreSetStatisticsPrevalentResource): |
| (WKWebsiteDataStoreSetStatisticsVeryPrevalentResource): |
| (WKWebsiteDataStoreSetStatisticsHasHadUserInteraction): |
| (WKWebsiteDataStoreSetStatisticsHasHadNonRecentUserInteraction): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::logUserInteraction): |
| (WebKit::WebResourceLoadStatisticsStore::logNonRecentUserInteraction): |
| (WebKit::WebResourceLoadStatisticsStore::clearUserInteraction): |
| (WebKit::WebResourceLoadStatisticsStore::setLastSeen): |
| (WebKit::WebResourceLoadStatisticsStore::setPrevalentResource): |
| (WebKit::WebResourceLoadStatisticsStore::setVeryPrevalentResource): |
| (WebKit::WebResourceLoadStatisticsStore::clearPrevalentResource): |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| |
| 2018-07-16 Simon Fraser <simon.fraser@apple.com> |
| |
| Add color filter for transforming colors in Dark Mode |
| https://bugs.webkit.org/show_bug.cgi?id=187717 |
| |
| Reviewed by Dean Jackson. |
| |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<FilterOperation>::encode): |
| (IPC::decodeFilterOperation): |
| |
| 2018-07-16 Tim Horton <timothy_horton@apple.com> |
| |
| Black flash in content area when returning to Mail |
| https://bugs.webkit.org/show_bug.cgi?id=187719 |
| <rdar://problem/42165340> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::applicationDidFinishSnapshottingAfterEnteringBackground): |
| This still reproduces sometimes even after r233723, because: |
| |
| If a pending commit arrives after ApplicationDidEnterBackground (when we |
| ask the web content process to freeze the layer tree), and after |
| ApplicationDidFinishSnapshottingAfterEnteringBackground (when we hide |
| WKContentView), but before the process sleeps, it will cause WKContentView |
| to be unhidden (potentially including layers with empty surfaces as contents). |
| Nothing will re-hide WKContentView. Instead, we should wait for the next |
| *pending* commit, which will necessarily not come until after the application |
| returns to the foreground because of the strict IPC ordering between |
| the message that freezes the layer tree and the "next commit" mechanism. |
| |
| 2018-07-16 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| [iOS] When bringing MobileSafari to the foreground, images, which are pending decoding, won't be drawn into the immediate-paint transaction |
| https://bugs.webkit.org/show_bug.cgi?id=187375 |
| |
| Reviewed by Simon Fraser. |
| |
| For immediate-paint transaction, we should force all the images which are |
| pending decoding to be repainted before building this transaction. |
| |
| * WebProcess/Plugins/PDF/PDFPlugin.mm: |
| (WebKit::PDFPlugin::updateControlTints): |
| * WebProcess/Plugins/PluginView.cpp: |
| (WebKit::PluginView::paint): |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm: |
| (WebKit::RemoteLayerTreeDrawingArea::flushLayers): |
| |
| 2018-07-11 Dean Jackson <dino@apple.com> |
| |
| Allow removal of white backgrounds |
| https://bugs.webkit.org/show_bug.cgi?id=187574 |
| <rdar://problem/41146792> |
| |
| Reviewed by Simon Fraser. |
| |
| Add a new WebPreference for punching out white backgrounds. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetPunchOutWhiteBackgroundsInDarkMode): |
| (WKPreferencesGetPunchOutWhiteBackgroundsInDarkMode): |
| * UIProcess/API/C/WKPreferencesRefPrivate.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: |
| (-[WKWebViewConfiguration init]): |
| (-[WKWebViewConfiguration copyWithZone:]): |
| (-[WKWebViewConfiguration _punchOutWhiteBackgroundsInDarkMode]): |
| (-[WKWebViewConfiguration _setPunchOutWhiteBackgroundsInDarkMode:]): |
| * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: |
| |
| 2018-07-16 Aditya Keerthi <akeerthi@apple.com> |
| |
| [Datalist][macOS] Add suggestions UI for TextFieldInputTypes |
| https://bugs.webkit.org/show_bug.cgi?id=186531 |
| |
| Reviewed by Tim Horton. |
| |
| Created WebDataListSuggestionsDropdownMac as a wrapper around the suggestions |
| view. The suggestions for TextFieldInputTypes are displayed using an NSTableView |
| in it's own child window. This is done so that suggestions can be presented |
| outside of the page if the parent window's size is too small. The maximum number |
| of suggestions that are visible at one time is 6, with additional suggestions made |
| available by scrolling. |
| |
| Suggestions in the view can be selected via click or by using arrow keys. If the |
| input element associated with the suggestions is blurred, or the page is moved in |
| any way, the suggestions view is hidden. |
| |
| Added IPC messages to the UIProcess to enable the display of the suggestions view. |
| This required a new ArgumentCoder for DataListSuggestionInformation. |
| |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<DataListSuggestionInformation>::encode): |
| (IPC::ArgumentCoder<DataListSuggestionInformation>::decode): |
| * Shared/WebCoreArgumentCoders.h: |
| * UIProcess/PageClient.h: |
| * UIProcess/WebDataListSuggestionsDropdown.cpp: Copied from Source/WebKit/WebProcess/WebCoreSupport/WebDataListSuggestionPicker.h. |
| (WebKit::WebDataListSuggestionsDropdown::WebDataListSuggestionsDropdown): |
| (WebKit::WebDataListSuggestionsDropdown::~WebDataListSuggestionsDropdown): |
| (WebKit::WebDataListSuggestionsDropdown::close): |
| * UIProcess/WebDataListSuggestionsDropdown.h: Copied from Source/WebKit/WebProcess/WebCoreSupport/WebDataListSuggestionPicker.h. |
| (WebKit::WebDataListSuggestionsDropdown::Client::~Client): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::viewWillStartLiveResize): |
| (WebKit::WebPageProxy::viewDidLeaveWindow): |
| (WebKit::WebPageProxy::handleWheelEvent): |
| (WebKit::WebPageProxy::setPageZoomFactor): |
| (WebKit::WebPageProxy::setPageAndTextZoomFactors): |
| (WebKit::WebPageProxy::didStartProvisionalLoadForFrame): |
| (WebKit::WebPageProxy::pageDidScroll): |
| (WebKit::WebPageProxy::showDataListSuggestions): |
| (WebKit::WebPageProxy::handleKeydownInDataList): |
| (WebKit::WebPageProxy::endDataListSuggestions): |
| (WebKit::WebPageProxy::didCloseSuggestions): |
| (WebKit::WebPageProxy::didSelectOption): |
| (WebKit::WebPageProxy::resetState): |
| (WebKit::WebPageProxy::closeOverlayedViews): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::createDataListSuggestionsDropdown): |
| * UIProcess/mac/PageClientImplMac.h: |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::createDataListSuggestionsDropdown): |
| * UIProcess/mac/WebDataListSuggestionsDropdownMac.h: Copied from Source/WebKit/WebProcess/WebCoreSupport/WebDataListSuggestionPicker.h. |
| * UIProcess/mac/WebDataListSuggestionsDropdownMac.mm: Added. |
| (WebKit::WebDataListSuggestionsDropdownMac::create): |
| (WebKit::WebDataListSuggestionsDropdownMac::~WebDataListSuggestionsDropdownMac): |
| (WebKit::WebDataListSuggestionsDropdownMac::WebDataListSuggestionsDropdownMac): |
| (WebKit::WebDataListSuggestionsDropdownMac::show): |
| (WebKit::WebDataListSuggestionsDropdownMac::didSelectOption): |
| (WebKit::WebDataListSuggestionsDropdownMac::selectOption): |
| (WebKit::WebDataListSuggestionsDropdownMac::handleKeydownWithIdentifier): |
| (WebKit::WebDataListSuggestionsDropdownMac::close): |
| (-[WKDataListSuggestionCell initWithFrame:]): |
| (-[WKDataListSuggestionCell setText:]): |
| (-[WKDataListSuggestionCell setActive:]): |
| (-[WKDataListSuggestionCell drawRect:]): |
| (-[WKDataListSuggestionCell mouseEntered:]): |
| (-[WKDataListSuggestionCell mouseExited:]): |
| (-[WKDataListSuggestionCell acceptsFirstResponder]): |
| (-[WKDataListSuggestionTable initWithElementRect:]): |
| (-[WKDataListSuggestionTable setVisibleRect:]): |
| (-[WKDataListSuggestionTable currentActiveRow]): |
| (-[WKDataListSuggestionTable setActiveRow:]): |
| (-[WKDataListSuggestionTable reload]): |
| (-[WKDataListSuggestionTable acceptsFirstResponder]): |
| (-[WKDataListSuggestionTable enclosingScrollView]): |
| (-[WKDataListSuggestionTable removeFromSuperviewWithoutNeedingDisplay]): |
| (-[WKDataListSuggestionsView initWithInformation:inView:]): |
| (-[WKDataListSuggestionsView currentSelectedString]): |
| (-[WKDataListSuggestionsView updateWithInformation:]): |
| (-[WKDataListSuggestionsView moveSelectionByDirection:]): |
| (-[WKDataListSuggestionsView invalidate]): |
| (-[WKDataListSuggestionsView dropdownRectForElementRect:]): |
| (-[WKDataListSuggestionsView showSuggestionsDropdown:]): |
| (-[WKDataListSuggestionsView selectedRow:]): |
| (-[WKDataListSuggestionsView numberOfRowsInTableView:]): |
| (-[WKDataListSuggestionsView tableView:heightOfRow:]): |
| (-[WKDataListSuggestionsView tableView:viewForTableColumn:row:]): |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebCoreSupport/WebDataListSuggestionPicker.cpp: |
| (WebKit::WebDataListSuggestionPicker::handleKeydownWithIdentifier): |
| (WebKit::WebDataListSuggestionPicker::didSelectOption): |
| (WebKit::WebDataListSuggestionPicker::didCloseSuggestions): |
| (WebKit::WebDataListSuggestionPicker::close): |
| (WebKit::WebDataListSuggestionPicker::displayWithActivationType): |
| * WebProcess/WebCoreSupport/WebDataListSuggestionPicker.h: |
| |
| 2018-07-16 Jeremy Jones <jeremyj@apple.com> |
| |
| Fullscreen requires active document. |
| https://bugs.webkit.org/show_bug.cgi?id=186226 |
| rdar://problem/36187413 |
| |
| Reviewed by Jer Noble. |
| |
| This change guarantees the document to be visible for both element fullscreen and video fullscreen. |
| |
| User gesture is not enough to guarantee that the document is visible when fullscreen is initiated |
| because JavaScript can spin wait before initiating fullscreen. During that spin the page or window might |
| be hidden. |
| |
| Document::hidden() can't be relied upon because it won't update while JavaScript spins. |
| |
| This change adds a sync call to the UI process to get the current UI visibility state. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::getIsViewVisible): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::isViewVisible): |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| |
| 2018-07-16 Tim Horton <timothy_horton@apple.com> |
| |
| REGRESSION (r233502): Camera in <input type=file> becomes unresponsive after attempting to dismiss it |
| https://bugs.webkit.org/show_bug.cgi?id=187706 |
| <rdar://problem/42137088> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/ios/forms/WKFileUploadPanel.mm: |
| Remove an unused member. |
| |
| (-[WKFileUploadPanel _dismissDisplayAnimated:]): |
| Allow us to dismiss the camera view controller in addition to the menu. |
| |
| 2018-07-16 Alex Christensen <achristensen@webkit.org> |
| |
| Reduce size of NetworkLoadMetrics and therefore ResourceResponse |
| https://bugs.webkit.org/show_bug.cgi?id=187671 |
| |
| Reviewed by Darin Adler. |
| |
| * Shared/WebCoreArgumentCoders.h: |
| |
| 2018-07-16 Sihui Liu <sihui_liu@apple.com> |
| |
| IndexedDB: closeAndDeleteDatabasesForOrigins should remove all databases for those origins |
| https://bugs.webkit.org/show_bug.cgi?id=187631 |
| <rdar://problem/42164227> |
| |
| Reviewed by Brady Eidson. |
| |
| We need to return all origins, both openingOrigin and mainFrameOrigin, of IndexedDB so users |
| could be better aware of which origins are using databases and decide what they want to |
| remove. |
| |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::indexedDatabaseOrigins): |
| * StorageProcess/StorageProcess.h: |
| |
| 2018-07-15 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [SOUP] http/tests/misc/bubble-drag-events.html crashes |
| https://bugs.webkit.org/show_bug.cgi?id=182352 |
| |
| Reviewed by Youenn Fablet. |
| |
| PingLoad is not refcounted and deletes itself when the load finishes. The problem is that the network data |
| task can also finish the load, causing the PingLoad to be deleted early. We tried to fix it in r233032 in the |
| network data task soup implementation, but it caused regressions. |
| |
| * NetworkProcess/PingLoad.cpp: |
| (WebKit::PingLoad::didReceiveChallenge): Create a weak ref for the ping load before calling the operation completion |
| handler and return early after the completion handler if it was deleted. |
| (WebKit::PingLoad::didReceiveResponseNetworkSession): Ditto. |
| * NetworkProcess/PingLoad.h: |
| * NetworkProcess/soup/NetworkDataTaskSoup.cpp: |
| (WebKit::NetworkDataTaskSoup::continueAuthenticate): Revert r233032. |
| |
| 2018-07-13 Timothy Hatcher <timothy@apple.com> |
| |
| Add _drawsBackground to WKWebViewConfiguration. |
| https://bugs.webkit.org/show_bug.cgi?id=187665 |
| rdar://problem/42182268 |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/API/APIPageConfiguration.cpp: |
| (API::PageConfiguration::copy const): Copy m_drawsBackground, and some missing values. |
| * UIProcess/API/APIPageConfiguration.h: |
| (API::PageConfiguration::drawsBackground const): Added. |
| (API::PageConfiguration::setDrawsBackground): Added. |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): Transfer _drawsBackground to page config. |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: |
| (-[WKWebViewConfiguration init]): Set _drawsBackground to YES. |
| (-[WKWebViewConfiguration encodeWithCoder:]): Encode _drawsBackground. |
| (-[WKWebViewConfiguration initWithCoder:]): Decode _drawsBackground. |
| (-[WKWebViewConfiguration copyWithZone:]): Copy _drawsBackground. |
| (-[WKWebViewConfiguration _drawsBackground]): Added. |
| (-[WKWebViewConfiguration _setDrawsBackground:]): Added. |
| * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: |
| * UIProcess/WebPageProxy.cpp: Set m_drawsBackground based on configuration. |
| |
| 2018-07-13 Tim Horton <timothy_horton@apple.com> |
| |
| WebKit sometimes holds WiFi/BT assertions while the Networking process is suspended |
| https://bugs.webkit.org/show_bug.cgi?id=187662 |
| <rdar://problem/41999448> |
| |
| Reviewed by Chris Dumez. |
| |
| Inform WiFiAssertions when the Networking process is first going into the background, |
| so it has a chance of dropping its assertions even in cases where the system |
| suspends the process before we receive prepareToSuspend. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::processDidTransitionToForeground): |
| (WebKit::NetworkProcess::processDidTransitionToBackground): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * NetworkProcess/curl/NetworkProcessCurl.cpp: |
| (WebKit::NetworkProcess::platformProcessDidTransitionToForeground): |
| (WebKit::NetworkProcess::platformProcessDidTransitionToBackground): |
| * NetworkProcess/soup/NetworkProcessSoup.cpp: |
| (WebKit::NetworkProcess::platformProcessDidTransitionToForeground): |
| (WebKit::NetworkProcess::platformProcessDidTransitionToBackground): |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::sendProcessDidTransitionToForeground): |
| (WebKit::NetworkProcessProxy::sendProcessDidTransitionToBackground): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::updateProcessAssertions): |
| Plumb the foreground/background transition to NetworkProcess. |
| |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::platformPrepareToSuspend): |
| (WebKit::NetworkProcess::platformProcessDidTransitionToBackground): |
| (WebKit::NetworkProcess::platformProcessDidTransitionToForeground): |
| Make use of SuspensionReason to explain to WiFiAssertions the |
| difference between prepareToSuspend and didTransitionToBackground, |
| so that it can adjust the timing of dropping the assertion. |
| |
| 2018-07-13 Tim Horton <timothy_horton@apple.com> |
| |
| REGRESSION (r231676): watchOS WebKit usually doesn't load in the background |
| https://bugs.webkit.org/show_bug.cgi?id=187663 |
| <rdar://problem/42181185> |
| |
| Reviewed by Chris Dumez. |
| |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::applicationDidEnterBackground): |
| "Screen lock" is very aggressive on watchOS; we want to do our usual |
| 30 seconds of loading in the background when you drop your wrist, |
| so disable this power optimization on that platform. |
| |
| 2018-07-13 Chris Dumez <cdumez@apple.com> |
| |
| WebResourceLoader may try to send a IPC with a destination ID that is 0 |
| https://bugs.webkit.org/show_bug.cgi?id=187654 |
| <rdar://problem/39265927> |
| |
| Reviewed by Brady Eidson. |
| |
| WebResourceLoader may try to send a IPC with a destination ID that is 0 according to release |
| assertion hits we see in the wild. This can lead to HashMap corruption on recipient side when |
| trying to lookup a key that is 0. |
| |
| As per the crash traces, we see it starts from WebLoaderStrategy::internallyFailedLoadTimerFired() |
| which is likely due to the Network process crashing. WebLoaderStrategy::networkProcessCrashed() |
| calls scheduleInternallyFailedLoad() on each ResourceLoader and clears the WebResourceLoaders in |
| m_webResourceLoaders. When a ResourceLoader is cancelled (marked as failed), we clear its identifier |
| and we normally null out the WebLoaderStrategy's coreLoader. However, if we cannot find the |
| WebResourceLoader in m_webResourceLoaders (because that map was already cleared) then the |
| WebResourceLoader's coreLoader may not get nulled out, even if the coreLoader's identifier has |
| been reset. We have 2 lambdas in WebResourceLoader which keep the WebResourceLoader alive and |
| try to send IPC and are merely doing a null check on the coreLoader before trying to send the |
| IPC. |
| |
| To address the issue, we now clear the WebResourceLoader's coreLoader in |
| WebLoaderStrategy::networkProcessCrashed(). For robustness, we also check that a coreLoader's |
| identifier is not 0 before trying to send IPC. |
| |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::networkProcessCrashed): |
| * WebProcess/Network/WebResourceLoader.cpp: |
| (WebKit::WebResourceLoader::willSendRequest): |
| (WebKit::WebResourceLoader::didReceiveResponse): |
| |
| 2018-07-13 Zach Li <zachli@apple.com> |
| |
| Allow BOCOM and ABC plug-ins to run unsandboxed |
| https://bugs.webkit.org/show_bug.cgi?id=187652 |
| rdar://problem/42149182 |
| |
| Reviewed by Youenn Fablet. |
| |
| * UIProcess/Plugins/mac/PluginInfoStoreMac.mm: |
| (WebKit::PluginInfoStore::shouldAllowPluginToRunUnsandboxed): |
| |
| 2018-07-13 Chris Dumez <cdumez@apple.com> |
| |
| Add more threading release assertions |
| https://bugs.webkit.org/show_bug.cgi?id=187647 |
| |
| Reviewed by Alex Christensen. |
| |
| Add more threading release assertions to help debug <rdar://problem/39265927>. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess): |
| (WebKit::NetworkConnectionToWebProcess::~NetworkConnectionToWebProcess): |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::m_isInPrewarmedPool): |
| (WebKit::WebProcessProxy::~WebProcessProxy): |
| (WebKit::WebProcessProxy::shutDown): |
| (WebKit::WebProcessProxy::didFinishLaunching): |
| |
| 2018-07-13 Christopher Reid <chris.reid@sony.com> |
| |
| [WinCairo] Add windows storage process connection implementation |
| https://bugs.webkit.org/show_bug.cgi?id=187531 |
| |
| Reviewed by Fujii Hironori. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| * Platform/IPC/Attachment.h: |
| * StorageProcess/StorageProcess.cpp: |
| * UIProcess/Storage/StorageProcessProxy.cpp: |
| |
| 2018-07-13 Dan Bernstein <mitz@apple.com> |
| |
| [macOS] REGRESSION (r233536): Development WebContent service got opted back into Library Validation |
| https://bugs.webkit.org/show_bug.cgi?id=187640 |
| |
| Reviewed by Daniel Bates. |
| |
| * Scripts/process-webcontent-entitlements.sh: Add the |
| com.apple.security.cs.disable-library-validation to the Development service regardless of |
| whether restricted entitlements are to be used, because that entitlement is not restricted. |
| |
| 2018-07-13 Chris Dumez <cdumez@apple.com> |
| |
| NetworkConnectionToWebProcess::m_networkResourceLoaders should use Ref<> for its values |
| https://bugs.webkit.org/show_bug.cgi?id=187629 |
| |
| Reviewed by Youenn Fablet. |
| |
| NetworkConnectionToWebProcess::m_networkResourceLoaders should use Ref<> for its values |
| since they cannot be null. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::didClose): |
| (WebKit::NetworkConnectionToWebProcess::scheduleResourceLoad): |
| (WebKit::NetworkConnectionToWebProcess::performSynchronousLoad): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| |
| 2018-07-12 Alex Christensen <achristensen@webkit.org> |
| |
| Reduce size of WebCore::URL |
| https://bugs.webkit.org/show_bug.cgi?id=186820 |
| |
| Reviewed by Yusuke Suzuki and Youenn Fablet. |
| |
| * NetworkProcess/cache/NetworkCacheStorage.h: |
| Increment cache version because of URL encoding change. |
| |
| 2018-07-12 Chris Dumez <cdumez@apple.com> |
| |
| [Cocoa] Make sure NetworkProcess::createNetworkConnectionToWebProcess() returns a valid mach port |
| https://bugs.webkit.org/show_bug.cgi?id=187625 |
| |
| Reviewed by Youenn Fablet. |
| |
| Make sure NetworkProcess::createNetworkConnectionToWebProcess() returns a valid mach port to help |
| debug <rdar://problem/41995022>. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::createNetworkConnectionToWebProcess): |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::didCreateNetworkConnectionToWebProcess): |
| |
| 2018-07-12 Chris Dumez <cdumez@apple.com> |
| |
| PingLoad does not need to ref the NetworkConnectionToWebProcess |
| https://bugs.webkit.org/show_bug.cgi?id=187624 |
| |
| Reviewed by Youenn Fablet. |
| |
| PingLoad does not need to ref the NetworkConnectionToWebProcess and keep it alive longer than it needs to be. |
| Instead, ref the IPC::Connection which is lighter weight and gets invalidated when the NetworkConnectionToWebProcess |
| is destroyed. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::loadPing): |
| (WebKit::NetworkConnectionToWebProcess::didFinishPingLoad): Deleted. |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| |
| 2018-07-12 Brady Eidson <beidson@apple.com> |
| |
| Make process-swap-on-navigation an experimental feature. |
| <rdar://problem/41995053> and https://bugs.webkit.org/show_bug.cgi?id=187558 |
| |
| Reviewed by Chris Dumez. |
| |
| * Shared/WebPreferences.yaml: |
| |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetProcessSwapOnNavigationEnabled): |
| (WKPreferencesGetProcessSwapOnNavigationEnabled): |
| * UIProcess/API/C/WKPreferencesRef.h: |
| |
| * UIProcess/WebPreferences.cpp: |
| (WebKit::WebPreferences::updateBoolValueForExperimentalFeatureKey): |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::createWebPage): If the new web page has PSON enabled via WebPreferences, |
| absorb that setting into this process pool's configuration. |
| |
| 2018-07-12 Chris Dumez <cdumez@apple.com> |
| |
| Simplify code in NetworkConnectionToWebProcess::didReceiveMessage() |
| https://bugs.webkit.org/show_bug.cgi?id=187621 |
| |
| Reviewed by Youenn Fablet. |
| |
| Simplify code in NetworkConnectionToWebProcess::didReceiveMessage() by not using HashMap iterators and |
| calling get() directly. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::didReceiveMessage): |
| |
| 2018-07-12 Chris Dumez <cdumez@apple.com> |
| |
| Make sure WebProcess::ensureNetworkProcessConnection() is always called on the main thread |
| https://bugs.webkit.org/show_bug.cgi?id=187607 |
| |
| Reviewed by Alex Christensen. |
| |
| Add release assertion to make sure that ensureNetworkProcessConnection() is always called on the main |
| thread. Calling it on a background thread would not be safe. It would not be safe because: |
| 1. We check if we have a network process connection and then create one if we don't without any locking. |
| 2. It is not safe to construct or use a NetworkProcessConnection object from a non-main thread |
| |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::ensureNetworkProcessConnection): |
| |
| 2018-07-12 Chris Dumez <cdumez@apple.com> |
| |
| Assert that the IPC::Connection is valid in Connection::dispatchMessage(Decoder&) |
| https://bugs.webkit.org/show_bug.cgi?id=187617 |
| |
| Reviewed by Youenn Fablet. |
| |
| Assert that the IPC::Connection is valid in Connection::dispatchMessage(Decoder&) as |
| m_client would be stale otherwise. |
| |
| * Platform/IPC/Connection.cpp: |
| (IPC::Connection::dispatchMessage): |
| |
| 2018-07-12 Youenn Fablet <youenn@apple.com> |
| |
| Add a FrameLoaderClient willInjectUserScriptForFrame callback |
| https://bugs.webkit.org/show_bug.cgi?id=187565 |
| |
| Reviewed by Alex Christensen. |
| |
| Introduce a new WKBundlePageLoaderClient callback that is called everytime a user script is injected. |
| Implement WebFrameLoaderClient::willInjectUserScript by calling this new callback. |
| |
| * WebProcess/InjectedBundle/API/APIInjectedBundlePageLoaderClient.h: |
| (API::InjectedBundle::PageLoaderClient::willInjectUserScriptForFrame): |
| * WebProcess/InjectedBundle/API/c/WKBundlePageLoaderClient.h: |
| * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm: |
| (setUpPageLoaderClient): |
| * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp: |
| (WebKit::InjectedBundlePageLoaderClient::globalObjectIsAvailableForFrame): |
| (WebKit::InjectedBundlePageLoaderClient::willInjectUserScriptForFrame): |
| * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::willInjectUserScript): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: |
| |
| 2018-07-12 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| [iOS] When bringing MobileSafari to the foreground, images are drawn asynchronously after removing a snapshot that included them |
| https://bugs.webkit.org/show_bug.cgi?id=187374 |
| <rdar://problem/41249545> |
| |
| Reviewed by Tim Horton. |
| |
| UIProcess should block committing all the layer tree transactions for |
| immediate update until it receives a one whose activityStateChangeID is |
| greater than or equal to the one it sends with SetActivityState message. |
| |
| * Scripts/webkit/messages.py: |
| Fix the messages code generator to include DrawingAreaInfo.h for the WebKit |
| typedef ActivityStateChangeID. |
| |
| * Shared/DrawingAreaInfo.h: |
| Define ActivityStateChangeID to be uint64_t. Add a definition for the case |
| when the UIProcess won't be blocked for a reply back from the WebProcess. |
| |
| * Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h: |
| (WebKit::RemoteLayerTreeTransaction::activityStateChangeID const): |
| (WebKit::RemoteLayerTreeTransaction::setActivityStateChangeID): |
| Add a member for activityStateChangeID in the LayerTreeTransaction. |
| |
| * Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm: |
| (WebKit::RemoteLayerTreeTransaction::encode const): |
| (WebKit::RemoteLayerTreeTransaction::decode): |
| Make LayerTreeTransaction know how to encode and decode activityStateChangeID. |
| |
| * UIProcess/DrawingAreaProxy.h: |
| (WebKit::DrawingAreaProxy::waitForDidUpdateActivityState): |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h: |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm: |
| (WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree): |
| (WebKit::RemoteLayerTreeDrawingAreaProxy::waitForDidUpdateActivityState): |
| Make the DrawingArea in the UIProcess wait the layer tree with a certain |
| activityStateChangeID. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::dispatchActivityStateChange): |
| (WebKit::WebPageProxy::waitForDidUpdateActivityState): |
| If m_activityStateChangeWantsSynchronousReply is true, generate a new |
| activityStateChangeID and send it in the SetActivityState message. |
| |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::takeNextActivityStateChangeID): |
| A simple way to generate a new activityStateChangeID. |
| |
| * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h: |
| * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm: |
| (WebKit::TiledCoreAnimationDrawingAreaProxy::waitForDidUpdateActivityState): |
| Fix the UIProcess functions' prototype for Mac. |
| |
| * WebProcess/WebPage/AcceleratedDrawingArea.cpp: |
| (WebKit::AcceleratedDrawingArea::activityStateDidChange): |
| * WebProcess/WebPage/AcceleratedDrawingArea.h: |
| Fix the UIProcess functions' prototype for GTK. |
| |
| * WebProcess/WebPage/DrawingArea.h: |
| (WebKit::DrawingArea::activityStateDidChange): |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h: |
| Replace wantsDidUpdateActivityState with activityStateChangeID. Treat |
| activityStateChangeID == ActivityStateChangeAsynchronous as if |
| wantsDidUpdateActivityState == false. |
| |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm: |
| (WebKit::RemoteLayerTreeDrawingArea::flushLayers): |
| Make the WebPrcess pass the activityStateChangeID which it receives from |
| the SetActivityState message to the LayerTreeTransaction. |
| |
| (WebKit::RemoteLayerTreeDrawingArea::activityStateDidChange): |
| When receiving the SetActivityState, treat activityStateChangeID != |
| ActivityStateChangeAsynchronous as if wantsDidUpdateActivityState == true. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::reinitializeWebPage): |
| (WebKit::WebPage::setActivityState): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| Replace the boolean wantsDidUpdateActivityState with activityStateChangeID |
| in the SetActivityState message. |
| |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h: |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: |
| (WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea): |
| (WebKit::TiledCoreAnimationDrawingArea::activityStateDidChange): |
| (WebKit::TiledCoreAnimationDrawingArea::didUpdateActivityStateTimerFired): |
| Fix the WebProcess functions' prototype for Mac. |
| |
| 2018-07-12 Antti Koivisto <antti@apple.com> |
| |
| REGRESSION (r232356): After zooming a page in and out, it's possible to temporarily have missing tiles (google.com, apple.com) |
| https://bugs.webkit.org/show_bug.cgi?id=187553 |
| <rdar://problem/41863803> |
| |
| Reviewed by Simon Fraser. |
| |
| We ignore zoom scale from UI process if it doesn't match the last remote layer tree transaction. However nothing |
| guarantees that we receive the real scale again until user interacts with the page. This means the web process |
| scale and the UI process scale can be wildly out of sync. |
| |
| This problem becomes more likely to be visible when |
| - we are under memory pressure so we don't update tiles during zooming and rely on the one final update afterwards |
| - the page generates lots of layer tree transactions |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::willCommitLayerTree): |
| |
| Remember the last transaction where we actually changed the page scale. |
| |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::scaleFromUIProcess const): |
| |
| Only reject the UI process scale if there has been a scale changing transaction meanwhile. |
| The transaction id test was added in r218149 and the problem it fixed remains fixed. This change also matches better |
| what it was purpoted to implement. |
| |
| 2018-07-12 Megan Gardner <megan_gardner@apple.com> |
| |
| Keep Selections within Shadow DOM boundaries |
| https://bugs.webkit.org/show_bug.cgi?id=187556 |
| <rdar://problem/41664567> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Update rangeForPosition to take into account both editing and shadow DOM boundries. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::rangeForPoint): |
| (WebKit::WebPage::updateSelectionWithTouches): |
| (WebKit::rangeForPosition): Deleted. |
| |
| 2018-07-12 Jer Noble <jer.noble@apple.com> |
| |
| REGRESSION (r230163): Videos cannot be seen full screen in Complete Anatomy app |
| https://bugs.webkit.org/show_bug.cgi?id=187527 |
| <rdar://problem/40511527> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Do not enable element fullscreen mode unless apps specifically opt-in. The Fullscreen API is |
| an experimental feature on iOS, but not on Mac, but we can't simply not return the ExperimentalFeature |
| object from the list of experimental features, as this keeps Safari from being able to apply a |
| NSUserDefault value for that feature. Instead, add a property to API::ExperimentalFeature and |
| _WKExperimentalFeature called "hidden", which signals to clients whether to display the feature |
| in their UI. |
| |
| * Scripts/GeneratePreferences.rb: |
| * Scripts/PreferencesTemplates/WebPreferencesExperimentalFeatures.cpp.erb: |
| * Shared/WebPreferences.yaml: |
| * Shared/WebPreferencesDefaultValues.h: |
| * UIProcess/API/APIExperimentalFeature.cpp: |
| (API::ExperimentalFeature::create): |
| (API::ExperimentalFeature::ExperimentalFeature): |
| * UIProcess/API/APIExperimentalFeature.h: |
| * UIProcess/API/Cocoa/_WKExperimentalFeature.h: |
| * UIProcess/API/Cocoa/_WKExperimentalFeature.mm: |
| (-[_WKExperimentalFeature isHidden]): |
| |
| 2018-07-12 Alexey Proskuryakov <ap@apple.com> |
| |
| [Mac] Run Unlock Keychain more reliably |
| https://bugs.webkit.org/show_bug.cgi?id=187604 |
| |
| Reviewed by Dan Bernstein. |
| |
| Move unlocking to a separate target, and make it a dependency for all targets that |
| produce binaries. |
| |
| This is more than strictly required to fix the build, but this way, we won't need |
| to remember about keychain when project structure changes. Another consideration that |
| wasn't initially apparent to me is that is should be possible to build any target, |
| not just "All", so projects aren't necessarily built in the same order even now. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-07-12 Per Arne Vollan <pvollan@apple.com> |
| |
| Add compile guard for enabling NSRunLoop in the WebContent process. |
| https://bugs.webkit.org/show_bug.cgi?id=187563 |
| |
| Reviewed by Chris Dumez. |
| |
| Also, replace __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400 with ENABLE(WEBPROCESS_WINDOWSERVER_BLOCKING) where appropriate. |
| |
| * Platform/mac/LayerHostingContext.mm: |
| (WebKit::LayerHostingContext::createForExternalHostingProcess): |
| * Shared/ChildProcess.h: |
| * Shared/mac/ChildProcessMac.mm: |
| * Shared/mac/HangDetectionDisablerMac.mm: |
| (WebKit::setClientsMayIgnoreEvents): |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::registerNotificationObservers): |
| (WebKit::WebProcessPool::unregisterNotificationObservers): |
| * UIProcess/Launcher/mac/ProcessLauncherMac.mm: |
| (WebKit::shouldLeakBoost): |
| * UIProcess/WebProcessPool.h: |
| * WebProcess/Plugins/PDF/PDFLayerControllerSPI.h: |
| * WebProcess/Plugins/PDF/PDFPlugin.mm: |
| (WebKit::PDFPlugin::PDFPlugin): |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::platformInitializeWebProcess): |
| (WebKit::WebProcess::stopRunLoop): |
| |
| 2018-07-11 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [WPE] Pass the backend library name as command line parameter to the web process |
| https://bugs.webkit.org/show_bug.cgi?id=186841 |
| |
| Reviewed by Žan Doberšek. |
| |
| * UIProcess/Launcher/glib/ProcessLauncherGLib.cpp: |
| (WebKit::ProcessLauncher::launchProcess): Add --backend-library parameter when launching the web process. |
| * WebProcess/wpe/WebProcessMainWPE.cpp: Call wpe_loader_init() with the library passed as --backend-library parameter. |
| |
| 2018-07-11 Jon Lee <jonlee@apple.com> |
| |
| Update iOS fullscreen alert text |
| https://bugs.webkit.org/show_bug.cgi?id=187576 |
| rdar://problem/42052284 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.mm: |
| (-[WKFullScreenViewController _showPhishingAlert]): Update text and string keys. |
| |
| 2018-07-11 Aditya Keerthi <akeerthi@apple.com> |
| |
| REGRESSION (231276): Attempting to copy an image fails |
| https://bugs.webkit.org/show_bug.cgi?id=187212 |
| <rdar://problem/41540074> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| r210683 introduced logic to prevent file URLs from being copied to the clipboard |
| in unexpected cases. In order to achieve this functionality, |
| checkURLReceivedFromWebProcess was called on all items in the pathnames array |
| passed into WebPasteboardProxy::setPasteboardPathnamesForType. However, this |
| method is a misnomer, as the pathnames array always contains exactly one URL and |
| one title for the URL. |
| |
| Renamed methods to make it clear that one URL and one title are being passed in |
| and updated logic to ensure that checkURLReceivedFromWebProcess is only called |
| on the URL and not the title. |
| |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<PasteboardURL>::encode): |
| (IPC::ArgumentCoder<PasteboardURL>::decode): |
| * Shared/WebCoreArgumentCoders.h: |
| * UIProcess/Cocoa/WebPasteboardProxyCocoa.mm: |
| (WebKit::WebPasteboardProxy::setPasteboardURL): |
| * UIProcess/WebPasteboardProxy.h: |
| * UIProcess/WebPasteboardProxy.messages.in: |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: |
| (WebKit::WebPlatformStrategies::setURL): |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.h: |
| |
| 2018-07-11 Alex Christensen <achristensen@webkit.org> |
| |
| Add SPI for immediate injection of user scripts |
| https://bugs.webkit.org/show_bug.cgi?id=173342 |
| <rdar://problem/29202285> |
| |
| Reviewed by Brady Eidson, Youenn Fablet, and Geoff Garen. |
| |
| * UIProcess/API/C/WKPageGroup.cpp: |
| (WKPageGroupAddUserScript): |
| * UIProcess/API/C/WKUserContentControllerRef.cpp: |
| (WKUserContentControllerAddUserScript): |
| * UIProcess/API/Cocoa/WKUserContentController.mm: |
| (-[WKUserContentController addUserScript:]): |
| (-[WKUserContentController _addUserScriptImmediately:]): |
| * UIProcess/API/Cocoa/WKUserContentControllerPrivate.h: |
| * UIProcess/UserContent/WebUserContentControllerProxy.cpp: |
| (WebKit::WebUserContentControllerProxy::addUserScript): |
| * UIProcess/UserContent/WebUserContentControllerProxy.h: |
| * WebProcess/UserContent/WebUserContentController.cpp: |
| (WebKit::WebUserContentController::addUserScripts): |
| (WebKit::WebUserContentController::addUserScriptInternal): |
| If we are to inject the script internally, inject it into the appropriate pages. |
| If we're injecting into the top frame only, there's no need to traverse the frame tree. |
| (WebKit::WebUserContentController::addUserScript): |
| * WebProcess/UserContent/WebUserContentController.h: |
| * WebProcess/UserContent/WebUserContentController.messages.in: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_cpuLimit): |
| |
| 2018-07-11 Simon Fraser <simon.fraser@apple.com> |
| |
| [iOS WK2] Address a possible cause of missing tiles |
| https://bugs.webkit.org/show_bug.cgi?id=187570 |
| rdar://problem/40941118 |
| |
| Reviewed by Tim Horton. |
| |
| If the web process crashes, it's possible for the user to trigger a scroll before |
| the process is re-launched. The pre-commit handler will bail early on the _isValid |
| check without clearing _hasScheduledVisibleRectUpdate, so that remains YES and we |
| get stuck doing no more visible content rect updates. |
| |
| Fix by adding -[WKWebView _didRelaunchProcess] (WKContentView got this already), and |
| in that clear state that could have been set in the UI process while the web process |
| connection was invalid. |
| |
| Also add more release logging around process termination, crash and relaunch. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _processDidExit]): |
| (-[WKWebView _didRelaunchProcess]): |
| (-[WKWebView _scheduleVisibleContentRectUpdateAfterScrollInView:]): |
| (-[WKWebView _updateVisibleContentRects]): |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::reattachToWebProcess): |
| (WebKit::WebPageProxy::processDidTerminate): |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::didClose): |
| (WebKit::WebProcessProxy::didFinishLaunching): |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::didRelaunchProcess): |
| |
| 2018-07-11 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Release logging dumps "Cleaning up dragging state…" every time gesture recognizers are reset in WKContentView |
| https://bugs.webkit.org/show_bug.cgi?id=187562 |
| |
| Reviewed by Tim Horton. |
| |
| Tweaks up a release logging statement, such that it only logs when performing a drag or drop. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView cleanUpDragSourceSessionState]): |
| |
| 2018-07-11 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r233741. |
| https://bugs.webkit.org/show_bug.cgi?id=187568 |
| |
| "WKTR vs exp features, booooooo" (Requested by bradee-oh on |
| #webkit). |
| |
| Reverted changeset: |
| |
| "Make process-swap-on-navigation an experimental feature." |
| https://bugs.webkit.org/show_bug.cgi?id=187558 |
| https://trac.webkit.org/changeset/233741 |
| |
| 2018-07-11 Brady Eidson <beidson@apple.com> |
| |
| Make process-swap-on-navigation an experimental feature. |
| <rdar://problem/41995053> and https://bugs.webkit.org/show_bug.cgi?id=187558 |
| |
| Reviewed by Geoff Garen. |
| |
| * Shared/WebPreferences.yaml: |
| |
| * UIProcess/WebPreferences.cpp: |
| (WebKit::WebPreferences::updateBoolValueForExperimentalFeatureKey): |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::createWebPage): If the new web page has PSON enabled via WebPreferences, |
| absorb that setting into this process pool's configuration. |
| |
| 2018-07-11 Jer Noble <jer.noble@apple.com> |
| |
| Disable all network caching for HLS streams. |
| https://bugs.webkit.org/show_bug.cgi?id=187544 |
| <rdar://problem/41863600> |
| |
| Reviewed by Chris Dumez. |
| |
| Revert the behavior added in r215263 where Media responses are cached if they are from |
| a resource whose expected content length is <4MB. |
| |
| * NetworkProcess/cache/NetworkCache.cpp: |
| (WebKit::NetworkCache::makeStoreDecision): |
| (WebKit::NetworkCache::expectedTotalResourceSizeFromContentRange): Deleted. |
| |
| 2018-07-11 Zan Dobersek <zdobersek@igalia.com> |
| |
| [WPE] AC for fixed-position elements is not enabled |
| https://bugs.webkit.org/show_bug.cgi?id=187514 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Enable accelerated compositing for fixed-position elements when using |
| AcceleratedDrawingArea and AC is force-enabled. This effectively enables |
| this option for the WPE port which is using the AcceleratedDrawingArea |
| implementation and not DrawingAreaImpl like the GTK+ port. |
| |
| * WebProcess/WebPage/AcceleratedDrawingArea.cpp: |
| (WebKit::AcceleratedDrawingArea::updatePreferences): |
| |
| 2018-07-11 Christopher Reid <chris.reid@sony.com> |
| |
| [Win][WebKit] Disable accelerated compositing until it is supported |
| https://bugs.webkit.org/show_bug.cgi?id=187503 |
| |
| Reviewed by Žan Doberšek. |
| |
| * UIProcess/win/WebView.cpp: |
| |
| 2018-07-10 Tim Horton <timothy_horton@apple.com> |
| |
| REGRESSION (r233480): Mail contents flash black when activating |
| https://bugs.webkit.org/show_bug.cgi?id=187504 |
| <rdar://problem/41752351> |
| |
| Reviewed by Simon Fraser. |
| |
| The sequence of events to reproduce the bug originally fixed in r203371 |
| is either: |
| |
| A) the simple background/foreground case |
| |
| 1] app begins to suspend |
| 2] app suspension snapshots are taken |
| 3] WKWebView's surfaces are marked volatile |
| 4] app completes suspension |
| ... time goes by ... |
| 5] WKWebView's volatile surfaces are purged |
| ... time goes by ... |
| 6] app begins to resume, shows (good) suspension snapshot |
| 7] app removes suspension snapshot |
| 8] WKWebView has sublayers with purged (black) surfaces |
| 9] WKWebView sublayers are repaired by a new commit with nonvolatile surfaces |
| |
| B) the re-snapshot while in the background case |
| |
| 1] app begins to suspend |
| 2] app suspension snapshots are taken |
| 3] WKWebView's surfaces are marked volatile |
| 4] app completes suspension |
| ... time goes by ... |
| 5] WKWebView's volatile surfaces are purged |
| ... time goes by ... |
| 6] app wakes up in the background to update its snapshots |
| 7] in the updated snapshots, WKWebView has sublayers with purged (black) surfaces |
| ... time goes by ... |
| 8] app begins to resume, shows (bad) suspension snapshot |
| 9] WKWebView presents layers with purged (black) surfaces until new commit fixes them |
| 10] WKWebView sublayers are repaired by a new commit with nonvolatile surfaces |
| |
| WebKit's current approach to fix this problem is simply to hide the |
| WKWebView's sublayers at some point after A2/B2 (suspension snapshots), |
| but before A8/B7 (the first time the empty layers would be presented |
| or snapshotted). |
| |
| Previously, we did this by hiding the layers when the window's CAContext |
| was created, which happened early enough in both cases (at A6/B6). |
| However, that notification was removed underneath us at some point. |
| |
| However, in looking at the timelines, there's a better place to do this: |
| immediately after marking the surfaces volatile (A3/B3), which is always |
| strictly after the app suspension snapshots are taken, and also always |
| before the freshly-made-volatile layers could be presented or snapshotted. |
| |
| * UIProcess/ApplicationStateTracker.h: |
| * UIProcess/ApplicationStateTracker.mm: |
| (WebKit::ApplicationStateTracker::ApplicationStateTracker): |
| (WebKit::ApplicationStateTracker::~ApplicationStateTracker): |
| (WebKit::ApplicationStateTracker::applicationDidCreateWindowContext): Deleted. |
| * UIProcess/ios/WKApplicationStateTrackingView.h: |
| * UIProcess/ios/WKApplicationStateTrackingView.mm: |
| (-[WKApplicationStateTrackingView didMoveToWindow]): |
| (-[WKApplicationStateTrackingView _applicationDidCreateWindowContext]): Deleted. |
| * UIProcess/ios/WKContentView.mm: |
| (-[WKContentView _applicationDidCreateWindowContext]): Deleted. |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::applicationDidFinishSnapshottingAfterEnteringBackground): |
| Remove the didCreateWindowContext notification, and hide content after |
| snapshotting after entering the background. |
| |
| 2018-07-10 Youenn Fablet <youenn@apple.com> |
| |
| Make fetch() use "same-origin" credentials by default |
| https://bugs.webkit.org/show_bug.cgi?id=176023 |
| |
| Reviewed by Chris Dumez. |
| |
| Before the patch, when changing the credential mode in case of redirection, |
| we were not waiting for WebProcess response to restart the load. |
| This patch updates the implementation to ask the WebProcess whether to proceed as for other regular asynchronous loads. |
| This requires some refactoring in particular we now pass request, redirectRequest and redirectResponse to NetworkLoadChecker |
| that will send them back as part of the completion handler. |
| |
| To do so, we change manual redirection handling and make it a successful case and not an error case as before. |
| |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::redirectionError): |
| (WebKit::NetworkLoadChecker::checkRedirection): |
| * NetworkProcess/NetworkLoadChecker.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::willSendRedirectedRequest): |
| (WebKit::NetworkResourceLoader::restartNetworkLoad): |
| (WebKit::NetworkResourceLoader::continueWillSendRequest): |
| * NetworkProcess/NetworkResourceLoader.h: |
| * NetworkProcess/PingLoad.cpp: |
| (WebKit::PingLoad::willPerformHTTPRedirection): |
| |
| 2018-07-10 Chris Dumez <cdumez@apple.com> |
| |
| [IOS] We should prevent WebProcess suspension while the UIProcess is waiting for a reply from its injected bundle |
| https://bugs.webkit.org/show_bug.cgi?id=187536 |
| <rdar://problem/41931912> |
| |
| Reviewed by Brady Eidson. |
| |
| Update RemoteObjectRegistry to take a background process assertion for each pending reply on the |
| UIProcess side. Otherwise, the destination web process may get suspended and the reply block would |
| not get called. We already do this in WebPageProxy for callbacks waiting for an IPC from the |
| WebProcess. |
| |
| * Shared/API/Cocoa/RemoteObjectRegistry.h: |
| * Shared/API/Cocoa/RemoteObjectRegistry.mm: |
| (WebKit::RemoteObjectRegistry::RemoteObjectRegistry): |
| (WebKit::RemoteObjectRegistry::sendInvocation): |
| (WebKit::RemoteObjectRegistry::callReplyBlock): |
| (WebKit::RemoteObjectRegistry::releaseUnusedReplyBlock): |
| * Shared/API/Cocoa/_WKRemoteObjectRegistry.mm: |
| (-[_WKRemoteObjectRegistry _initWithWebPage:]): |
| (-[_WKRemoteObjectRegistry _initWithWebPageProxy:]): |
| (-[_WKRemoteObjectRegistry _initWithMessageSender:]): Deleted. |
| * Shared/API/Cocoa/_WKRemoteObjectRegistryInternal.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _remoteObjectRegistry]): |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::remoteObjectRegistry): |
| * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm: |
| (-[WKWebProcessPlugInBrowserContextController _remoteObjectRegistry]): |
| |
| 2018-07-09 Brian Burg <bburg@apple.com> |
| |
| WebDriver: hang when running Selenium test correct_event_firing_tests.py::testShouldEmitOnChangeEventsWhenSelectingElements[Safari] |
| https://bugs.webkit.org/show_bug.cgi?id=187486 |
| <rdar://problem/41987110> |
| |
| Reviewed by Tim Horton. |
| |
| This test takes the unusual step of doing Element Click directly on a <select> element, |
| despite the specification supporting clicking on <option> elements directly. It hangs |
| because we fire a nested run loop when the Carbon popup menu appears, and the nested runloop |
| is not exited until the popup menu is clicked or dismissed. |
| |
| If a click is being simulated on the <select> via WebDriver, we should just not show |
| the popup menu but still deliver all of the events that are fired when clicking the element. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::showPopupMenu): |
| |
| 2018-07-10 Tim Horton <timothy_horton@apple.com> |
| |
| Try to fix the build |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _internalDoAfterNextPresentationUpdate:withoutWaitingForPainting:withoutWaitingForAnimatedResize:]): |
| |
| 2018-07-10 Tim Horton <timothy_horton@apple.com> |
| |
| doAfterNextPresentationUpdate should not be called while content is hidden due to animated resize |
| https://bugs.webkit.org/show_bug.cgi?id=187500 |
| <rdar://problem/41294139> |
| |
| Reviewed by Simon Fraser. |
| |
| Clients generally expect that after doAfterNextPresentationUpdate, there's |
| something vaguely sensible on the screen. They use this to remove snapshots, |
| unhide web views, etc. |
| |
| During some kinds of resize/rotation, we will hide the WKContentView, |
| and asynchronously hide it when the resize/rotation is complete. This |
| can cause clients to prematurely expose a blank WKWebView. |
| |
| To fix this, avoid calling doAfterNextPresentationUpdate until the |
| animated resize completes. Add a variant that does not wait for this |
| (to be used for testing purposes). |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _didCompleteAnimatedResize]): |
| (-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]): |
| Rename the vector of blocks that we call after animated resize completes |
| to be generic rather than just about snapshots. |
| |
| (-[WKWebView _internalDoAfterNextPresentationUpdate:withoutWaitingForPainting:withoutWaitingForAnimatedResize:]): |
| Add this _internal variant of _doAfterNextPresentationUpdate that takes bits determining |
| which waits to perform or avoid, to reduce duplication. |
| |
| (-[WKWebView _doAfterNextPresentationUpdate:]): |
| (-[WKWebView _doAfterNextPresentationUpdateWithoutWaitingForAnimatedResizeForTesting:]): |
| (-[WKWebView _doAfterNextPresentationUpdateWithoutWaitingForPainting:]): |
| Call _internalDoAfterNextPresentationUpdate with the appropriate bits set for each situation. |
| |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| Add _doAfterNextPresentationUpdateWithoutWaitingForAnimatedResizeForTesting to WKWebView(WKTesting). |
| |
| 2018-07-10 Tim Horton <timothy_horton@apple.com> |
| |
| REGRESSION (r231510): Dismissing PDFPlugin context menu automatically clicks the first item |
| https://bugs.webkit.org/show_bug.cgi?id=187507 |
| <rdar://problem/42007155> |
| |
| Reviewed by Per Arne Vollan. |
| |
| WebPageProxy::showPDFContextMenu, introduced in r213510, assumes that |
| the user always chooses some item from the menu; it does not handle |
| the case where the context menu is dismissed without selecting anything. |
| |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/mac/WebPageProxyMac.mm: |
| (-[WKPDFMenuTarget selectedMenuItem]): |
| (-[WKPDFMenuTarget contextMenuAction:]): |
| (WebKit::WebPageProxy::showPDFContextMenu): |
| * WebProcess/Plugins/PDF/PDFPlugin.mm: |
| (WebKit::PDFPlugin::handleContextMenuEvent): |
| Make showPDFContextMenu return an optional index, instead of always |
| returning an index. Don't perform any action if it is nullopt. |
| |
| 2018-07-10 Stephan Szabo <stephan.szabo@sony.com> |
| |
| [WinCairo] Support display of webinspector ui on non-legacy minibrowser |
| https://bugs.webkit.org/show_bug.cgi?id=187415 |
| |
| Reviewed by Brian Burg. |
| |
| * UIProcess/WebInspectorProxy.h: |
| * UIProcess/win/WebInspectorProxyWin.cpp: |
| (WebKit::getInspectedWindowInfo): |
| (WebKit::WebInspectorProxy::windowReceivedMessage): |
| (WebKit::WebInspectorProxy::wndProc): |
| (WebKit::WebInspectorProxy::registerWindowClass): |
| (WebKit::decidePolicyForNavigationAction): |
| (WebKit::webProcessDidCrash): |
| (WebKit::WebInspectorProxy::platformCreateFrontendPage): |
| (WebKit::WebInspectorProxy::platformCloseFrontendPageAndWindow): |
| (WebKit::WebInspectorProxy::inspectorPageURL): |
| (WebKit::WebInspectorProxy::inspectorTestPageURL): |
| (WebKit::WebInspectorProxy::inspectorBaseURL): |
| (WebKit::WebInspectorProxy::platformInspectedWindowHeight): |
| (WebKit::WebInspectorProxy::platformInspectedWindowWidth): |
| (WebKit::WebInspectorProxy::platformAttach): |
| (WebKit::WebInspectorProxy::platformDetach): |
| (WebKit::WebInspectorProxy::platformSetAttachedWindowHeight): |
| (WebKit::WebInspectorProxy::platformSetAttachedWindowWidth): |
| (WebKit::WebInspectorProxy::platformIsFront): |
| (WebKit::WebInspectorProxy::platformHide): |
| (WebKit::WebInspectorProxy::platformBringToFront): |
| (WebKit::WebInspectorProxy::platformBringInspectedPageToFront): |
| (WebKit::WebInspectorProxy::platformInspectedURLChanged): |
| (WebKit::WebInspectorProxy::platformCreateFrontendWindow): |
| (WebKit::WebInspectorProxy::platformDidCloseForCrash): |
| (WebKit::WebInspectorProxy::platformInvalidate): |
| (WebKit::WebInspectorProxy::platformStartWindowDrag): |
| * WebProcess/WebPage/WebInspector.cpp: |
| (WebKit::WebInspector::openFrontendConnection): |
| * WebProcess/WebPage/win/WebInspectorUIWin.cpp: |
| (WebKit::WebInspectorUI::localizedStringsURL): |
| (WebKit::RemoteWebInspectorUI::localizedStringsURL): |
| |
| 2018-07-10 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Make testRunner.statisticsResetToConsistentState() take a completion handler |
| https://bugs.webkit.org/show_bug.cgi?id=187499 |
| <rdar://problem/41999431> |
| |
| Reviewed by Chris Dumez. |
| |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreStatisticsResetToConsistentState): |
| Now uses a WTF::CallbackAggregator to call its |
| completion handler when both the call to |
| WebResourceLoadStatisticsStore::scheduleClearInMemory() |
| and to |
| WebResourceLoadStatisticsStore::resetParametersToDefaultValues() |
| are complete. |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemory): |
| Now takes a WTF::CompletionHandler so that it can support the |
| completion handler in |
| WKWebsiteDataStoreStatisticsResetToConsistentState(). |
| (WebKit::WebResourceLoadStatisticsStore::resetParametersToDefaultValues): |
| Now takes a WTF::CompletionHandler so that it can support the |
| completion handler in |
| WKWebsiteDataStoreStatisticsResetToConsistentState(). |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| |
| 2018-07-10 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Disable cross-origin-window-policy by default |
| https://bugs.webkit.org/show_bug.cgi?id=187509 |
| |
| Reviewed by Chris Dumez. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetCrossOriginWindowPolicyEnabled): |
| (WKPreferencesGetCrossOriginWindowPolicyEnabled): |
| * UIProcess/API/C/WKPreferencesRef.h: |
| |
| 2018-07-09 Tim Horton <timothy_horton@apple.com> |
| |
| REGRESSION (r232416): Flickering when going back to Google search results on back swipe |
| https://bugs.webkit.org/show_bug.cgi?id=187506 |
| <rdar://problem/41939594> |
| |
| Reviewed by Chris Dumez. |
| |
| Same document navigations won't have a preceding didStartProvisionalLoadForMainFrame, |
| so the code introduced in r232416 would immediately remove the snapshot |
| upon any same document navigation. |
| |
| Instead, adjust r232416 slightly to start tracking snapshot removal events |
| after didStartProvisionalLoad OR didSameDocumentNavigation. Call the block |
| that starts tracking, then immediately fire the same-document navigation event. |
| |
| * UIProcess/Cocoa/ViewGestureController.cpp: |
| (WebKit::ViewGestureController::didStartProvisionalLoadForMainFrame): |
| (WebKit::ViewGestureController::didReachMainFrameLoadTerminalState): |
| (WebKit::ViewGestureController::didSameDocumentNavigationForMainFrame): |
| (WebKit::ViewGestureController::SnapshotRemovalTracker::stopWaitingForEvent): |
| * UIProcess/Cocoa/ViewGestureController.h: |
| * UIProcess/ios/ViewGestureControllerIOS.mm: |
| (WebKit::ViewGestureController::endSwipeGesture): |
| * UIProcess/mac/ViewGestureControllerMac.mm: |
| (WebKit::ViewGestureController::endSwipeGesture): |
| |
| 2018-07-09 Youenn Fablet <youenn@apple.com> |
| |
| Remove cfca.com.npCryptoKit.CGB.MAC.sb and cfca.com.npP11CertEnroll.MAC.CGB.sb |
| https://bugs.webkit.org/show_bug.cgi?id=187487 |
| <rdar://problem/41991584> |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| * Resources/PlugInSandboxProfiles/cfca.com.npCryptoKit.CGB.MAC.sb: Removed. |
| * Resources/PlugInSandboxProfiles/cfca.com.npP11CertEnroll.MAC.CGB.sb: Removed. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-07-09 Youenn Fablet <youenn@apple.com> |
| |
| Add the possibility to run unsandboxed plug-ins |
| https://bugs.webkit.org/show_bug.cgi?id=187310 |
| <rdar://problem/41798808> |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| Add a utility method to know which plug-ins are allowed to run unsandboxed. |
| For such plug-ins, we skip the sandboxing done when starting the plug-in process. |
| |
| * PluginProcess/mac/PluginProcessMac.mm: |
| (WebKit::PluginProcess::initializeSandbox): |
| * Shared/WebPreferences.yaml: |
| * UIProcess/Plugins/PluginInfoStore.cpp: |
| (WebKit::PluginInfoStore::shouldRunPluginUnsandboxed): |
| * UIProcess/Plugins/PluginInfoStore.h: |
| * UIProcess/Plugins/mac/PluginInfoStoreMac.mm: |
| (WebKit::PluginInfoStore::shouldRunPluginUnsandboxed): |
| (WebKit::PluginInfoStore::shouldUsePlugin): |
| |
| 2018-07-09 Dean Jackson <dino@apple.com> |
| |
| Remove fullscreen-auto-hide-delay |
| https://bugs.webkit.org/show_bug.cgi?id=187493 |
| <rdar://problem/41830852> |
| |
| Reviewed by Antoine Quint. |
| |
| Now there is no delay, rename setFullscreenAutoHideTiming to setFullscreenAutoHideDuration, |
| and only send that value over to the Web Process. |
| |
| * UIProcess/WebFullScreenManagerProxy.cpp: |
| (WebKit::WebFullScreenManagerProxy::setFullscreenAutoHideDuration): |
| (WebKit::WebFullScreenManagerProxy::setFullscreenAutoHideTiming): Deleted. |
| * UIProcess/WebFullScreenManagerProxy.h: |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.mm: |
| (-[WKFullScreenViewController viewWillAppear:]): |
| * WebProcess/FullScreen/WebFullScreenManager.cpp: |
| (WebKit::WebFullScreenManager::didExitFullScreen): |
| (WebKit::WebFullScreenManager::setFullscreenAutoHideDuration): |
| (WebKit::WebFullScreenManager::setFullscreenAutoHideTiming): Deleted. |
| * WebProcess/FullScreen/WebFullScreenManager.h: |
| * WebProcess/FullScreen/WebFullScreenManager.messages.in: |
| |
| 2018-07-09 Timothy Hatcher <timothy@apple.com> |
| |
| Semantic colors don't update when accessibility Increase Contrast mode is enabled. |
| https://bugs.webkit.org/show_bug.cgi?id=187425 |
| rdar://problem/39948240 |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): Moved call to setUseDarkAppearance to WebViewImpl. |
| (-[WKWebView _setUseSystemAppearance:]): No need to call setUseDarkAppearance here anymore. |
| (-[WKWebView viewDidChangeEffectiveAppearance]): Added. This is the proper NSView method to use. |
| (-[WKWebView _effectiveAppearanceIsDark]): Deleted. |
| (-[WKWebView effectiveAppearanceDidChange]): Deleted. This method is a deprecated name. |
| * UIProcess/API/mac/WKView.mm: |
| (-[WKView viewDidChangeEffectiveAppearance]): Added. This is the proper NSView method to use. |
| (-[WKView _setUseSystemAppearance:]): No need to call setUseDarkAppearance here anymore. |
| (-[WKView _effectiveAppearanceIsDark]): Deleted. |
| (-[WKView effectiveAppearanceDidChange]): Deleted. This method is a deprecated name. |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::WebViewImpl): Call setUseDarkAppearance before page config is sent in initializeWebPage. |
| (WebKit::WebViewImpl::effectiveAppearanceDidChange): Added. |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::setUseDarkAppearance): WebCore::Page::setUseDarkAppearance now handles the style changes. |
| The RenderTheme color caches also don't need cleared with platformColorsDidChange(), since we cache light |
| and dark colors seperatly in RenderThemeMac. |
| |
| 2018-07-09 Simon Fraser <simon.fraser@apple.com> |
| |
| Shrink various loading-related enums to shrink CachedResource |
| https://bugs.webkit.org/show_bug.cgi?id=187443 |
| |
| Reviewed by Chris Dumez. |
| |
| * NetworkProcess/CustomProtocols/Cocoa/LegacyCustomProtocolManagerCocoa.mm: |
| (WebKit::LegacyCustomProtocolManager::wasRedirectedToRequest): |
| * NetworkProcess/NetworkLoad.cpp: |
| (WebKit::NetworkLoad::continueWillSendRequest): |
| * NetworkProcess/NetworkLoadParameters.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::canUseCache const): |
| (WebKit::NetworkResourceLoader::retrieveCacheEntry): |
| * NetworkProcess/cache/NetworkCache.cpp: |
| (WebKit::NetworkCache::cachePolicyAllowsExpired): |
| (WebKit::NetworkCache::makeRetrieveDecision): |
| * NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp: |
| (WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad): |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]): |
| (-[WKNetworkSessionDelegate URLSession:task:_schemeUpgraded:completionHandler:]): |
| * Shared/API/c/mac/WKURLRequestNS.mm: |
| (WKURLRequestCopyNSURLRequest): |
| * Shared/Cocoa/WKNSURLRequest.mm: |
| (-[WKNSURLRequest _web_createTarget]): |
| * Shared/mac/WebCoreArgumentCodersMac.mm: |
| (IPC::ArgumentCoder<ResourceRequest>::encodePlatformData): |
| * UIProcess/API/Cocoa/WKFrameInfo.mm: |
| (-[WKFrameInfo request]): |
| * UIProcess/API/Cocoa/WKNavigation.mm: |
| (-[WKNavigation _request]): |
| * UIProcess/API/Cocoa/WKNavigationAction.mm: |
| (-[WKNavigationAction request]): |
| * UIProcess/API/Cocoa/WKNavigationData.mm: |
| (-[WKNavigationData originalRequest]): |
| * UIProcess/API/Cocoa/WKNavigationResponse.mm: |
| (-[WKNavigationResponse _request]): |
| * UIProcess/API/Cocoa/WKURLSchemeTask.mm: |
| (-[WKURLSchemeTaskImpl request]): |
| * UIProcess/API/Cocoa/_WKDownload.mm: |
| (-[_WKDownload request]): |
| * UIProcess/Cocoa/LegacyCustomProtocolManagerClient.mm: |
| (WebKit::LegacyCustomProtocolManagerClient::startLoading): |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::maximumBufferingTime): |
| (WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess): |
| (WebKit::WebLoaderStrategy::loadResourceSynchronously): |
| * WebProcess/WebPage/mac/WebPageMac.mm: |
| (WebKit::WebPage::platformCanHandleRequest): |
| |
| 2018-07-09 Chris Dumez <cdumez@apple.com> |
| |
| WebProcessProxy::topPrivatelyControlledDomainsWithWebsiteData() fails to protect the page in its lambda |
| https://bugs.webkit.org/show_bug.cgi?id=187478 |
| <rdar://problem/41975998> |
| |
| Reviewed by Youenn Fablet. |
| |
| Make sure we protect the WebPageProxy when we capture it in the lambda or it might go away by the |
| time the lambda gets called. |
| |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::topPrivatelyControlledDomainsWithWebsiteData): |
| |
| 2018-07-09 Basuke Suzuki <Basuke.Suzuki@sony.com> |
| |
| [Curl] Remove unused AuthenticationManager static methods. |
| https://bugs.webkit.org/show_bug.cgi?id=187419 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| The file for curl port was added without implementation and never called from anyware. |
| Also interfaces only used by the curl port were removed from the shared header file. |
| |
| * PlatformWin.cmake: |
| * Shared/Authentication/AuthenticationManager.h: |
| * Shared/Authentication/curl/AuthenticationManagerCurl.cpp: Removed. |
| |
| 2018-07-09 Stephan Szabo <stephan.szabo@sony.com> |
| |
| Check that LayerTreeHost was created before use |
| https://bugs.webkit.org/show_bug.cgi?id=187404 |
| |
| Reviewed by Žan Doberšek. |
| |
| * WebProcess/WebPage/AcceleratedDrawingArea.cpp: |
| (WebKit::AcceleratedDrawingArea::enterAcceleratedCompositingMode): |
| |
| 2018-07-09 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r233612. |
| https://bugs.webkit.org/show_bug.cgi?id=187475 |
| |
| Revision caused the api test LinkColorWithSystemAppearance to |
| fail on all systems. (Requested by Truitt on #webkit). |
| |
| Reverted changeset: |
| |
| "Semantic colors don't update when accessibility Increase |
| Contrast mode is enabled." |
| https://bugs.webkit.org/show_bug.cgi?id=187425 |
| https://trac.webkit.org/changeset/233612 |
| |
| 2018-07-09 Brian Burg <bburg@apple.com> |
| |
| WebDriver: hang in Selenium test alerts_tests.py::testShouldHandleAlertOnPageBeforeUnload |
| https://bugs.webkit.org/show_bug.cgi?id=187418 |
| <rdar://problem/41909520> |
| |
| Unreviewed build fix for Sierra. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::runBeforeUnloadConfirmPanel): |
| According to some compilers, the local 'automationSession' is unused. Change this |
| to just convert the return value to boolean rather than assign to an unused local. |
| |
| 2018-07-07 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Introduce a layout milestone to track when the document contains a large number of rendered characters |
| https://bugs.webkit.org/show_bug.cgi?id=187412 |
| <rdar://problem/41744338> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Add plumbing for the new significant rendered text layout milestone in the modern WebKit client layer. See |
| WebCore/ChangeLog for more details. |
| |
| * Shared/API/Cocoa/_WKRenderingProgressEvents.h: |
| * Shared/API/Cocoa/_WKRenderingProgressEventsInternal.h: |
| (renderingProgressEvents): |
| * Shared/API/c/WKPageLoadTypes.h: |
| * Shared/API/c/WKSharedAPICast.h: |
| (WebKit::toWKLayoutMilestones): |
| (WebKit::toLayoutMilestones): |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (layoutMilestones): |
| |
| 2018-07-07 Simon Fraser <simon.fraser@apple.com> |
| |
| REGRESSION (r233561): MobileMail crashes when replying to an email |
| https://bugs.webkit.org/show_bug.cgi?id=187436 |
| rdar://problem/41931915 |
| |
| Reviewed by Alan Bujtas. |
| |
| r233561 added a RELEASE_ASSERT(isMainThread()) in this function. This is fine most of the time, |
| until Mail spawns a WebThread for mail compose, at which point the meaning of isMainThread changes |
| and the RELEASE_ASSERT fires. |
| |
| For now, just remove the RELEASE_ASSERT. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _scheduleVisibleContentRectUpdateAfterScrollInView:]): |
| |
| 2018-07-06 Timothy Hatcher <timothy@apple.com> |
| |
| Semantic colors don't update when accessibility Increase Contrast mode is enabled. |
| https://bugs.webkit.org/show_bug.cgi?id=187425 |
| rdar://problem/39948240 |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): Moved call to setUseDarkAppearance to WebViewImpl. |
| (-[WKWebView _setUseSystemAppearance:]): No need to call setUseDarkAppearance here anymore. |
| (-[WKWebView viewDidChangeEffectiveAppearance]): Added. This is the proper NSView method to use. |
| (-[WKWebView _effectiveAppearanceIsDark]): Deleted. |
| (-[WKWebView effectiveAppearanceDidChange]): Deleted. This method is a deprecated name. |
| * UIProcess/API/mac/WKView.mm: |
| (-[WKView viewDidChangeEffectiveAppearance]): Added. This is the proper NSView method to use. |
| (-[WKView _setUseSystemAppearance:]): No need to call setUseDarkAppearance here anymore. |
| (-[WKView _effectiveAppearanceIsDark]): Deleted. |
| (-[WKView effectiveAppearanceDidChange]): Deleted. This method is a deprecated name. |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::WebViewImpl): Call setUseDarkAppearance before page config is sent in initializeWebPage. |
| (WebKit::WebViewImpl::effectiveAppearanceDidChange): Added. |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::setUseDarkAppearance): WebCore::Page::setUseDarkAppearance now handles the style changes. |
| The RenderTheme color caches also don't need cleared with platformColorsDidChange(), since we cache light |
| and dark colors seperatly in RenderThemeMac. |
| |
| 2018-07-06 Chris Dumez <cdumez@apple.com> |
| |
| Add release assertions to try and catch a possible HashMap corruption in NetworkConnectionToWebProcess |
| https://bugs.webkit.org/show_bug.cgi?id=187417 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Add assertions to make sure we: |
| - Always use NetworkConnectionToWebProcess::m_networkResourceLoaders from the main thread |
| - Never use a 0 identifier as key for NetworkConnectionToWebProcess::m_networkResourceLoaders |
| |
| We see crashes (rdar://problem/39265927) that only seem to make sense if this HashMap was |
| somehow getting corrupted. Let's try and catch the most common reasons for HashMap corruption. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::didCleanupResourceLoader): |
| (WebKit::NetworkConnectionToWebProcess::didReceiveMessage): |
| (WebKit::NetworkConnectionToWebProcess::scheduleResourceLoad): |
| (WebKit::NetworkConnectionToWebProcess::performSynchronousLoad): |
| (WebKit::NetworkConnectionToWebProcess::removeLoadIdentifier): |
| (WebKit::NetworkConnectionToWebProcess::setDefersLoading): |
| (WebKit::NetworkConnectionToWebProcess::convertMainResourceLoadToDownload): |
| * WebProcess/Network/WebResourceLoader.cpp: |
| (WebKit::WebResourceLoader::messageSenderDestinationID): |
| |
| 2018-07-06 Brian Burg <bburg@apple.com> |
| |
| WebDriver: hang in Selenium test alerts_tests.py::testShouldHandleAlertOnPageBeforeUnload |
| https://bugs.webkit.org/show_bug.cgi?id=187418 |
| <rdar://problem/41909520> |
| |
| Reviewed by Timothy Hatcher. |
| |
| Per the W3C specification, “User prompts that are spawned from beforeunload event handlers, |
| are dismissed implicitly upon navigation or close window, regardless of the defined user prompt handler.” |
| |
| This behavior differs from legacy Selenium behavior where (as in the test) it's expected that |
| a test can accept or dismiss a beforeunload alert manually. |
| |
| Prior to this patch, beforeunload alerts hang because Safari uses a nested modal run loop, which does |
| not process incoming Automation messages, so there was no way for the test to manually dismiss |
| the alert. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::runBeforeUnloadConfirmPanel): |
| Don't show beforeunload alerts for pages being controlled by automation. |
| |
| |
| 2018-07-06 Chris Dumez <cdumez@apple.com> |
| |
| ASSERTION FAILED: contextConnection under WebCore::SWServer::terminateWorkerInternal |
| https://bugs.webkit.org/show_bug.cgi?id=187348 |
| <rdar://problem/41853270> |
| |
| Reviewed by Youenn Fablet. |
| |
| Make sure we mark corresponding SWServerWorkers as terminated when we terminate a |
| Service Worker context connection once it is no longer needed. |
| |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::swContextConnectionMayNoLongerBeNeeded): |
| |
| 2018-07-06 Andy Estes <aestes@apple.com> |
| |
| [iOS] WKPDFView should show the Data Detectors sheet when long-pressing a URL that Data Detectors can handle |
| https://bugs.webkit.org/show_bug.cgi?id=187396 |
| <rdar://problem/41786980> |
| |
| Reviewed by Dan Bernstein. |
| |
| If a URL can be presented by Data Detectors, show the Data Detectors sheet instead |
| of the link sheet. Also implement the optional WKActionSheetAssistantDelegate |
| method that asks the UI delegate for its data detection context. |
| |
| * UIProcess/ios/WKPDFView.mm: |
| (-[WKPDFView _showActionSheetForURL:atLocation:withAnnotationRect:]): |
| (-[WKPDFView dataDetectionContextForActionSheetAssistant:]): |
| |
| 2018-07-06 Chris Dumez <cdumez@apple.com> |
| |
| WebResourceLoadStatisticsStore::callHasStorageAccessForFrameHandler() should take in a CompletionHandler |
| https://bugs.webkit.org/show_bug.cgi?id=187392 |
| |
| Reviewed by Youenn Fablet. |
| |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::callHasStorageAccessForFrameHandler): |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| |
| 2018-07-06 Chris Dumez <cdumez@apple.com> |
| |
| [iOS] Assertion failure in WebProcessProxy::allProcesses() (isMainThread()) |
| https://bugs.webkit.org/show_bug.cgi?id=187394 |
| |
| Reviewed by Dan Bernstein. |
| |
| Use RunLoop::isMain() instead of isMainThread() in the assertion to fix issues for |
| applications using both WebKit and WebKitLegacy. |
| |
| * UIProcess/WebProcessProxy.cpp: |
| |
| 2018-07-06 Daniel Bates <dabates@apple.com> |
| |
| Remove Strong Confirmation Password button |
| https://bugs.webkit.org/show_bug.cgi?id=187306 |
| <rdar://problem/41795185> |
| |
| Reviewed by Sam Weinig. |
| |
| Remove support for the Strong Confirmation Password button because we never made use of it. |
| |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm: |
| (toAutoFillButtonType): |
| (toWKAutoFillButtonType): |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandlePrivate.h: |
| * WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp: |
| (toAutoFillButtonType): |
| (toWKAutoFillButtonType): |
| * WebProcess/InjectedBundle/API/c/WKBundleNodeHandlePrivate.h: |
| |
| 2018-07-05 Youenn Fablet <youenn@apple.com> |
| |
| REGRESSION (r230843): Flash doesn't work; Produces blue box on page |
| https://bugs.webkit.org/show_bug.cgi?id=187346 |
| <rdar://problem/41773974> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Reset page plugins when the load client policies are updated. |
| This will ensure that pages will rebuild their plugin lists based on the new policies. |
| |
| * WebProcess/Plugins/WebPluginInfoProvider.cpp: |
| (WebKit::WebPluginInfoProvider::setPluginLoadClientPolicy): |
| (WebKit::WebPluginInfoProvider::clearPluginClientPolicies): |
| |
| 2018-07-05 Brady Eidson <beidson@apple.com> |
| |
| IndexedDB operations in a Page fail after a StorageProcess crash. |
| <rdar://problem/41626526> and https://bugs.webkit.org/show_bug.cgi?id=187123 |
| |
| Reviewed by Alex Christensen. |
| |
| When the connection to a StorageProcess goes away, explicitly tell all of the WebPages |
| in the WebProcess about it. |
| |
| This puts Documents/Workers in an error mode where requests fail instead of timeout. |
| It also clears the Page's connection so *new* Documents and Workers will get a fresh |
| new connection that works. |
| |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextTerminateStorageProcess): |
| |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _terminateStorageProcess]): |
| |
| * UIProcess/Storage/StorageProcessProxy.cpp: |
| (WebKit::StorageProcessProxy::terminateForTesting): |
| * UIProcess/Storage/StorageProcessProxy.h: |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::terminateStorageProcessForTesting): |
| (WebKit::WebProcessPool::terminateStorageProcess): Deleted. |
| * UIProcess/WebProcessPool.h: |
| |
| * WebProcess/Storage/WebToStorageProcessConnection.cpp: |
| (WebKit::WebToStorageProcessConnection::didClose): |
| * WebProcess/Storage/WebToStorageProcessConnection.h: |
| (WebKit::WebToStorageProcessConnection::existingIDBConnectionToServerForIdentifier): |
| |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::webToStorageProcessConnectionClosed): |
| |
| 2018-07-05 Simon Fraser <simon.fraser@apple.com> |
| |
| Address two possible causes of missing tiles in iOS Safari, and add logging to gather more data about other possible causes |
| https://bugs.webkit.org/show_bug.cgi?id=187376 |
| rdar://problem/40941118 |
| |
| Reviewed by Tim Horton. |
| |
| We have continual reports of users experiencing missing tiles in MobileSafari, where loading a page |
| shows the tiles at the top, but we don't render new tiles as the user scrolls down. This is consistent |
| with failing to dispatch visible content rect updates via -[WKWebView _updateVisibleContentRects]. |
| |
| This patch addresses two possible (but unlikely) causes. First, it resets _currentlyAdjustingScrollViewInsetsForKeyboard |
| after a web process crash. Second, it catches exceptions thrown by [webView _updateVisibleContentRects] |
| and resets _hasScheduledVisibleRectUpdate. |
| |
| This patch also adds release logging that fires if over 1s has elapsed between scheduling |
| a visible content rect update and trying to re-schedule, and logging for all reasons that |
| -_updateVisibleContentRects returns early. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| (-[WKWebView _processDidExit]): |
| (-[WKWebView _addUpdateVisibleContentRectPreCommitHandler]): |
| (-[WKWebView _scheduleVisibleContentRectUpdateAfterScrollInView:]): |
| (-[WKWebView _updateVisibleContentRects]): |
| |
| 2018-07-05 Olivia Barnett <obarnett@apple.com> |
| |
| iPad: Scrolling with hardware keyboard while SELECT popover is visible scrolls the page, detaches popover |
| https://bugs.webkit.org/show_bug.cgi?id=187363 |
| <rdar://problem/41106306> |
| |
| Reviewed by Tim Horton. |
| |
| Added extra check to prevent keyboard scrolling when the select box is open. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _scrollOffsetForEvent:]): |
| |
| 2018-07-05 Timothy Hatcher <timothy@apple.com> |
| |
| Rename and flip the meaning of defaultAppearance to be useDarkAppearance. |
| https://bugs.webkit.org/show_bug.cgi?id=187369 |
| rdar://problem/41870420 |
| |
| Reviewed by Tim Horton. |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _effectiveAppearanceIsDark]): |
| (-[WKWebView _initializeWithConfiguration:]): |
| (-[WKWebView _setUseSystemAppearance:]): |
| (-[WKWebView effectiveAppearanceDidChange]): |
| (-[WKWebView _defaultAppearance]): Deleted. |
| * UIProcess/API/mac/WKView.mm: |
| (-[WKView _effectiveAppearanceIsDark]): |
| (-[WKView effectiveAppearanceDidChange]): |
| (-[WKView _setUseSystemAppearance:]): |
| (-[WKView _defaultAppearance]): Deleted. |
| (-[WKView _setDefaultAppearance:]): Deleted. |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::effectiveAppearanceIsDark): |
| (WebKit::WebViewImpl::setUseDarkAppearance): |
| (WebKit::WebViewImpl::useDefaultAppearance): Deleted. |
| (WebKit::WebViewImpl::setDefaultAppearance): Deleted. |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::creationParameters): |
| (WebKit::WebPageProxy::setUseDarkAppearance): |
| (WebKit::WebPageProxy::showPlaybackTargetPicker): |
| (WebKit::WebPageProxy::setDefaultAppearance): Deleted. |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::useDarkAppearance const): |
| (WebKit::WebPageProxy::defaultAppearance const): Deleted. |
| * UIProcess/mac/WKPrintingView.mm: |
| (-[WKPrintingView drawRect:]): |
| * WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp: |
| (WebKit::InjectedBundleRangeHandle::renderedImage): |
| * WebProcess/Plugins/PDF/PDFPlugin.mm: |
| (WebKit::PDFPlugin::paintControlForLayerInContext): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_credentialsMessenger): |
| (WebKit::WebPage::drawRect): |
| (WebKit::WebPage::setUseDarkAppearance): |
| (WebKit::WebPage::setDefaultAppearance): Deleted. |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2018-07-05 Brian Burg <bburg@apple.com> |
| |
| REGRESSION: ASSERT under WebAutomationSessionProxy::computeElementLayout when elementInViewClientCenterPoint returns nullopt |
| https://bugs.webkit.org/show_bug.cgi?id=187367 |
| <rdar://problem/41861346> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * WebProcess/Automation/WebAutomationSessionProxy.cpp: |
| (WebKit::WebAutomationSessionProxy::computeElementLayout): |
| There's no reason to unwrap this optional, as the IPC argument type is std::optional<IntPoint>. |
| |
| 2018-07-05 Tim Horton <timothy_horton@apple.com> |
| |
| Upstream hover gesture implementation |
| https://bugs.webkit.org/show_bug.cgi?id=187366 |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView setupInteraction]): |
| (-[WKContentView cleanupInteraction]): |
| (-[WKContentView _removeDefaultGestureRecognizers]): |
| (-[WKContentView _addDefaultGestureRecognizers]): |
| (-[WKContentView _hoverGestureRecognizerChanged:]): |
| |
| 2018-07-05 Tim Horton <timothy_horton@apple.com> |
| |
| Fix some -Wdocumentation warnings in WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=187318 |
| |
| Reviewed by Dan Bernstein. |
| |
| Fix most of the -Wdocumentation warnings in WebKit. The remaining |
| ones are slightly mysterious, so we can't turn the warning on yet. |
| |
| * Configurations/BaseTarget.xcconfig: |
| Define U_HIDE_DEPRECATED_API. It's defined in all other WebKit projects, |
| and the doc comments in the deprecated ICU API have some errors. |
| |
| * UIProcess/API/Cocoa/WKUIDelegate.h: |
| * UIProcess/API/Cocoa/WKWebView.h: |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.h: |
| Adjust comments or parameter names to be consistent with each other. |
| |
| 2018-07-05 Chris Dumez <cdumez@apple.com> |
| |
| Regression(r232886): WebsiteDataStore objects may get destroyed on a background thread |
| https://bugs.webkit.org/show_bug.cgi?id=187356 |
| <rdar://problem/41854555> |
| |
| Reviewed by Geoffrey Garen. |
| |
| As of r232886, CallbackAggregators in WebsiteDataStore hold a Ref<> to their WebsiteDataStore. This |
| is an issue because CallbackAggregator objects can get destroyed on a background thread and may be |
| the last ones holding a ref to the data store. When this happens, the WebsiteDataStore would get |
| destroyed on a background store and potentially cause crashes. Note that even if the callback |
| aggregator would not be the last one to hold a ref to the store, it still would not be safe to deref |
| the store on the background thread since WebsiteDataStore is not ThreadSafeRefCounted. |
| |
| To address the issue, this patch updates the CallbackAggregators' destructor to deref their data |
| store member on the main thread. Note that we could also have WebsiteDataStore subclass |
| ThreadSafeRefCounted<T, DestructionThread::Main> but the data store technically does not need to |
| be ThreadSafeRefCounted at the moment. |
| |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::WebsiteDataStore): |
| (WebKit::WebsiteDataStore::~WebsiteDataStore): |
| (WebKit::WebsiteDataStore::fetchDataAndApply): |
| (WebKit::WebsiteDataStore::removeData): |
| |
| 2018-07-05 Dan Bernstein <mitz@apple.com> |
| |
| [macOS] REGRESSION: Development WebContent service has restricted entitlements, rendering it useless for development |
| https://bugs.webkit.org/show_bug.cgi?id=187355 |
| |
| Reviewed by Anders Carlsson. |
| |
| * Configurations/WebContentService.Development.xcconfig: Set WK_USE_RESTRICTED_ENTITLEMENTS |
| to NO for the Development service. |
| |
| 2018-07-05 Rob Buis <rbuis@igalia.com> |
| |
| [GTK] Remove soup/DownloadSoupErrors.h |
| https://bugs.webkit.org/show_bug.cgi?id=187339 |
| |
| This header is not used anymore. |
| |
| Reviewed by Frédéric Wang. |
| |
| * NetworkProcess/Downloads/soup/DownloadSoupErrors.h: Removed. |
| * NetworkProcess/soup/NetworkDataTaskSoup.cpp: |
| * PlatformGTK.cmake: |
| |
| 2018-07-04 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| REGRESSION(r233325): [GTK] Broke 40 animations tests |
| https://bugs.webkit.org/show_bug.cgi?id=187264 |
| |
| Reviewed by Žan Doberšek. |
| |
| Use a different PlatformDisplayID for compositing in the GTK port. This way, when entering AC a window screen |
| changed is emitted and the GTK default display refresh monitor is destroyed, ensuring the one created by the |
| threaded compositor is used. |
| |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: |
| (WebKit::ThreadedCompositor::create): Remove unused WebPage parameter and add PlatformDisplayID. |
| (WebKit::ThreadedCompositor::ThreadedCompositor): Create the display refresh monitor with the given displayID. |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h: |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.cpp: |
| (WebKit::ThreadedDisplayRefreshMonitor::ThreadedDisplayRefreshMonitor): Pass the given displayID to the parent constructor. |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.h: |
| (WebKit::ThreadedDisplayRefreshMonitor::create): Add PlatformDisplayID parameter. |
| * WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp: |
| (WebKit::ThreadedCoordinatedLayerTreeHost::ThreadedCoordinatedLayerTreeHost): Use compositingDisplayID when |
| creating the threaded compositor and notify about the window screen change. |
| (WebKit::ThreadedCoordinatedLayerTreeHost::setIsDiscardable): Use primaryDisplayID when leaving AC and |
| compositingDisplayID when re-entering. |
| |
| 2018-07-04 Olivia Barnett <obarnett@apple.com> |
| |
| A WKWebView in a UIViewController that is presented modally and uses a file picker will be incorrectly dismissed by the system |
| https://bugs.webkit.org/show_bug.cgi?id=185257 |
| <rdar://problem/40819252> |
| |
| Reviewed by Tim Horton. |
| |
| Call to dismiss the presented modal was being called on the parent and not the child, which caused the file picker to be incorrectly dismissed along with the modal. A test for this bug-fix could not be completed without additional tools as TestWebKitAPI is not a UI application. |
| |
| * UIProcess/ios/forms/WKFileUploadPanel.mm: |
| (-[WKFileUploadPanel _dismissDisplayAnimated:]): |
| |
| 2018-07-04 Tim Horton <timothy_horton@apple.com> |
| |
| Introduce PLATFORM(IOSMAC) |
| https://bugs.webkit.org/show_bug.cgi?id=187315 |
| |
| Reviewed by Dan Bernstein. |
| |
| * Configurations/Base.xcconfig: |
| * Configurations/FeatureDefines.xcconfig: |
| * Configurations/NetworkService.xcconfig: |
| * Configurations/WebContentService.xcconfig: |
| * Configurations/WebKit.xcconfig: |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::sourceApplicationAuditData const): |
| * NetworkProcess/ios/NetworkProcessIOS.mm: |
| * NetworkProcess/mac/NetworkProcessMac.mm: |
| (WebKit::NetworkProcess::initializeProcessName): |
| (WebKit::overrideSystemProxies): |
| * Platform/mac/LayerHostingContext.mm: |
| (WebKit::LayerHostingContext::createForExternalHostingProcess): |
| * Platform/spi/ios/UIKitSPI.h: |
| * Shared/ios/ChildProcessIOS.mm: |
| (WebKit::ChildProcess::initializeSandbox): |
| * Shared/ios/InteractionInformationAtPosition.h: |
| * Shared/ios/InteractionInformationAtPosition.mm: |
| (WebKit::InteractionInformationAtPosition::encode const): |
| (WebKit::InteractionInformationAtPosition::decode): |
| * Shared/mac/ChildProcessMac.mm: |
| (WebKit::ChildProcess::setApplicationIsDaemon): |
| (WebKit::enableSandboxStyleFileQuarantine): |
| * Shared/mac/CodeSigning.mm: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _webViewPrintFormatter]): |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm: |
| (WebKit::RemoteLayerTreeHost::updateLayerTree): |
| * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm: |
| (-[WKRemoteView initWithFrame:contextID:]): |
| * UIProcess/_WKWebViewPrintFormatter.mm: |
| * UIProcess/_WKWebViewPrintFormatterInternal.h: |
| * UIProcess/ios/WKContentView.mm: |
| (-[WKContentView _didExitStableState]): |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView gestureRecognizer:canBePreventedByGestureRecognizer:]): |
| (-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]): |
| (-[WKContentView canPerformActionForWebView:withSender:]): |
| (-[WKContentView _defineForWebView:]): |
| (-[WKContentView setSelectedTextRange:]): |
| (-[WKContentView closestPositionToPoint:]): |
| (-[WKContentView _updateChangedSelection:]): |
| * UIProcess/ios/WKLegacyPDFView.mm: |
| * UIProcess/ios/WKPDFView.mm: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::selectWithGesture): |
| (WebKit::WebPage::getPositionInformation): |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::initializeSandbox): |
| * config.h: |
| |
| 2018-07-04 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| 50 failing WebDriver tests after r233417 |
| https://bugs.webkit.org/show_bug.cgi?id=187263 |
| |
| Reviewed by Frédéric Wang. |
| |
| A std::optional value is used while being std::nullopt. This is because the wrong input source is used when |
| transitioning keyboard input states. |
| |
| * UIProcess/Automation/SimulatedInputDispatcher.cpp: |
| (WebKit::SimulatedInputDispatcher::transitionInputSourceToState): |
| |
| 2018-07-03 Youenn Fablet <youenn@apple.com> |
| |
| Remove quarantine for Webex plugin |
| https://bugs.webkit.org/show_bug.cgi?id=187050 |
| rdar://problem/41478189 |
| |
| Reviewed by Brent Fulgham. |
| |
| Update the Plugin Info.plist to not do quarantine of downloaded files by default. |
| Update PluginProcess implementation to reenable quarantine for all plug-ins except cisco webex plug-in. |
| |
| * Platform/spi/mac/QuarantineSPI.h: Add qtn_proc_init. |
| * PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64.Info.plist: |
| * PluginProcess/PluginProcess.h: |
| * PluginProcess/mac/PluginProcessMac.mm: |
| (WebKit::PluginProcess::shouldOverrideQuarantine): |
| * Shared/ChildProcess.h: |
| (WebKit::ChildProcess::shouldOverrideQuarantine): |
| * Shared/mac/ChildProcessMac.mm: |
| (WebKit::ChildProcess::initializeSandbox): |
| |
| 2018-07-03 Youenn Fablet <youenn@apple.com> |
| |
| Crash in WebKit::CacheStorage::Cache::toRecordInformation when running http/tests/cache-storage/cache-persistency.https.html |
| https://bugs.webkit.org/show_bug.cgi?id=187243 |
| |
| Reviewed by Chris Dumez. |
| |
| In case a caches object has an engine, it uses the engine to get the salt. |
| In case engine/caches are non persistent, no salt was set for the engine, hence the crashes. |
| Add an empty salt whenever initializing a non-persistent engine to remove the crash. |
| |
| Covered by updated expectations for two tests. |
| |
| * NetworkProcess/cache/CacheStorageEngine.cpp: |
| (WebKit::CacheStorage::Engine::initialize): |
| |
| 2018-07-03 Youenn Fablet <youenn@apple.com> |
| |
| Fix regression introduced in r233335 |
| https://bugs.webkit.org/show_bug.cgi?id=187282 |
| |
| Reviewed by Chris Dumez. |
| |
| When checking for navigation loads, we need to return whether the request URL matches the service worker URL. |
| Before this patch, if the request URL was not matching the service worker URL, we were using the origin/referrer |
| which should only be used for subresource loads. |
| |
| Covered by imported/w3c/web-platform-tests/service-workers/service-worker/claim-with-redirect.https.html |
| being no longer flaky. |
| |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::isValidFetch): |
| |
| 2018-07-03 Chris Dumez <cdumez@apple.com> |
| |
| Make CallbackMap::invalidate() safe to re-enter |
| https://bugs.webkit.org/show_bug.cgi?id=187298 |
| <rdar://problem/41057167> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Made it safe to re-enter CallbackMap::invalidate(), GenericCallback::performCallbackWithReturnValue(), |
| GenericCallback::invalidate() & invalidateCallbackMap() since those execute client blocks which may |
| re-enter WebKit. |
| |
| * UIProcess/GenericCallback.h: |
| (WebKit::GenericCallback::performCallbackWithReturnValue): |
| (WebKit::invalidateCallbackMap): |
| |
| 2018-07-03 Brent Fulgham <bfulgham@apple.com> |
| |
| [iOS] Clean up sandbox warnings found during Public Beta |
| https://bugs.webkit.org/show_bug.cgi?id=187308 |
| <rdar://problem/41203914> |
| |
| Reviewed by Eric Carlson. |
| |
| I made our sandbox overly restrictive during our iOS 12.0 development cycle, and have found a number of missing items. |
| |
| This patch adds the missing IOKit properties, and removes a duplicate call to (play-media). |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2018-07-03 Basuke Suzuki <Basuke.Suzuki@sony.com> |
| |
| [Curl] Embed certificate information into ResourceResponse. |
| https://bugs.webkit.org/show_bug.cgi?id=187102 |
| |
| Reviewed by Youenn Fablet. |
| |
| * NetworkProcess/curl/NetworkDataTaskCurl.cpp: |
| (WebKit::NetworkDataTaskCurl::curlDidComplete):. |
| |
| 2018-07-03 Simon Fraser <simon.fraser@apple.com> |
| |
| [iOS WK2] We fail to make surfaces volatile when suspending, increasing memory impact |
| https://bugs.webkit.org/show_bug.cgi?id=187285 |
| rdar://problem/41732391 |
| |
| Reviewed by Tim Horton. |
| |
| The "Mach port as layer contents" code path used in iOS WK2 relies on replacing the |
| Mach port layer contents with the actual IOSurface on suspension (otherwise the |
| live Mach port will keep the surface in use). However, we were never hitting this |
| RemoteLayerTreeHost::mapAllIOSurfaceBackingStore() code path on iOS 11 and later |
| because UIKit stopped firing the notification we relied on. |
| |
| To fix this, use the _UIApplicationDidFinishSuspensionSnapshotNotification notification |
| which is fired on UIApp. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/ApplicationStateTracker.mm: |
| (WebKit::ApplicationStateTracker::ApplicationStateTracker): |
| |
| 2018-07-02 Simon Fraser <simon.fraser@apple.com> |
| |
| Clean up the layer volatility code and logging |
| https://bugs.webkit.org/show_bug.cgi?id=187286 |
| |
| Reviewed by Tim Horton. |
| |
| Fix the layer volatility logging so it doesn't say "succeeded" when it actually failed |
| and gave up. |
| |
| Use a couple of lambda functions in RemoteLayerBackingStore::setBufferVolatility() to |
| make the code easier to read. |
| |
| * Shared/RemoteLayerTree/RemoteLayerBackingStore.h: |
| * Shared/RemoteLayerTree/RemoteLayerBackingStore.mm: |
| (WebKit::RemoteLayerBackingStore::setBufferVolatility): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::callVolatilityCompletionHandlers): |
| (WebKit::WebPage::layerVolatilityTimerFired): |
| (WebKit::WebPage::markLayersVolatile): |
| * WebProcess/WebPage/WebPage.h: |
| (WebKit::WebPage::markLayersVolatile): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::actualPrepareToSuspend): |
| (WebKit::WebProcess::markAllLayersVolatile): |
| * WebProcess/WebProcess.h: |
| |
| 2018-07-03 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Make WebsiteDataStore::getAllStorageAccessEntries() call the right network process instead of iterating over the process pools |
| https://bugs.webkit.org/show_bug.cgi?id=187277 |
| <rdar://problem/41745510> |
| |
| Reviewed by Chris Dumez. |
| |
| Existing tests use this code. The change is for correctness. |
| |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _getAllStorageAccessEntriesFor:completionHandler:]): |
| Now receives a WKWebView from its caller and gets the page ID from it. |
| (-[WKWebsiteDataStore _getAllStorageAccessEntries:]): Deleted. |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::getAllStorageAccessEntries): |
| Now gets a page ID from its caller and gets the right network process |
| through it. |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| |
| 2018-07-03 Jonathan Bedard <jbedard@apple.com> |
| |
| Unreviewed, rolling out r233461. |
| |
| Assertions triggered during iOS 11 debug layout and API tests |
| |
| Reverted changeset: |
| |
| "[iOS] Add assert to catch improper use of WebCore::Timer in |
| UI Process" |
| https://bugs.webkit.org/show_bug.cgi?id=185330 |
| https://trac.webkit.org/changeset/233461 |
| |
| 2018-07-03 Youenn Fablet <youenn@apple.com> |
| |
| Update com.cmbchina.CMBSecurity.sb to make it functional |
| https://bugs.webkit.org/show_bug.cgi?id=187278 |
| |
| Reviewed by Brent Fulgham. |
| |
| * Resources/PlugInSandboxProfiles/com.cmbchina.CMBSecurity.sb: |
| |
| 2018-07-03 Jer Noble <jer.noble@apple.com> |
| |
| Update Fullscreen anti-phishing alert text |
| https://bugs.webkit.org/show_bug.cgi?id=187199 |
| <rdar://problem/41162543> |
| |
| Reviewed by Brent Fulgham. |
| |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.mm: |
| (-[WKFullScreenViewController _showPhishingAlert]): |
| |
| 2018-07-03 David Kilzer <ddkilzer@apple.com> |
| |
| [iOS] Add assert to catch improper use of WebCore::Timer in UI Process |
| <https://webkit.org/b/185330> |
| <rdar://problem/32816079> |
| |
| Reviewed by Darin Adler. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::NetworkProcess): |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::StorageProcess): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::m_nonVisibleProcessCleanupTimer): |
| - Call setWebKitProcessType() to se the global for the current |
| process. |
| |
| 2018-07-03 Frederic Wang <fred.wang@free.fr> |
| |
| [iOS] Animations with Bézier timing function not suspended on UI process when animation-play-state is set to "paused" |
| https://bugs.webkit.org/show_bug.cgi?id=170784 |
| |
| Reviewed by Antoine Quint. |
| |
| In order to pause a running animation, GraphicsLayerCA::pauseCAAnimationOnLayer calls |
| PlatformCALayer::addAnimationForKey, assuming it will replace the current animation. |
| This patch fixes PlatformCALayerRemote::addAnimationForKey to ensure this assumption holds. |
| |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp: |
| (WebKit::PlatformCALayerRemote::addAnimationForKey): If the animation was already sent to |
| the UI process, make sure it is properly updated. |
| |
| 2018-07-02 Youenn Fablet <youenn@apple.com> |
| |
| Add sandbox to microdone plugin |
| https://bugs.webkit.org/show_bug.cgi?id=187149 |
| <rdar://problem/41538057> |
| |
| Unreviewed. |
| |
| * Resources/PlugInSandboxProfiles/cn.microdone.cmb.safari.sb: Renamed from Source/WebKit/Resources/PlugInSandboxProfiles/cn.microdone.cmb.safari. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-07-02 Tim Horton <timothy_horton@apple.com> |
| |
| Adjust now-incorrect animated resize logging after r232544 |
| https://bugs.webkit.org/show_bug.cgi?id=187281 |
| <rdar://problem/41645347> |
| |
| Reviewed by Simon Fraser. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _didCommitLayerTree:]): |
| (-[WKWebView _didCompleteAnimatedResize]): |
| (-[WKWebView _beginAnimatedResizeWithUpdates:]): |
| _beginAnimatedResizeWithUpdate: and _didCompleteAnimatedResize are |
| not strictly paired; we could instead track the SPI, but it's a bit |
| tricky since resizeWithContentHidden has an implicit endAnimatedResize. |
| Instead, just log if we still have a resizeAnimationView when we're |
| committing outside of an animated resize, which seems to be the original concern, |
| and point toward the possibility of unpaired begin/end. |
| Also fix logging that has the wrong method name. |
| |
| 2018-07-02 Youenn Fablet <youenn@apple.com> |
| |
| Update com.apple.NPSafeInput.sb to make it functional |
| https://bugs.webkit.org/show_bug.cgi?id=187276 |
| |
| Reviewed by Brent Fulgham. |
| |
| * Resources/PlugInSandboxProfiles/com.apple.NPSafeInput.sb: |
| |
| 2018-07-02 Youenn Fablet <youenn@apple.com> |
| |
| Update com.cfca.npSecEditCtl.MAC.BOC.plugin.sb to make it functional |
| https://bugs.webkit.org/show_bug.cgi?id=187261 |
| |
| Reviewed by Brent Fulgham. |
| |
| * Resources/PlugInSandboxProfiles/com.cfca.npSecEditCtl.MAC.BOC.plugin.sb: |
| |
| 2018-07-02 Brady Eidson <beidson@apple.com> |
| |
| Crash notifying observers of responsiveness state change |
| <rdar://problem/41267796> and https://bugs.webkit.org/show_bug.cgi?id=187262 |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/PageLoadState.cpp: |
| (WebKit::PageLoadState::callObserverCallback): Copy the container ahead of time. |
| |
| 2018-07-02 Sihui Liu <sihui_liu@apple.com> |
| |
| Remove InitWebCoreThreadSystemInterface() in WKProcessPool _initWithConfiguration |
| https://bugs.webkit.org/show_bug.cgi?id=187252 |
| |
| Reviewed by Dan Bernstein. |
| |
| Clean up after <rdar://problem/15256572>. |
| |
| * UIProcess/API/Cocoa/WKProcessGroup.mm: |
| (-[WKProcessGroup initWithInjectedBundleURL:]): |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _initWithConfiguration:]): |
| |
| 2018-07-02 Zan Dobersek <zdobersek@igalia.com> |
| |
| REGRESSION(r233381): Double WebResourceLoadStatisticsStore destructor invocation |
| https://bugs.webkit.org/show_bug.cgi?id=187247 |
| |
| Reviewed by Chris Dumez. |
| |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::flushAndDestroyPersistentStore): |
| Don't call postTask() to dispatch this task, as that keeps a reference |
| to this WebResourceLoadStatisticsStore object and thus causes problems |
| when invoked from the destructor in the form of a second destructor |
| invocation that ends up crashing the process. Blocking nature of this |
| call should be enough to avoid WebResourceLoadStatisticsStore lifetime |
| issues. |
| |
| 2018-07-02 Per Arne Vollan <pvollan@apple.com> |
| |
| Delete display link when closing page or the WebContent process has crashed. |
| https://bugs.webkit.org/show_bug.cgi?id=186895 |
| |
| Reviewed by Brent Fulgham. |
| |
| If there is a running display link in the UI process, there is no need to keep it around if the |
| page is being closed or the WebContent process has crashed. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::close): |
| (WebKit::WebPageProxy::resetStateAfterProcessExited): |
| |
| 2018-06-23 Darin Adler <darin@apple.com> |
| |
| [Cocoa] Improve ARC compatibility of more code in JavaScriptCore |
| https://bugs.webkit.org/show_bug.cgi?id=186973 |
| |
| Reviewed by Dan Bernstein. |
| |
| * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.mm: |
| (WebKit::XPCServiceInitializerDelegate::hasEntitlement): Use WTF::hasEntitlement. |
| |
| * Shared/mac/SandboxUtilities.h: Removed connectedProcessHasEntitlement since |
| we can now use WTF::hasEntitlement instead. |
| * Shared/mac/SandboxUtilities.mm: Ditto. |
| |
| * StorageProcess/ios/StorageProcessIOS.mm: |
| (WebKit::StorageProcess::parentProcessHasServiceWorkerEntitlement): Use |
| WTF::hasEntitlement. |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::parentProcessHasServiceWorkerEntitlement): Ditto. |
| |
| 2018-06-30 David Kilzer <ddkilzer@apple.com> |
| |
| Fix clang static analyzer warnings: Garbage return value |
| <https://webkit.org/b/187224> |
| |
| Reviewed by Eric Carlson. |
| |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: |
| (WebKit::WebPlatformStrategies::changeCount): |
| (WebKit::WebPlatformStrategies::addTypes): |
| (WebKit::WebPlatformStrategies::setTypes): |
| (WebKit::WebPlatformStrategies::setBufferForType): |
| (WebKit::WebPlatformStrategies::setPathnamesForType): |
| (WebKit::WebPlatformStrategies::setStringForType): |
| (WebKit::WebPlatformStrategies::getNumberOfFiles): |
| (WebKit::WebPlatformStrategies::getPasteboardItemsCount): |
| (WebKit::WebPlatformStrategies::writeCustomData): |
| * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm: |
| (WebKit::WebEditorClient::substitutionsPanelIsShowing): |
| - Use brace initialization for local variables. |
| |
| 2018-06-30 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, add missing PLATFORM(COCOA) guard after r233207 |
| https://bugs.webkit.org/show_bug.cgi?id=186788 |
| <rdar://problem/41094167> |
| |
| * WebProcess/InjectedBundle/API/c/WKBundle.cpp: |
| (WKBundleExtendClassesForParameterCoder): |
| |
| 2018-06-30 Dan Bernstein <mitz@apple.com> |
| |
| Added a missing availability attribute. |
| |
| * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.h: |
| |
| 2018-06-29 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Make network process calls only for the process pool that the page belongs to |
| https://bugs.webkit.org/show_bug.cgi?id=187206 |
| <rdar://problem/41659160> |
| |
| Reviewed by Chris Dumez. |
| |
| Instead of iterating over all process pools, we should resolve which |
| process pool the page belongs to and call the network process only for |
| that pool. This is especially important since we use WTFMove for the |
| completion handlers. |
| |
| This patch also renames "callback" to "completionHandler" for |
| the functions touched. |
| |
| A FIXME comment is added to WebsiteDataStore::getAllStorageAccessEntries() |
| where we currently don't have a page ID to do the lookup with. |
| |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::updatePrevalentDomainsToPartitionOrBlockCookies): |
| (WebKit::WebsiteDataStore::hasStorageAccessForFrameHandler): |
| (WebKit::WebsiteDataStore::getAllStorageAccessEntries): |
| (WebKit::WebsiteDataStore::grantStorageAccessHandler): |
| (WebKit::WebsiteDataStore::hasStorageAccess): |
| (WebKit::WebsiteDataStore::requestStorageAccess): |
| (WebKit::WebsiteDataStore::grantStorageAccess): |
| |
| 2018-06-29 Chris Dumez <cdumez@apple.com> |
| |
| Add utility methods to WebResourceLoadStatisticsStore to hop back and forth between threads |
| https://bugs.webkit.org/show_bug.cgi?id=187200 |
| |
| Reviewed by Brent Fulgham. |
| |
| Add utility methods to WebResourceLoadStatisticsStore to hop back and forth between threads, |
| in order the simplify the code a little bit. |
| |
| * UIProcess/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ResourceLoadStatisticsMemoryStore::ResourceLoadStatisticsMemoryStore): |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::setNotifyPagesWhenDataRecordsWereScanned): |
| (WebKit::WebResourceLoadStatisticsStore::setShouldClassifyResourcesBeforeDataRecordsRemoval): |
| (WebKit::WebResourceLoadStatisticsStore::setShouldSubmitTelemetry): |
| (WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore): |
| (WebKit::WebResourceLoadStatisticsStore::postTask): |
| (WebKit::WebResourceLoadStatisticsStore::postTaskReply): |
| (WebKit::WebResourceLoadStatisticsStore::flushAndDestroyPersistentStore): |
| (WebKit::WebResourceLoadStatisticsStore::setResourceLoadStatisticsDebugMode): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleStatisticsAndDataRecordsProcessing): |
| (WebKit::WebResourceLoadStatisticsStore::resourceLoadStatisticsUpdated): |
| (WebKit::WebResourceLoadStatisticsStore::hasStorageAccess): |
| (WebKit::WebResourceLoadStatisticsStore::requestStorageAccess): |
| (WebKit::WebResourceLoadStatisticsStore::requestStorageAccessUnderOpener): |
| (WebKit::WebResourceLoadStatisticsStore::grantStorageAccess): |
| (WebKit::WebResourceLoadStatisticsStore::performDailyTasks): |
| (WebKit::WebResourceLoadStatisticsStore::submitTelemetry): |
| (WebKit::WebResourceLoadStatisticsStore::logFrameNavigation): |
| (WebKit::WebResourceLoadStatisticsStore::logUserInteraction): |
| (WebKit::WebResourceLoadStatisticsStore::logNonRecentUserInteraction): |
| (WebKit::WebResourceLoadStatisticsStore::clearUserInteraction): |
| (WebKit::WebResourceLoadStatisticsStore::hasHadUserInteraction): |
| (WebKit::WebResourceLoadStatisticsStore::setLastSeen): |
| (WebKit::WebResourceLoadStatisticsStore::setPrevalentResource): |
| (WebKit::WebResourceLoadStatisticsStore::setVeryPrevalentResource): |
| (WebKit::WebResourceLoadStatisticsStore::isPrevalentResource): |
| (WebKit::WebResourceLoadStatisticsStore::isVeryPrevalentResource): |
| (WebKit::WebResourceLoadStatisticsStore::isRegisteredAsSubFrameUnder): |
| (WebKit::WebResourceLoadStatisticsStore::isRegisteredAsRedirectingTo): |
| (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): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleCookiePartitioningUpdate): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleCookiePartitioningUpdateForDomains): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleClearPartitioningStateForDomains): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleCookiePartitioningStateReset): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemory): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent): |
| (WebKit::WebResourceLoadStatisticsStore::setTimeToLiveUserInteraction): |
| (WebKit::WebResourceLoadStatisticsStore::setTimeToLiveCookiePartitionFree): |
| (WebKit::WebResourceLoadStatisticsStore::setMinimumTimeBetweenDataRecordsRemoval): |
| (WebKit::WebResourceLoadStatisticsStore::setGrandfatheringTime): |
| (WebKit::WebResourceLoadStatisticsStore::setMaxStatisticsEntries): |
| (WebKit::WebResourceLoadStatisticsStore::setPruneEntriesDownTo): |
| (WebKit::WebResourceLoadStatisticsStore::resetParametersToDefaultValues): |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| |
| 2018-06-29 Aditya Keerthi <akeerthi@apple.com> |
| |
| [macOS] Do not crash if there is an attempt to copy a file URL to the clipboard |
| https://bugs.webkit.org/show_bug.cgi?id=187183 |
| |
| Reviewed by Wenson Hsieh. |
| |
| r210683 introduced logic to prevent file URLs from being copied to the clipboard |
| in unexpected cases. The current logic always crashes the WebProcess if |
| webProcessProxy->checkURLReceivedFromWebProcess returns false. Instead of |
| crashing, we can fail silently and not copy anything to the clipboard. |
| |
| * UIProcess/Cocoa/WebPasteboardProxyCocoa.mm: |
| (WebKit::WebPasteboardProxy::setPasteboardPathnamesForType): Removed call to markCurrentlyDispatchedMessageAsInvalid() which was causing the process to crash. |
| |
| 2018-06-29 Chris Dumez <cdumez@apple.com> |
| |
| Regression(r233359): Caused ITP tests to be flaky |
| https://bugs.webkit.org/show_bug.cgi?id=187189 |
| |
| Reviewed by Youenn Fablet. |
| |
| r233359 started using m_resolvedConfiguration.resourceLoadStatisticsDirectory instead of |
| m_configuration.resourceLoadStatisticsDirectory for the ITP path. This is consistent |
| with what we do for other database paths so that things like '~' in paths get resolved. |
| |
| This introduced flakiness because the resourceLoadStatisticsDirectory was never getting |
| resolved and m_resolvedConfiguration.resourceLoadStatisticsDirectory was not set. |
| Update the WebsiteDataStore so that m_resolvedConfiguration.resourceLoadStatisticsDirectory |
| properly gets set to the resolved version of m_configuration.resourceLoadStatisticsDirectory. |
| |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::resolveDirectoriesIfNecessary): |
| (WebKit::WebsiteDataStore::enableResourceLoadStatisticsAndSetTestingCallback): |
| |
| 2018-06-29 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Don't create a WebResourceLoadStatisticsStore for ephemeral sessions |
| https://bugs.webkit.org/show_bug.cgi?id=187154 |
| <rdar://problem/41487250> |
| |
| Reviewed by Brent Fulgham and Chris Dumez. |
| |
| Most of the changes in this patch remove the boolean parameter for tracking |
| ephemeral sessions and the IsReadOnly enum. |
| |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _setResourceLoadStatisticsTestingCallback:]): |
| Now returns early for ephemeral sessions. |
| * UIProcess/ResourceLoadStatisticsPersistentStorage.cpp: |
| (WebKit::ResourceLoadStatisticsPersistentStorage::ResourceLoadStatisticsPersistentStorage): |
| (WebKit::ResourceLoadStatisticsPersistentStorage::writeMemoryStoreToDisk): |
| (WebKit::ResourceLoadStatisticsPersistentStorage::scheduleOrWriteMemoryStore): |
| * UIProcess/ResourceLoadStatisticsPersistentStorage.h: |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore): |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::setResourceLoadStatisticsEnabled): |
| Now returns early for ephemeral sessions. |
| (WebKit::WebsiteDataStore::enableResourceLoadStatisticsAndSetTestingCallback): |
| |
| 2018-06-29 Chris Dumez <cdumez@apple.com> |
| |
| Stop using lambdas for WebResourceLoadStatisticsStore to interact with its WebsiteDataStore |
| https://bugs.webkit.org/show_bug.cgi?id=187165 |
| |
| Reviewed by Brent Fulgham. |
| |
| Stop using lambdas for WebResourceLoadStatisticsStore to interact with its WebsiteDataStore. Instead, |
| WebResourceLoadStatisticsStore now holds a weak pointer to its WebsiteDataStore and is able to call |
| methods on it directly. Reducing the indirection makes the code less complex and more understandable. |
| |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore): |
| (WebKit::WebResourceLoadStatisticsStore::callHasStorageAccessForFrameHandler): |
| (WebKit::WebResourceLoadStatisticsStore::callGrantStorageAccessHandler): |
| (WebKit::WebResourceLoadStatisticsStore::removeAllStorageAccess): |
| (WebKit::WebResourceLoadStatisticsStore::callUpdatePrevalentDomainsToPartitionOrBlockCookiesHandler): |
| (WebKit::WebResourceLoadStatisticsStore::callRemoveDomainsHandler): |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::enableResourceLoadStatisticsAndSetTestingCallback): |
| |
| 2018-06-29 Miguel Gomez <magomez@igalia.com> |
| |
| [WPE] Some frames are dropped when using rAF to animate an element |
| https://bugs.webkit.org/show_bug.cgi?id=187175 |
| |
| Always call renderNextFrame in ThreadedCompositor::requestDisplayRefreshMonitorUpdate() |
| so we have to process any pending layer flush request. |
| |
| Reviewed by Žan Doberšek. |
| |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: |
| (WebKit::ThreadedCompositor::handleDisplayRefreshMonitorUpdate): |
| |
| 2018-06-28 Chris Dumez <cdumez@apple.com> |
| |
| Make sure the WebResourceLoadStatisticsStore gets destroyed on the main thread |
| https://bugs.webkit.org/show_bug.cgi?id=187143 |
| |
| Reviewed by Youenn Fablet. |
| |
| Have WebResourceLoadStatisticsStore subclass ThreadSafeRefCounted<WebResourceLoadStatisticsStore, WTF::DestructionThread::Main> |
| instead of IPC::Connection::WorkQueueMessageReceiver. This makes sure that the WebResourceLoadStatisticsStore |
| objects get destroyed on the main thread, even if the last ref was held by a background thread. |
| |
| Also, methods called by IPC are now called on the main thread instead of the background queue. I think it is clearer for all |
| of WebResourceLoadStatisticsStore usage to be on the main thread. Expensive work is still done on the background queue, inside |
| the persistent / memory store classes. |
| |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::~WebResourceLoadStatisticsStore): |
| (WebKit::WebResourceLoadStatisticsStore::flushAndDestroyPersistentStore): |
| (WebKit::WebResourceLoadStatisticsStore::resourceLoadStatisticsUpdated): |
| (WebKit::WebResourceLoadStatisticsStore::requestStorageAccessUnderOpener): |
| (WebKit::WebResourceLoadStatisticsStore::processWillOpenConnection): |
| (WebKit::WebResourceLoadStatisticsStore::processDidCloseConnection): |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| |
| 2018-06-28 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Add nullptr check for xpc_connection_t in AuthenticationManager::initializeConnection |
| https://bugs.webkit.org/show_bug.cgi?id=187110 |
| <rdar://problem/41536815> |
| |
| Reviewed by Brent Fulgham. |
| |
| In some rare cases as shown by crash tracers that the passed xpc_connection_t object could be nullptr, |
| and xpc_connection_set_event_handler won't do the nullptr check on its parameters. Therefore, we should |
| do it by ourselves. |
| |
| * Shared/Authentication/cocoa/AuthenticationManagerCocoa.mm: |
| (WebKit::AuthenticationManager::initializeConnection): |
| * UIProcess/Authentication/cocoa/AuthenticationChallengeProxyCocoa.mm: |
| (WebKit::AuthenticationChallengeProxy::sendClientCertificateCredentialOverXpc const): |
| |
| 2018-06-28 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS] DataTransfer.getData always returns the empty string when dropping text |
| https://bugs.webkit.org/show_bug.cgi?id=187130 |
| <rdar://problem/41014117> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Add plumbing to grab information for each item in the pasteboard. See WebCore ChangeLog for more detail. |
| |
| * UIProcess/Cocoa/WebPasteboardProxyCocoa.mm: |
| (WebKit::WebPasteboardProxy::allPasteboardItemInfo): |
| * UIProcess/WebPasteboardProxy.h: |
| * UIProcess/WebPasteboardProxy.messages.in: |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: |
| (WebKit::WebPlatformStrategies::allPasteboardItemInfo): |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.h: |
| |
| 2018-06-28 Youenn Fablet <youenn@apple.com> |
| |
| Early return when handling fetch event in case service worker origin does not match origin of a subresource load |
| https://bugs.webkit.org/show_bug.cgi?id=187153 |
| <rdar://problem/41329832> |
| |
| Reviewed by Chris Dumez. |
| |
| Stop crashing the service worker process in case a subresource load origin is not matching a service worker origin. |
| Instead, just return early so that the load will be handled by the network process. |
| |
| Keep crashing in case a navigation load is not matching its service worker origin. |
| Add more logging to help with the debugging. |
| |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::logValidFetchError): |
| (WebKit::isValidFetch): |
| (WebKit::WebSWContextManagerConnection::startFetch): |
| |
| 2018-06-28 Jeremy Jones <jeremyj@apple.com> |
| |
| Fullscreen exits when placeholder is removed then added during a single runloop. |
| https://bugs.webkit.org/show_bug.cgi?id=187079 |
| |
| Reviewed by Jer Noble. |
| |
| Instead of closing fullscreen as soon as the placeholder is removed from the view hierarchy, |
| give the placeholder until the next runloop to be re-added to the view hierarchy. |
| |
| * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm: |
| (-[WKFullScreenWindowController placeholderWillMoveToSuperview:]): |
| |
| 2018-06-28 Youenn Fablet <youenn@apple.com> |
| |
| Handle the case of registerMDNSNameCallback called several times |
| https://bugs.webkit.org/show_bug.cgi?id=187150 |
| <rdar://problem/41329832> |
| |
| Reviewed by Eric Carlson. |
| |
| This is a speculative fix on the basis that registerMDNSNameCallback may be called several times. |
| In that case, we would have freed the context after the first call and would reuse it for the second call. |
| |
| Instead, keep a map of pending requests and pass to registerMDNSNameCallback an identifier to that map. |
| If the map has no value for that identifier, return early. |
| |
| * NetworkProcess/webrtc/NetworkMDNSRegister.cpp: |
| (WebKit::NetworkMDNSRegister::~NetworkMDNSRegister): |
| (WebKit::pendingRegistrationRequests): |
| (WebKit::registerMDNSNameCallback): |
| (WebKit::NetworkMDNSRegister::clearPendingRequests): |
| (WebKit::NetworkMDNSRegister::registerMDNSName): |
| * NetworkProcess/webrtc/NetworkMDNSRegister.h: |
| (): Deleted. |
| |
| 2018-06-28 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed attempt to fix Win Cairo build after r233310. |
| |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| |
| 2018-06-28 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed attempt to fix Win Cairo build after r233310. |
| |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| |
| 2018-06-28 Chris Dumez <cdumez@apple.com> |
| |
| Split memory store logic out of WebResourceLoadStatisticsStore to clarify threading model |
| https://bugs.webkit.org/show_bug.cgi?id=187055 |
| <rdar://problem/41584026> |
| |
| Unreviewed, temporarily disable main thread assertion added to flushAndDestroyPersistentStore() |
| in r233310, until Bug 187143 is fixed. |
| |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::flushAndDestroyPersistentStore): |
| |
| 2018-06-28 Youenn Fablet <youenn@apple.com> |
| |
| Add sandbox to microdone plugin |
| https://bugs.webkit.org/show_bug.cgi?id=187149 |
| rdar://problem/41538057 |
| |
| Reviewed by Brent Fulgham. |
| |
| * Resources/PlugInSandboxProfiles/cn.microdone.cmb.safari: Added. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-06-28 Brian Burg <bburg@apple.com> |
| |
| Web Inspector: REGRESSION(r223770): "Open Link" context menu action on a linkified URL doesn't work |
| https://bugs.webkit.org/show_bug.cgi?id=187146 |
| <rdar://problem/41369591> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| When Web Inspector's page receives a navigation request, it's supposed to redirect any |
| non-Inspector navigations to be loaded in the inspected page. When I refactored to use |
| modern a policy delegate, the one line that redirects the loads was left out. |
| |
| No new tests, because inspector tests can't navigate the inspector or inspected pages. |
| |
| * UIProcess/mac/WKInspectorViewController.mm: |
| (-[WKInspectorViewController webView:decidePolicyForNavigationAction:decisionHandler:]): |
| |
| 2018-06-28 Jeremy Jones <jeremyj@apple.com> |
| |
| Crash when _topConstraint is null in element fullscreen. |
| https://bugs.webkit.org/show_bug.cgi?id=187075 |
| |
| Reviewed by Eric Carlson. |
| |
| NSArray can't contain a null pointer, so check for null before creating an array from a pointer. |
| Use the recommended +deactivateConstraints: instead of -removeConstraints:. |
| |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.mm: |
| (-[WKFullScreenViewController showUI]): |
| (-[WKFullScreenViewController hideUI]): |
| |
| 2018-06-28 Chris Dumez <cdumez@apple.com> |
| |
| Split memory store logic out of WebResourceLoadStatisticsStore to clarify threading model |
| https://bugs.webkit.org/show_bug.cgi?id=187055 |
| <rdar://problem/41584026> |
| |
| Reviewed by Brent Fulgham. |
| |
| Split memory store logic out of WebResourceLoadStatisticsStore and into a ResourceLoadStatisticsMemoryStore class |
| to clarify the threading model. Previously, some of the methods of the WebResourceLoadStatisticsStore had to be |
| called on the main thread and some of them on the background queue, which was confusing and error prone. Now, |
| all WebResourceLoadStatisticsStore methods (except for IPC ones which will be addressed in a follow-up) are called |
| on the main thread. The ResourceLoadStatisticsMemoryStore objects is constructed / used and destroyed on the |
| background queue, similarly to the ResourceLoadStatisticsPersistentStore. The WebResourceLoadStatisticsStore |
| objects merely proxies calls from WebKit to those persistent / memory stores and takes care of hopping back and |
| forth between the background thread and the work queue. |
| |
| While spliting code code, I found several instances where we were calling completion handlers on the wrong thread. |
| I fixed those in this patch now that the model is clearer. |
| |
| We can likely clean up (organize the code a bit better) in a follow-up). This patch takes care of splitting the |
| code as it was. Code that was called on the background queue was moved to ResourceLoadStatisticsMemoryStore class |
| and code that was called on the main thread stays in WebResourceLoadStatisticsStore. |
| |
| * CMakeLists.txt: |
| * UIProcess/Cocoa/ResourceLoadStatisticsMemoryStoreCocoa.mm: Renamed from Source/WebKit/UIProcess/Cocoa/WebResourceLoadStatisticsStoreCocoa.mm. |
| (WebKit::ResourceLoadStatisticsMemoryStore::registerUserDefaultsIfNeeded): |
| * UIProcess/ResourceLoadStatisticsMemoryStore.cpp: Added. |
| (WebKit::appendWithDelimiter): |
| (WebKit::OperatingDate::fromWallTime): |
| (WebKit::OperatingDate::today): |
| (WebKit::OperatingDate::secondsSinceEpoch const): |
| (WebKit::OperatingDate::operator== const): |
| (WebKit::OperatingDate::operator< const): |
| (WebKit::OperatingDate::operator<= const): |
| (WebKit::OperatingDate::OperatingDate): |
| (WebKit::mergeOperatingDates): |
| (WebKit::pruneResources): |
| (WebKit::computeImportance): |
| (WebKit::ResourceLoadStatisticsMemoryStore::ResourceLoadStatisticsMemoryStore): |
| (WebKit::ResourceLoadStatisticsMemoryStore::~ResourceLoadStatisticsMemoryStore): |
| (WebKit::ResourceLoadStatisticsMemoryStore::setPersistentStorage): |
| (WebKit::ResourceLoadStatisticsMemoryStore::calculateAndSubmitTelemetry): |
| (WebKit::ResourceLoadStatisticsMemoryStore::setNotifyPagesWhenDataRecordsWereScanned): |
| (WebKit::ResourceLoadStatisticsMemoryStore::setShouldClassifyResourcesBeforeDataRecordsRemoval): |
| (WebKit::ResourceLoadStatisticsMemoryStore::setShouldSubmitTelemetry): |
| (WebKit::ResourceLoadStatisticsMemoryStore::removeDataRecords): |
| (WebKit::ResourceLoadStatisticsMemoryStore::recursivelyGetAllDomainsThatHaveRedirectedToThisDomain): |
| (WebKit::ResourceLoadStatisticsMemoryStore::markAsPrevalentIfHasRedirectedToPrevalent): |
| (WebKit::ResourceLoadStatisticsMemoryStore::processStatisticsAndDataRecords): |
| (WebKit::ResourceLoadStatisticsMemoryStore::hasStorageAccess): |
| (WebKit::ResourceLoadStatisticsMemoryStore::requestStorageAccess): |
| (WebKit::ResourceLoadStatisticsMemoryStore::requestStorageAccessUnderOpener): |
| (WebKit::ResourceLoadStatisticsMemoryStore::grantStorageAccess): |
| (WebKit::ResourceLoadStatisticsMemoryStore::grantStorageAccessInternal): |
| (WebKit::ResourceLoadStatisticsMemoryStore::grandfatherExistingWebsiteData): |
| (WebKit::ResourceLoadStatisticsMemoryStore::setResourceLoadStatisticsDebugMode): |
| (WebKit::ResourceLoadStatisticsMemoryStore::scheduleStatisticsProcessingRequestIfNecessary): |
| (WebKit::ResourceLoadStatisticsMemoryStore::cancelPendingStatisticsProcessingRequest): |
| (WebKit::ResourceLoadStatisticsMemoryStore::logFrameNavigation): |
| (WebKit::ResourceLoadStatisticsMemoryStore::logUserInteraction): |
| (WebKit::ResourceLoadStatisticsMemoryStore::logNonRecentUserInteraction): |
| (WebKit::ResourceLoadStatisticsMemoryStore::clearUserInteraction): |
| (WebKit::ResourceLoadStatisticsMemoryStore::hasHadUserInteraction): |
| (WebKit::ResourceLoadStatisticsMemoryStore::setPrevalentResource): |
| (WebKit::ResourceLoadStatisticsMemoryStore::isPrevalentResource const): |
| (WebKit::ResourceLoadStatisticsMemoryStore::isVeryPrevalentResource const): |
| (WebKit::ResourceLoadStatisticsMemoryStore::isRegisteredAsSubFrameUnder): |
| (WebKit::ResourceLoadStatisticsMemoryStore::isRegisteredAsRedirectingTo): |
| (WebKit::ResourceLoadStatisticsMemoryStore::clearPrevalentResource): |
| (WebKit::ResourceLoadStatisticsMemoryStore::setGrandfathered): |
| (WebKit::ResourceLoadStatisticsMemoryStore::isGrandfathered const): |
| (WebKit::ResourceLoadStatisticsMemoryStore::setSubframeUnderTopFrameOrigin): |
| (WebKit::ResourceLoadStatisticsMemoryStore::setSubresourceUnderTopFrameOrigin): |
| (WebKit::ResourceLoadStatisticsMemoryStore::setSubresourceUniqueRedirectTo): |
| (WebKit::ResourceLoadStatisticsMemoryStore::setSubresourceUniqueRedirectFrom): |
| (WebKit::ResourceLoadStatisticsMemoryStore::setTopFrameUniqueRedirectTo): |
| (WebKit::ResourceLoadStatisticsMemoryStore::setTopFrameUniqueRedirectFrom): |
| (WebKit::ResourceLoadStatisticsMemoryStore::setTimeToLiveUserInteraction): |
| (WebKit::ResourceLoadStatisticsMemoryStore::setTimeToLiveCookiePartitionFree): |
| (WebKit::ResourceLoadStatisticsMemoryStore::setMinimumTimeBetweenDataRecordsRemoval): |
| (WebKit::ResourceLoadStatisticsMemoryStore::setGrandfatheringTime): |
| (WebKit::ResourceLoadStatisticsMemoryStore::shouldRemoveDataRecords const): |
| (WebKit::ResourceLoadStatisticsMemoryStore::setDataRecordsBeingRemoved): |
| (WebKit::ResourceLoadStatisticsMemoryStore::ensureResourceStatisticsForPrimaryDomain): |
| (WebKit::ResourceLoadStatisticsMemoryStore::createEncoderFromData const): |
| (WebKit::ResourceLoadStatisticsMemoryStore::mergeWithDataFromDecoder): |
| (WebKit::ResourceLoadStatisticsMemoryStore::clear): |
| (WebKit::ResourceLoadStatisticsMemoryStore::wasAccessedAsFirstPartyDueToUserInteraction): |
| (WebKit::ResourceLoadStatisticsMemoryStore::mergeStatistics): |
| (WebKit::ResourceLoadStatisticsMemoryStore::shouldPartitionCookies): |
| (WebKit::ResourceLoadStatisticsMemoryStore::shouldBlockCookies): |
| (WebKit::ResourceLoadStatisticsMemoryStore::hasUserGrantedStorageAccessThroughPrompt): |
| (WebKit::ResourceLoadStatisticsMemoryStore::updateCookiePartitioning): |
| (WebKit::ResourceLoadStatisticsMemoryStore::updateCookiePartitioningForDomains): |
| (WebKit::ResourceLoadStatisticsMemoryStore::clearPartitioningStateForDomains): |
| (WebKit::ResourceLoadStatisticsMemoryStore::resetCookiePartitioningState): |
| (WebKit::ResourceLoadStatisticsMemoryStore::processStatistics const): |
| (WebKit::ResourceLoadStatisticsMemoryStore::hasHadUnexpiredRecentUserInteraction const): |
| (WebKit::ResourceLoadStatisticsMemoryStore::topPrivatelyControlledDomainsToRemoveWebsiteDataFor): |
| (WebKit::ResourceLoadStatisticsMemoryStore::includeTodayAsOperatingDateIfNecessary): |
| (WebKit::ResourceLoadStatisticsMemoryStore::hasStatisticsExpired const): |
| (WebKit::ResourceLoadStatisticsMemoryStore::setMaxStatisticsEntries): |
| (WebKit::ResourceLoadStatisticsMemoryStore::setPruneEntriesDownTo): |
| (WebKit::ResourceLoadStatisticsMemoryStore::pruneStatisticsIfNeeded): |
| (WebKit::ResourceLoadStatisticsMemoryStore::resetParametersToDefaultValues): |
| (WebKit::ResourceLoadStatisticsMemoryStore::logTestingEvent): |
| (WebKit::ResourceLoadStatisticsMemoryStore::setLastSeen): |
| (WebKit::ResourceLoadStatisticsMemoryStore::setVeryPrevalentResource): |
| (WebKit::ResourceLoadStatisticsMemoryStore::removeAllStorageAccess): |
| * UIProcess/ResourceLoadStatisticsMemoryStore.h: Added. |
| (WebKit::ResourceLoadStatisticsMemoryStore::isEmpty const): |
| (WebKit::ResourceLoadStatisticsMemoryStore::setStorageAccessPromptsEnabled): |
| (WebKit::ResourceLoadStatisticsMemoryStore::setDebugLogggingEnabled): |
| * UIProcess/ResourceLoadStatisticsPersistentStorage.cpp: |
| (WebKit::ResourceLoadStatisticsPersistentStorage::ResourceLoadStatisticsPersistentStorage): |
| (WebKit::ResourceLoadStatisticsPersistentStorage::startMonitoringDisk): |
| (WebKit::ResourceLoadStatisticsPersistentStorage::monitorDirectoryForNewStatistics): |
| (WebKit::ResourceLoadStatisticsPersistentStorage::scheduleOrWriteMemoryStore): |
| * UIProcess/ResourceLoadStatisticsPersistentStorage.h: |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::setNotifyPagesWhenDataRecordsWereScanned): |
| (WebKit::WebResourceLoadStatisticsStore::setShouldClassifyResourcesBeforeDataRecordsRemoval): |
| (WebKit::WebResourceLoadStatisticsStore::setShouldSubmitTelemetry): |
| (WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore): |
| (WebKit::WebResourceLoadStatisticsStore::flushAndDestroyPersistentStore): |
| (WebKit::WebResourceLoadStatisticsStore::setResourceLoadStatisticsDebugMode): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleStatisticsAndDataRecordsProcessing): |
| (WebKit::WebResourceLoadStatisticsStore::resourceLoadStatisticsUpdated): |
| (WebKit::WebResourceLoadStatisticsStore::hasStorageAccess): |
| (WebKit::WebResourceLoadStatisticsStore::requestStorageAccess): |
| (WebKit::WebResourceLoadStatisticsStore::requestStorageAccessUnderOpener): |
| (WebKit::WebResourceLoadStatisticsStore::grantStorageAccess): |
| (WebKit::WebResourceLoadStatisticsStore::callGrantStorageAccessHandler): |
| (WebKit::WebResourceLoadStatisticsStore::removeAllStorageAccess): |
| (WebKit::WebResourceLoadStatisticsStore::performDailyTasks): |
| (WebKit::WebResourceLoadStatisticsStore::submitTelemetry): |
| (WebKit::WebResourceLoadStatisticsStore::logFrameNavigation): |
| (WebKit::WebResourceLoadStatisticsStore::logUserInteraction): |
| (WebKit::WebResourceLoadStatisticsStore::logNonRecentUserInteraction): |
| (WebKit::WebResourceLoadStatisticsStore::clearUserInteraction): |
| (WebKit::WebResourceLoadStatisticsStore::hasHadUserInteraction): |
| (WebKit::WebResourceLoadStatisticsStore::setLastSeen): |
| (WebKit::WebResourceLoadStatisticsStore::setPrevalentResource): |
| (WebKit::WebResourceLoadStatisticsStore::setVeryPrevalentResource): |
| (WebKit::WebResourceLoadStatisticsStore::isPrevalentResource): |
| (WebKit::WebResourceLoadStatisticsStore::isVeryPrevalentResource): |
| (WebKit::WebResourceLoadStatisticsStore::isRegisteredAsSubFrameUnder): |
| (WebKit::WebResourceLoadStatisticsStore::isRegisteredAsRedirectingTo): |
| (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): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleCookiePartitioningUpdate): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleCookiePartitioningUpdateForDomains): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleClearPartitioningStateForDomains): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleCookiePartitioningStateReset): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemory): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent): |
| (WebKit::WebResourceLoadStatisticsStore::setTimeToLiveUserInteraction): |
| (WebKit::WebResourceLoadStatisticsStore::setTimeToLiveCookiePartitionFree): |
| (WebKit::WebResourceLoadStatisticsStore::setMinimumTimeBetweenDataRecordsRemoval): |
| (WebKit::WebResourceLoadStatisticsStore::setGrandfatheringTime): |
| (WebKit::WebResourceLoadStatisticsStore::callUpdatePrevalentDomainsToPartitionOrBlockCookiesHandler): |
| (WebKit::WebResourceLoadStatisticsStore::callRemoveDomainsHandler): |
| (WebKit::WebResourceLoadStatisticsStore::setMaxStatisticsEntries): |
| (WebKit::WebResourceLoadStatisticsStore::setPruneEntriesDownTo): |
| (WebKit::WebResourceLoadStatisticsStore::resetParametersToDefaultValues): |
| (WebKit::WebResourceLoadStatisticsStore::logTestingEvent): |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| * UIProcess/WebResourceLoadStatisticsTelemetry.cpp: |
| (WebKit::sortedPrevalentResourceTelemetry): |
| (WebKit::WebResourceLoadStatisticsTelemetry::calculateAndSubmit): |
| * UIProcess/WebResourceLoadStatisticsTelemetry.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-06-28 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [GTK] ASSERTION FAILED: !HashTranslator::equal(KeyTraits::emptyValue(), key) when dragging file into webview |
| https://bugs.webkit.org/show_bug.cgi?id=175602 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| We check using the GdkDragContext to ensure the DroppingContext is still alive (present in |
| m_droppingContexts), but access it via the pointer to the DroppingContext that could be |
| dangling. This happens on every drag. I can't actually reproduce the original assertion |
| since I'm currently working with an asan build, but I imagine it's probably the same issue |
| that I'm fixing here. |
| |
| * UIProcess/gtk/DragAndDropHandler.cpp: |
| (WebKit::DragAndDropHandler::dragLeave): |
| |
| 2018-06-27 Timothy Hatcher <timothy@apple.com> |
| |
| Don't expose new semantic -apple-system color keywords on iOS. |
| https://bugs.webkit.org/show_bug.cgi?id=187080 |
| rdar://problem/41505699 |
| |
| Reviewed by Tim Horton. |
| |
| * DerivedSources.make: Use gnu++14, since gnu++17 is giving errors on macOS 10.12. |
| |
| 2018-06-27 Megan Gardner <megan_gardner@apple.com> |
| |
| Fix IBeam issues with iPad apps on Mac |
| https://bugs.webkit.org/show_bug.cgi?id=186900 |
| |
| Reviewed by Wenson Hsieh. |
| |
| * Shared/ios/InteractionInformationAtPosition.h: |
| * Shared/ios/InteractionInformationAtPosition.mm: |
| (WebKit::InteractionInformationAtPosition::encode const): |
| (WebKit::InteractionInformationAtPosition::decode): |
| |
| Add functionality to determine what a caret rect should be, but as it is |
| expensive, it should only be done for this platform. |
| |
| * Shared/ios/InteractionInformationRequest.cpp: |
| (WebKit::InteractionInformationRequest::isApproximateForRequest): |
| * Shared/ios/InteractionInformationRequest.h: |
| |
| As there is no way to premptively request information on hover, we need to use |
| the last cached information, but only if it is close to the point we are about |
| to request information for. So having a way to determine if a point is very close |
| to a previous point is a good idea. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _currentPositionInformationIsApproximateForRequest:]): |
| (-[WKContentView closestPositionToPoint:]): |
| |
| UIKit is using this function to determine if we should show an Ibeam or not. |
| So we need to implement it, at least for this platform. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::getPositionInformation): |
| |
| Pass up the calculated caret rect, but only for iPad apps on Mac. |
| |
| 2018-06-27 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| [GTK][WPE] Use LazyNeverDestroyed<XErrorTrapper> to remove static initializers |
| https://bugs.webkit.org/show_bug.cgi?id=187089 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Use LazyNeverDestroyed<XErrorTrapper> instead of global std::unique_ptr<XErrorTrapper>. |
| Since this variable's exit time destructor is not important in this code, using |
| LazyNeverDestroyed<XErrorTrapper> is fine. This removes the last static initializer |
| of libwebkit2gtk.so. |
| |
| * PluginProcess/unix/PluginProcessMainUnix.cpp: |
| |
| 2018-06-27 Youenn Fablet <youenn@apple.com> |
| |
| Add a sandbox profile for some additional bank plugins |
| https://bugs.webkit.org/show_bug.cgi?id=187105 |
| |
| Reviewed by Brent Fulgham. |
| |
| * Resources/PlugInSandboxProfiles/cfca.com.npCryptoKit.CGB.MAC.sb: Added. |
| * Resources/PlugInSandboxProfiles/cfca.com.npP11CertEnroll.MAC.CGB.sb: Added. |
| * Resources/PlugInSandboxProfiles/com.apple.BocomSubmitCtrl.sb: Added. |
| * Resources/PlugInSandboxProfiles/com.apple.NPSafeInput.sb: Added. |
| * Resources/PlugInSandboxProfiles/com.apple.NPSafeSubmit.sb: Added. |
| * Resources/PlugInSandboxProfiles/com.cfca.npSecEditCtl.MAC.BOC.plugin.sb: Added. |
| * Resources/PlugInSandboxProfiles/com.cmbchina.CMBSecurity.sb: Added. |
| * Resources/PlugInSandboxProfiles/com.ftsafe.NPAPI-Core-Safe-SoftKeybaord.plugin.rfc1034identifier.sb: Added. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-06-27 Youenn Fablet <youenn@apple.com> |
| |
| NetworkLoadChecker should not need to hard ref NetworkConnectionToWebProcess |
| https://bugs.webkit.org/show_bug.cgi?id=186551 |
| |
| Reviewed by Daniel Bates. |
| |
| Removed the need for NetworkLoadChecker to reference a NetworkConnectionToWebProcess. |
| Instead a CSP client is given to NetworkLoadChecker when needed. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::loadPing): |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::NetworkLoadChecker): |
| (WebKit::NetworkLoadChecker::check): |
| (WebKit::NetworkLoadChecker::checkRedirection): |
| (WebKit::NetworkLoadChecker::checkRequest): |
| (WebKit::NetworkLoadChecker::contentSecurityPolicy): |
| (WebKit::NetworkLoadChecker::addConsoleMessage): Deleted. |
| (WebKit::NetworkLoadChecker::sendCSPViolationReport): Deleted. |
| (WebKit::NetworkLoadChecker::enqueueSecurityPolicyViolationEvent): Deleted. |
| * NetworkProcess/NetworkLoadChecker.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::start): |
| (WebKit::NetworkResourceLoader::willSendRedirectedRequest): |
| * NetworkProcess/PingLoad.cpp: |
| (WebKit::PingLoad::PingLoad): |
| (WebKit::PingLoad::willPerformHTTPRedirection): |
| * NetworkProcess/PingLoad.h: |
| |
| 2018-06-27 Stephan Szabo <stephan.szabo@sony.com> |
| |
| [Wincairo] Add support for context menus to non-legacy minibrowser |
| https://bugs.webkit.org/show_bug.cgi?id=186815. |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/win/PageClientImpl.cpp: |
| (WebKit::PageClientImpl::viewWidget): |
| * UIProcess/win/PageClientImpl.h: |
| * UIProcess/win/WebContextMenuProxyWin.cpp: |
| (WebKit::WebContextMenuProxyWin::show): |
| (WebKit::createMenu): |
| (WebKit::createMenuItem): |
| (WebKit::populate): |
| (WebKit::WebContextMenuProxyWin::showContextMenuWithItems): |
| (WebKit::WebContextMenuProxyWin::WebContextMenuProxyWin): |
| (WebKit::WebContextMenuProxyWin::~WebContextMenuProxyWin): |
| * UIProcess/win/WebContextMenuProxyWin.h: |
| * UIProcess/win/WebPageProxyWin.cpp: |
| (WebKit::WebPageProxy::viewWidget): |
| * UIProcess/win/WebView.cpp: |
| (WebKit::WebView::wndProc): |
| (WebKit::WebView::onMenuCommand): |
| * UIProcess/win/WebView.h: |
| |
| 2018-06-27 Youenn Fablet <youenn@apple.com> |
| |
| Disable content blockers in NetworkLoadChecker except for ping loads |
| https://bugs.webkit.org/show_bug.cgi?id=187083 |
| <rdar://problem/41440083> |
| |
| Reviewed by Chris Dumez. |
| |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::processContentExtensionRulesForLoad): |
| * NetworkProcess/NetworkLoadChecker.h: |
| (WebKit::NetworkLoadChecker::enableContentExtensionsCheck): |
| * NetworkProcess/PingLoad.cpp: |
| |
| 2018-06-27 Simon Fraser <simon.fraser@apple.com> |
| |
| https://hackernoon.com/ uses lots of layer backing store |
| https://bugs.webkit.org/show_bug.cgi?id=186909 |
| rdar://problem/40257540 |
| |
| Reviewed by Tim Horton. |
| |
| PlatformCALayerRemote was actually holding onto backing stores for layers with |
| backing store detached, which could increase memory use. When told that backing stores |
| are not attached, explicitly throw away the backing, and re-create it (via setNeedsDisplay) |
| when attached. This is now similar to what PlatformLayerCACocoa does. |
| |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp: |
| (WebKit::PlatformCALayerRemote::setNeedsDisplayInRect): |
| (WebKit::PlatformCALayerRemote::setNeedsDisplay): |
| (WebKit::PlatformCALayerRemote::hasContents const): |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.h: |
| |
| 2018-06-27 Jonathan Bedard <jbedard@apple.com> |
| |
| Enable WebKit iOS 12 build |
| https://bugs.webkit.org/show_bug.cgi?id=187024 |
| <rdar://problem/39759057> |
| |
| Reviewed by David Kilzer. |
| |
| * Platform/spi/ios/PDFKitSPI.h: Added PDFKit SPI. |
| * Platform/spi/ios/UIKitSPI.h: Add new UIKit SPI and UICompositingMode enumeration. |
| * UIProcess/ios/WKPDFView.mm: Use PDFKitSPI header. |
| * UIProcess/ios/WKSystemPreviewView.mm: Use CoreGraphicsSPI.h. |
| * UIProcess/ios/fullscreen/WKFullscreenStackView.mm: Use QuartzCoreSPI.h. |
| |
| 2018-06-27 Timothy Horton <timothy_horton@apple.com> |
| |
| CSS Animation Triggers is not an experimental feature, should be globally off by default |
| |
| Reviewed by Dean Jackson. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-06-27 Timothy Horton <timothy_horton@apple.com> |
| |
| Promote the Secure Context API feature from experimental-yet-on-by-default to always-on |
| |
| Reviewed by Dan Bates. |
| |
| * Shared/WebPreferences.yaml: |
| Secure Context API is on by default, it's not experimental anymore. |
| |
| 2018-06-27 Timothy Horton <timothy_horton@apple.com> |
| |
| Make Link Preload an on-by-default feature |
| https://bugs.webkit.org/show_bug.cgi?id=187104 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * Shared/WebPreferences.yaml: |
| This should be on, not experimental. It already shipped on in the past. |
| |
| 2018-06-27 Chris Dumez <cdumez@apple.com> |
| |
| Regression(r233208): Completion handler does not get called on GTK port |
| https://bugs.webkit.org/show_bug.cgi?id=187099 |
| |
| Reviewed by Antti Koivisto. |
| |
| Make sure UpdatePrevalentDomainsToPartitionOrBlockCookiesHandler's completion handler |
| gets called on non-COCOA ports. |
| |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| |
| 2018-06-27 Tim Horton <timothy_horton@apple.com> |
| |
| When trying to print a very long email on iOS, the print preview is blank |
| https://bugs.webkit.org/show_bug.cgi?id=187077 |
| <rdar://problem/41107013> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::computePagesForPrintingAndDrawToPDF): |
| ChildProcessProxy::sendSync has a (surprising) default timeout of 1 second, |
| (as opposed to Connection::sendSync's default timeout of ∞ seconds). |
| The printing path already waits ∞ seconds for the final PDF, but currently |
| uses the default 1 second timeout for page count computation. If page |
| count computation takes more than 1 second, the preview will be blank. |
| Since the print preview is generated asynchronously, we really want |
| to wait until it's done, and not give up after 1 second. |
| |
| 2018-06-26 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iPad apps on macOS] Unable to interact with video elements that have started playing |
| https://bugs.webkit.org/show_bug.cgi?id=187073 |
| <rdar://problem/40591107> |
| |
| Reviewed by Tim Horton. |
| |
| On iOS, we currently force remote hosting contexts to be non-interactive by passing in `kCAContextIgnoresHitTest` |
| when creating the CAContext. However, this flag is not respected by CoreAnimation when running iOS apps on macOS. |
| This means all HID events dispatched over a video that has been played (which causes WebKit to insert a |
| CALayerHost-backed WKRemoteView in the view hierarchy) will be routed to the context ID of the video's CAContext |
| rather than the context ID of the key window containing the WKWebView. |
| |
| This subsequently causes all gesture recognizers (hover, touch, tap, long press) to fail recognition when |
| running iOS apps on macOS. To address this, we set a flag on WKRemoteView's CALayerHost to prevent hit-testing |
| to the remote layer. This allows us to avoid routing HID events to the wrong context, and instead target the |
| main UIWindow. |
| |
| Manually verified that click, touch, and mouseenter/mouseleave events are dispatched when interacting over a |
| video element. |
| |
| * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm: |
| (-[WKRemoteView initWithFrame:contextID:]): |
| |
| 2018-06-26 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r233232. |
| https://bugs.webkit.org/show_bug.cgi?id=187081 |
| |
| "This is breaking launching some plugins" (Requested by youenn |
| on #webkit). |
| |
| Reverted changeset: |
| |
| "Remove quarantine for Webex plugin" |
| https://bugs.webkit.org/show_bug.cgi?id=187050 |
| https://trac.webkit.org/changeset/233232 |
| |
| 2018-06-26 Timothy Horton <timothy_horton@apple.com> |
| |
| Rearrange some WebPreferences; move two experimental prefs into the experimental section |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-06-26 Chris Dumez <cdumez@apple.com> |
| |
| Deal better with the network process crashing on startup |
| https://bugs.webkit.org/show_bug.cgi?id=187065 |
| <rdar://problem/41451622> |
| |
| Reviewed by Geoffrey Garen. |
| |
| When a network process crashes on startup, we would not attempt to relaunch it. If there were web |
| processes waiting for a connection to this network process, we would send them an invalid connection |
| identifier which would cause them to forcefully crash. |
| |
| Instead, we now apply the same policy whether a network process crashes on startup or later: |
| - We attempt to relaunch the network process |
| - If there were pending connections from WebContent processes, we ask the new Network process instead. |
| |
| As a result, WebContent processes no longer crash in this case. Instead, they wait for a valid |
| connection to the network process. |
| |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _makeNextNetworkProcessLaunchFailForTesting]): |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::getLaunchOptions): |
| (WebKit::NetworkProcessProxy::didFinishLaunching): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::networkProcessCrashed): |
| * UIProcess/WebProcessPool.h: |
| |
| 2018-06-26 Daniel Bates <dabates@apple.com> |
| |
| REGRESSION (r231479): Unable to buy Odeon cinema tickets in STP (bogus 'X-Frame-Options' to 'SAMEORIGIN') |
| https://bugs.webkit.org/show_bug.cgi?id=186090 |
| <rdar://problem/40692595> |
| |
| Reviewed by Andy Estes. |
| |
| Fixes an issue where a page P delivered with "X-Frame-Options: SAMEORIGIN" loaded in a sub- |
| frame would be blocked if we were redirected to it in response to the cross-origin POST |
| request regardless of whether P is same-origin with its parent document. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::shouldInterruptLoadForXFrameOptions): Compare the origin |
| of the top frame's document as opposed to the source origin. The latter represents the |
| origin of the document that initiated the navigation, which can be cross-origin, and |
| should not be considered when applying "X-Frame-Options: SAMEORIGIN". This check exists |
| as a performance optimization to avoid traversing over all frame ancestors only to find |
| out that the innermost frame (the one that made this request) is cross-origin with the |
| top-most frame. |
| * NetworkProcess/NetworkResourceLoader.h: |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess): Exclude the origin of the |
| frame that is making the load request from the list of ancestor origins. This makes the |
| X-Frame-Options algorithm in WebKit2 match the logic we do in FrameLoader::shouldInterruptLoadForXFrameOptions(). |
| |
| 2018-06-26 Youenn Fablet <youenn@apple.com> |
| |
| Remove quarantine for Webex plugin |
| https://bugs.webkit.org/show_bug.cgi?id=187050 |
| rdar://problem/41478189 |
| |
| Reviewed by Brent Fulgham. |
| |
| Update the Plugin Info.plist to not do quarantine of downloaded files by default. |
| Update PluginProcess implementation to reenable quarantine for all plug-ins except cisco webex plug-in. |
| |
| * PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64.Info.plist: |
| * PluginProcess/PluginProcess.h: |
| * PluginProcess/mac/PluginProcessMac.mm: |
| (WebKit::PluginProcess::shouldOverrideQuarantine): |
| * Shared/ChildProcess.h: |
| (WebKit::ChildProcess::shouldOverrideQuarantine): |
| * Shared/mac/ChildProcessMac.mm: |
| (WebKit::ChildProcess::initializeSandbox): |
| |
| 2018-06-26 Jeremy Jones <jeremyj@apple.com> |
| |
| Ensure element fullscreen animation is always visible. |
| https://bugs.webkit.org/show_bug.cgi?id=187068 |
| rdar://problem/36187369 |
| |
| Reviewed by Eric Carlson. |
| |
| The fullscreen animation is important for communicating to users that they are no longer in inline mode. |
| If fullscreen animation's inline rect is not visible, animate from a point in the middle of the screen. |
| |
| * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm: |
| (WebKit::safeInlineRect): |
| (-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]): |
| (-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:finalFrame:]): |
| |
| 2018-06-26 Youenn Fablet <youenn@apple.com> |
| |
| Add a sandbox profile for com.google.o1dbrowserplugin plugin |
| https://bugs.webkit.org/show_bug.cgi?id=187067 |
| |
| Reviewed by Brent Fulgham. |
| |
| * Resources/PlugInSandboxProfiles/com.google.o1dbrowserplugin.sb: Added. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-06-26 Tim Horton <timothy_horton@apple.com> |
| |
| Promote two more experimental features to traditional features |
| https://bugs.webkit.org/show_bug.cgi?id=187063 |
| |
| Reviewed by Dean Jackson. |
| |
| * Shared/WebPreferences.yaml: |
| Promote some shipped/default-on features to non-experimental. |
| |
| 2018-06-26 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Rollout macOS sandbox change in r232276 |
| https://bugs.webkit.org/show_bug.cgi?id=186904 |
| <rdar://problem/41350969> |
| |
| Reviewed by Brent Fulgham. |
| |
| * NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in: |
| |
| 2018-06-26 Aditya Keerthi <akeerthi@apple.com> |
| |
| Tap highlight displayed when tapping a field that is already focussed |
| https://bugs.webkit.org/show_bug.cgi?id=187004 |
| <rdar://problem/41428008> |
| Reviewed by Tim Horton. |
| |
| In the case where fast-clicking is enabled, _singleTapCommited: could be invoked |
| before the tap highlight request, causing _potentialTapInProgress to be set to NO. |
| This results in the early return for preventing multiple tap highlights on an |
| assisted node to be skipped. Since a tap highlight should never be shown for an |
| input field that is already focussed, _potentialTapInProgress can be removed from |
| the early return condition. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _didGetTapHighlightForRequest:color:quads:topLeftRadius:topRightRadius:bottomLeftRadius:bottomRightRadius:]): |
| |
| 2018-06-26 Timothy Horton <timothy_horton@apple.com> |
| |
| Rearrange some WebPreferences; move two non-experimental prefs out of the experimental section |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-06-26 Tim Horton <timothy_horton@apple.com> |
| |
| Promote some experimental features to traditional features |
| https://bugs.webkit.org/show_bug.cgi?id=187047 |
| |
| Reviewed by Simon Fraser. |
| |
| * Shared/WebPreferences.yaml: |
| Reindent. |
| Promote some shipped/default-on features to non-experimental. |
| |
| 2018-06-26 Eric Carlson <eric.carlson@apple.com> |
| |
| [Mac] AirPlay picker uses incorrect theme in Dark mode |
| https://bugs.webkit.org/show_bug.cgi?id=187054 |
| <rdar://problem/41291093> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::showPlaybackTargetPicker): Pass m_defaultAppearance. |
| |
| 2018-06-26 Chris Dumez <cdumez@apple.com> |
| |
| Resource Load Statistics: Make WebResourceLoadStatisticsStore::updateCookiePartitioningForDomains() wait for the network process before calling its callback |
| https://bugs.webkit.org/show_bug.cgi?id=186903 |
| <rdar://problem/41350182> |
| |
| Reviewed by Brady Eidson. |
| |
| Follow-up fix after r233180 to address an API test crash. We need to keep the |
| NetworkProcessProxy alive during the async updatePrevalentDomainsToPartitionOrBlockCookies |
| request to make sure it completes. |
| |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::updatePrevalentDomainsToPartitionOrBlockCookies): |
| |
| 2018-06-26 Brent Fulgham <bfulgham@apple.com> |
| |
| Provide a way for Injected Bundles to indicate classes approved for NSSecureCoding |
| https://bugs.webkit.org/show_bug.cgi?id=186788 |
| <rdar://problem/41094167> |
| |
| Reviewed by Chris Dumez. |
| |
| InjectedBundles support a mechanism to serialize data between the UIProcess and the |
| WebContent process hosting the bundle. In some cases, we want to be able to serialize |
| a custom data object that is not part of WebKit's native data types. |
| |
| After switching to strict NSSecureCoding, WebKit clients attempting to serialize these |
| custom objects trigger a failure. |
| |
| This patch makes it possible for the InjectedBundle author to specify one (or more) data |
| classes that are allowed to be serialized between the two processes. |
| |
| * WebProcess/InjectedBundle/API/c/WKBundle.cpp: |
| (WKBundleExtendClassesForParameterCoder): Added. |
| * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: |
| * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.h: |
| * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.mm: |
| (createWKArray): Added. |
| (-[WKWebProcessPlugInController extendClassesForParameterCoder:]): Added. |
| * WebProcess/InjectedBundle/InjectedBundle.h: |
| * WebProcess/InjectedBundle/mac/InjectedBundleMac.mm: |
| (WebKit::InjectedBundle::extendClassesForParameterCoder): Added. |
| (WebKit::InjectedBundle::classesForCoder): New helper function. |
| (WebKit::InjectedBundle::setBundleParameter): Modified to use the new set of valid |
| classes for NSSecureCoding. |
| |
| 2018-06-26 Eric Carlson <eric.carlson@apple.com> |
| |
| Enable mock capture devices on the iOS simulator |
| https://bugs.webkit.org/show_bug.cgi?id=186846 |
| <rdar://problem/41289134> |
| |
| Reviewed by Youenn Fablet. |
| |
| * Shared/WebPreferences.yaml: Use DEFAULT_MOCK_CAPTURE_DEVICES_ENABLED. |
| * Shared/WebPreferencesDefaultValues.h: Define DEFAULT_MOCK_CAPTURE_DEVICES_ENABLED, set to |
| true in the iOS simulator only. |
| |
| 2018-06-26 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [Win] 'deref': is not a member of 'WebKit::WebResourceLoadStatisticsStore::updateCookiePartitioningForDomains::<lambda_9d761a6dc12d95db7fa2d6f3f5aa26fa>' |
| https://bugs.webkit.org/show_bug.cgi?id=187035 |
| |
| Unreviewed build fix. |
| |
| MSVC can't compile the code using `this` in a generalized lambda |
| capture in another lambda. |
| |
| In this case, there is no need to copy `protectedThis` for the |
| inner lambda. Move `protectedThis` of the outer lambda to the |
| inner as well as `completionHandler`. |
| |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::updateCookiePartitioning): |
| Moved `protectedThis` from the outer lambda to the inner. |
| (WebKit::WebResourceLoadStatisticsStore::updateCookiePartitioningForDomains): |
| Ditto. |
| |
| 2018-06-26 Miguel Gomez <magomez@igalia.com> |
| |
| [GTK] Many webpages can crash the browser in WebCore::CoordinatedGraphicsLayer::transformedVisibleRect |
| https://bugs.webkit.org/show_bug.cgi?id=179304 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Add a way to attach to the CompositingCoordinator layers that were not created by it. |
| |
| * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp: |
| (WebKit::CompositingCoordinator::attachLayer): |
| * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h: |
| |
| 2018-06-25 Tim Horton <timothy_horton@apple.com> |
| |
| WKThumbnailView fallback background is blindingly bright in Dark Mode |
| https://bugs.webkit.org/show_bug.cgi?id=187017 |
| <rdar://problem/41036209> |
| |
| Reviewed by Simon Fraser. |
| |
| * UIProcess/API/Cocoa/_WKThumbnailView.mm: |
| (-[_WKThumbnailView initWithFrame:]): |
| (-[_WKThumbnailView wantsUpdateLayer]): |
| (-[_WKThumbnailView updateLayer]): |
| Use a semantic color for the WKThumbnailView background color |
| instead of flat white. |
| |
| 2018-06-25 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Make WebResourceLoadStatisticsStore::updateCookiePartitioningForDomains() wait for the network process before calling its callback |
| https://bugs.webkit.org/show_bug.cgi?id=186903 |
| <rdar://problem/41350182> |
| |
| Reviewed by Chris Dumez. |
| |
| This patch stores the callback sent to |
| WebResourceLoadStatisticsStore::updateCookiePartitioningForDomains(), |
| sets up a context ID, and sends that ID to the network process when |
| asking it to update cookie partitioning and blocking. The network |
| process then tells the UI process when it's done, at which point the |
| callback is called. |
| |
| This change is meant to address layout test flakiness. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::updatePrevalentDomainsToPartitionOrBlockCookies): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::updatePrevalentDomainsToPartitionOrBlockCookies): |
| (WebKit::NetworkProcessProxy::didUpdatePartitionOrBlockCookies): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::updateCookiePartitioning): |
| (WebKit::WebResourceLoadStatisticsStore::updateCookiePartitioningForDomains): |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::updatePrevalentDomainsToPartitionOrBlockCookies): |
| (WebKit::WebsiteDataStore::enableResourceLoadStatisticsAndSetTestingCallback): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| |
| 2018-06-25 Brent Fulgham <bfulgham@apple.com> |
| |
| Allow access to APTDevice in iOS WebContent process |
| https://bugs.webkit.org/show_bug.cgi?id=187021 |
| <rdar://problem/41339769> |
| |
| Reviewed by Youenn Fablet. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2018-06-25 Keith Rollin <krollin@apple.com> |
| Unreviewed, rolling out r233087. |
| |
| Causes 5% Mac PLT regression. |
| |
| Reverted changeset: |
| |
| "Recalc styles every time defaultAppearance changes." |
| https://bugs.webkit.org/show_bug.cgi?id=186866 |
| https://trac.webkit.org/changeset/233087 |
| |
| 2018-06-25 Youenn Fablet <youenn@apple.com> |
| |
| Add a sandbox profile to Hangout plug-in |
| https://bugs.webkit.org/show_bug.cgi?id=187005 |
| <rdar://problem/41428391> |
| |
| Reviewed by Brent Fulgham. |
| |
| Add a sandbox profile so that this plug-in can be run when UIProcess is sandboxed. |
| |
| * Resources/PlugInSandboxProfiles/com.google.googletalkbrowserplugin.sb: Added. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-06-25 Youenn Fablet <youenn@apple.com> |
| |
| NetworkLoadChecker should not check CORS for 304 responses triggered by WebProcess revalidation |
| https://bugs.webkit.org/show_bug.cgi?id=186939 |
| <rdar://problem/40941725> |
| |
| Reviewed by Chris Dumez. |
| |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::validateResponse): |
| |
| 2018-06-25 Keith Rollin <krollin@apple.com> |
| |
| Adjust UNEXPORTED_SYMBOL_LDFLAGS for LTO |
| https://bugs.webkit.org/show_bug.cgi?id=186949 |
| <rdar://problem/41386438> |
| |
| Reviewed by David Kilzer. |
| |
| When building with LTO, WebKit's |
| 'check-for-weak-vtables-and-externals' script reports weak external |
| symbols: |
| |
| ERROR: WebKit has a weak external symbol in it (.../OpenSource/WebKitBuild/Release/WebKit.framework/Versions/A/WebKit) |
| ERROR: A weak external symbol is generated when a symbol is defined in multiple compilation units and is also marked as being exported from the library. |
| ERROR: A common cause of weak external symbols is when an inline function is listed in the linker export file. |
| ERROR: symbol __ZTCNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE0_NS_13basic_istreamIcS2_EE |
| ERROR: symbol __ZTCNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE0_NS_14basic_iostreamIcS2_EE |
| ERROR: symbol __ZTCNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE16_NS_13basic_ostreamIcS2_EE |
| ERROR: symbol __ZTTNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE |
| ERROR: symbol __ZTVNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEEE |
| ERROR: symbol __ZTVNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE |
| Command /bin/sh failed with exit code 1 |
| |
| Address these by adding those symbols to UNEXPORTED_SYMBOL_LDFLAGS in |
| WebKit.xcconfig. |
| |
| * Configurations/WebKit.xcconfig: |
| |
| 2018-06-25 Chris Dumez <cdumez@apple.com> |
| |
| Make sure API::IconLoadingClient::getLoadDecisionForIcon()'s completion handler gets called |
| https://bugs.webkit.org/show_bug.cgi?id=187007 |
| <rdar://problem/41293989> |
| |
| Reviewed by Brady Eidson. |
| |
| Make sure API::IconLoadingClient::getLoadDecisionForIcon()'s completion handler gets called by |
| switching its type to WTF::CompletionHandler instead of WTF::Function. This also has the benefit |
| of destroying our captured objects when the completion handler gets called by the client on the |
| main thread instead of whatever thread the ObjC block gets released on. |
| |
| * UIProcess/API/APIIconLoadingClient.h: |
| (API::IconLoadingClient::getLoadDecisionForIcon): |
| * UIProcess/API/glib/WebKitIconLoadingClient.cpp: |
| * UIProcess/API/mac/WKView.mm: |
| (-[WKView maybeInstallIconLoadingClient]): |
| * UIProcess/Cocoa/IconLoadingDelegate.h: |
| * UIProcess/Cocoa/IconLoadingDelegate.mm: |
| (WebKit::IconLoadingDelegate::IconLoadingClient::getLoadDecisionForIcon): |
| |
| 2018-06-25 Youenn Fablet <youenn@apple.com> |
| |
| Add API to control mock media devices |
| https://bugs.webkit.org/show_bug.cgi?id=186958 |
| |
| Reviewed by Eric Carlson. |
| |
| Add API to clear, set, remove and reset mock media devices. |
| The mock media center of UIProcess and all WebProcesses are updated. |
| |
| * CMakeLists.txt: |
| * UIProcess/API/C/WKMockMediaDevice.cpp: Added. |
| (typeFromString): |
| (WKAddMockMediaDevice): |
| (WKClearMockMediaDevices): |
| (WKRemoveMockMediaDevice): |
| (WKResetMockMediaDevices): |
| * UIProcess/API/C/WKMockMediaDevice.h: Added. |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::addMockMediaDevice): |
| (WebKit::WebProcessPool::clearMockMediaDevices): |
| (WebKit::WebProcessPool::removeMockMediaDevice): |
| (WebKit::WebProcessPool::resetMockMediaDevices): |
| * UIProcess/WebProcessPool.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::addMockMediaDevice): |
| (WebKit::WebProcess::clearMockMediaDevices): |
| (WebKit::WebProcess::removeMockMediaDevice): |
| (WebKit::WebProcess::resetMockMediaDevices): |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| |
| 2018-06-25 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iPad apps on macOS] Click events are broken in WKWebView |
| https://bugs.webkit.org/show_bug.cgi?id=186964 |
| <rdar://problem/41369145> |
| |
| Reviewed by Tim Horton. |
| |
| Tapping in WKWebView currently does not dispatch click events to the page. This is because the long press loupe |
| gesture (in the text interaction assistant) has a delay of 0 when running iOS apps on macOS, but on iOS, it's |
| 0.5. The zero delay on macOS means that the loupe gesture will be recognized before the synthetic click gesture; |
| this, in turn, causes the synthetic click gesture to be excluded by the loupe gesture. To address this, we |
| simply allow the click and loupe gesture to recognize simultaneously. |
| |
| Additionally, a new hover gesture was added recently to handle macOS cursor types when hovering over selectable |
| text. This patch also allows other gestures to recognize alongside hover gestures, which matches macOS behavior. |
| |
| We don't have the capacity to write automated tests for this yet; I manually tested text selection, editing in |
| some text form controls, as well as clicking on links, buttons, and other elements with click event handlers. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]): |
| |
| 2018-06-23 Brian Burg <bburg@apple.com> |
| |
| [Mac] Web Automation: include correct key code with synthesized NSEvents used for keystrokes |
| https://bugs.webkit.org/show_bug.cgi?id=186937 |
| |
| Reviewed by Timothy Hatcher. |
| |
| In some cases, a missing keyCode for an ASCII letter/number can cause synthesized |
| NSEvents to not be converted into a key equivalent action like copy: or paste:. |
| |
| * UIProcess/Automation/mac/WebAutomationSessionMac.mm: |
| Drive by, always initialize keyCode. |
| |
| (WebKit::WebAutomationSession::platformSimulateKeyboardInteraction): |
| (WebKit::keyCodeForCharKey): Compute the keyCode as defined by HLTB headers. |
| This only needs to be computed for characters with physical keys, excluding the |
| number pad and some traditional virtual keys that do not usually have glyphs. |
| |
| 2018-06-24 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, fix GTK debug build after r233131 |
| https://bugs.webkit.org/show_bug.cgi?id=186899 |
| <rdar://problem/38222248> |
| |
| This assertion was intended to be removed. |
| |
| * UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp: |
| (WebKit::WebAutomationSession::platformSimulateKeyboardInteraction): |
| |
| 2018-06-21 Brian Burg <bburg@apple.com> |
| |
| Web Automation: key actions should support multiple pressed virtual keys |
| https://bugs.webkit.org/show_bug.cgi?id=186899 |
| <rdar://problem/38222248> |
| |
| Reviewed by Timothy Hatcher. |
| |
| This patch changes the protocol to allow multiple virtual keys per input source state. |
| Chords like Cmd-Shift-A and Shift-F12 must be represented this way as they are encoded |
| in the VirtualKey enum rather than as an ASCII char. |
| |
| * UIProcess/Automation/Automation.json: |
| * UIProcess/Automation/SimulatedInputDispatcher.h: |
| * UIProcess/Automation/SimulatedInputDispatcher.cpp: |
| (WebKit::SimulatedInputDispatcher::transitionInputSourceToState): |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::simulateKeyboardInteraction): |
| (WebKit::WebAutomationSession::performKeyboardInteractions): |
| (WebKit::WebAutomationSession::performInteractionSequence): |
| |
| * UIProcess/Automation/WebAutomationSession.h: |
| * UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp: |
| (WebKit::WebAutomationSession::platformSimulateKeyboardInteraction): |
| * UIProcess/Automation/ios/WebAutomationSessionIOS.mm: |
| (WebKit::WebAutomationSession::platformSimulateKeyboardInteraction): |
| * UIProcess/Automation/mac/WebAutomationSessionMac.mm: |
| (WebKit::WebAutomationSession::platformSimulateKeyboardInteraction): |
| Also clean up the signature of WebAutomationSession::platformSimulateKeyboardInteraction |
| to use a variant instead of mutually exclusive optional values with different types. |
| |
| 2018-06-23 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| [WTF] Add user-defined literal for ASCIILiteral |
| https://bugs.webkit.org/show_bug.cgi?id=186839 |
| |
| Reviewed by Darin Adler. |
| |
| * NetworkProcess/NetworkCORSPreflightChecker.cpp: |
| (WebKit::NetworkCORSPreflightChecker::willPerformHTTPRedirection): |
| (WebKit::NetworkCORSPreflightChecker::didReceiveChallenge): |
| (WebKit::NetworkCORSPreflightChecker::wasBlocked): |
| (WebKit::NetworkCORSPreflightChecker::cannotShowURL): |
| * NetworkProcess/NetworkDataTaskBlob.cpp: |
| (WebKit::NetworkDataTaskBlob::suggestedFilename const): |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::checkRedirection): |
| (WebKit::NetworkLoadChecker::checkRequest): |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::continueWillSendRequest): |
| * NetworkProcess/PingLoad.cpp: |
| (WebKit::PingLoad::willPerformHTTPRedirection): |
| (WebKit::PingLoad::didReceiveChallenge): |
| (WebKit::PingLoad::timeoutTimerFired): |
| * NetworkProcess/PreconnectTask.cpp: |
| (WebKit::PreconnectTask::PreconnectTask): |
| * NetworkProcess/cache/CacheStorageEngine.cpp: |
| (WebKit::CacheStorage::Engine::initialize): |
| * NetworkProcess/cache/CacheStorageEngineCache.cpp: |
| (WebKit::CacheStorage::Cache::toRecordInformation): |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::cachesListFilename): |
| (WebKit::CacheStorage::cachesOriginFilename): |
| * NetworkProcess/cache/NetworkCacheStatistics.cpp: |
| (WebKit::NetworkCache::Statistics::initialize): |
| (WebKit::NetworkCache::Statistics::bootstrapFromNetworkCache): |
| (WebKit::NetworkCache::Statistics::queryWasEverRequested): |
| (WebKit::NetworkCache::Statistics::clear): |
| (WebKit::NetworkCache::Statistics::addHashesToDatabase): |
| (WebKit::NetworkCache::Statistics::addStoreDecisionsToDatabase): |
| * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h: |
| (WebKit::XPCServiceInitializer): |
| * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.mm: |
| (WebKit::XPCServiceInitializerDelegate::getExtraInitializationData): |
| * Shared/Plugins/Netscape/PluginInformation.cpp: |
| (WebKit::pluginInformationBundleIdentifierKey): |
| (WebKit::pluginInformationBundleVersionKey): |
| (WebKit::pluginInformationBundleShortVersionKey): |
| (WebKit::pluginInformationPathKey): |
| (WebKit::pluginInformationDisplayNameKey): |
| (WebKit::pluginInformationDefaultLoadPolicyKey): |
| (WebKit::pluginInformationUpdatePastLastBlockedVersionIsKnownAvailableKey): |
| (WebKit::pluginInformationHasSandboxProfileKey): |
| (WebKit::pluginInformationFrameURLKey): |
| (WebKit::pluginInformationMIMETypeKey): |
| (WebKit::pluginInformationPageURLKey): |
| (WebKit::pluginInformationPluginspageAttributeURLKey): |
| (WebKit::pluginInformationPluginURLKey): |
| (WebKit::plugInInformationReplacementObscuredKey): |
| * Shared/ios/WebIOSEventFactory.mm: |
| (WebIOSEventFactory::createWebKeyboardEvent): |
| * Shared/linux/WebMemorySamplerLinux.cpp: |
| (WebKit::WebMemorySampler::sampleWebKit const): |
| * UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm: |
| (debuggableTypeString): |
| * UIProcess/API/glib/WebKitWebContext.cpp: |
| (webkit_web_context_set_preferred_languages): |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::setWindowFrameOfBrowsingContext): |
| (WebKit::WebAutomationSession::addSingleCookie): |
| (WebKit::WebAutomationSession::setSessionPermissions): |
| (WebKit::WebAutomationSession::performMouseInteraction): |
| (WebKit::WebAutomationSession::performKeyboardInteractions): |
| (WebKit::WebAutomationSession::performInteractionSequence): |
| * UIProcess/Automation/WebAutomationSession.h: |
| * UIProcess/ChildProcessProxy.cpp: |
| (WebKit::ChildProcessProxy::getLaunchOptions): |
| * UIProcess/Cocoa/DownloadClient.mm: |
| (WebKit::DownloadClient::didStart): |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::selectorExceptionMap): |
| * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.cpp: |
| (WebKit::WebCredentialsMessengerProxy::makeCredential): |
| (WebKit::WebCredentialsMessengerProxy::getAssertion): |
| * UIProcess/Plugins/mac/PluginInfoStoreMac.mm: |
| (WebKit::PluginInfoStore::pluginsDirectories): |
| * UIProcess/ResourceLoadStatisticsPersistentStorage.cpp: |
| (WebKit::ResourceLoadStatisticsPersistentStorage::populateMemoryStoreFromDisk): |
| * UIProcess/ServiceWorkerProcessProxy.cpp: |
| (WebKit::ServiceWorkerProcessProxy::getLaunchOptions): |
| (WebKit::ServiceWorkerProcessProxy::didReceiveAuthenticationChallenge): |
| * UIProcess/UserMediaProcessManager.cpp: |
| (WebKit::UserMediaProcessManager::willCreateMediaStream): |
| (WebKit::UserMediaProcessManager::endedCaptureSession): |
| * UIProcess/WebBackForwardList.cpp: |
| (WebKit::WebBackForwardList::goToItem): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::loadFile): |
| (WebKit::WebPageProxy::loadHTMLString): |
| (WebKit::WebPageProxy::loadPlainTextString): |
| (WebKit::WebPageProxy::loadWebArchiveData): |
| (WebKit::WebPageProxy::savePDFToFileInDownloadsFolder): |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::getLaunchOptions): |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::grandfatherExistingWebsiteData): |
| * UIProcess/WebResourceLoadStatisticsTelemetry.cpp: |
| (WebKit::notifyPages): |
| (WebKit::WebResourceLoadStatisticsTelemetry::calculateAndSubmit): |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView copyForWebView:]): |
| (-[WKContentView cutForWebView:]): |
| (-[WKContentView pasteForWebView:]): |
| (-[WKContentView selectAllForWebView:]): |
| (-[WKContentView deleteBackward]): |
| (-[WKContentView _interpretKeyEvent:isCharEvent:]): |
| * UIProcess/ios/WKLegacyPDFView.mm: |
| (-[WKLegacyPDFView _URLForLinkAnnotation:]): |
| * WebProcess/Automation/WebAutomationSessionProxy.cpp: |
| (WebKit::WebAutomationSessionProxy::elementForNodeHandle): |
| (WebKit::WebAutomationSessionProxy::didClearWindowObjectForFrame): |
| (WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction): |
| * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp: |
| (WebKit::WebIDBConnectionToServer::connectionToServerLost): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentGtk.cpp: |
| (webkit_dom_document_get_ready_state): |
| * WebProcess/InjectedBundle/InjectedBundleScriptWorld.cpp: |
| (WebKit::uniqueWorldName): |
| * WebProcess/MediaCache/WebMediaKeyStorageManager.cpp: |
| (WebKit::WebMediaKeyStorageManager::getMediaKeyOrigins): |
| * WebProcess/Plugins/PDF/PDFPlugin.mm: |
| (WebKit::PDFPlugin::pluginInfo): |
| * WebProcess/Storage/ServiceWorkerClientFetch.cpp: |
| (WebKit::ServiceWorkerClientFetch::validateResponse): |
| (WebKit::ServiceWorkerClientFetch::didReceiveResponse): |
| * WebProcess/WebCoreSupport/WebContextMenuClient.cpp: |
| (WebKit::WebContextMenuClient::searchWithGoogle): |
| * WebProcess/WebCoreSupport/WebInspectorClient.cpp: |
| (WebKit::WebInspectorClient::showPaintRect): |
| * WebProcess/WebPage/RemoteWebInspectorUI.cpp: |
| (WebKit::RemoteWebInspectorUI::initialize): |
| (WebKit::RemoteWebInspectorUI::didSave): |
| (WebKit::RemoteWebInspectorUI::didAppend): |
| (WebKit::RemoteWebInspectorUI::frontendLoaded): |
| * WebProcess/WebPage/WebInspector.cpp: |
| (WebKit::WebInspector::openInNewTab): |
| * WebProcess/WebPage/WebInspectorUI.cpp: |
| (WebKit::WebInspectorUI::setDockSide): |
| (WebKit::WebInspectorUI::setDockingUnavailable): |
| (WebKit::WebInspectorUI::setIsVisible): |
| (WebKit::WebInspectorUI::showConsole): |
| (WebKit::WebInspectorUI::showResources): |
| (WebKit::WebInspectorUI::showTimelines): |
| (WebKit::WebInspectorUI::showMainResourceForFrame): |
| (WebKit::WebInspectorUI::startPageProfiling): |
| (WebKit::WebInspectorUI::stopPageProfiling): |
| (WebKit::WebInspectorUI::startElementSelection): |
| (WebKit::WebInspectorUI::stopElementSelection): |
| (WebKit::WebInspectorUI::didSave): |
| (WebKit::WebInspectorUI::didAppend): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::loadStringImpl): |
| (WebKit::WebPage::loadAlternateHTMLString): |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::computeAutocorrectionContext): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::getWebCoreMemoryCacheStatistics): |
| (WebKit::WebProcess::getWebCoreStatistics): |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::initializeProcessName): |
| |
| 2018-06-22 Chris Dumez <cdumez@apple.com> |
| |
| Regression(r230211): Crash under WebInspectorClient::~WebInspectorClient() |
| https://bugs.webkit.org/show_bug.cgi?id=186950 |
| <rdar://problem/40602069> |
| |
| Reviewed by Darin Adler. |
| |
| Re-introduce null-check that was accidentally dropped in r230211. |
| |
| * WebProcess/WebCoreSupport/WebInspectorClient.cpp: |
| (WebKit::WebInspectorClient::~WebInspectorClient): |
| |
| 2018-06-22 Timothy Hatcher <timothy@apple.com> |
| |
| Corner of two scroll bars is white with dark mode enabled. |
| https://bugs.webkit.org/show_bug.cgi?id=186819 |
| rdar://problem/40434350 |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/mac/WKPrintingView.mm: |
| (-[WKPrintingView drawRect:]): Added LocalDefaultSystemAppearance. |
| * WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp: |
| (WebKit::InjectedBundleRangeHandle::renderedImage): Ditto. |
| * WebProcess/Plugins/PDF/PDFPlugin.mm: |
| (WebKit::PDFPlugin::paintControlForLayerInContext): Ditto. Dropped ScrollView argument. |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::drawRect): Added LocalDefaultSystemAppearance. |
| |
| 2018-06-22 Tim Horton <timothy_horton@apple.com> |
| |
| Make it possible to add a border around loading or failed-to-load images |
| https://bugs.webkit.org/show_bug.cgi?id=186614 |
| <rdar://problem/39050152> |
| |
| Reviewed by Zalan Bujtas. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: |
| (-[WKWebViewConfiguration init]): |
| (-[WKWebViewConfiguration copyWithZone:]): |
| (-[WKWebViewConfiguration _setColorFilterEnabled:]): |
| (-[WKWebViewConfiguration _incompleteImageBorderEnabled]): |
| (-[WKWebViewConfiguration _setIncompleteImageBorderEnabled:]): |
| * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: |
| Plumb the setting to WebKit2. |
| |
| 2018-06-22 Brady Eidson <beidson@apple.com> |
| |
| WKURLSchemeHandler doesn't handle sync XHR. |
| <rdar://problem/40955884> and https://bugs.webkit.org/show_bug.cgi?id=186902 |
| |
| Reviewed by Chris Dumez. |
| |
| This patch allows WebProcesses to block on sync loads to a custom scheme, |
| and teaches WebURLSchemeTasks how to buffer up data and the response if |
| operating synchronously. |
| |
| * Shared/WebErrors.cpp: |
| (WebKit::failedCustomProtocolSyncLoad): |
| * Shared/WebErrors.h: |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::startURLSchemeTask): |
| (WebKit::WebPageProxy::loadSynchronousURLSchemeTask): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| |
| * UIProcess/WebURLSchemeHandler.cpp: |
| (WebKit::WebURLSchemeHandler::startTask): |
| * UIProcess/WebURLSchemeHandler.h: |
| |
| * UIProcess/WebURLSchemeTask.cpp: |
| (WebKit::WebURLSchemeTask::create): |
| (WebKit::WebURLSchemeTask::WebURLSchemeTask): |
| (WebKit::WebURLSchemeTask::didPerformRedirection): |
| (WebKit::WebURLSchemeTask::didReceiveResponse): |
| (WebKit::WebURLSchemeTask::didReceiveData): |
| (WebKit::WebURLSchemeTask::didComplete): |
| (WebKit::WebURLSchemeTask::pageDestroyed): |
| (WebKit::WebURLSchemeTask::stop): |
| * UIProcess/WebURLSchemeTask.h: |
| (WebKit::WebURLSchemeTask::isSync const): |
| |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::tryLoadingSynchronouslyUsingURLSchemeHandler): |
| (WebKit::WebLoaderStrategy::loadResourceSynchronously): |
| * WebProcess/Network/WebLoaderStrategy.h: |
| |
| * WebProcess/WebPage/WebURLSchemeHandlerProxy.cpp: |
| (WebKit::WebURLSchemeHandlerProxy::loadSynchronously): |
| * WebProcess/WebPage/WebURLSchemeHandlerProxy.h: |
| |
| 2018-06-22 Chris Dumez <cdumez@apple.com> |
| |
| Implement IPC throttling to keep the main thread responsive when a process misbehaves |
| https://bugs.webkit.org/show_bug.cgi?id=186607 |
| <rdar://problem/41073205> |
| |
| Reviewed by Geoff Garen and Brady Eidson. |
| |
| Implement IPC throttling to keep the main thread responsive when a process misbehaves. |
| Instead of doing one main runloop dispatch per incoming message, we now do a single |
| runloop dispatch and process incoming messages in batch. We put a limit on the number |
| of messages to be processed in a batch (600). If the queue is larger that this limit, |
| we'll schedule a 0-timer to process remaining messages, giving the main runloop a chance |
| to process other events. Additionally, if an IPC connection keeps hitting this maximum |
| batch size limit, we implement back off and we'll further decrease the number of messages |
| we process in each batch (going as low as 60). This keeps Safari responsive enough to |
| allow the user to close the bad tab (even on older devices such as iPhone 5s). |
| |
| Finally, if the incoming message queue becomes too large (50000), we go one step further |
| and kill the IPC connection in order to maintain performance / battery life. |
| |
| Every time we apply throttling or terminate a connection due to throttling, we do a |
| RELEASE_LOG_ERROR() with useful information in order to help diagnose potential issues |
| in the future. |
| |
| For now, incoming IPC messages throttling is only enabled on the UIProcess' connections |
| to the WebProcesses. |
| |
| * Platform/IPC/Connection.cpp: |
| (IPC::Connection::Connection): |
| (IPC::Connection::enqueueIncomingMessage): |
| (IPC::Connection::MessagesThrottler::MessagesThrottler): |
| (IPC::Connection::MessagesThrottler::scheduleMessagesDispatch): |
| (IPC::Connection::MessagesThrottler::numberOfMessagesToProcess): |
| (IPC::Connection::dispatchIncomingMessages): |
| * Platform/IPC/Connection.h: |
| * Platform/IPC/mac/ConnectionMac.mm: |
| (IPC::Connection::kill): |
| |
| 2018-06-22 Sihui Liu <sihui_liu@apple.com> |
| |
| REGRESSION (r231850): Cookie file cannot be read or written by network process |
| https://bugs.webkit.org/show_bug.cgi?id=186806 |
| <rdar://problem/41113791> |
| |
| Unreviewed. Fix failure after r233084 by adding missing initialization. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| |
| 2018-06-22 Jer Noble <jer.noble@apple.com> |
| |
| [Fullscreen] Home indicator should show and hide with status bar |
| https://bugs.webkit.org/show_bug.cgi?id=186942 |
| <rdar://problem/41302190> |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.h: |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.mm: |
| (-[WKFullScreenViewController showUI]): |
| (-[WKFullScreenViewController hideUI]): |
| (-[WKFullScreenViewController setPrefersHomeIndicatorAutoHidden:]): |
| |
| 2018-06-22 Jer Noble <jer.noble@apple.com> |
| |
| [Fullscreen] Add a pinch-to-exit gesture |
| https://bugs.webkit.org/show_bug.cgi?id=186821 |
| |
| Reviewed by Tim Horton. |
| |
| Add a pinch gesture recognizer that overrides the pan gesture recognizer when active. Hide the |
| WKFullscreenViewController's controls while a dismiss gesture is active. |
| |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.h: |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.mm: |
| (-[WKFullScreenViewController setAnimating:]): |
| (-[WKFullScreenViewController prefersStatusBarHidden]): |
| (-[WKFullScreenViewController gestureRecognizer:shouldReceiveTouch:]): |
| (-[WKFullScreenViewController _touchDetected:]): |
| * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm: |
| (-[WKFullscreenAnimationController context]): |
| (-[WKFullscreenAnimationController updateWithProgress:scale:translation:anchor:]): |
| (-[WKFullScreenInteractiveTransition animator]): |
| (-[WKFullScreenInteractiveTransition updateInteractiveTransition:withScale:andTranslation:]): |
| (-[WKFullScreenWindowController enterFullScreen]): |
| (-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:finalFrame:]): |
| (-[WKFullScreenWindowController interactionControllerForDismissal:]): |
| (-[WKFullScreenWindowController _startToDismissFullscreenChanged:]): |
| (-[WKFullScreenWindowController _dismissFullscreenViewController]): |
| (-[WKFullScreenWindowController _interactiveDismissChanged:]): |
| (-[WKFullScreenWindowController _interactivePinchDismissChanged:]): |
| |
| 2018-06-22 Brian Burg <bburg@apple.com> |
| |
| [Cocoa] REGRESSION(W3C): actions for key equivalents are not respected |
| https://bugs.webkit.org/show_bug.cgi?id=186936 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::isSimulatingUserInteraction const): |
| This erroneously reported false unless there was both a mouse and key interaction |
| being dispatched, which is not possible in the current serial event simulation model. |
| As a result, Safari could not tell whether the action came from a simulated event |
| or the user, and thus rejected all key equivalents like Cmd-A,V,C,X. |
| |
| 2018-06-22 Jer Noble <jer.noble@apple.com> |
| |
| [Fullscreen] Exit fullscreen when opening a new tab |
| https://bugs.webkit.org/show_bug.cgi?id=186826 |
| <rdar://problem/40853211> |
| |
| Reviewed by Brent Fulgham. |
| |
| Make the fullscreen placeholder view a custom UIView, and exit fullscreen when the |
| placeholder is removed from its superview. |
| |
| * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm: |
| (-[WKFullScreenPlaceholderView willMoveToSuperview:]): |
| (-[WKFullScreenWindowController enterFullScreen]): |
| (-[WKFullScreenWindowController _completedExitFullScreen]): |
| (-[WKFullScreenWindowController placeholderWillMoveToSuperview:]): |
| (-[WKFullScreenWindowController _exitFullscreenImmediately]): |
| |
| 2018-06-22 Timothy Horton <timothy_horton@apple.com> |
| |
| Fix the build after r233089 |
| |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences _setColorFilterEnabled:]): |
| (-[WKPreferences _colorFilterEnabled]): |
| |
| 2018-06-22 Chris Dumez <cdumez@apple.com> |
| |
| Crash under WebResourceLoadStatisticsStore::mergeStatistics(WTF::Vector<WebCore::ResourceLoadStatistics, 0ul, WTF::CrashOnOverflow, 16ul>&&) |
| https://bugs.webkit.org/show_bug.cgi?id=186905 |
| <rdar://problem/41266775> |
| |
| Reviewed by Brent Fulgham. |
| |
| I believe the crash was caused by the WebResourceLoadStatisticsStore object being dead |
| when mergeStatistics() is called. In particular, the crash was happening when the |
| ResourceLoadStatisticsPersistentStorage's FileMonitor would detect a file change and |
| we would re-sync statistics from the disk. The FileMonitor's lambda function was |
| capturing |this| without ref'ing it, and the FileMonitor monitors the disk and |
| calls the lambda on the background queue, while it gets destroyed on the main thread. |
| |
| To make lifetime management less complex, the following changes were made: |
| - The ResourceLoadStatisticsPersistentStorage object is now always constructed / used |
| and destroyed on the background queue. We no longer have to worry about being on |
| the right thread in a given method. |
| - Now that ResourceLoadStatisticsPersistentStorage is always used from the background |
| queue and no longer needs to be thread-safe, drop its ref() / deref() methods and |
| use weak pointers instead to make sure the ResourceLoadStatisticsPersistentStorage |
| is still alive when a lamdba gets called on the background queue. |
| - For write scheduling use WorkQueue::dispatchAfter() and a WeakPtr instead of a |
| RunLoop::Timer. This is more convenient to use as the RunLoop::Timer has to be used |
| on the main thread. |
| |
| * UIProcess/ResourceLoadStatisticsPersistentStorage.cpp: |
| (WebKit::ResourceLoadStatisticsPersistentStorage::ResourceLoadStatisticsPersistentStorage): |
| (WebKit::ResourceLoadStatisticsPersistentStorage::~ResourceLoadStatisticsPersistentStorage): |
| (WebKit::ResourceLoadStatisticsPersistentStorage::startMonitoringDisk): |
| (WebKit::ResourceLoadStatisticsPersistentStorage::monitorDirectoryForNewStatistics): |
| (WebKit::ResourceLoadStatisticsPersistentStorage::scheduleOrWriteMemoryStore): |
| * UIProcess/ResourceLoadStatisticsPersistentStorage.h: |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore): |
| (WebKit::WebResourceLoadStatisticsStore::~WebResourceLoadStatisticsStore): |
| (WebKit::WebResourceLoadStatisticsStore::flushAndDestroyPersistentStore): |
| (WebKit::WebResourceLoadStatisticsStore::processStatisticsAndDataRecords): |
| (WebKit::WebResourceLoadStatisticsStore::grandfatherExistingWebsiteData): |
| (WebKit::WebResourceLoadStatisticsStore::applicationWillTerminate): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent): |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| |
| 2018-06-21 Jer Noble <jer.noble@apple.com> |
| |
| CRASH in WebCore::VideoFullscreenInterfaceMac::~VideoFullscreenInterfaceMac() |
| https://bugs.webkit.org/show_bug.cgi?id=186892 |
| |
| Reviewed by Eric Carlson. |
| |
| Protect against m_contentMap being mutated while its contents are being invalidated |
| by moving the map into a local variable and iterating over it instead. |
| |
| * UIProcess/Cocoa/PlaybackSessionManagerProxy.mm: |
| (WebKit::PlaybackSessionManagerProxy::invalidate): |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.mm: |
| (WebKit::VideoFullscreenManagerProxy::invalidate): |
| |
| 2018-06-22 Luming Yin <luming_yin@apple.com> |
| |
| Expose colorFilterEnabled SPI in WKPreferencesPrivate.h |
| https://bugs.webkit.org/show_bug.cgi?id=186935 |
| <rdar://problem/41109387> |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences _setColorFilterEnabled:]): |
| (-[WKPreferences _colorFilterEnabled]): |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: |
| |
| 2018-06-22 Timothy Hatcher <timothy@apple.com> |
| |
| Recalc styles every time defaultAppearance changes. |
| https://bugs.webkit.org/show_bug.cgi?id=186866 |
| rdar://problem/41309805 |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::setDefaultAppearance): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::setDefaultAppearance): |
| |
| 2018-06-22 Sihui Liu <sihui_liu@apple.com> |
| |
| REGRESSION (r231850): Cookie file cannot be read or written by network process |
| https://bugs.webkit.org/show_bug.cgi?id=186806 |
| <rdar://problem/41113791> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Add defaultSessionPendingCookies to NetworkProcessCreationParameters, so pending cookies of default session |
| can be added right after default session is set. This improves the fix r231850 as it does not send additional |
| message and avoids the regression. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * NetworkProcess/mac/RemoteNetworkingContext.mm: |
| (WebKit::RemoteNetworkingContext::ensureWebsiteDataStoreSession): |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::NetworkProcessProxy): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| |
| 2018-06-22 Brent Fulgham <bfulgham@apple.com> |
| |
| [iOS Debug] Multiple resourceLoadStatistics redirect tests are flaky timeouts |
| https://bugs.webkit.org/show_bug.cgi?id=183216 |
| <rdar://problem/37992317> |
| |
| Reviewed by Chris Dumez. |
| |
| Improve consistency of test results by make sure that completion handlers written to run |
| on the main thread are only called on the main thread. Add additional assertions to help |
| catch any cases where this invariant is not being honored. |
| |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::hasStorageAccess): Use Completion handler and assert |
| we are on the right thread. |
| (WebKit::WebResourceLoadStatisticsStore::requestStorageAccess): Ditto. |
| (WebKit::WebResourceLoadStatisticsStore::grantStorageAccess): Ditto. |
| (WebKit::WebResourceLoadStatisticsStore::logUserInteraction): Ditto. |
| (WebKit::WebResourceLoadStatisticsStore::logNonRecentUserInteraction): Ditto. |
| (WebKit::WebResourceLoadStatisticsStore::clearUserInteraction): Ditto. |
| (WebKit::WebResourceLoadStatisticsStore::hasHadUserInteraction): Ditto. |
| (WebKit::WebResourceLoadStatisticsStore::setLastSeen): Ditto. |
| (WebKit::WebResourceLoadStatisticsStore::setPrevalentResource): Ditto. |
| (WebKit::WebResourceLoadStatisticsStore::isPrevalentResource): Ditto. |
| (WebKit::WebResourceLoadStatisticsStore::isVeryPrevalentResource): Ditto. |
| (WebKit::WebResourceLoadStatisticsStore::isRegisteredAsSubFrameUnder): Ditto. |
| (WebKit::WebResourceLoadStatisticsStore::isRegisteredAsRedirectingTo): Ditto. |
| (WebKit::WebResourceLoadStatisticsStore::clearPrevalentResource): Ditto. |
| (WebKit::WebResourceLoadStatisticsStore::setGrandfathered): Ditto. |
| (WebKit::WebResourceLoadStatisticsStore::isGrandfathered): Ditto. |
| (WebKit::WebResourceLoadStatisticsStore::setSubframeUnderTopFrameOrigin): Ditto. |
| (WebKit::WebResourceLoadStatisticsStore::setSubresourceUnderTopFrameOrigin): Ditto. |
| (WebKit::WebResourceLoadStatisticsStore::setSubresourceUniqueRedirectTo): Ditto. |
| (WebKit::WebResourceLoadStatisticsStore::setSubresourceUniqueRedirectFrom): Ditto. |
| (WebKit::WebResourceLoadStatisticsStore::setTopFrameUniqueRedirectTo): Ditto. |
| (WebKit::WebResourceLoadStatisticsStore::setTopFrameUniqueRedirectFrom): Ditto. |
| (WebKit::WebResourceLoadStatisticsStore::scheduleCookiePartitioningUpdate): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleCookiePartitioningUpdateForDomains): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleClearPartitioningStateForDomains): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleCookiePartitioningStateReset): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent): Update to perform callbacks |
| on the main thread (as intended). This function was doing them on a work queue. |
| (WebKit::WebResourceLoadStatisticsStore::updateCookiePartitioning): Ditto. |
| (WebKit::WebResourceLoadStatisticsStore::updateCookiePartitioningForDomains): Ditto. |
| (WebKit::WebResourceLoadStatisticsStore::clearPartitioningStateForDomains): Ditto. |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| |
| 2018-06-22 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| REGRESSION(r230950): [GTK] WebKit::CoordinatedBackingStoreTile::setBackBuffer(): WebKitWebProcess killed by SIGSEGV (ASSERTION FAILED: it != m_tiles.end()) |
| https://bugs.webkit.org/show_bug.cgi?id=186206 |
| |
| Unreviewed manual rollout of r230950 |
| |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: |
| (WebKit::layerShouldHaveBackingStore): |
| |
| 2018-06-20 Darin Adler <darin@apple.com> |
| |
| [Cocoa] Use the isDirectory: variants of NSURL methods more to eliminate unnecessary file system activity |
| https://bugs.webkit.org/show_bug.cgi?id=186875 |
| |
| Reviewed by Anders Carlsson. |
| |
| * UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm: |
| (API::WebsiteDataStore::tempDirectoryFileSystemRepresentation): Use isDirectory:YES to create a URL |
| to the temporary directory. |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::namesOfPromisedFilesDroppedAtDestination): Use isDirectory:NO to create a URL |
| pointing to the write location. |
| * UIProcess/WebStorage/ios/LocalStorageDatabaseTrackerIOS.mm: |
| (WebKit::LocalStorageDatabaseTracker::platformMaybeExcludeFromBackup const): Use isDirectory:YES to |
| create a URL for the local storage directory. |
| * UIProcess/ios/ResourceLoadStatisticsPersistentStorageIOS.mm: |
| (WebKit::ResourceLoadStatisticsPersistentStorage::excludeFromBackup const): Use isDirectory:NO to |
| create a URL for the storage directory. |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _prepareToDragPromisedBlob:]): Use isDirectory:NO to create a URL for the temporary |
| file location. |
| * UIProcess/ios/forms/WKFileUploadPanel.mm: |
| (-[WKFileUploadPanel _uploadItemForImageData:imageName:successBlock:failureBlock:]): Use isDirectory:NO |
| to create a URL for the image file to upload. |
| * UIProcess/mac/WebInspectorProxyMac.mm: |
| (WebKit::WebInspectorProxy::inspectorPageURL): Use isDirectory:NO to create a URL for the HTML file. |
| (WebKit::WebInspectorProxy::inspectorTestPageURL): Ditto. |
| (WebKit::WebInspectorProxy::inspectorBaseURL): Ditto. |
| * WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm: |
| (WebKit::WebChromeClient::createIconForFiles): Use isDirectory:NO to create a URL for the image file. |
| * WebProcess/WebPage/mac/WebInspectorUIMac.mm: |
| (WebKit::webInspectorUILocalizedStringsURL): Use isDirectory:NO to create a URL for the localized |
| strings file. |
| |
| 2018-06-21 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, rolling out r232995. |
| |
| Seems to have caused flakiness |
| |
| Reverted changeset: |
| |
| "Implement IPC throttling to keep the main thread responsive |
| when a process misbehaves" |
| https://bugs.webkit.org/show_bug.cgi?id=186607 |
| https://trac.webkit.org/changeset/232995 |
| |
| 2018-06-15 Jer Noble <jer.noble@apple.com> |
| |
| Address fullscreen api CSS env feedback |
| https://bugs.webkit.org/show_bug.cgi?id=186684 |
| |
| Reviewed by Simon Fraser. |
| |
| + Update the phishing alert text to be more explicit about the specific threats |
| phishing sites represent. |
| + Make the top inset static, rather than dynamic. |
| + Add bottom, left, and right insets for completeness. |
| + Set the fullscreen animation duration as well as delay. |
| + Notify the page when the controls show and hide. |
| |
| * UIProcess/WebFullScreenManagerProxy.cpp: |
| (WebKit::WebFullScreenManagerProxy::setFullscreenInsets): |
| (WebKit::WebFullScreenManagerProxy::setFullscreenAutoHideTiming): |
| (WebKit::WebFullScreenManagerProxy::setFullscreenControlsHidden): |
| (WebKit::WebFullScreenManagerProxy::setFullscreenInsetTop): Deleted. |
| (WebKit::WebFullScreenManagerProxy::setFullscreenAutoHideDelay): Deleted. |
| * UIProcess/WebFullScreenManagerProxy.h: |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.mm: |
| (-[WKFullScreenViewController showUI]): |
| (-[WKFullScreenViewController hideUI]): |
| (-[WKFullScreenViewController viewWillAppear:]): |
| (-[WKFullScreenViewController _effectiveFullscreenInsets]): |
| (-[WKFullScreenViewController _updateWebViewFullscreenInsets]): |
| (-[WKFullScreenViewController _showPhishingAlert]): |
| (-[WKFullScreenViewController _effectiveFullscreenInsetTop]): Deleted. |
| * WebProcess/FullScreen/WebFullScreenManager.cpp: |
| (WebKit::WebFullScreenManager::didExitFullScreen): |
| (WebKit::WebFullScreenManager::setFullscreenInsets): |
| (WebKit::WebFullScreenManager::setFullscreenAutoHideTiming): |
| (WebKit::WebFullScreenManager::setFullscreenControlsHidden): |
| (WebKit::WebFullScreenManager::setFullscreenInsetTop): Deleted. |
| (WebKit::WebFullScreenManager::setFullscreenAutoHideDelay): Deleted. |
| * WebProcess/FullScreen/WebFullScreenManager.h: |
| * WebProcess/FullScreen/WebFullScreenManager.messages.in: |
| |
| 2018-06-21 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r232884. |
| https://bugs.webkit.org/show_bug.cgi?id=186891 |
| |
| "Introduced assertion failure in ~DisplayRefreshMonitorMac()." |
| (Requested by perarne on #webkit). |
| |
| Reverted changeset: |
| |
| "DisplayRefreshMonitorMac should hold a weak pointer to |
| WebPage." |
| https://bugs.webkit.org/show_bug.cgi?id=186683 |
| https://trac.webkit.org/changeset/232884 |
| |
| 2018-06-21 Jer Noble <jer.noble@apple.com> |
| |
| [Fullscreen] Page sometimes ends up with an incorrect zoom level after entering fullscreen |
| https://bugs.webkit.org/show_bug.cgi?id=186822 |
| |
| Reviewed by Simon Fraser. |
| |
| Set the minimum zoom, maximum zoom, zoom bouncing, and user scalability settings of the |
| WKWebView's UIScrollView upon entering fullscreen, and restore those same settings upon |
| exit. Override the viewport arguments upon entering fullscreen, restore them upon exit. |
| |
| * Platform/IPC/ArgumentCoder.h: |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<ViewportArguments>::decode): |
| * Shared/WebCoreArgumentCoders.h: |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::forceAlwaysUserScalable const): |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::setOverrideViewportArguments): |
| * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm: |
| (WebKit::WKWebViewState::applyTo): |
| (WebKit::WKWebViewState::store): |
| (-[WKFullScreenWindowController enterFullScreen]): |
| (-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:finalFrame:]): |
| * WebProcess/WebPage/WebPage.h: |
| (WebKit::WebPage::forceAlwaysUserScalable const): |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::setOverrideViewportArguments): |
| |
| 2018-06-21 Jer Noble <jer.noble@apple.com> |
| |
| [Fullscreen] Use secondary glyph style for fullscreen controls |
| https://bugs.webkit.org/show_bug.cgi?id=186862 |
| <rdar://problem/41212210> |
| |
| Reviewed by Tim Horton. |
| |
| Adopt AVBackgroundView, and use its predefined enums to set the material and tint styles for |
| the fullscreen controls. |
| |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.mm: |
| (-[WKFullScreenViewController loadView]): |
| * UIProcess/ios/fullscreen/WKFullscreenStackView.h: |
| * UIProcess/ios/fullscreen/WKFullscreenStackView.mm: |
| (-[WKFullscreenStackView init]): |
| (-[WKFullscreenStackView dealloc]): |
| (-[WKFullscreenStackView addArrangedSubview:applyingMaterialStyle:tintEffectStyle:]): |
| (-[WKFullscreenStackView layoutSubviews]): |
| (+[WKFullscreenStackView baseEffects]): Deleted. |
| (+[WKFullscreenStackView configureView:forTintEffectWithColor:filterType:]): Deleted. |
| (+[WKFullscreenStackView configureView:withBackgroundFillOfColor:opacity:filter:]): Deleted. |
| (+[WKFullscreenStackView secondaryMaterialOverlayView]): Deleted. |
| (+[WKFullscreenStackView applyPrimaryGlyphTintToView:]): Deleted. |
| (+[WKFullscreenStackView applySecondaryGlyphTintToView:]): Deleted. |
| (-[WKFullscreenStackView initWithArrangedSubviews:axis:]): Deleted. |
| (-[WKFullscreenStackView setTargetViewForSecondaryMaterialOverlay:]): Deleted. |
| (-[WKFullscreenStackView contentView]): Deleted. |
| (-[WKFullscreenStackView _setArrangedSubviews:axis:]): Deleted. |
| (-[WKFullscreenStackView setBounds:]): Deleted. |
| (-[WKFullscreenStackView updateConstraints]): Deleted. |
| |
| 2018-06-21 Jer Noble <jer.noble@apple.com> |
| |
| [Fullscreen] Suspend page (and pause video) while phishing warning is presented |
| https://bugs.webkit.org/show_bug.cgi?id=186856 |
| <rdar://problem/41212444> |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.mm: |
| (-[WKFullScreenViewController _showPhishingAlert]): |
| |
| 2018-06-21 David Fenton <david_fenton@apple.com> |
| |
| Unreviewed, rolling out r232989. |
| |
| Causes API regressions on macOS |
| |
| Reverted changeset: |
| |
| "REGRESSION (r231850): Cookie file cannot be read or written |
| by network process" |
| https://bugs.webkit.org/show_bug.cgi?id=186806 |
| https://trac.webkit.org/changeset/232989 |
| |
| 2018-06-21 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GTK] WebDriver: allow applying host-specific TLS certificates for automated sessions |
| https://bugs.webkit.org/show_bug.cgi?id=186884 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * UIProcess/API/glib/WebKitAutomationSession.cpp: |
| (webkitAutomationSessionCreate): Handle any host-certificate pair that's |
| been set for this session, creating a GTlsCertificate object through |
| loading from the specified certificate path and marking that certificate |
| as allowed for the specified host through the |
| webkit_web_context_allow_tls_certificate_for_host() API. |
| |
| 2018-06-21 Chris Dumez <cdumez@apple.com> |
| |
| Regression(r226990) : Crash under WebCore::Page::applicationWillResignActive |
| https://bugs.webkit.org/show_bug.cgi?id=186850 |
| <rdar://problem/37394469> |
| |
| Reviewed by Eric Carlson. |
| |
| Make sure m_page is not null before calling applicationWillResignActive(). m_page |
| gets nulled out when WebPage::close() is called. The crash trace seems to indicate |
| we're calling applicationWillResignActive() on a Page that is dead since we crash |
| accessing Page::mainFrame(). |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::applicationWillResignActive): |
| |
| 2018-06-21 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [GTK] http/tests/misc/bubble-drag-events.html crashes |
| https://bugs.webkit.org/show_bug.cgi?id=182352 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| PingLoad::didFinish was called twice if it is used with |
| NetworkDataTaskSoup. PingLoad is not a ref-counted object. It is |
| destructed when PingLoad::didFinish is called. |
| |
| PingLoad::didReceiveChallenge calls the ChallengeCompletionHandler |
| with AuthenticationChallengeDisposition::Cancel to cancel the |
| challenge and calls PingLoad::didFinish. |
| |
| NetworkDataTaskSoup::continueAuthenticate calls |
| didReceiveChallenge with a ChallengeCompletionHandler which calls |
| didCompleteWithError. PingLoad::didCompleteWithError calls |
| PingLoad::didFinish. |
| |
| didCompleteWithError callback should not be called in the |
| ChallengeCompletionHandler. |
| |
| * NetworkProcess/soup/NetworkDataTaskSoup.cpp: |
| (WebKit::NetworkDataTaskSoup::continueAuthenticate): Do not call |
| didFail() in the ChallengeCompletionHandler. Call |
| invalidateAndCancel() instead. |
| |
| 2018-06-20 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [WebKit on watchOS] Fixed position elements sometimes flicker when scrolling |
| https://bugs.webkit.org/show_bug.cgi?id=186860 |
| <rdar://problem/39953563> |
| |
| Reviewed by Tim Horton. |
| |
| Remove conditional guards that are no longer necessary, now that the oldest iOS version our builders support is |
| iOS 11. Conditionalizing this logic only for iOS 11+ meant that on watchOS, we're always falling down the path |
| where we don't schedule a visible content rect update until the next runloop, which makes it possible for a |
| remote layer tree transaction to arrive and cause us to update the scrolling tree with stale viewport geometry. |
| |
| Test: WKScrollViewTests.PositionFixedLayerAfterScrolling |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _scheduleVisibleContentRectUpdateAfterScrollInView:]): |
| |
| 2018-06-20 Megan Gardner <megan_gardner@apple.com> |
| |
| Restrict Selection in contenteditable the extent of that contenteditable |
| https://bugs.webkit.org/show_bug.cgi?id=186792 |
| |
| Reviewed by Wenson Hsieh. |
| |
| We have not been checking to make sure that when we make a selection that it is restricted to |
| a single content editable on iOS. There is functionality to ensure this on mac, so it has been |
| exposed and utilized for restricting the extent of a selection. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::updateSelectionWithTouches): |
| |
| 2018-06-19 Dean Jackson <dino@apple.com> |
| |
| Blank viewer comes up and then auto-dismisses when device is not connected to Internet |
| https://bugs.webkit.org/show_bug.cgi?id=186825 |
| <rdar://problem/40294170> |
| |
| Reviewed by Tim Horton. |
| |
| Handle the case where the network load fails, and send that |
| error onto QuickLook. |
| |
| * UIProcess/Cocoa/DownloadClient.mm: |
| (WebKit::DownloadClient::didReceiveResponse): Check for success. |
| (WebKit::DownloadClient::processDidCrash): Cancel in the case of a crash. |
| (WebKit::DownloadClient::didFail): Propagate the error onto QuickLook. |
| * UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: |
| (-[_WKPreviewControllerDataSource failWithError:]): New method that calls |
| the completion handler with the error data. |
| (WebKit::SystemPreviewController::fail): New API method. |
| * UIProcess/SystemPreviewController.h: |
| |
| 2018-06-19 Chris Dumez <cdumez@apple.com> |
| |
| Implement IPC throttling to keep the main thread responsive when a process misbehaves |
| https://bugs.webkit.org/show_bug.cgi?id=186607 |
| <rdar://problem/41073205> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Implement IPC throttling to keep the main thread responsive when a process misbehaves. |
| Instead of doing one main runloop dispatch per incoming message, we now do a single |
| runloop dispatch and process incoming messages in batch. We put a limit on the number |
| of messages to be processed in a batch (600). If the queue is larger that this limit, |
| we'll schedule a 0-timer to process remaining messages, giving the main runloop a chance |
| to process other events. Additionally, if an IPC connection keeps hitting this maximum |
| batch size limit, we implement back off and we'll further decrease the number of messages |
| we process in each batch (going as low as 60). This keeps Safari responsive enough to |
| allow the user to close the bad tab (even on older devices such as iPhone 5s). |
| |
| Finally, if the incoming message queue becomes too large (50000), we go one step further |
| and kill the IPC connection in order to maintain performance / battery life. |
| |
| Every time we apply throttling or terminate a connection due to throttling, we do a |
| RELEASE_LOG_ERROR() with useful information in order to help diagnose potential issues |
| in the future. |
| |
| * Platform/IPC/Connection.cpp: |
| (IPC::Connection::Connection): |
| (IPC::Connection::enqueueIncomingMessage): |
| (IPC::Connection::MessagesThrottler::MessagesThrottler): |
| (IPC::Connection::MessagesThrottler::scheduleMessagesDispatch): |
| (IPC::Connection::MessagesThrottler::numberOfMessagesToProcess): |
| (IPC::Connection::dispatchIncomingMessages): |
| * Platform/IPC/Connection.h: |
| * Platform/IPC/mac/ConnectionMac.mm: |
| (IPC::Connection::kill): |
| |
| 2018-06-18 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Make SecItemShim to not send return value for SecItemAdd |
| https://bugs.webkit.org/show_bug.cgi?id=186789 |
| <rdar://problem/40892596> |
| |
| Reviewed by Brent Fulgham. |
| |
| Return value of SecItemAdd is often ignored. Even if it isn't, we don't have the ability to serialize SecKeychainItemRef. |
| Otherwise, it would go through the weird route of serializing SecKeychainItemRef by asking Keychain for its persistent |
| reference. This route contradicts the purpose of SecItemShim, which is to proxy all Keychain operations to UIProcess. |
| |
| Also, this patch removes the release assertion on encode(Encoder&, SecAccessControlRef) and decode(Decoder&, RetainPtr<SecAccessControlRef>&) |
| as they don't query Keychain. |
| |
| * Shared/cf/ArgumentCodersCF.cpp: |
| (IPC::encode): |
| (IPC::decode): |
| * Shared/mac/SecItemShim.cpp: |
| (WebKit::sendSecItemRequest): |
| (WebKit::webSecItemAdd): |
| * UIProcess/mac/SecItemShimProxy.cpp: |
| (WebKit::SecItemShimProxy::secItemRequest): |
| * UIProcess/mac/SecItemShimProxy.h: |
| * UIProcess/mac/SecItemShimProxy.messages.in: |
| |
| 2018-06-19 Sihui Liu <sihui_liu@apple.com> |
| |
| REGRESSION (r231850): Cookie file cannot be read or written by network process |
| https://bugs.webkit.org/show_bug.cgi?id=186806 |
| <rdar://problem/41113791> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Default websiteDataStore may be added wrongly to network process before default session was |
| set, as messages were asynchronous, so the cookie storage could be improperly set. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * NetworkProcess/mac/RemoteNetworkingContext.mm: |
| (WebKit::RemoteNetworkingContext::ensureWebsiteDataStoreSession): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| |
| 2018-06-19 Don Olmstead <don.olmstead@sony.com> |
| |
| Use getCurrentProcessID over getpid |
| https://bugs.webkit.org/show_bug.cgi?id=186813 |
| |
| Reviewed by Alex Christensen. |
| |
| * Shared/WebMemorySampler.cpp: |
| (WebKit::WebMemorySampler::initializeTimers): |
| (WebKit::WebMemorySampler::stop): |
| (WebKit::WebMemorySampler::writeHeaders): |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::installServiceWorker): |
| |
| 2018-06-19 Don Olmstead <don.olmstead@sony.com> |
| |
| WKWebsiteDataStoreRemoveAllServiceWorkerRegistrations does not invoke callback when Service Workers disabled |
| https://bugs.webkit.org/show_bug.cgi?id=186809 |
| |
| Reviewed by Chris Dumez. |
| |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreRemoveAllServiceWorkerRegistrations): |
| |
| 2018-06-19 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [WebKit on watchOS] Vend username text content type when using scribble in login fields |
| https://bugs.webkit.org/show_bug.cgi?id=186791 |
| <rdar://problem/41226935> |
| |
| Reviewed by Beth Dakin. |
| |
| Vend additional context to Quickboard when focusing an element that is likely to be a username field. |
| |
| Test: fast/forms/watchos/username-text-content-type.html |
| |
| * Shared/AssistedNodeInformation.cpp: |
| (WebKit::AssistedNodeInformation::encode const): |
| (WebKit::AssistedNodeInformation::decode): |
| * Shared/AssistedNodeInformation.h: |
| |
| Add a new flag to tell the UI process when the currently focused element is an autofillable username input |
| field (using existing app autofill heuristics). |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView textContentTypeForTesting]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| |
| Add new testing SPI to grab the computed text content type for the focused element. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (contentTypeFromFieldName): |
| |
| If `autocomplete="username"` is specified, return a username text content type. This was not originally added in |
| r197626 because UITextContentTypeUsername was only introduced later, in iOS 11. |
| |
| (-[WKContentView textContentTypeForListViewController:]): |
| (-[WKContentView textContentTypeForTesting]): |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::getAssistedNodeInformation): |
| |
| 2018-06-19 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, rolling out r232947. |
| |
| Caused an API test to time out |
| |
| Reverted changeset: |
| |
| "Implement IPC throttling to keep the main thread responsive |
| when a process misbehaves" |
| https://bugs.webkit.org/show_bug.cgi?id=186607 |
| https://trac.webkit.org/changeset/232947 |
| |
| 2018-06-19 Chris Dumez <cdumez@apple.com> |
| |
| HTTPHeaderMap wastes 226KB of HashTable capacity on cnn.com |
| https://bugs.webkit.org/show_bug.cgi?id=186735 |
| <rdar://problem/41189164> |
| |
| Reviewed by Geoffrey Garen. |
| |
| * NetworkProcess/cache/NetworkCacheCoders.cpp: |
| (WTF::Persistence::Coder<WebCore::HTTPHeaderMap>::decode): |
| |
| 2018-06-19 Youenn Fablet <youenn@apple.com> |
| |
| Network Preflights do not show in WebInspector after moving CORS checks to NetworkProcess |
| https://bugs.webkit.org/show_bug.cgi?id=186312 |
| <rdar://problem/40495434> |
| |
| Reviewed by Chris Dumez. |
| |
| Add buffering of all request/response of a given load, including redirections and preflights. |
| This buffering is switched on/off by a boolean which is switched on in case Web Inspector is launched. |
| |
| Buffering is done in NetworkLoadChecker. |
| We add ways to retrieve preflight information from NetworkCORSPreflightChecker. |
| |
| Implement LoaderStrategy new methods through sync IPC. |
| |
| * NetworkProcess/NetworkCORSPreflightChecker.cpp: |
| (WebKit::NetworkCORSPreflightChecker::NetworkCORSPreflightChecker): |
| (WebKit::NetworkCORSPreflightChecker::startPreflight): |
| (WebKit::NetworkCORSPreflightChecker::willPerformHTTPRedirection): |
| (WebKit::NetworkCORSPreflightChecker::didReceiveResponseNetworkSession): |
| (WebKit::NetworkCORSPreflightChecker::didCompleteWithError): |
| (WebKit::NetworkCORSPreflightChecker::takeInformation): |
| * NetworkProcess/NetworkCORSPreflightChecker.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| (WebKit::NetworkConnectionToWebProcess::takeNetworkLoadInformationRequest): |
| (WebKit::NetworkConnectionToWebProcess::takeNetworkLoadIntermediateInformation): |
| (WebKit::NetworkConnectionToWebProcess::addNetworkLoadInformation): |
| (WebKit::NetworkConnectionToWebProcess::addNetworkLoadInformationMetrics): |
| (WebKit::NetworkConnectionToWebProcess::addNetworkLoadInformationResponse): Deleted. |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::NetworkLoadChecker): |
| (WebKit::NetworkLoadChecker::check): |
| (WebKit::NetworkLoadChecker::checkRedirection): |
| (WebKit::NetworkLoadChecker::checkResponse): |
| (WebKit::NetworkLoadChecker::checkCORSRequestWithPreflight): |
| (WebKit::NetworkLoadChecker::storeRedirection): |
| * NetworkProcess/NetworkLoadChecker.h: |
| (WebKit::NetworkLoadChecker::takeNetworkLoadInformation): |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::didReceiveResponse): |
| (WebKit::NetworkResourceLoader::willSendRedirectedRequest): |
| (WebKit::NetworkResourceLoader::didRetrieveCacheEntry): |
| * NetworkProcess/PingLoad.cpp: |
| (WebKit::PingLoad::PingLoad): |
| * Scripts/webkit/messages.py: |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::intermediateLoadInformationFromResourceLoadIdentifier): |
| * WebProcess/Network/WebLoaderStrategy.h: |
| |
| 2018-06-19 Brent Fulgham <bfulgham@apple.com> |
| |
| MAP_JIT is not present for minimal simulator builds |
| https://bugs.webkit.org/show_bug.cgi?id=186608 |
| |
| Reviewed by Darin Adler. |
| |
| * Configurations/WebContent-iOS-minimalsimulator.entitlements: |
| |
| 2018-06-18 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Make sure to call callbacks even if there is no store (test infrastructure) |
| https://bugs.webkit.org/show_bug.cgi?id=186777 |
| <rdar://problem/41216181> |
| |
| Reviewed by Chris Dumez. |
| |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreStatisticsUpdateCookiePartitioning): |
| (WKWebsiteDataStoreSetStatisticsShouldPartitionCookiesForHost): |
| (WKWebsiteDataStoreStatisticsClearInMemoryAndPersistentStore): |
| (WKWebsiteDataStoreStatisticsClearInMemoryAndPersistentStoreModifiedSinceHours): |
| |
| 2018-06-18 Chris Dumez <cdumez@apple.com> |
| |
| Crash under WebProcessPool::networkProcessFailedToLaunch(): |
| https://bugs.webkit.org/show_bug.cgi?id=186784 |
| <rdar://problem/33535377> |
| |
| Reviewed by Brady Eidson. |
| |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (+[WKProcessPool _allProcessPoolsForTesting]): |
| Add SPI to retrieve all WebProcessPool for testing purposes. |
| |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::clearCallbackStates): |
| Make iteration over completion handlers robust against completion handlers |
| getting removed while we iterate. |
| |
| (WebKit::NetworkProcessProxy::didClose): |
| Ref the WebProcessPool (which keeps the NetworkProcessProxy alive too) |
| as several calls within this method might cause the WebProcessPool / |
| NetworkProcessProxy to get destroyed. |
| |
| 2018-06-18 Chris Dumez <cdumez@apple.com> |
| |
| Implement IPC throttling to keep the main thread responsive when a process misbehaves |
| https://bugs.webkit.org/show_bug.cgi?id=186607 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Implement IPC throttling to keep the main thread responsive when a process misbehaves. |
| Instead of doing one main runloop dispatch per incoming message, we now do a single |
| runloop dispatch and process incoming messages in batch. We put a limit on the number |
| of messages to be processed in a batch (600). If the queue is larger that this limit, |
| we'll schedule a 0-timer to process remaining messages, giving the main runloop a chance |
| to process other events. Additionally, if an IPC connection keeps hitting this maximum |
| batch size limit, we implement back off and we'll further decrease the number of messages |
| we process in each batch (going as low as 60). This keeps Safari responsive enough to |
| allow the user to close the bad tab (even on older devices such as iPhone 5s). |
| |
| Finally, if the incoming message queue becomes too large (50000), we go one step further |
| and kill the IPC connection in order to maintain performance / battery life. |
| |
| Every time we apply throttling or terminate a connection due to throttling, we do a |
| RELEASE_LOG_ERROR() with useful information in order to help diagnose potential issues |
| in the future. |
| |
| * Platform/IPC/Connection.cpp: |
| (IPC::Connection::Connection): |
| (IPC::Connection::enqueueIncomingMessage): |
| (IPC::Connection::MessagesThrottler::MessagesThrottler): |
| (IPC::Connection::MessagesThrottler::scheduleMessagesDispatch): |
| (IPC::Connection::MessagesThrottler::numberOfMessagesToProcess): |
| (IPC::Connection::dispatchIncomingMessages): |
| * Platform/IPC/Connection.h: |
| * Platform/IPC/mac/ConnectionMac.mm: |
| (IPC::Connection::kill): |
| |
| 2018-06-18 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Add a graceful exit for AuthenticationManager::initializeConnection |
| https://bugs.webkit.org/show_bug.cgi?id=186632 |
| <rdar://problem/41041033> |
| |
| Reviewed by Brent Fulgham. |
| |
| Add a graceful exit for AuthenticationManager::initializeConnection when the provided IPC connection |
| is null or the underlying xpc connection is null. |
| |
| * Shared/Authentication/cocoa/AuthenticationManagerCocoa.mm: |
| (WebKit::AuthenticationManager::initializeConnection): |
| |
| 2018-06-18 Youenn Fablet <youenn@apple.com> |
| |
| Validate Cross-Origin-Resource-Policy for resources cached in the MemoryCache |
| https://bugs.webkit.org/show_bug.cgi?id=186639 |
| <rdar://problem/41106984> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Make use of WebCore method to check CORP. |
| |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::validateResponse): |
| * NetworkProcess/NetworkLoadChecker.h: |
| |
| 2018-06-18 Karl Leplat <karl.leplat_ext@softathome.com> |
| |
| [Threaded paintingEngine] Fix rendering glitches |
| https://bugs.webkit.org/show_bug.cgi?id=186764 |
| |
| Reviewed by Žan Doberšek. |
| |
| * Shared/CoordinatedGraphics/CoordinatedBackingStore.cpp: |
| (WebKit::CoordinatedBackingStoreTile::swapBuffers): |
| We call Nicosia::Buffer function waitUntilPaintingComplete() |
| in order to synchronize of using Nicosia:buffer between MainThread |
| and ThreadedCompositor. |
| |
| |
| 2018-06-17 Chris Dumez <cdumez@apple.com> |
| |
| Crash under SuspendedPageProxy::~SuspendedPageProxy() |
| https://bugs.webkit.org/show_bug.cgi?id=186688 |
| <rdar://problem/41060769> |
| |
| Reviewed by Darin Adler. |
| |
| Ref the WebProcessProxy before calling suspendedPageWasDestroyed() on it as this |
| might cause the WebProcessProxy / WebProcessPool to get destroyed otherwise, and |
| we would crash trying to call unregisterSuspendedPageProxy() on the WebProcessPool |
| on the next line. |
| |
| * UIProcess/SuspendedPageProxy.cpp: |
| (WebKit::SuspendedPageProxy::~SuspendedPageProxy): |
| |
| 2018-06-17 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [WebKit on watchOS] Upstream watchOS source additions to OpenSource (Part 3) |
| https://bugs.webkit.org/show_bug.cgi?id=186442 |
| <rdar://problem/40879364> |
| |
| Reviewed by Darin Adler. |
| |
| Rename a category referencing "Extra zoom mode". |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| |
| 2018-06-12 Darin Adler <darin@apple.com> |
| |
| [Cocoa] Make some RetainPtr refinements to get more ready for ARC |
| https://bugs.webkit.org/show_bug.cgi?id=186526 |
| |
| Reviewed by Anders Carlsson. |
| |
| * Platform/cf/ModuleCF.cpp: |
| (WebKit::Module::load): Use move assignment instead of adoptCF/leakRef. |
| |
| * Shared/Cocoa/WKNSURLExtras.mm: |
| (+[NSURL _web_URLWithWTFString:]): Cast to NSURL * instead of doing the autorelease |
| here, since the NSURL * operator already does what we want. |
| (+[NSURL _web_URLWithWTFString:relativeToURL:]): Ditto. |
| |
| * UIProcess/ios/WKContentView.mm: |
| (-[WKContentView _wk_printedDocument]): Get rid of incorrect use of |
| RetainPtr::autorelease. We don't want to null out _printedDocument each time this |
| function is called. |
| |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm: |
| (collectIcons): Get rid of unnecessary use of RetainPtr::autorelease in a function |
| that returns a RetainPtr. |
| |
| 2018-06-15 Chris Dumez <cdumez@apple.com> |
| |
| Add API test coverage for SW RegistrationDatabase destruction and fix issues found by the test |
| https://bugs.webkit.org/show_bug.cgi?id=186681 |
| |
| Reviewed by Brady Eidson. |
| |
| Make sure StorageProcess::unregisterSWServerConnection() does not unnecessarily |
| create a SWServer. Otherwise, we were in quick session destroying the SWServer |
| and then re-constructing it for the same sessionID, merely to try ot unregister |
| a SWServerConnection. |
| |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::existingSWOriginStoreForSession const): |
| (WebKit::StorageProcess::unregisterSWServerConnection): |
| * StorageProcess/StorageProcess.h: |
| |
| 2018-06-15 Basuke Suzuki <Basuke.Suzuki@sony.com> |
| |
| [WinCairo] Move unrelated features of WorkQueueWin into IPC::Connection |
| https://bugs.webkit.org/show_bug.cgi?id=186582 |
| |
| Add EventListener private class to handle signaled tasks for I/O. |
| Originally they were in WTF::WorkQueueWin, but those features were not related |
| to WorkQueue and only used in IPC::ConnectionWin. Moved logic is more specialized |
| than old generalized logic. That was unneeded generalization. |
| |
| Reviewed by Brent Fulgham. |
| |
| * Platform/IPC/Connection.h: |
| (IPC::Connection::EventListener::state): |
| * Platform/IPC/win/ConnectionWin.cpp: |
| (IPC::Connection::platformInitialize): |
| (IPC::Connection::platformInvalidate): |
| (IPC::Connection::readEventHandler): |
| (IPC::Connection::writeEventHandler): |
| (IPC::Connection::invokeReadEventHandler): |
| (IPC::Connection::invokeWriteEventHandler): |
| (IPC::Connection::open): |
| (IPC::Connection::sendOutgoingMessage): |
| (IPC::Connection::EventListener::open): |
| (IPC::Connection::EventListener::callback): |
| (IPC::Connection::EventListener::close): |
| |
| 2018-06-15 Brady Eidson <beidson@apple.com> |
| |
| Crash in both StorageProcess and UIProcess when using custom WKWebsiteDataStores for data management. |
| <rdar://problem/41019893> and https://bugs.webkit.org/show_bug.cgi?id=186682 |
| |
| Reviewed by Chris Dumez. |
| |
| * UIProcess/Storage/StorageProcessProxy.cpp: |
| (WebKit::StorageProcessProxy::didClose): Protect this and the process pool as the cleanup that follows |
| might cause either to get destroyed. |
| |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::fetchDataAndApply): Protect the operating WebsiteDataStore while async operations |
| are in flight. Otherwise if the data store is destroyed, the SessionIDs for those operations will get |
| destroyed before they complete. |
| (WebKit::WebsiteDataStore::removeData): Ditto. |
| |
| 2018-06-15 Per Arne Vollan <pvollan@apple.com> |
| |
| Unreviewed build fix after r232634. |
| |
| * WebProcess/WebPage/DrawingArea.h: |
| * WebProcess/WebPage/DrawingArea.messages.in: |
| |
| 2018-06-15 Per Arne Vollan <pvollan@apple.com> |
| |
| DisplayRefreshMonitorMac should hold a weak pointer to WebPage. |
| https://bugs.webkit.org/show_bug.cgi?id=186683 |
| |
| Reviewed by Brent Fulgham. |
| |
| Instead of DisplayRefreshMonitorMac having a RefPtr to WebPage, it should have a weak pointer. |
| Having a RefPtr could in theory create reference cycles. This potential problem has not been |
| observed in practice, but it is safer to use a weak pointer. |
| |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/mac/DrawingAreaMac.cpp: |
| (WebKit::DisplayRefreshMonitorMac::DisplayRefreshMonitorMac): |
| (WebKit::DisplayRefreshMonitorMac::~DisplayRefreshMonitorMac): |
| (WebKit::DisplayRefreshMonitorMac::requestRefreshCallback): |
| |
| 2018-06-15 Carlos Alberto Lopez Perez <clopez@igalia.com> |
| |
| [GTK][WKE] Disable memory pressure handling when running layout tests (WTR) |
| https://bugs.webkit.org/show_bug.cgi?id=186663 |
| |
| Reviewed by Michael Catanzaro. |
| |
| r196943 added a mechanism to disable the memory pressure handling |
| on Mac. This patch enables using that mechanism also for GTK/WPE. |
| To do that the environment variable WEBKIT_DISABLE_MEMORY_PRESSURE_MONITOR |
| should bet set to 1. |
| We want to use this on the layout tests to avoid flaky tests caused |
| by accumulated leaks on the WebProcess by different tests. |
| |
| * UIProcess/gtk/WebProcessPoolGtk.cpp: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): |
| * UIProcess/wpe/WebProcessPoolWPE.cpp: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): |
| |
| 2018-06-15 Per Arne Vollan <pvollan@apple.com> |
| |
| Rollout r231818, as it introduced regression on tickets.com. |
| https://bugs.webkit.org/show_bug.cgi?id=186675 |
| |
| Unreviewed, rolling out. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::dispatchActivityStateChange): |
| * UIProcess/mac/DisplayLink.cpp: |
| (WebKit::DisplayLink::pause): Deleted. |
| (WebKit::DisplayLink::resume): Deleted. |
| * UIProcess/mac/DisplayLink.h: |
| |
| 2018-06-15 Thibault Saunier <tsaunier@igalia.com> |
| |
| [GTK][WPE]: Avoid using uninitialized launchOptions in getLaunchOptions |
| https://bugs.webkit.org/show_bug.cgi?id=185611 |
| |
| Reviewed by Chris Dumez. |
| |
| Otherwise we might segfault. |
| |
| * UIProcess/Plugins/PluginProcessProxy.cpp: |
| (WebKit::PluginProcessProxy::getLaunchOptions): |
| |
| 2018-06-14 Youenn Fablet <youenn@apple.com> |
| |
| Make NetworkProcess get cache storage parameters at creation of the CacheStorage engine |
| https://bugs.webkit.org/show_bug.cgi?id=186166 |
| |
| Reviewed by Alex Christensen. |
| |
| Make CacheStorage::Engine creation asynchronous. |
| Update Engine public methods be static methods taking a SessionID, which will be used to create the engine. |
| |
| Add IPC methods to retrieve cache storage parameters from NetworkProcess to UIProcess. |
| |
| Add NetworkProcessProxy ability to compute the cache storage parameters based on the SessionID. |
| For that purpose, make NetworkProcessProxy store a map of SessionID-to-WebsiteDataStore. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::deleteWebsiteData): |
| (WebKit::NetworkProcess::deleteWebsiteDataForOrigins): |
| (WebKit::NetworkProcess::cacheStorageParameters): |
| (WebKit::NetworkProcess::setCacheStorageParameters): |
| (WebKit::NetworkProcess::cacheStorageDirectory const): Deleted. |
| (WebKit::NetworkProcess::cacheStoragePerOriginQuota const): Deleted. |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * NetworkProcess/cache/CacheStorageEngine.cpp: |
| (WebKit::CacheStorage::Engine::from): |
| (WebKit::CacheStorage::Engine::fetchEntries): |
| (WebKit::CacheStorage::Engine::open): |
| (WebKit::CacheStorage::Engine::remove): |
| (WebKit::CacheStorage::Engine::retrieveCaches): |
| (WebKit::CacheStorage::Engine::retrieveRecords): |
| (WebKit::CacheStorage::Engine::putRecords): |
| (WebKit::CacheStorage::Engine::deleteMatchingRecords): |
| (WebKit::CacheStorage::Engine::lock): |
| (WebKit::CacheStorage::Engine::unlock): |
| (WebKit::CacheStorage::Engine::clearMemoryRepresentation): |
| (WebKit::CacheStorage::Engine::representation): |
| (WebKit::CacheStorage::Engine::clearAllCaches): |
| (WebKit::CacheStorage::Engine::clearCachesForOrigin): |
| (WebKit::CacheStorage::Engine::Engine): |
| (WebKit::CacheStorage::Engine::readCachesFromDisk): |
| (WebKit::CacheStorage::Engine::defaultEngine): Deleted. |
| * NetworkProcess/cache/CacheStorageEngine.h: |
| (WebKit::CacheStorage::Engine::shouldPersist const): |
| (WebKit::CacheStorage::Engine::weakPtrFactory): |
| (WebKit::CacheStorage::Engine::create): Deleted. |
| * NetworkProcess/cache/CacheStorageEngineConnection.cpp: |
| (WebKit::CacheStorageEngineConnection::~CacheStorageEngineConnection): |
| (WebKit::CacheStorageEngineConnection::open): |
| (WebKit::CacheStorageEngineConnection::remove): |
| (WebKit::CacheStorageEngineConnection::caches): |
| (WebKit::CacheStorageEngineConnection::retrieveRecords): |
| (WebKit::CacheStorageEngineConnection::deleteMatchingRecords): |
| (WebKit::CacheStorageEngineConnection::putRecords): |
| (WebKit::CacheStorageEngineConnection::reference): |
| (WebKit::CacheStorageEngineConnection::dereference): |
| (WebKit::CacheStorageEngineConnection::clearMemoryRepresentation): |
| (WebKit::CacheStorageEngineConnection::engineRepresentation): |
| * NetworkProcess/cache/CacheStorageEngineConnection.h: |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa): |
| * NetworkProcess/mac/RemoteNetworkingContext.mm: |
| (WebKit::RemoteNetworkingContext::ensureWebsiteDataStoreSession): |
| * Shared/WebsiteDataStoreParameters.cpp: |
| (WebKit::WebsiteDataStoreParameters::encode const): |
| (WebKit::WebsiteDataStoreParameters::decode): |
| (WebKit::WebsiteDataStoreParameters::privateSessionParameters): |
| * Shared/WebsiteDataStoreParameters.h: |
| (): Deleted. |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::addSession): |
| (WebKit::NetworkProcessProxy::removeSession): |
| (WebKit::NetworkProcessProxy::retrieveCacheStorageParameters): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| (WebKit::WebProcessPool::setAnyPageGroupMightHavePrivateBrowsingEnabled): |
| (WebKit::WebProcessPool::pageBeginUsingWebsiteDataStore): |
| (WebKit::WebProcessPool::pageEndUsingWebsiteDataStore): |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::~WebsiteDataStore): |
| |
| 2018-06-14 Basuke Suzuki <Basuke.Suzuki@sony.com> |
| |
| [Win] Add IPC error case for broken pipe |
| https://bugs.webkit.org/show_bug.cgi?id=186445 |
| |
| Add error handling for ERROR_BROKEN_PIPE on IPC::Connection::readEventHandler. |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * Platform/IPC/win/ConnectionWin.cpp: |
| (IPC::Connection::readEventHandler): |
| |
| 2018-06-14 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Shortcut classification for redirect to prevalent resource |
| https://bugs.webkit.org/show_bug.cgi?id=186627 |
| <rdar://problem/41132308> |
| |
| Reviewed by Brent Fulgham. |
| |
| This patch shortcuts classification of redirect collusion so that we more seldom |
| have to rely on the recursive backtrace of the redirect graph. The initial |
| implementation of Resource Load Statistics actually had this classification method. |
| |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::markAsPrevalentIfHasRedirectedToPrevalent): |
| Iterates through a non-classified resource's data for where it has redirected |
| and classifies it as prevalent if has redirected to |
| (WebKit::WebResourceLoadStatisticsStore::processStatisticsAndDataRecords): |
| Now calls WebResourceLoadStatisticsStore::markAsPrevalentIfHasRedirectedToPrevalent() |
| before regular classification steps. |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| |
| 2018-06-14 Youenn Fablet <youenn@apple.com> |
| |
| Apply CSP checks before Content blocker checks in NetworkLoadChecker as done by CachedResourceLoader |
| https://bugs.webkit.org/show_bug.cgi?id=186550 |
| |
| Reviewed by Alex Christensen. |
| |
| Do CSP checks and URL upgrade before content blocker checks. |
| |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::checkRequest): |
| (WebKit::NetworkLoadChecker::continueCheckingRequest): |
| |
| 2018-06-14 Brent Fulgham <bfulgham@apple.com> |
| |
| Plug-in Process crashing on Mojave (affects Flash, others) |
| https://bugs.webkit.org/show_bug.cgi?id=186628 |
| <rdar://problem/41120462> |
| |
| Reviewed by Eric Carlson. |
| |
| Add the missing “com.apple.security.cs.allow-unsigned-executable-memory” entitlement. Also alphabetize |
| the entitlements file to make it easier to read. |
| |
| * Configurations/PluginService.entitlements: |
| |
| 2018-06-14 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK][WPE] WebDriver: handle acceptInsecureCertificates capability |
| https://bugs.webkit.org/show_bug.cgi?id=186560 |
| |
| Reviewed by Brian Burg. |
| |
| * UIProcess/API/glib/WebKitAutomationSession.cpp: |
| (webkitAutomationSessionCreate): Check the acceptInsecureCertificates capability and set the TLS error policy in |
| the WebContext accordingly if needed. |
| * UIProcess/API/glib/WebKitAutomationSessionPrivate.h: |
| * UIProcess/API/glib/WebKitWebContext.cpp: |
| * UIProcess/Cocoa/AutomationClient.h: |
| * UIProcess/Cocoa/AutomationClient.mm: |
| (WebKit::AutomationClient::requestAutomationSession): Use SessionCapabilities to fill the session configuration. |
| (WebKit::AutomationClient::requestAutomationSessionWithCapabilities): Deleted. |
| |
| 2018-06-13 Adrian Perez de Castro <aperez@igalia.com> |
| |
| [WPE] Trying to access the remote inspector hits an assertion in the UIProcess |
| https://bugs.webkit.org/show_bug.cgi?id=186588 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Make both the WPE and GTK+ ports use /org/webkit/inspector as base prefix |
| for resource paths, which avoids needing a switcheroo depending on the port. |
| |
| * UIProcess/API/wpe/WebKit2InspectorGResourceBundle.xml: |
| * UIProcess/gtk/WebInspectorProxyGtk.cpp: |
| (WebKit::WebInspectorProxy::inspectorPageURL): |
| (WebKit::WebInspectorProxy::inspectorTestPageURL): |
| (WebKit::WebInspectorProxy::inspectorBaseURL): |
| * UIProcess/wpe/WebInspectorProxyWPE.cpp: |
| (WebKit::WebInspectorProxy::inspectorPageURL): |
| (WebKit::WebInspectorProxy::inspectorTestPageURL): |
| (WebKit::WebInspectorProxy::inspectorBaseURL): |
| * WebProcess/WebPage/gtk/WebInspectorUIGtk.cpp: |
| (WebKit::WebInspectorUI::localizedStringsURL): |
| (WebKit::RemoteWebInspectorUI::localizedStringsURL): |
| |
| 2018-06-13 Chris Dumez <cdumez@apple.com> |
| |
| Crash under SWServer::unregisterConnection(Connection&) |
| https://bugs.webkit.org/show_bug.cgi?id=186584 |
| <rdar://problem/40931680> |
| |
| Reviewed by Youenn Fablet. |
| |
| * StorageProcess/ServiceWorker/WebSWServerConnection.cpp: |
| * StorageProcess/ServiceWorker/WebSWServerConnection.h: |
| * StorageProcess/StorageToWebProcessConnection.cpp: |
| (WebKit::StorageToWebProcessConnection::~StorageToWebProcessConnection): |
| (WebKit::StorageToWebProcessConnection::didReceiveMessage): |
| (WebKit::StorageToWebProcessConnection::didReceiveSyncMessage): |
| (WebKit::StorageToWebProcessConnection::didClose): |
| (WebKit::StorageToWebProcessConnection::unregisterSWConnections): |
| (WebKit::StorageToWebProcessConnection::establishSWServerConnection): |
| * StorageProcess/StorageToWebProcessConnection.h: |
| |
| 2018-06-13 Dean Jackson <dino@apple.com> |
| |
| Disable AR support in WKWebView clients |
| https://bugs.webkit.org/show_bug.cgi?id=186611 |
| <rdar://problem/39544684> |
| |
| Reviewed by Jon Lee. |
| |
| Since it hasn't been adequately tested, System Preview (AR) should |
| be disabled by default for WKWebViews. |
| |
| Add a new WebPreference, and SPI into WKWebViewConfiguration. Also |
| don't register the WebViewContentProvider if the feature is |
| disabled. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: |
| (-[WKWebViewConfiguration init]): |
| (-[WKWebViewConfiguration encodeWithCoder:]): |
| (-[WKWebViewConfiguration initWithCoder:]): |
| (-[WKWebViewConfiguration copyWithZone:]): |
| (-[WKWebViewConfiguration _contentProviderRegistry]): |
| (-[WKWebViewConfiguration _systemPreviewEnabled]): |
| (-[WKWebViewConfiguration _setSystemPreviewEnabled:]): |
| * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: |
| * UIProcess/Cocoa/WKWebViewContentProviderRegistry.h: |
| * UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm: |
| (-[WKWebViewContentProviderRegistry initWithConfiguration:]): |
| (-[WKWebViewContentProviderRegistry init]): Deleted. |
| |
| 2018-06-13 Youenn Fablet <youenn@apple.com> |
| |
| Supported plugin check should be based on plugin identifier |
| https://bugs.webkit.org/show_bug.cgi?id=186578 |
| <rdar://problem/40523828> |
| |
| Reviewed by Darin Adler. |
| |
| Refactoring to move from Plugin name to Plugin identifier. |
| Set built-in pdf plugin identifier. |
| This allows making sure that the PDF plug-in check might not change according localization. |
| |
| * Scripts/webkit/messages.py: |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<PluginInfo>::encode): |
| (IPC::ArgumentCoder<PluginInfo>::decode): |
| * UIProcess/Plugins/PluginInfoStore.cpp: |
| (WebKit::PluginInfoStore::supportedPluginIdentifiers): |
| (WebKit::PluginInfoStore::addSupportedPlugin): |
| (WebKit::PluginInfoStore::supportedPluginNames): Deleted. |
| * UIProcess/Plugins/PluginInfoStore.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::getPlugins): |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebProcessProxy.messages.in: |
| * WebProcess/Plugins/PDF/PDFPlugin.mm: |
| (WebKit::PDFPlugin::pluginInfo): |
| * WebProcess/Plugins/WebPluginInfoProvider.cpp: |
| (WebKit::WebPluginInfoProvider::pluginInfo): |
| (WebKit::WebPluginInfoProvider::webVisiblePluginInfo): |
| (WebKit::WebPluginInfoProvider::populatePluginCache): |
| * WebProcess/Plugins/WebPluginInfoProvider.h: |
| |
| 2018-06-13 Chris Dumez <cdumez@apple.com> |
| |
| PSON: http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-redirect-collusion.html ASSERTS with process swap enabled |
| https://bugs.webkit.org/show_bug.cgi?id=186545 |
| |
| Reviewed by Brady Eidson. |
| |
| Move frame navigation logging for ITP purposes from the WebProcess to the UIProcess. |
| This information was previously logged in DocumentLoader::willSendRequest() and was getting |
| sync'd to the UIProcess at regular intervals or when the layout tests call testRunner's |
| statisticsNotifyObserver(). We now do the logging directly in the UIProcess, in |
| WebPageProxy::decidePolicyForNavigationAction (which was getting called via IPC from |
| DocumentLoader::willSendRequest()). |
| |
| This is more efficient and will also be needed soon due to the way process swap on navigation |
| deals with cross-origin redirects. On cross-origin redirect of the main frame, PSON cancels |
| the load and started a new load to the redirected to URL in the new WebProcess. As a result, |
| the new WebProcess is not aware that the load is a redirect, which is information that ITP |
| requires. By moving the ITP logging to the UIProcess, we still have access to this |
| information. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::decidePolicyForNavigationActionSync): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| - We now pass the full redirect response the the delegate method instead of a simple |
| isRedirect boolean. |
| - Log the navigation in the WebResourceLoadStatisticsStore for ITP purposes. |
| |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::areDomainsAssociated): |
| Equivalent of ResourceLoadObserver's areDomainsAssociated(). Most of the logic was moved |
| to ResourceLoadStatistics::areDomainsAssociated() to avoid code duplication. |
| |
| (WebKit::WebResourceLoadStatisticsStore::resourceLoadStatisticsUpdated): |
| This is called whenever a WebProcess sends new resource load statistics to the UIProcess. |
| Whenever this happens, we call processStatisticsAndDataRecords() right away, which is |
| sometimes the tests currently rely on. As a result, we can cancels any pending statistics |
| processing request that was scheduled by logFrameNavigation(). |
| |
| (WebKit::WebResourceLoadStatisticsStore::scheduleStatisticsProcessingRequestIfNecessary): |
| (WebKit::WebResourceLoadStatisticsStore::cancelPendingStatisticsProcessingRequest): |
| Whenever a navigation is logged and statistics have been updated, we need to make sure we |
| schedule a "timer" to process the new data. We do this at most every 5 seconds for performance |
| reasons. This 5 second interval matches what the ResourceLoadObserver is using in the WebProcess |
| to notify the UIProcess of new data. |
| |
| (WebKit::WebResourceLoadStatisticsStore::logFrameNavigation): |
| This code was moved from ResourceLoadObserver to WebResourceLoadStatisticsStore now that we |
| do this logging in the UIProcess instead of the WebProcess. One difference with WebCore is |
| that we use WebPageProxy::pageLoadState().url() as mainFrameURL instead of |
| WebPageProxy::mainFrame().url(). The reason for that is that WebPageProxy::mainFrame().url() |
| becomes empty in case of process swap but ITP still needs the actual main frame URL when the |
| navigation was triggered. WebPageProxy::pageLoadState().url() gives us this information. |
| |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: |
| We now pass the full redirect response the the delegate method instead of a simple |
| isRedirect boolean. |
| |
| 2018-06-13 Brent Fulgham <bfulgham@apple.com> |
| |
| Crash during interrupted process termination |
| https://bugs.webkit.org/show_bug.cgi?id=185373 |
| <rdar://problem/40019480> |
| |
| Reviewed by Alex Christensen. |
| |
| It's possible to encounter a crash if a user agent feature (such as Safari's responsiveness timer) decides |
| to kill a Web Process around the same time that a user decides to trigger a new page load. One of the two |
| termination operations may attempt to call methods on a nulled process pointer. |
| |
| We can avoid this by holding our own reference to the terminating process until the termination steps have |
| been completed. |
| |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageTerminate): Ref<> the active process while the termination call is performed. |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| ([WKWebView _killWebContentProcessAndResetState]): Ditto. |
| |
| 2018-06-13 Brian Burg <bburg@apple.com> |
| |
| [Cocoa] Web Automation: wrong modifiers sent for 'Help' virtual key |
| https://bugs.webkit.org/show_bug.cgi?id=186600 |
| <rdar://problem/41088912> |
| |
| Reviewed by Timothy Hatcher. |
| |
| This fixes a hang when running W3C test: |
| |
| special_keys.py::test_webdriver_special_key_sends_keydown[HELP-expected2] |
| |
| * UIProcess/Automation/mac/WebAutomationSessionMac.mm: |
| (WebKit::eventModifierFlagsForVirtualKey): |
| The help modifier doesn't seem to be used when pressing the Help key. |
| I verified this using the Help key on the Keyboard Viewer, since no |
| keyboards from the past decade actually have this physical button. |
| |
| 2018-06-13 Thibault Saunier <tsaunier@igalia.com> |
| |
| [WPE] Build getUserMedia support |
| https://bugs.webkit.org/show_bug.cgi?id=186547 |
| |
| Reviewed by Alejandro G. Castro. |
| |
| * SourcesWPE.txt: Compile files necessary for MediaStream/webrtc. |
| |
| 2018-06-13 Andy Estes <aestes@apple.com> |
| |
| [iOS] Synchronize PDF resizing with device rotation |
| https://bugs.webkit.org/show_bug.cgi?id=186587 |
| <rdar://problem/40922462> |
| |
| Reviewed by Darin Adler. |
| |
| Both -beginPDFViewRotation and -endPDFViewRotation need to be called as part of |
| the transition coordinator's -animateAlongsideTransition: block to be synchronized |
| with rotation. Additionally, updateBlock needs to be invoked between the two calls |
| so that PDFKit can capture the frame geometry before and after the update. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _beginAnimatedResizeWithUpdates:]): |
| * UIProcess/Cocoa/WKWebViewContentProvider.h: |
| * UIProcess/ios/WKPDFView.mm: |
| (-[WKPDFView web_beginAnimatedResizeWithUpdates:]): |
| (-[WKPDFView web_beginAnimatedResize]): Renamed to web_beginAnimatedResizeWithUpdates:. |
| (-[WKPDFView web_endAnimatedResize]): Deleted. |
| |
| 2018-06-12 Brent Fulgham <bfulgham@apple.com> |
| |
| Turn CSS Spring Animations and Link Preload off by default for production builds. |
| https://bugs.webkit.org/show_bug.cgi?id=186548 |
| <rdar://problem/41023774> |
| |
| Reviewed by Eric Carlson. |
| |
| * Shared/WebPreferences.yaml: Switch these features from 'on' to |
| DEFAULT_EXPERIMENTAL_FEATURES_ENABLED. |
| |
| 2018-06-12 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [WebKit on watchOS] Upstream watchOS source additions to OpenSource (Part 2) |
| https://bugs.webkit.org/show_bug.cgi?id=186442 |
| <rdar://problem/40879364> |
| |
| Reviewed by Tim Horton. |
| |
| Upstream most of the work around form controls on watchOS. Also, rename WKFormControlListViewController.* to |
| its intended name, WKQuickboardListViewController.*. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| * UIProcess/ios/forms/WKDatePickerViewController.h: |
| * UIProcess/ios/forms/WKDatePickerViewController.mm: |
| (datePickerSetButtonHeight): |
| (datePickerVerticalMargin): |
| (-[WKDatePickerWheelLabel initWithFrame:]): |
| (-[WKDatePickerWheelLabel lastSelectedDate]): |
| (-[WKDatePickerWheelLabel setLastSelectedDate:]): |
| (-[WKDatePickerWheelLabel needsUpdateForIndex:selectedDate:]): |
| (-[WKDatePickerWheel initWithStyle:]): |
| (-[WKDatePickerWheel initWithController:style:]): |
| (-[WKDatePickerWheel gestureRecognized:]): |
| (-[WKDatePickerWheel setDrawsFocusOutline:]): |
| (-[WKDatePickerWheel drawsFocusOutline]): |
| (-[WKDatePickerWheel gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]): |
| (-[WKDatePickerViewController initWithDelegate:]): |
| (-[WKDatePickerViewController viewDidLoad]): |
| (-[WKDatePickerViewController prefersStatusBarHidden]): |
| (-[WKDatePickerViewController viewWillAppear:]): |
| (-[WKDatePickerViewController viewDidAppear:]): |
| (-[WKDatePickerViewController viewDidDisappear:]): |
| (-[WKDatePickerViewController _handleStatusBarNavigation]): |
| (-[WKDatePickerViewController viewWillLayoutSubviews]): |
| (-[WKDatePickerViewController becomeFirstResponder]): |
| (-[WKDatePickerViewController defaultMinimumDate]): |
| (-[WKDatePickerViewController defaultMaximumDate]): |
| (-[WKDatePickerViewController _valueForInput]): |
| (-[WKDatePickerViewController _dateFromInitialText]): |
| (-[WKDatePickerViewController _setButtonPressed]): |
| (-[WKDatePickerViewController _updateSelectedPickerViewIndices]): |
| (-[WKDatePickerViewController _configurePickerView:]): |
| (-[WKDatePickerViewController setMinimumDate:]): |
| (-[WKDatePickerViewController minimumDate]): |
| (-[WKDatePickerViewController setMaximumDate:]): |
| (-[WKDatePickerViewController maximumDate]): |
| (-[WKDatePickerViewController setDate:]): |
| (-[WKDatePickerViewController setDateFromComponents:]): |
| (-[WKDatePickerViewController setDay:month:year:era:]): |
| (-[WKDatePickerViewController date]): |
| (-[WKDatePickerViewController _dateComponentForDay:month:year:era:]): |
| (-[WKDatePickerViewController _adjustDateToValidDateIfNecessary]): |
| (-[WKDatePickerViewController _createAndConfigureGranularityLabelWithText:]): |
| (-[WKDatePickerViewController _canonicalizeAndUpdateSelectedDate]): |
| (-[WKDatePickerViewController numberOfItemsInPickerView:]): |
| (-[WKDatePickerViewController pickerView:viewForItemAtIndex:]): |
| (-[WKDatePickerViewController didBeginInteractingWithDatePicker:]): |
| (-[WKDatePickerViewController pickerView:didSelectItemAtIndex:]): |
| (-[WKDatePickerViewController pickerViewWillBeginSelection:]): |
| (-[WKDatePickerViewController pickerViewDidEndSelection:]): |
| (-[WKDatePickerViewController _dayFromIndex:]): |
| (-[WKDatePickerViewController _eraAndYearFromIndex:]): |
| (-[WKDatePickerViewController _monthFromIndex:]): |
| (-[WKDatePickerViewController _indexFromDay:]): |
| (-[WKDatePickerViewController _indexFromYear:era:]): |
| (-[WKDatePickerViewController _indexFromMonth:]): |
| * UIProcess/ios/forms/WKFormControlListViewController.h: Removed. |
| * UIProcess/ios/forms/WKFormControlListViewController.mm: Removed. |
| * UIProcess/ios/forms/WKNumberPadViewController.h: |
| * UIProcess/ios/forms/WKNumberPadViewController.mm: |
| (inputLabelFontSize): |
| (-[WKNumberPadViewController initWithDelegate:initialText:inputMode:]): |
| (-[WKNumberPadViewController dealloc]): |
| (-[WKNumberPadViewController viewDidLoad]): |
| (-[WKNumberPadViewController viewWillDisappear:]): |
| (-[WKNumberPadViewController viewWillLayoutSubviews]): |
| (-[WKNumberPadViewController _reloadHeaderViewFromInputText]): |
| (-[WKNumberPadViewController didSelectKey:]): |
| (-[WKNumberPadViewController _handleKeyPress:]): |
| (-[WKNumberPadViewController _cancelInput]): |
| (-[WKNumberPadViewController _deleteLastInputCharacter]): |
| (-[WKNumberPadViewController _deleteButtonPressed]): |
| (-[WKNumberPadViewController _cancelDeletionTimers]): |
| (-[WKNumberPadViewController _startDeletionTimer]): |
| (-[WKNumberPadViewController _deletionTimerFired]): |
| (-[WKNumberPadViewController addContentViewAnimations:]): |
| * UIProcess/ios/forms/WKQuickboardListViewController.h: Added. |
| * UIProcess/ios/forms/WKQuickboardListViewController.mm: Added. |
| (-[WKQuickboardListItemCell topToLabelBaselineSpecValue]): |
| (-[WKQuickboardListItemCell baselineToBottomSpecValue]): |
| (-[WKQuickboardListViewController initWithDelegate:]): |
| (-[WKQuickboardListViewController updateContextViewIfNeeded]): |
| (-[WKQuickboardListViewController prefersStatusBarHidden]): |
| (-[WKQuickboardListViewController viewDidLoad]): |
| (-[WKQuickboardListViewController viewWillAppear:]): |
| (-[WKQuickboardListViewController viewDidDisappear:]): |
| (-[WKQuickboardListViewController _handleStatusBarNavigation]): |
| (-[WKQuickboardListViewController reloadContextView]): |
| (-[WKQuickboardListViewController actionController]): |
| (-[WKQuickboardListViewController languageControllerDidChangePrimaryLanguage:]): |
| (-[WKQuickboardListViewController headerContentViewHeight]): |
| (-[WKQuickboardListViewController headerContentView]): |
| (configureStatusBarForController): |
| * UIProcess/ios/forms/WKSelectMenuListViewController.h: |
| * UIProcess/ios/forms/WKSelectMenuListViewController.mm: |
| (-[WKSelectMenuItemCell initWithStyle:reuseIdentifier:]): |
| (-[WKSelectMenuItemCell imageView]): |
| (-[WKSelectMenuListViewController initWithDelegate:]): |
| (-[WKSelectMenuListViewController viewDidLoad]): |
| (-[WKSelectMenuListViewController acceptButtonTappedWithCompletion:]): |
| (-[WKSelectMenuListViewController shouldShowTrayView]): |
| (-[WKSelectMenuListViewController didSelectListItem:]): |
| (-[WKSelectMenuListViewController numberOfListItems]): |
| (-[WKSelectMenuListViewController heightForListItem:width:]): |
| (-[WKSelectMenuListViewController cellForListItem:]): |
| (-[WKSelectMenuListViewController selectItemAtIndex:]): |
| * UIProcess/ios/forms/WKTimePickerViewController.h: |
| * UIProcess/ios/forms/WKTimePickerViewController.mm: |
| (-[WKTimePickerViewController initWithDelegate:]): |
| (-[WKTimePickerViewController dateFormatter]): |
| (-[WKTimePickerViewController timeValueForFormControls]): |
| (-[WKTimePickerViewController dateComponentsFromInitialValue]): |
| (-[WKTimePickerViewController viewDidAppear:]): |
| (-[WKTimePickerViewController viewDidLoad]): |
| (-[WKTimePickerViewController becomeFirstResponder]): |
| (-[WKTimePickerViewController setHour:minute:]): |
| (-[WKTimePickerViewController leftButtonWOTAction]): |
| (-[WKTimePickerViewController rightButtonWOTAction]): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-06-12 Jer Noble <jer.noble@apple.com> |
| |
| Make Modern EME An Experimental Feature Again |
| https://bugs.webkit.org/show_bug.cgi?id=186569 |
| <rdar://problem/41054402> |
| |
| Reviewed by Eric Carlson. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-06-12 Andy Estes <aestes@apple.com> |
| |
| [watchOS] Enable NetworkActivityTracker |
| https://bugs.webkit.org/show_bug.cgi?id=186568 |
| <rdar://problem/41050624> |
| |
| Reviewed by Tim Horton. |
| |
| * NetworkProcess/NetworkActivityTracker.h: |
| |
| 2018-06-12 Antti Koivisto <antti@apple.com> |
| |
| Add performance logging for slow cache retrieves |
| https://bugs.webkit.org/show_bug.cgi?id=186520 |
| <rdar://problem/41002070> |
| |
| Reviewed by Chris Dumez. |
| |
| We sometimes see slow cache retrieves in logs. Add some more logging to better analyze these cases. |
| |
| This patch adds timings to all cache storage retrieve operations and passes them up to the client. |
| We then log the timings on NetworkResourceLoader levels if needed. Items logged include |
| |
| - total retrieve time |
| - dispatch delay and number of resources dispatched before this one |
| - record I/O time |
| - blob I/O time |
| - whether cache shrink was in progress |
| - whether cache synchronization was in progress |
| - cancellation |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::retrieveCacheEntry): |
| (WebKit::NetworkResourceLoader::logSlowCacheRetrieveIfNeeded): |
| |
| Log if the retrieve took more than 1s. |
| |
| * NetworkProcess/NetworkResourceLoader.h: |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::Caches::readRecord): |
| * NetworkProcess/cache/NetworkCache.cpp: |
| (WebKit::NetworkCache::Cache::retrieve): |
| (WebKit::NetworkCache::Cache::completeRetrieve): |
| (WebKit::NetworkCache::Cache::retrieveData): |
| * NetworkProcess/cache/NetworkCache.h: |
| * NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp: |
| (WebKit::NetworkCache::SpeculativeLoadManager::retrieveEntryFromStorage): |
| (WebKit::NetworkCache::SpeculativeLoadManager::retrieveSubresourcesEntry): |
| |
| SpeculativeLoadManager does not records specific timings yet but at least we do log when they occur. |
| |
| * NetworkProcess/cache/NetworkCacheStorage.cpp: |
| (WebKit::NetworkCache::Storage::ReadOperation::cancel): |
| (WebKit::NetworkCache::Storage::ReadOperation::finish): |
| |
| Record timing info in ReadOperations. |
| |
| (WebKit::NetworkCache::Storage::dispatchReadOperation): |
| (WebKit::NetworkCache::retrieveFromMemory): |
| (WebKit::NetworkCache::Storage::retrieve): |
| * NetworkProcess/cache/NetworkCacheStorage.h: |
| |
| 2018-06-11 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Update OptionsGTK.cmake and NEWS for 2.21.4 release. |
| |
| * gtk/NEWS: Add release notes for 2.21.4. |
| |
| 2018-06-11 Youenn Fablet <youenn@apple.com> |
| |
| Improve error messages in case FetchEvent.respondWith has a rejected promise |
| https://bugs.webkit.org/show_bug.cgi?id=186368 |
| |
| Reviewed by Chris Dumez. |
| |
| Log in JS console in case of failures. |
| Rely on ThreadableLoader to log which client actually failed. |
| |
| * WebProcess/Storage/ServiceWorkerClientFetch.cpp: |
| (WebKit::ServiceWorkerClientFetch::didFail): |
| |
| 2018-06-11 Chris Dumez <cdumez@apple.com> |
| |
| http/tests/security/xss-DENIED-script-inject-into-inactive-window2.html times out with PSON enabled |
| https://bugs.webkit.org/show_bug.cgi?id=186546 |
| |
| Reviewed by Brady Eidson. |
| |
| Disable process swap on navigation in frames that have opened other frames via |
| window.open(). These new windows may have a WindowProxy to their opener, and it |
| would therefore be unsafe to process swap at this point. |
| |
| * Shared/NavigationActionData.cpp: |
| (WebKit::NavigationActionData::encode const): |
| (WebKit::NavigationActionData::decode): |
| * Shared/NavigationActionData.h: |
| * UIProcess/API/APINavigation.h: |
| (API::Navigation::setHasOpenedFrames): |
| (API::Navigation::hasOpenedFrames const): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigationInternal): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| |
| 2018-06-11 Keith Rollin <krollin@apple.com> |
| |
| Add logging around internalError(const URL&) |
| https://bugs.webkit.org/show_bug.cgi?id=186369 |
| <rdar://problem/40872046> |
| |
| Reviewed by Brent Fulgham. |
| |
| There are times when we receive bug reports where the user says that |
| they are simply shown a page saying an internal error occurred. To |
| help understand the circumstances of that error, add some logging to |
| internalError() in WebErrors.cpp. This logging logs at the Error level |
| that internalError() was called and then logs a backtrace. |
| |
| * Shared/WebErrors.cpp: |
| (WebKit::internalError): |
| |
| 2018-06-11 Tim Horton <timothy_horton@apple.com> |
| |
| Link drag image is inconsistently unreadable in dark mode |
| https://bugs.webkit.org/show_bug.cgi?id=186472 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::useDefaultAppearance): |
| Make defaultAppearance accurate even if useSystemAppearance is false. |
| Some parts of WebKit (like the link drag image, but also context menus) |
| want to be able to follow the system appearance regardless of whether |
| the view or content has opted in. |
| |
| 2018-06-11 Chris Dumez <cdumez@apple.com> |
| |
| http/tests/security/cors-post-redirect-307.html fails with PSON enabled |
| https://bugs.webkit.org/show_bug.cgi?id=186441 |
| |
| Reviewed by Brady Eidson. |
| |
| Rename existing flag to something a bit more generic, now that it is used for |
| more things than bypassing the navigation policy check. |
| |
| * Shared/LoadParameters.cpp: |
| (WebKit::LoadParameters::encode const): |
| (WebKit::LoadParameters::decode): |
| * Shared/LoadParameters.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::reattachToWebProcessForReload): |
| (WebKit::WebPageProxy::reattachToWebProcessWithItem): |
| (WebKit::WebPageProxy::loadRequest): |
| (WebKit::WebPageProxy::loadRequestWithNavigation): |
| (WebKit::WebPageProxy::goToBackForwardItem): |
| (WebKit::WebPageProxy::continueNavigationInNewProcess): |
| * UIProcess/WebPageProxy.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::loadRequest): |
| (WebKit::WebPage::goToBackForwardItem): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2018-06-11 Nan Wang <n_wang@apple.com> |
| |
| AX: [iOS] accessibility sometimes doesn't know process suspension is canceled |
| https://bugs.webkit.org/show_bug.cgi?id=186450 |
| |
| Reviewed by Chris Fleizach. |
| |
| There's some early return condition in WebProcess::cancelPrepareToSuspend() which |
| could lead to accessibility failing to post process status notificaiton. Fixed it |
| by moving the accessibility notification before the early return condition. |
| |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::cancelPrepareToSuspend): |
| |
| 2018-06-10 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK][WPE] Add API run run javascript from a WebKitWebView in an isolated world |
| https://bugs.webkit.org/show_bug.cgi?id=186192 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Add webkit_web_view_run_javascript_in_world() that receives a world name. Also add |
| webkit_script_world_new_with_name() to create an isolated world with a name and webkit_script_world_get_name() |
| to get the name of a WebKitScriptWorld. |
| |
| * UIProcess/API/glib/WebKitWebView.cpp: |
| (webkit_web_view_run_javascript): |
| (webkit_web_view_run_javascript_finish): |
| (webkit_web_view_run_javascript_in_world): |
| (webkit_web_view_run_javascript_in_world_finish): |
| * UIProcess/API/gtk/WebKitWebView.h: |
| * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: Add new symbols. |
| * UIProcess/API/wpe/WebKitWebView.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::runJavaScriptInMainFrameScriptWorld): Send RunJavaScriptInMainFrameScriptWorld message to |
| the WebProcess. |
| * UIProcess/WebPageProxy.h: |
| * WebProcess/InjectedBundle/API/glib/WebKitScriptWorld.cpp: |
| (webkitScriptWorldCreate): |
| (webkit_script_world_new_with_name): |
| (webkit_script_world_get_name): |
| * WebProcess/InjectedBundle/API/gtk/WebKitScriptWorld.h: |
| * WebProcess/InjectedBundle/API/wpe/WebKitScriptWorld.h: |
| * WebProcess/InjectedBundle/InjectedBundleScriptWorld.cpp: |
| (WebKit::InjectedBundleScriptWorld::find): Find an InjectedBundleScriptWorld by its name. |
| * WebProcess/InjectedBundle/InjectedBundleScriptWorld.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::runJavaScriptInMainFrameScriptWorld): Find the InjectedBundleScriptWorld for the given name |
| and run the script in its js context. |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: Add RunJavaScriptInMainFrameScriptWorld message. |
| |
| 2018-06-10 Chris Dumez <cdumez@apple.com> |
| |
| Reload the Web view in case of crash if the client does not implement webViewWebContentProcessDidTerminate delegate |
| https://bugs.webkit.org/show_bug.cgi?id=186468 |
| |
| Reviewed by Geoffrey Garen. |
| |
| We now attempt to reload the Web view if the web content process crashes and the client |
| does not implement the webViewWebContentProcessDidTerminate delegate (or any of the similar |
| delegates in our SPI). |
| |
| * UIProcess/API/APILoaderClient.h: |
| (API::LoaderClient::processDidCrash): |
| * UIProcess/API/APINavigationClient.h: |
| (API::NavigationClient::processDidTerminate): |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetPageLoaderClient): |
| (WKPageSetPageNavigationClient): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/API/glib/WebKitNavigationClient.cpp: |
| * UIProcess/Cocoa/NavigationState.h: |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationClient::processDidTerminate): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::m_resetRecentCrashCountTimer): |
| (WebKit::WebPageProxy::didFinishLoadForFrame): |
| (WebKit::shouldReloadAfterProcessTermination): |
| (WebKit::WebPageProxy::dispatchProcessDidTerminate): |
| (WebKit::WebPageProxy::tryReloadAfterProcessTermination): |
| (WebKit::WebPageProxy::resetRecentCrashCountSoon): |
| (WebKit::WebPageProxy::resetRecentCrashCount): |
| (WebKit::m_configurationPreferenceValues): Deleted. |
| * UIProcess/WebPageProxy.h: |
| |
| 2018-06-09 Dan Bernstein <mitz@apple.com> |
| |
| [Xcode] Clean up and modernize some build setting definitions |
| https://bugs.webkit.org/show_bug.cgi?id=186463 |
| |
| Reviewed by Sam Weinig. |
| |
| * Configurations/Base.xcconfig: Removed definition for macOS 10.11. |
| * Configurations/BaseTarget.xcconfig: Simplified the definition of WK_PRIVATE_FRAMEWORKS_DIR |
| now that WK_XCODE_SUPPORTS_TEXT_BASED_STUBS is true for all supported Xcode versions. |
| * Configurations/DebugRelease.xcconfig: Removed definition for macOS 10.11. |
| * Configurations/FeatureDefines.xcconfig: Simplified the definitions of ENABLE_APPLE_PAY and |
| ENABLE_VIDEO_PRESENTATION_MODE now macOS 10.12 is the earliest supported version. |
| * Configurations/Version.xcconfig: Removed definition for macOS 10.11. |
| * Configurations/WebKitTargetConditionals.xcconfig: Removed definitions for macOS 10.11. |
| |
| 2018-06-09 Dan Bernstein <mitz@apple.com> |
| |
| Added missing file references to the Configuration group. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-06-08 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [WebKit on watchOS] Upstream watchOS source additions to OpenSource (Part 1) |
| https://bugs.webkit.org/show_bug.cgi?id=186442 |
| <rdar://problem/40879364> |
| |
| Reviewed by Tim Horton. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView dismissQuickboardViewControllerAndRevealFocusedFormOverlayIfNecessary:]): |
| (-[WKContentView quickboard:textEntered:]): |
| (-[WKContentView quickboardInputCancelled:]): |
| (-[WKContentView viewController:inputContextViewHeightForSize:]): |
| (-[WKContentView allowsLanguageSelectionMenuForListViewController:]): |
| (-[WKContentView inputContextViewForViewController:]): |
| (-[WKContentView inputLabelTextForViewController:]): |
| (-[WKContentView initialValueForViewController:]): |
| (-[WKContentView shouldDisplayInputContextViewForListViewController:]): |
| (-[WKContentView numericInputModeForListViewController:]): |
| (-[WKContentView textContentTypeForListViewController:]): |
| (-[WKContentView textSuggestionsForListViewController:]): |
| (-[WKContentView listViewController:didSelectTextSuggestion:]): |
| (-[WKContentView allowsDictationInputForListViewController:]): |
| * UIProcess/ios/WKScrollView.mm: |
| (-[WKScrollView initWithFrame:]): |
| (-[WKScrollView addGestureRecognizer:]): |
| (-[WKScrollView _configureDigitalCrownScrolling]): |
| (-[WKScrollView _puic_contentOffsetForCrownInputSequencerOffset:]): |
| * UIProcess/ios/forms/WKFocusedFormControlView.h: |
| * UIProcess/ios/forms/WKFocusedFormControlView.mm: |
| (pathWithRoundedRectInFrame): |
| (-[WKFocusedFormControlView initWithFrame:delegate:]): |
| (-[WKFocusedFormControlView handleWheelEvent:]): |
| (-[WKFocusedFormControlView show:]): |
| (-[WKFocusedFormControlView hide:]): |
| (-[WKFocusedFormControlView delegate]): |
| (-[WKFocusedFormControlView setDelegate:]): |
| (-[WKFocusedFormControlView dimmingMaskLayer]): |
| (-[WKFocusedFormControlView handleTap]): |
| (-[WKFocusedFormControlView _wheelChangedWithEvent:]): |
| (-[WKFocusedFormControlView didDismiss]): |
| (-[WKFocusedFormControlView didSubmit]): |
| (-[WKFocusedFormControlView layoutSubviews]): |
| (-[WKFocusedFormControlView setHighlightedFrame:]): |
| (-[WKFocusedFormControlView computeDimmingViewCutoutPath]): |
| (-[WKFocusedFormControlView disengageFocusedFormControlNavigation]): |
| (-[WKFocusedFormControlView engageFocusedFormControlNavigation]): |
| (-[WKFocusedFormControlView reloadData:]): |
| (-[WKFocusedFormControlView setMaskLayerPosition:animated:]): |
| (-[WKFocusedFormControlView setHighlightedFrame:animated:]): |
| (-[WKFocusedFormControlView submitActionName]): |
| (submitActionNameFontAttributes): |
| (-[WKFocusedFormControlView setSubmitActionName:]): |
| (-[WKFocusedFormControlView scrollViewForCrownInputSequencer]): |
| (-[WKFocusedFormControlView updateViewForCurrentCrownInputSequencerState]): |
| (-[WKFocusedFormControlView scrollOffsetForCrownInputOffset:]): |
| (-[WKFocusedFormControlView _crownInputSequencerTimerFired]): |
| (-[WKFocusedFormControlView cancelPendingCrownInputSequencerUpdate]): |
| (-[WKFocusedFormControlView scheduleCrownInputSequencerUpdate]): |
| (-[WKFocusedFormControlView crownInputSequencerOffsetDidChange:]): |
| (-[WKFocusedFormControlView crownInputSequencerDidBecomeIdle:willDecelerate:]): |
| (-[WKFocusedFormControlView crownInputSequencerIdleDidChange:]): |
| (-[WKFocusedFormControlView suggestions]): |
| (-[WKFocusedFormControlView setSuggestions:]): |
| (-[WKFocusedFormControlView handleWebViewCredentialsSaveForWebsiteURL:user:password:passwordIsAutoGenerated:]): |
| (-[WKFocusedFormControlView selectionWillChange:]): |
| (-[WKFocusedFormControlView selectionDidChange:]): |
| (-[WKFocusedFormControlView textWillChange:]): |
| (-[WKFocusedFormControlView textDidChange:]): |
| |
| 2018-06-08 Per Arne Vollan <pvollan@apple.com> |
| |
| Only display refresh monitors having requested display refresh callback should get notified on screen updates. |
| https://bugs.webkit.org/show_bug.cgi?id=186397 |
| <rdar://problem/40897835> |
| |
| Reviewed by Brent Fulgham. |
| |
| Since all display refresh monitors in the WebContent process share a single UI process display link, |
| we should make sure that only the monitors having requested callback are getting notified on screen |
| updates. I have not been able to reproduce a case where a monitor is being notified without having |
| requested updates, but we should safeguard the code for future code changes. |
| |
| * WebProcess/WebPage/mac/DrawingAreaMac.cpp: |
| |
| 2018-06-08 Aditya Keerthi <akeerthi@apple.com> |
| |
| [Datalist] Allow TextFieldInputType to show and hide suggestions |
| https://bugs.webkit.org/show_bug.cgi?id=186151 |
| |
| Reviewed by Tim Horton. |
| |
| Added WebDataListSuggestionPicker to send messages to the UIProcess in order to update the suggestions view. |
| This object is also responsible for forwarding messages from WebKit into the DataListSuggestionsClient, which |
| is the TextFieldInputType in this case. The client needs to know when the suggestions are hidden or if an |
| suggestion has been selected. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::createDataListSuggestionPicker): Responsible for creating WebDataListSuggestionPicker to send/receive messages. |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| * WebProcess/WebCoreSupport/WebDataListSuggestionPicker.cpp: Added. Responsible for sending messages to UIProcess and updating the DataListSuggestionsClient. |
| (WebKit::WebDataListSuggestionPicker::WebDataListSuggestionPicker): |
| (WebKit::WebDataListSuggestionPicker::~WebDataListSuggestionPicker): |
| (WebKit::WebDataListSuggestionPicker::handleKeydownWithIdentifier): |
| (WebKit::WebDataListSuggestionPicker::didSelectOption): |
| (WebKit::WebDataListSuggestionPicker::didCloseSuggestions): |
| (WebKit::WebDataListSuggestionPicker::close): |
| (WebKit::WebDataListSuggestionPicker::displayWithActivationType): |
| * WebProcess/WebCoreSupport/WebDataListSuggestionPicker.h: Added. |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::setActiveDataListSuggestionPicker): |
| (WebKit::WebPage::didSelectDataListOption): Called by UIProcess when option selected. |
| (WebKit::WebPage::didCloseSuggestions): Called by UIProcess if the suggestions view is closed. |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2018-06-08 Basuke Suzuki <Basuke.Suzuki@sony.com> |
| |
| [Win] Fix initial value of HANDLE to INVALID_HANDLE_VALUE |
| https://bugs.webkit.org/show_bug.cgi?id=186405 |
| |
| The handle was not initialized at all. Initialized with INVALID_HANDLE_VALUE. |
| |
| Reviewed by Per Arne Vollan. |
| |
| * Platform/IPC/Attachment.h: |
| * Platform/IPC/win/AttachmentWin.cpp: |
| (IPC::Attachment::decode): |
| |
| 2018-06-08 Brian Burg <bburg@apple.com> |
| |
| [Cocoa] Web Automation: include browser name and version in listing for automation targets |
| https://bugs.webkit.org/show_bug.cgi?id=186204 |
| <rdar://problem/36950423> |
| |
| Reviewed by Darin Adler. |
| |
| Add a new delegate method that allows the client to set the name and version |
| of the browser as returned in the 'browserName' and 'browserVersion' capabilities. |
| If the delegate methods are not implemented, try to get this information from |
| the main bundle. |
| |
| In the RWI protocol, these fields are added to automation target listings. |
| |
| * UIProcess/API/Cocoa/_WKAutomationDelegate.h: |
| * UIProcess/Cocoa/AutomationClient.h: |
| * UIProcess/Cocoa/AutomationClient.mm: |
| (WebKit::AutomationClient::AutomationClient): |
| (WebKit::AutomationClient::browserName const): |
| (WebKit::AutomationClient::browserVersion const): |
| |
| 2018-06-08 Per Arne Vollan <pvollan@apple.com> |
| |
| Run display links in the UI process when ENABLE(WEBPROCESS_WINDOWSERVER_BLOCKING) is true. |
| https://bugs.webkit.org/show_bug.cgi?id=186379 |
| |
| Reviewed by Brent Fulgham. |
| |
| Replace __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400 with ENABLE(WEBPROCESS_WINDOWSERVER_BLOCKING). |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::dispatchActivityStateChange): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/mac/DisplayLink.cpp: |
| * UIProcess/mac/DisplayLink.h: |
| * UIProcess/mac/WebPageProxyMac.mm: |
| * WebProcess/WebPage/DrawingArea.cpp: |
| * WebProcess/WebPage/mac/DrawingAreaMac.cpp: |
| |
| 2018-06-08 Per Arne Vollan <pvollan@apple.com> |
| |
| Send display link IPC message from display link thread. |
| https://bugs.webkit.org/show_bug.cgi?id=186429 |
| |
| Reviewed by Geoffrey Garen. |
| |
| When the display link callback is firing on the display link thread in the UI process, |
| we schedule a function to be called on the main thread to send the IPC message to the |
| WebContent process. Since Connection::send is thread-safe, we can just send the message |
| from the display link thread, instead. This should be a small performance improvement. |
| |
| * UIProcess/mac/DisplayLink.cpp: |
| (WebKit::DisplayLink::DisplayLink): |
| (WebKit::DisplayLink::displayLinkCallback): |
| * UIProcess/mac/DisplayLink.h: |
| |
| 2018-06-07 Chris Dumez <cdumez@apple.com> |
| |
| Add base class to get WeakPtrFactory member and avoid some boilerplate code |
| https://bugs.webkit.org/show_bug.cgi?id=186407 |
| |
| Reviewed by Brent Fulgham. |
| |
| Add CanMakeWeakPtr base class to get WeakPtrFactory member and its getter, in |
| order to avoid some boilerplate code in every class needing a WeakPtrFactory. |
| This also gets rid of old-style createWeakPtr() methods in favor of the newer |
| makeWeakPtr(). |
| |
| * NetworkProcess/NetworkLoadChecker.h: |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::canAuthenticateAgainstProtectionSpace): |
| * NetworkProcess/PreconnectTask.h: |
| * NetworkProcess/cache/CacheStorageEngine.h: |
| * Shared/Authentication/AuthenticationManager.h: |
| * UIProcess/API/APIAttachment.cpp: |
| (API::Attachment::Attachment): |
| * UIProcess/ApplePay/WebPaymentCoordinatorProxy.cpp: |
| (WebKit::WebPaymentCoordinatorProxy::canMakePaymentsWithActiveCard): |
| (WebKit::WebPaymentCoordinatorProxy::openPaymentSetup): |
| * UIProcess/ApplePay/WebPaymentCoordinatorProxy.h: |
| * UIProcess/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm: |
| (WebKit::WebPaymentCoordinatorProxy::platformShowPaymentUI): |
| * UIProcess/ApplicationStateTracker.h: |
| * UIProcess/ApplicationStateTracker.mm: |
| (WebKit::ApplicationStateTracker::ApplicationStateTracker): |
| * UIProcess/Cocoa/ViewGestureController.cpp: |
| (WebKit::ViewGestureController::setAlternateBackForwardListSourcePage): |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::updateWindowAndViewFrames): |
| (WebKit::WebViewImpl::setTopContentInset): |
| (WebKit::WebViewImpl::viewDidMoveToWindow): |
| (WebKit::WebViewImpl::prepareForMoveToWindow): |
| (WebKit::WebViewImpl::validateUserInterfaceItem): |
| (WebKit::WebViewImpl::requestCandidatesForSelectionIfNeeded): |
| (WebKit::WebViewImpl::interpretKeyEvent): |
| (WebKit::WebViewImpl::firstRectForCharacterRange): |
| (WebKit::WebViewImpl::performKeyEquivalent): |
| (WebKit::WebViewImpl::keyUp): |
| (WebKit::WebViewImpl::keyDown): |
| * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.cpp: |
| (WebKit::WebCredentialsMessengerProxy::makeCredential): |
| (WebKit::WebCredentialsMessengerProxy::getAssertion): |
| * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.h: |
| * UIProcess/Downloads/DownloadProxy.cpp: |
| (WebKit::DownloadProxy::setOriginatingPage): |
| * UIProcess/Launcher/ProcessLauncher.h: |
| * UIProcess/Launcher/mac/ProcessLauncherMac.mm: |
| (WebKit::ProcessLauncher::launchProcess): |
| * UIProcess/ProcessAssertion.h: |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| * UIProcess/gtk/WaylandCompositor.cpp: |
| (WebKit::WaylandCompositor::Surface::attachBuffer): |
| * UIProcess/gtk/WaylandCompositor.h: |
| * UIProcess/ios/ProcessAssertionIOS.mm: |
| (WebKit::ProcessAssertion::ProcessAssertion): |
| * UIProcess/mac/DisplayLink.cpp: |
| (WebKit::DisplayLink::displayLinkCallback): |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.mm: |
| (WebKit::RemoteLayerTreeDisplayRefreshMonitor::RemoteLayerTreeDisplayRefreshMonitor): |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h: |
| |
| 2018-06-07 Dan Bernstein <mitz@apple.com> |
| |
| Don’t install process-webcontent-entitlements.sh into the built XPC services. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-06-07 Andy Estes <aestes@apple.com> |
| |
| [iOS] Inform the client when PDFKit's extension process crashes |
| https://bugs.webkit.org/show_bug.cgi?id=186418 |
| <rdar://problem/40175864> |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::processDidTerminate): |
| (WebKit::WebPageProxy::dispatchProcessDidTerminate): |
| |
| Separated the dispatching of delegate methods from the rest of the web |
| process-specific processDidTerminate logic. |
| |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/ios/WKPDFView.mm: |
| (-[WKPDFView web_setContentProviderData:suggestedFilename:]): |
| |
| Minor style fix. |
| |
| (-[WKPDFView pdfHostViewControllerExtensionProcessDidCrash:]): |
| |
| Called WebPageProxy::dispatchProcessDidTerminate on the main thread. |
| |
| 2018-06-07 Andy Estes <aestes@apple.com> |
| |
| [iOS] Unable to present the share sheet after saving a PDF to Files.app |
| https://bugs.webkit.org/show_bug.cgi?id=186413 |
| <rdar://problem/39937488> |
| |
| Reviewed by Tim Horton. |
| |
| WKApplicationStateTrackingView (WKPDFView's superclass) keeps track of whether |
| it's in a window so that it can suspend and resume the web process accordingly. |
| However, in WKPDFView's case, PDFKit's host view is in the window instead of |
| WKPDFView itself when a PDF is being displayed (WKPDFView is only in a window as a |
| placeholder while the PDF loads). Since WKApplicationStateTrackingView doesn't |
| think its in a window, it suspends the web process, preventing messages necessary |
| to displaying the share sheet from being delivered. |
| |
| Fix this by teaching WKApplicationStateTrackingView to consider the in-windowness |
| of the proper content view. For all cases other than WKPDFView, this is |self|. |
| For WKPDFView, it is the PDFHostViewController's root view if it exists, otherwise |
| it's |self|. |
| |
| * UIProcess/ios/WKApplicationStateTrackingView.h: |
| * UIProcess/ios/WKApplicationStateTrackingView.mm: |
| (-[WKApplicationStateTrackingView willMoveToWindow:]): |
| (-[WKApplicationStateTrackingView didMoveToWindow]): |
| (-[WKApplicationStateTrackingView _contentView]): |
| * UIProcess/ios/WKPDFView.mm: |
| (-[WKPDFView _contentView]): |
| (-[WKPDFView web_contentView]): |
| |
| 2018-06-07 Dean Jackson <dino@apple.com> |
| |
| Match HI spec for thumbnail view sizing and location |
| https://bugs.webkit.org/show_bug.cgi?id=186412 |
| <rdar://problem/40226192> |
| |
| Reviewed by Tim Horton. |
| |
| Use the computed obscured inset to position the QuickLook |
| view inside the WKSystemPreviewView. |
| |
| * UIProcess/ios/WKSystemPreviewView.mm: |
| (-[WKSystemPreviewView web_setContentProviderData:suggestedFilename:]): |
| (-[WKSystemPreviewView _layoutThumbnailView]): |
| |
| 2018-06-07 Tadeu Zagallo <tzagallo@apple.com> |
| |
| Don't try to allocate JIT memory if we don't have the JIT entitlement |
| https://bugs.webkit.org/show_bug.cgi?id=182605 |
| <rdar://problem/38271229> |
| |
| Reviewed by Mark Lam. |
| |
| Remove processHasEntitlement, which was moved into WTF and update all call sites. |
| |
| * Shared/mac/SandboxUtilities.h: |
| * Shared/mac/SandboxUtilities.mm: |
| (WebKit::processHasEntitlement): Deleted. |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| * UIProcess/ApplicationStateTracker.mm: |
| (WebKit::applicationType): |
| * UIProcess/ios/WKActionSheetAssistant.mm: |
| (applicationHasAppLinkEntitlements): |
| |
| 2018-06-07 Tim Horton <timothy_horton@apple.com> |
| |
| REGRESSION (r232544): Pages are blank after homing out and then resuming on iPad |
| https://bugs.webkit.org/show_bug.cgi?id=186408 |
| <rdar://problem/40907111> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _resizeWhileHidingContentWithUpdates:]): |
| Clients who use _resizeWhileHidingContentWithUpdates don't call |
| _endAnimatedResize; the former API is a one-shot. We can't wait for |
| _endAnimatedResize to complete the animation (and don't need to, since |
| the content is hidden), but instead should just finish it when the |
| commit with the resized tiles arrives. |
| |
| 2018-06-07 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Use the same overloaded addInputString in WKContentViewInteraction |
| https://bugs.webkit.org/show_bug.cgi?id=186376 |
| <rdar://problem/18498360> |
| |
| Reviewed by Brent Fulgham. |
| |
| Different overloaded variants of [UIKeyboardImpl -addInputString] behaves differently. We should use the same |
| overloaded variant consistently: [UIKeyboardImpl -addInputString:withFlags:withInputManagerHint:]. |
| |
| Sadly, there is no test case for this change as: |
| 1) UIScriptController has troubles simulating '\r' keyboard event, and |
| 2) API test couldn't simulate proper UI keyboard events. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _interpretKeyEvent:isCharEvent:]): |
| |
| 2018-06-07 Alex Christensen <achristensen@webkit.org> |
| |
| REGRESSION(r224134) Client certificate challenges don't always appear |
| https://bugs.webkit.org/show_bug.cgi?id=186402 |
| <rdar://problem/35967150> |
| |
| Reviewed by Brian Weinstein. |
| |
| * NetworkProcess/NetworkLoad.cpp: |
| (WebKit::NetworkLoad::completeAuthenticationChallenge): |
| Add an exception for all TLS-handshake-related challenges, not just server trust. |
| |
| 2018-06-07 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Release assert in Document::updateLayout() in WebPage::determinePrimarySnapshottedPlugIn() |
| https://bugs.webkit.org/show_bug.cgi?id=186383 |
| <rdar://problem/40849498> |
| |
| Reviewed by Jon Lee. |
| |
| The release assert was hit because the descendent elemenet iterator, which instantiates ScriptDisallowedScope, |
| was alive as determinePrimarySnapshottedPlugIn invoked Document::updateLayout. Avoid this by copying |
| the list of plugin image elements into a vector first. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::determinePrimarySnapshottedPlugIn): Fixed the release assert, and deployed Ref and RefPtr |
| to make this code safe. |
| |
| 2018-06-07 Don Olmstead <don.olmstead@sony.com> |
| |
| [CoordGraphics] Fix compilation errors around USE(COORDINATED_GRAPHICS) |
| https://bugs.webkit.org/show_bug.cgi?id=186374 |
| |
| Reviewed by Žan Doberšek. |
| |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: |
| (WebKit::ThreadedCompositor::sceneUpdateFinished): |
| |
| 2018-06-07 Brent Fulgham <bfulgham@apple.com> |
| |
| Remove unused debug mode conditions |
| https://bugs.webkit.org/show_bug.cgi?id=186358 |
| <rdar://problem/39117121> |
| |
| Reviewed by Zalan Bujtas. |
| |
| Remove some unused code paths related to ResourceLoadStatistics debug mode. |
| |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::logUserInteraction): |
| (WebKit::WebResourceLoadStatisticsStore::shouldPartitionCookies const): |
| |
| 2018-06-07 Dan Bernstein <mitz@apple.com> |
| |
| REGRESSION (r232520): Crash under IPC::ArgumentCoder<WebCore::Credential>::encodePlatformData |
| https://bugs.webkit.org/show_bug.cgi?id=186385 |
| <rdar://problem/40853796> |
| |
| Reviewed by Daniel Bates. |
| |
| * Shared/mac/WebCoreArgumentCodersMac.mm: |
| (IPC::ArgumentCoder<Credential>::encodePlatformData): Fixed an incorrect cast. |
| |
| 2018-06-06 Per Arne Vollan <pvollan@apple.com> |
| |
| Crash in lambda function WTF::Function<void ()>::CallableWrapper<WebKit::DisplayLink::displayLinkCallback |
| https://bugs.webkit.org/show_bug.cgi?id=186370 |
| <rdar://problem/39791647> |
| |
| Reviewed by Brent Fulgham. |
| |
| When the display link is firing, the callback function is called on the display link thread, where a lambda function |
| is created to be executed on the main thread. The WebPageProxy object is captured as a RefPtr in the lambda. This |
| might crash when executing on the main thread, since the WebPageProxy object is possibly deleted then. Capturing |
| the WebPageProxy will not prevent the object from being deleted if the destruction of the WebPageProxy object already |
| has started on the main thread when the object is captured, which sometimes is the case. Instead, we can create a |
| weak pointer to the object, which will work as intended, even if the WebPageProxy object is in the process of being |
| deleted. This also matches the display link implementation used when the WebContent process has access to the |
| WindowServer. This is not a frequent crash. I have not been able to reproduce it. |
| |
| * UIProcess/mac/DisplayLink.cpp: |
| (WebKit::DisplayLink::displayLinkCallback): |
| |
| 2018-06-06 Antoine Quint <graouts@apple.com> |
| |
| Rename color-filter to -apple-color-filter and do not expose it to Web content |
| https://bugs.webkit.org/show_bug.cgi?id=186306 |
| <rdar://problem/39874167> |
| |
| Reviewed by Simon Fraser. |
| |
| Change the ColorFilter setting to no longer be exposed as an experimental feature and ensure it's turned off by default. |
| To allow internal clients to use the -apple-color-filter property, we expose a new _colorFilterEnabled property as SPI |
| to WKWebViewConfigurationPrivate. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetColorFilterEnabled): |
| (WKPreferencesGetColorFilterEnabled): |
| * UIProcess/API/C/WKPreferencesRefPrivate.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: |
| (-[WKWebViewConfiguration init]): |
| (-[WKWebViewConfiguration copyWithZone:]): |
| (-[WKWebViewConfiguration _setAttachmentElementEnabled:]): |
| (-[WKWebViewConfiguration _colorFilterEnabled]): |
| (-[WKWebViewConfiguration _setColorFilterEnabled:]): |
| * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: |
| |
| 2018-06-06 Jer Noble <jer.noble@apple.com> |
| |
| REGRESSION (r232301) - Unable to enter video fullscreen |
| https://bugs.webkit.org/show_bug.cgi?id=186357 |
| <rdar://problem/40838449> |
| |
| Reviewed by Jon Lee. |
| |
| Only set up the standby fullscreen element if we are in element fullscreen. |
| |
| * WebProcess/FullScreen/WebFullScreenManager.cpp: |
| (WebKit::WebFullScreenManager::videoControlsManagerDidChange): |
| |
| 2018-06-06 Jeremy Jones <jeremyj@apple.com> |
| |
| attenuationFactor should be in range [0,1] |
| https://bugs.webkit.org/show_bug.cgi?id=186320 |
| rdar://problem/40821456 |
| |
| Reviewed by Jer Noble. |
| |
| If attenuationFactor is outside of this range it can cause false positives. |
| |
| * UIProcess/ios/fullscreen/FullscreenTouchSecheuristic.cpp: |
| (WebKit::FullscreenTouchSecheuristic::attenuationFactor): |
| |
| 2018-06-06 Tim Horton <timothy_horton@apple.com> |
| |
| Move animated resize into the layer tree transaction, and make it asynchronous |
| https://bugs.webkit.org/show_bug.cgi?id=186130 |
| <rdar://problem/38477288> |
| |
| Reviewed by Simon Fraser. |
| |
| * Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h: |
| (WebKit::RemoteLayerTreeTransaction::setScrollPosition): |
| (WebKit::RemoteLayerTreeTransaction::dynamicViewportSizeUpdateID const): |
| (WebKit::RemoteLayerTreeTransaction::setDynamicViewportSizeUpdateID): |
| * Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm: |
| (WebKit::RemoteLayerTreeTransaction::encode const): |
| (WebKit::RemoteLayerTreeTransaction::decode): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::willCommitLayerTree): |
| Add scrollPosition to the transaction on all platforms, not just Mac. |
| Add the optional dynamicViewportSizeUpdateID to the transaction, representing |
| the most recent dynamicViewportSizeUpdate that commit contains, if any. |
| |
| * Shared/ios/DynamicViewportSizeUpdate.h: |
| Added a typedef for DynamicViewportSizeUpdateID, and move the mode enum here. |
| |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::dynamicViewportUpdateChangedTarget): Deleted. |
| * UIProcess/PageClient.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::resetState): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::dynamicViewportSizeUpdate): |
| (WebKit::WebPageProxy::didCommitLayerTree): |
| (WebKit::WebPageProxy::synchronizeDynamicViewportUpdate): Deleted. |
| (WebKit::WebPageProxy::dynamicViewportUpdateChangedTarget): Deleted. |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::dynamicViewportSizeUpdate): |
| (WebKit::WebPage::synchronizeDynamicViewportUpdate): Deleted. |
| Remove dynamicViewportUpdateChangedTarget and synchronizeDynamicViewportUpdate. |
| Move dynamicViewportSizeUpdateID maintenance into WKWebView. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _processDidExit]): |
| Remove _resizeAnimationTransformTransactionID. We now instead pack |
| the resize ID inside the transaction, instead of separately sending |
| back a transaction ID to wait for. |
| |
| (-[WKWebView _didCommitLayerTreeDuringAnimatedResize:]): |
| (-[WKWebView _didCommitLayerTree:]): |
| Added, factored out of _didCommitLayerTree:. |
| If the transaction includes the result of the most recently-sent resize, |
| store the requisite adjustments required to counter the new scale and |
| scroll offset, update the resizeAnimationView, and, if endAnimatedResize |
| has already been called, call _didCompleteAnimatedResize to tear down |
| the animation view and put things back together. |
| |
| Add some code so that if a commit arrives before the resize, we update |
| the scale of the resize animation view to keep the width fitting. |
| |
| (activeMaximumUnobscuredSize): |
| (activeOrientation): |
| Move these because the code that depends on them moved. |
| |
| (-[WKWebView _didCompleteAnimatedResize]): |
| Broken out of _endAnimatedResize. This can now be called from |
| either endAnimatedResize or _didCommitLayerTreeDuringAnimatedResize, |
| depending on which is called first. |
| |
| (-[WKWebView _beginAnimatedResizeWithUpdates:]): |
| Don't create a new resize view if we still have one. Otherwise, we'll |
| get the view ordering all wrong when making the second one. This |
| didn't previously cause trouble, because we don't have a lot of |
| WKScrollView subviews, but it totally could. |
| |
| Adopt _initialContentOffsetForScrollView just to make this code more clear. |
| |
| (-[WKWebView _endAnimatedResize]): |
| (-[WKWebView _dynamicViewportUpdateChangedTargetToScale:position:nextValidLayerTreeTransactionID:]): Deleted. |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| |
| |
| 2018-06-05 Per Arne Vollan <pvollan@apple.com> |
| |
| Move OpenGL display mask to screen data struct. |
| https://bugs.webkit.org/show_bug.cgi?id=186198 |
| <rdar://problem/40724854> |
| |
| Reviewed by Brent Fulgham. |
| |
| Currently, the OpenGL display mask is a global in the WebContent process. This is not correct in all cases, since |
| it is possible to have two Web views in the same WebContent process, displayed on different displays. This can be |
| resolved by moving the OpenGL display mask to a new ScreenData struct, containing information specific to each |
| display. The display ID of the host window is used to find the OpenGL display mask when needed. This patch makes |
| the host window available when creating an IOSurface, in order to find the right OpenGL display mask. If no host |
| window is available, the OpenGL display mask of the main display is used. |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::encode const): |
| (WebKit::WebProcessCreationParameters::decode): |
| * Shared/WebProcessCreationParameters.h: |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::windowScreenDidChange): |
| (WebKit::WebPageProxy::creationParameters): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::screenPropertiesStateChanged): |
| (WebKit::displayReconfigurationCallBack): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_credentialsMessenger): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/mac/WebPageMac.mm: |
| (WebKit::WebPage::openGLDisplayMaskChanged): Deleted. |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::setScreenProperties): |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::platformInitializeWebProcess): |
| |
| 2018-06-05 Keith Rollin <krollin@apple.com> |
| |
| Remove tracksResourceLoadMilestones support |
| https://bugs.webkit.org/show_bug.cgi?id=186329 |
| <rdar://problem/40829898> |
| |
| Reviewed by Darin Adler. |
| |
| Remove the mechanism for enabling/disabling the tracking of |
| resource-load milestones. This was initially added in order to enable |
| the tracking only for Safari. However, the decision has been made to |
| enable the tracking for all WebKit clients, so it's now enabled |
| unconditionally. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::startTrackingResourceLoad): |
| (WebKit::NetworkConnectionToWebProcess::stopTrackingResourceLoad): |
| (WebKit::NetworkConnectionToWebProcess::stopAllNetworkActivityTracking): |
| (WebKit::NetworkConnectionToWebProcess::stopAllNetworkActivityTrackingForPage): |
| (WebKit::networkActivityTrackingEnabled): Deleted. |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| * NetworkProcess/NetworkProcess.h: |
| (WebKit::NetworkProcess::tracksResourceLoadMilestones const): Deleted. |
| * 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: |
| (WKContextConfigurationTracksResourceLoadMilestones): Deleted. |
| (WKContextConfigurationSetTracksResourceLoadMilestones): Deleted. |
| * UIProcess/API/C/WKContextConfigurationRef.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: |
| (-[_WKProcessPoolConfiguration tracksResourceLoadMilestones]): Deleted. |
| (-[_WKProcessPoolConfiguration setTracksResourceLoadMilestones:]): Deleted. |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| |
| 2018-06-05 Darin Adler <darin@apple.com> |
| |
| [Cocoa] Retire DispatchPtr, and add more move semantics and simpler #ifs to other smart pointers |
| https://bugs.webkit.org/show_bug.cgi?id=186324 |
| |
| Reviewed by Anders Carlsson. |
| |
| * NetworkProcess/cache/NetworkCacheData.h: Use OSObjectPtr instead of |
| DispatchPtr and also use an rvalue reference in the constructor. |
| * NetworkProcess/cache/NetworkCacheDataCocoa.mm: |
| (WebKit::NetworkCache::Data::Data): Use adoptOSObject, rvalue reference |
| and WTFMove. |
| (WebKit::NetworkCache::Data::empty): Use OSObjectPtr. |
| (WebKit::NetworkCache::Data::data const): Use adoptOSObject. |
| (WebKit::NetworkCache::Data::subrange const): Ditto. |
| (WebKit::NetworkCache::concatenate): Ditto. |
| (WebKit::NetworkCache::Data::adoptMap): Ditto. Also use WTFMove. |
| |
| * NetworkProcess/cache/NetworkCacheIOChannel.h: Use OSObjectPtr. |
| * NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm: |
| (WebKit::NetworkCache::IOChannel::IOChannel): Use adoptOSObject. |
| (WebKit::NetworkCache::IOChannel::read): Use OSObjectPtr. |
| |
| 2018-06-05 Brent Fulgham <bfulgham@apple.com> |
| |
| Adjust compile and runtime flags to match shippable state of features |
| https://bugs.webkit.org/show_bug.cgi?id=186319 |
| <rdar://problem/40352045> |
| |
| Reviewed by Maciej Stachowiak, Jon Lee, and others. |
| |
| Change the default state of various experimental features so that they are off by default in production |
| builds, since they are still under development. |
| |
| Turn 'CacheAPIEnabled' and 'SubresourceIntegrityEnabled' on by default, since both features have been |
| shipping for a full cycle and have proven to be stable in production. |
| |
| * Configurations/FeatureDefines.xcconfig: Don't build ENABLE_INPUT_TYPE_COLOR |
| or ENABLE_INPUT_TYPE_COLOR_POPOVER. |
| * Shared/WebPreferences.yaml: |
| 2018-06-05 Timothy Hatcher <timothy@apple.com> |
| |
| Clean up LocalDefaultSystemAppearance and prefers-dark-interface media query |
| |
| https://bugs.webkit.org/show_bug.cgi?id=186323 |
| rdar://problem/38382252 |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _defaultAppearance]): |
| * UIProcess/API/mac/WKView.mm: |
| (-[WKView _defaultAppearance]): |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::useDefaultAppearance): |
| |
| 2018-06-05 Sihui Liu <sihui_liu@apple.com> |
| |
| [iOS] TestWebKitAPI.WebKit.WKHTTPCookieStoreWithoutProcessPool fails because cookies aren't flushed to file |
| https://bugs.webkit.org/show_bug.cgi?id=186303 |
| <rdar://problem/40468716> |
| |
| Reviewed by Geoffrey Garen. |
| |
| No matter there is an observer or not, cookies in UI process should always be flushed to |
| file when new process pool is created, such that cookies created via API can be synced to |
| network process. |
| |
| * UIProcess/API/APIHTTPCookieStore.cpp: |
| (API::HTTPCookieStore::HTTPCookieStore): |
| (API::HTTPCookieStore::registerObserver): |
| (API::HTTPCookieStore::cookieManagerDestroyed): |
| (API::HTTPCookieStore::registerForNewProcessPoolNotifications): |
| |
| 2018-06-05 Jeremy Jones <jeremyj@apple.com> |
| |
| secheuristic should only use touch began and ended, not changed. |
| https://bugs.webkit.org/show_bug.cgi?id=186318 |
| rdar://problem/39781486 |
| |
| Reviewed by Jer Noble. |
| |
| Filter out change events so swiping gestures don't trigger the heuristic. |
| |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.mm: |
| (-[WKFullScreenViewController _touchDetected:]): |
| |
| 2018-06-05 Darin Adler <darin@apple.com> |
| |
| [Cocoa] More preparation for ARC, focusing on WebKit and smart pointers |
| https://bugs.webkit.org/show_bug.cgi?id=186314 |
| |
| Reviewed by Anders Carlsson. |
| |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): Use __bridge for cast. |
| * NetworkProcess/mac/NetworkProcessMac.mm: |
| (WebKit::overrideSystemProxies): Ditto. |
| (WebKit::NetworkProcess::allowSpecificHTTPSCertificateForHost): Ditto. |
| * Platform/IPC/mac/ConnectionMac.mm: |
| (IPC::Connection::sendMessage): Ditto. |
| (IPC::readFromMachPort): Ditto. |
| |
| * Platform/mac/StringUtilities.mm: |
| (WebKit::formattedPhoneNumberString): Use __bridge for cast and |
| CFBridgingRelease instead of an explicit autorelease. |
| |
| * Shared/API/Cocoa/_WKRemoteObjectInterface.mm: |
| (initializeMethods): Use auto instead of an explicit type so that we get |
| the correct type for the result of protocol_copyProtocolList. |
| |
| * Shared/API/Cocoa/_WKRemoteObjectRegistry.mm: |
| (-[_WKRemoteObjectRegistry _sendInvocation:interface:]): Added a |
| bridging cast to void* because that's needed to call _Block_signature |
| under ARC and harmless outside ARC. |
| |
| * Shared/API/c/cf/WKStringCF.mm: |
| (WKStringCreateWithCFString): Use __bridge for cast. |
| * Shared/API/c/cf/WKURLCF.mm: |
| (WKURLCreateWithCFURL): Ditto. |
| * Shared/Authentication/cocoa/AuthenticationManagerCocoa.mm: |
| (WebKit::AuthenticationManager::initializeConnection): Ditto. |
| * Shared/Cocoa/DataDetectionResult.mm: |
| (WebKit::DataDetectionResult::encode const): Ditto. |
| (WebKit::DataDetectionResult::decode): Ditto. |
| * Shared/Cocoa/WKNSError.mm: |
| (-[WKNSError _web_createTarget]): Ditto. |
| * Shared/Cocoa/WKNSURLExtras.mm: |
| (-[NSURL _web_originalDataAsWTFString]): Ditto. |
| |
| * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h: |
| (WebKit::XPCServiceInitializer): Removed balanced calls to both |
| adoptOSObject and xpc_retain and instead rely on the assignment |
| operator just added to OSObjectPtr. |
| |
| * Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.mm: |
| (WebKit::XPCServiceEventHandler): Use __bridge for cast. |
| * Shared/RemoteLayerTree/RemoteLayerBackingStore.mm: |
| (WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer): Ditto. |
| * Shared/cf/ArgumentCodersCF.cpp: |
| (IPC::decode): Ditto. |
| * Shared/mac/ArgumentCodersMac.mm: |
| (IPC::isSerializableValue): Ditto. |
| (IPC::encode): Ditto. |
| * Shared/mac/WebCoreArgumentCodersMac.mm: |
| (IPC::encodeNSError): Ditto. Also use CFSTR("")" instead of @"" |
| when we need a CFString. |
| (IPC::decodeNSError): Ditto. |
| (IPC::ArgumentCoder<ProtectionSpace>::encodePlatformData): Ditto. |
| (IPC::ArgumentCoder<ProtectionSpace>::decodePlatformData): Ditto. |
| (IPC::ArgumentCoder<Credential>::encodePlatformData): Ditto. |
| (IPC::ArgumentCoder<Credential>::decodePlatformData): Ditto. |
| (IPC::ArgumentCoder<ContentFilterUnblockHandler>::encode): Ditto. |
| (IPC::ArgumentCoder<ContentFilterUnblockHandler>::decode): Ditto. |
| (IPC::ArgumentCoder<MediaPlaybackTargetContext>::encodePlatformData): Ditto. |
| (IPC::ArgumentCoder<MediaPlaybackTargetContext>::decodePlatformData): Ditto. |
| * Shared/mac/WebHitTestResultData.mm: |
| (WebKit::WebHitTestResultData::platformEncode const): Ditto. |
| (WebKit::WebHitTestResultData::platformDecode): Ditto. |
| * UIProcess/API/C/mac/WKContextPrivateMac.mm: |
| (WKContextIsPlugInUpdateAvailable): Ditto. |
| * UIProcess/API/Cocoa/WKBrowsingContextController.mm: |
| (-[WKBrowsingContextController certificateChain]): Ditto. |
| (didStartProvisionalLoadForFrame): Ditto. |
| (didReceiveServerRedirectForProvisionalLoadForFrame): Ditto. |
| (didFailProvisionalLoadWithErrorForFrame): Ditto. |
| (didCommitLoadForFrame): Ditto. |
| (didFinishLoadForFrame): Ditto. |
| (didFailLoadWithErrorForFrame): Ditto. |
| (canAuthenticateAgainstProtectionSpaceInFrame): Ditto. |
| (didReceiveAuthenticationChallengeInFrame): Ditto. |
| (didStartProgress): Ditto. |
| (didChangeProgress): Ditto. |
| (didFinishProgress): Ditto. |
| (didChangeBackForwardList): Ditto. |
| (processDidCrash): Ditto. |
| (setUpPageLoaderClient): Ditto. |
| (setUpPagePolicyClient): Ditto. |
| * UIProcess/API/Cocoa/WKBrowsingContextGroup.mm: |
| (createWKArray): Ditto. |
| (-[WKBrowsingContextGroup addUserStyleSheet:baseURL:whitelistedURLPatterns:blacklistedURLPatterns:mainFrameOnly:]): Ditto. |
| (-[WKBrowsingContextGroup addUserScript:baseURL:whitelistedURLPatterns:blacklistedURLPatterns:injectionTime:mainFrameOnly:]): Ditto. |
| * UIProcess/API/Cocoa/WKConnection.mm: |
| (didReceiveMessage): Ditto. |
| (didClose): Ditto. |
| (setUpClient): Ditto. |
| * UIProcess/API/Cocoa/WKProcessGroup.mm: |
| (didCreateConnection): Ditto. |
| (getInjectedBundleInitializationUserData): Ditto. |
| (setUpInjectedBundleClient): Ditto. |
| (-[WKProcessGroup _setAllowsSpecificHTTPSCertificate:forHost:]): Ditto. |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _setAllowsSpecificHTTPSCertificate:forHost:]): Ditto. |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _setProxyConfiguration:]): Ditto. |
| (-[WKWebsiteDataStore _proxyConfiguration]): Ditto. |
| * UIProcess/API/Cocoa/_WKThumbnailView.mm: |
| (-[_WKThumbnailView _didTakeSnapshot:]): Ditto. |
| |
| * UIProcess/API/Cocoa/_WKUserContentFilter.mm: Added a missing include. |
| |
| * UIProcess/Authentication/mac/WebCredentialMac.mm: |
| (WebKit::chain): Use __bridge for cast. |
| |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory): |
| Use CFBridgingRelease instead of adoptNS. |
| (WebKit::privateBrowsingSession): Use __bridge for cast. |
| |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::provideDataForPasteboard): Use __bridge for cast. |
| * UIProcess/Plugins/mac/PluginInfoStoreMac.mm: |
| (WebKit::PluginInfoStore::pluginPathsInDirectory): Ditto. |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm: |
| (WebKit::recursivelyMapIOSurfaceBackingStore): Ditto. |
| * UIProcess/mac/ViewGestureControllerMac.mm: |
| (WebKit::ViewGestureController::beginSwipeGesture): Ditto. |
| * UIProcess/mac/WKFullScreenWindowController.mm: |
| (-[WKFullScreenWindowController enterFullScreen:]): Ditto. |
| * UIProcess/mac/WebPopupMenuProxyMac.mm: |
| (WebKit::WebPopupMenuProxyMac::showPopupMenu): Ditto. |
| * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.mm: |
| (didCreatePage): Ditto. |
| (willDestroyPage): Ditto. |
| (setUpBundleClient): Ditto. |
| * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm: |
| (didStartProvisionalLoadForFrame): Ditto. |
| (didReceiveServerRedirectForProvisionalLoadForFrame): Ditto. |
| (didFinishLoadForFrame): Ditto. |
| (globalObjectIsAvailableForFrame): Ditto. |
| (didRemoveFrameFromHierarchy): Ditto. |
| (didCommitLoadForFrame): Ditto. |
| (didFinishDocumentLoadForFrame): Ditto. |
| (didFailProvisionalLoadWithErrorForFrame): Ditto. |
| (didFailLoadWithErrorForFrame): Ditto. |
| (didSameDocumentNavigationForFrame): Ditto. |
| (didLayoutForFrame): Ditto. |
| (didReachLayoutMilestone): Ditto. |
| (didFirstVisuallyNonEmptyLayoutForFrame): Ditto. |
| (didHandleOnloadEventsForFrame): Ditto. |
| (userAgentForURL): Ditto. |
| (setUpPageLoaderClient): Ditto. |
| (willSendRequestForFrame): Ditto. |
| (didInitiateLoadForResource): Ditto. |
| (didFinishLoadForResource): Ditto. |
| (didFailLoadForResource): Ditto. |
| (setUpResourceLoadClient): Ditto. |
| * WebProcess/InjectedBundle/mac/InjectedBundleMac.mm: |
| (WebKit::InjectedBundle::initialize): Ditto. |
| * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm: |
| (WebKit::NetscapePlugin::popUpContextMenu): Ditto. |
| |
| * WebProcess/Plugins/PDF/PDFPlugin.h: Put functions that return NSData inside |
| an #ifdef __OBJC__ and use __bridge for cast. |
| |
| * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm: |
| (WebKit::WebDragClient::declareAndWriteDragImage): Use __bridge for cast. |
| |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteCustom.mm: |
| (WebKit::PlatformCALayerRemoteCustom::contents const): Added a bridging cast. |
| (WebKit::PlatformCALayerRemoteCustom::setContents): Use __bridge for cast. |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: |
| (WebKit::TiledCoreAnimationDrawingArea::commitTransientZoom): Ditto. |
| * WebProcess/WebPage/mac/WebPageMac.mm: |
| (WebKit::WebPage::setTopOverhangImage): Ditto. |
| (WebKit::WebPage::setBottomOverhangImage): Ditto. |
| |
| 2018-06-05 Youenn Fablet <youenn@apple.com> |
| |
| ServiceWorker registration should store any script fetched through importScripts |
| https://bugs.webkit.org/show_bug.cgi?id=182444 |
| <rdar://problem/37164835> |
| |
| Reviewed by Chris Dumez. |
| |
| Add C API to kill storage process. |
| In case a Storage Process is closed or crashed, ensure that all its related service worker processes also exit. |
| |
| * StorageProcess/ServiceWorker/WebSWServerToContextConnection.messages.in: |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextTerminateStorageProcess): |
| * UIProcess/API/C/WKContextPrivate.h: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::webToStorageProcessConnectionClosed): |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::setScriptResource): |
| * WebProcess/Storage/WebSWContextManagerConnection.h: |
| |
| 2018-06-05 Brent Fulgham <bfulgham@apple.com> |
| |
| Revise DEFAULT_EXPERIMENTAL_FEATURES_ENABLED to work properly on Apple builds |
| https://bugs.webkit.org/show_bug.cgi?id=186286 |
| <rdar://problem/40782992> |
| |
| Reviewed by Dan Bernstein. |
| |
| Use the WK_RELOCATABLE_FRAMEWORKS flag (which is always defined for non-production builds) |
| to define ENABLE(EXPERIMENTAL_FEATURES) so that we do not need to manually |
| change this flag when preparing for a production release. |
| |
| * Configurations/FeatureDefines.xcconfig: Use WK_RELOCATABLE_FRAMEWORKS to determine whether |
| experimental features should be enabled, and use it to properly define the feature flag. |
| * Shared/WebPreferencesDefaultValues.h: |
| |
| 2018-06-04 Chris Dumez <cdumez@apple.com> |
| |
| Rename "Cross-Origin-Options" HTTP header to "Cross-Origin-Window-Policy" |
| https://bugs.webkit.org/show_bug.cgi?id=186287 |
| <rdar://problem/40783352> |
| |
| Reviewed by Youenn Fablet. |
| |
| * Shared/WebPreferences.yaml: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::frameBecameRemote): |
| |
| 2018-06-04 Dan Bernstein <mitz@apple.com> |
| |
| Restored code signing behavior when WK_USE_RESTRICTED_ENTITLEMENTS isn’t set. |
| |
| * Configurations/DebugRelease.xcconfig: Use ad-hoc code signing when |
| WK_USE_RESTRICTED_ENTITLEMENTS isn’t set. |
| |
| 2018-06-04 Dan Bernstein <mitz@apple.com> |
| |
| Removed a reference to a file that was deleted in r231190. |
| |
| * WebKit.xcodeproj/project.pbxproj: Removed the reference to WebProcessShim.xcconfig. |
| |
| 2018-06-04 Chris Dumez <cdumez@apple.com> |
| |
| Update Fetch code to provide more useful exception messages |
| https://bugs.webkit.org/show_bug.cgi?id=186156 |
| |
| Reviewed by Youenn Fablet. |
| |
| Provide more useful error messages in our Loading / Fetch code. |
| |
| * StorageProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::didFailFetch): |
| * StorageProcess/ServiceWorker/WebSWServerConnection.h: |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::didFailFetch): |
| * StorageProcess/StorageProcess.h: |
| * StorageProcess/StorageProcess.messages.in: |
| * WebProcess/Storage/ServiceWorkerClientFetch.cpp: |
| (WebKit::ServiceWorkerClientFetch::didFail): |
| (WebKit::ServiceWorkerClientFetch::continueLoadingAfterCheckingResponse): |
| * WebProcess/Storage/ServiceWorkerClientFetch.h: |
| * WebProcess/Storage/ServiceWorkerClientFetch.messages.in: |
| * WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp: |
| (WebKit::WebServiceWorkerFetchTaskClient::didReceiveFormDataAndFinish): |
| (WebKit::WebServiceWorkerFetchTaskClient::didFail): |
| * WebProcess/Storage/WebServiceWorkerFetchTaskClient.h: |
| |
| 2018-06-04 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [WebKit on watchOS] Remove all uses of the EXTRA_ZOOM_MODE compiler flag |
| https://bugs.webkit.org/show_bug.cgi?id=186279 |
| |
| Reviewed by Tim Horton. |
| |
| Replaces uses of ENABLE(EXTRA_ZOOM_MODE) with PLATFORM(WATCHOS). |
| |
| * Shared/WebPreferencesDefaultValues.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| (-[WKWebView _zoomToFocusRect:selectionRect:insideFixed:fontSize:minimumScale:maximumScale:allowScaling:forceScroll:]): |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: |
| (-[WKWebViewConfiguration init]): |
| * UIProcess/WebProcessProxy.cpp: |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _willStartScrollingOrZooming]): |
| (-[WKContentView _didEndScrollingOrZooming]): |
| (-[WKContentView _startAssistingKeyboard]): |
| (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]): |
| (-[WKContentView _stopAssistingNode]): |
| (-[WKContentView reloadContextViewForPresentedListViewController]): |
| (-[WKContentView _wheelChangedWithEvent:]): |
| (-[WKContentView _simulateTextEntered:]): |
| (-[WKContentView selectFormAccessoryPickerRow:]): |
| (-[WKContentView formInputLabel]): |
| (-[WKContentView setTimePickerValueToHour:minute:]): |
| * UIProcess/ios/WKScrollView.mm: |
| (-[WKScrollView initWithFrame:]): |
| (-[WKScrollView addGestureRecognizer:]): |
| * UIProcess/ios/forms/WKFileUploadPanel.mm: |
| (-[WKFileUploadPanel platformSupportsPickerViewController]): |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::platformPrefersTextLegibilityBasedZoomScaling const): |
| |
| 2018-06-04 Jeremy Jones <jeremyj@apple.com> |
| |
| Disable keyboard in fullscreen ios. |
| https://bugs.webkit.org/show_bug.cgi?id=186058 |
| |
| Reviewed by Jer Noble. |
| |
| Disallow keyboard in ios fullscreen. This will still allow select keys useful for playback. |
| |
| * UIProcess/WebFullScreenManagerProxy.cpp: |
| (WebKit::WebFullScreenManagerProxy::supportsFullScreen): |
| |
| 2018-06-04 Youenn Fablet <youenn@apple.com> |
| |
| NetworkCORSPreflightChecker should set the preflight request User-Agent header |
| https://bugs.webkit.org/show_bug.cgi?id=186254 |
| <rdar://problem/40293504> |
| |
| Reviewed by Chris Dumez. |
| |
| Some servers misbehave if the User-Agent header is not set properly on preflight requests. |
| Set it to the same value as the request triggering the preflight. |
| |
| * NetworkProcess/NetworkCORSPreflightChecker.cpp: |
| (WebKit::NetworkCORSPreflightChecker::startPreflight): |
| * NetworkProcess/NetworkCORSPreflightChecker.h: |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::checkCORSRequestWithPreflight): |
| |
| 2018-06-03 Andy Estes <aestes@apple.com> |
| |
| [Wi-Fi Assertions] Resume assertions when NetworkProcess::cancelPrepareToSuspend is called |
| https://bugs.webkit.org/show_bug.cgi?id=186247 |
| |
| Reviewed by Tim Horton. |
| |
| Since we suspended assertions in prepareToSuspend, we need to resume them if |
| cancelPrepareToSuspend is called. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::cancelPrepareToSuspend): |
| |
| 2018-06-03 Andy Estes <aestes@apple.com> |
| |
| [iOS] Add a needed networking process entitlement |
| https://bugs.webkit.org/show_bug.cgi?id=186246 |
| <rdar://problem/39578861> |
| |
| Reviewed by Brent Fulgham. |
| |
| Also sorted the existing entitlements. |
| |
| * Configurations/Network-iOS.entitlements: |
| |
| 2018-06-03 Brent Fulgham <bfulgham@apple.com> |
| |
| Make sure that the fencePort received over IPC has the expected disposition (SEND) |
| https://bugs.webkit.org/show_bug.cgi?id=186211 |
| <rdar://problem/37814171> |
| |
| Reviewed by Geoffrey Garen. |
| |
| It is possible (though very unlikely) for a message to be recevied that has the wrong mach port disposition. |
| If this happens, we shouldn't manipulate the passed mach_port_t or pass it on to other API. We already |
| drop messages that violate this expectation in the IPC layer, but code handling IPC::Attachment data types |
| are not checking this value. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::setTopContentInsetFenced): |
| * WebProcess/cocoa/VideoFullscreenManager.mm: |
| (WebKit::VideoFullscreenManager::setVideoLayerFrameFenced): |
| |
| 2018-06-02 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, rolling out r232275. |
| |
| May have caused a ~1% PLT regression on iOS |
| |
| Reverted changeset: |
| |
| "Store 0-lifetime stylesheets / scripts into the disk cache |
| for faster history navigations" |
| https://bugs.webkit.org/show_bug.cgi?id=186060 |
| https://trac.webkit.org/changeset/232275 |
| |
| 2018-06-02 Jeremy Jones <jeremyj@apple.com> |
| |
| Make WKWebView firstResponder after entering or exiting fullscreen. |
| https://bugs.webkit.org/show_bug.cgi?id=186088 |
| rdar://problem/40387859 |
| |
| Reviewed by Jer Noble. |
| |
| Update first responder when WKWebView moves to a new window, otherwise there won't be a first responder. |
| |
| * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm: |
| (-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]): |
| (-[WKFullScreenWindowController _completedExitFullScreen]): |
| |
| 2018-06-02 Jeremy Jones <jeremyj@apple.com> |
| |
| Exit fullscreen when javascript alerts are presented. |
| https://bugs.webkit.org/show_bug.cgi?id=185619 |
| rdar://problem/35724264 |
| |
| Reviewed by Jer Noble. |
| |
| Prevent users from being trapped in fullscreen by alert cycles. |
| Prevent fullscreen from becoming unresponsive due to alerts hidden behind fullscreen. |
| |
| Fullscreen exit is initiated here in the UI process so that fullscreen UI is torn down immediately, |
| before the alert is shown. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::exitFullscreenImmediately): |
| (WebKit::WebPageProxy::runJavaScriptAlert): |
| (WebKit::WebPageProxy::runJavaScriptConfirm): |
| (WebKit::WebPageProxy::runJavaScriptPrompt): |
| * UIProcess/WebPageProxy.h: |
| |
| 2018-06-02 Youenn Fablet <youenn@apple.com> |
| |
| Add a sandbox profile for com.cisco.webex.plugin.gpc64 plugin |
| https://bugs.webkit.org/show_bug.cgi?id=186110 |
| |
| Reviewed by Brent Fulgham. |
| |
| * PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in: Webex needs to create some symlinks. |
| * Resources/PlugInSandboxProfiles/com.cisco.webex.plugin.gpc64.sb: Added. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-06-01 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] The user should always be able to double tap to zoom to a scale of at least 1 |
| https://bugs.webkit.org/show_bug.cgi?id=186209 |
| <rdar://problem/40529255> |
| |
| Reviewed by Tim Horton. |
| |
| Tweaks the way double-tap-to-zoom scales are determined in extra zoom mode. Rather than zooming to make the 50th |
| and 90th percentiles of text in the document legible, only consider the 90th percentile of text size when |
| determining zoom scale, and fix the other potential zoom scale at 1; additionally, if the zoom scales are close |
| (within 0.3 of each other), snap the lower zoom scale to the higher value. |
| |
| This results in the following changes in behavior: |
| - Enables double tap to zoom in cases where all the text in the page is already legible. |
| - On pages with mobile viewports, usually allows the user to toggle between initial scale and a scale of 1. |
| - If a significant portion of text is unusually small, the zoomed-in scale may exceed 1. |
| |
| Test: fast/events/extrazoom/double-tap-to-zoom-with-large-text.html |
| |
| * WebProcess/WebPage/ViewGestureGeometryCollector.cpp: |
| (WebKit::ViewGestureGeometryCollector::collectGeometryForSmartMagnificationGesture): |
| (WebKit::ViewGestureGeometryCollector::computeTextLegibilityScales): |
| |
| 2018-06-01 Jeremy Jones <jeremyj@apple.com> |
| |
| Keyboard focus should exit fullscreen. |
| https://bugs.webkit.org/show_bug.cgi?id=185617 |
| rdar://problem/34697938 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| While in element fullscreen, initiating keyboard focus should exit fullscreen in iOS. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::elementDidFocus): |
| |
| 2018-06-01 Chris Dumez <cdumez@apple.com> |
| |
| Regression(r230567): Unable to log into twitter.com in private sessions |
| https://bugs.webkit.org/show_bug.cgi?id=186205 |
| <rdar://problem/40670799> |
| |
| Reviewed by Youenn Fablet. |
| |
| We were using the same SWServer for all private sessions and the SWServer's sessionID would |
| be legacyPrivateSessionID(). As a result, the service worker's sessionID would be legacyPrivateSessionID() |
| as well and would not match the sessionID of its client pages. This sessionID mismatch was |
| causing the breakage. |
| |
| Instead of using the same SWServer of all private sessions, we now go back to using a SWServer |
| per private session. However, we now make sure that the SWServer gets destroyed whenever its |
| corresponding session gets destroyed. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::destroySession): |
| * NetworkProcess/cache/CacheStorageEngine.cpp: |
| (WebKit::CacheStorage::Engine::from): |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::destroySession): |
| (WebKit::StorageProcess::swServerForSession): |
| * StorageProcess/StorageProcess.h: |
| * StorageProcess/StorageProcess.messages.in: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::setAnyPageGroupMightHavePrivateBrowsingEnabled): |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::~WebsiteDataStore): |
| |
| (WebKit::WebsiteDataStore::enableResourceLoadStatisticsAndSetTestingCallback): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| (WebKit::WebsiteDataStore::weakPtrFactory const): |
| Fix memory leak caused by a reference cycle between the WebsiteDataStore and its |
| WebResourceLoadStatisticsStore, by using WeakPtr to break the cycle. This was causing |
| us to leak WebsiteDataStore objects, which would prevent the destruction of sessions. |
| |
| |
| 2018-06-01 Youenn Fablet <youenn@apple.com> |
| |
| Add an option to restrict communication to localhost sockets |
| https://bugs.webkit.org/show_bug.cgi?id=186208 |
| |
| Reviewed by Eric Carlson. |
| |
| Implement restriction to localhost sockets by setting any IP address to 127.0.0.1. |
| This is done on WebProcess side just before requesting to open the socket by NetworkProcess. |
| |
| * WebProcess/Network/webrtc/LibWebRTCNetwork.h: |
| (WebKit::LibWebRTCNetwork::disableNonLocalhostConnections): |
| * WebProcess/Network/webrtc/LibWebRTCProvider.cpp: |
| (WebKit::LibWebRTCProvider::disableNonLocalhostConnections): |
| (WebKit::LibWebRTCProvider::registerMDNSName): |
| * WebProcess/Network/webrtc/LibWebRTCProvider.h: |
| * WebProcess/Network/webrtc/LibWebRTCSocketFactory.cpp: |
| (WebKit::prepareSocketAddress): |
| (WebKit::LibWebRTCSocketFactory::CreateServerTcpSocket): |
| (WebKit::LibWebRTCSocketFactory::CreateUdpSocket): |
| (WebKit::LibWebRTCSocketFactory::CreateClientTcpSocket): |
| * WebProcess/Network/webrtc/LibWebRTCSocketFactory.h: |
| |
| 2018-06-01 Chris Dumez <cdumez@apple.com> |
| |
| Regression(r230876): Swipe navigation snapshot may get removed too early |
| https://bugs.webkit.org/show_bug.cgi?id=186168 |
| <rdar://problem/39743617> |
| |
| Reviewed by Tim Horton. |
| |
| The swipe navigation snapshot would get removed too early when receiving a paint |
| event after requesting a history navigation but before the provisional load has |
| actually started. This is because of the asynchronous navigation policy decision |
| which occurs after requesting to navigate. To address the issue, we now start |
| listening for events only after the provisional load has started. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _didStartProvisionalLoadForMainFrame]): |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| * UIProcess/Cocoa/ViewGestureController.cpp: |
| (WebKit::ViewGestureController::didStartProvisionalLoadForMainFrame): |
| (WebKit::ViewGestureController::didReachMainFrameLoadTerminalState): |
| (WebKit::ViewGestureController::didSameDocumentNavigationForMainFrame): |
| * UIProcess/Cocoa/ViewGestureController.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::didStartProvisionalLoadForMainFrame): |
| * UIProcess/ios/ViewGestureControllerIOS.mm: |
| (WebKit::ViewGestureController::endSwipeGesture): |
| * UIProcess/mac/PageClientImplMac.h: |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::didStartProvisionalLoadForMainFrame): |
| * UIProcess/mac/ViewGestureControllerMac.mm: |
| (WebKit::ViewGestureController::endSwipeGesture): |
| |
| 2018-06-01 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Unreviewed, build fix for r232276. |
| |
| iOS sandbox profiles don't preprocess macros. Therefore, remove the whole |
| macro condition block. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb: |
| |
| 2018-06-01 Sihui Liu <sihui_liu@apple.com> |
| |
| Stop using StorageTracker.db in LocalStorageDatabaseTracker |
| https://bugs.webkit.org/show_bug.cgi?id=186104 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Stop using StorageTracker.db and stop caching origins in LocalStorageDatabaseTracker for efficiency |
| and simplicity. Since functions in LocalStorageDatabaseTracker are not frequently called, we get |
| little benefits from caching origins. |
| |
| * Platform/Logging.h: |
| * UIProcess/API/C/WKKeyValueStorageManager.cpp: |
| (WKKeyValueStorageManagerGetStorageDetailsByOrigin): |
| * UIProcess/WebStorage/LocalStorageDatabaseTracker.cpp: |
| (WebKit::LocalStorageDatabaseTracker::LocalStorageDatabaseTracker): |
| (WebKit::LocalStorageDatabaseTracker::didOpenDatabaseWithOrigin): |
| (WebKit::LocalStorageDatabaseTracker::deleteDatabaseWithOrigin): |
| (WebKit::LocalStorageDatabaseTracker::deleteAllDatabases): |
| (WebKit::LocalStorageDatabaseTracker::databasesModifiedSince): |
| (WebKit::LocalStorageDatabaseTracker::origins const): |
| (WebKit::LocalStorageDatabaseTracker::originDetails): |
| (WebKit::LocalStorageDatabaseTracker::databasePath const): |
| (WebKit::fileCreationTime): Deleted. |
| (WebKit::fileModificationTime): Deleted. |
| (WebKit::LocalStorageDatabaseTracker::trackerDatabasePath const): Deleted. |
| (WebKit::LocalStorageDatabaseTracker::openTrackerDatabase): Deleted. |
| (WebKit::LocalStorageDatabaseTracker::importOriginIdentifiers): Deleted. |
| (WebKit::LocalStorageDatabaseTracker::updateTrackerDatabaseFromLocalStorageDatabaseFiles): Deleted. |
| (WebKit::LocalStorageDatabaseTracker::addDatabaseWithOriginIdentifier): Deleted. |
| (WebKit::LocalStorageDatabaseTracker::removeDatabaseWithOriginIdentifier): Deleted. |
| (WebKit::LocalStorageDatabaseTracker::pathForDatabaseWithOriginIdentifier): Deleted. |
| * UIProcess/WebStorage/LocalStorageDatabaseTracker.h: |
| * UIProcess/WebStorage/StorageManager.h: |
| |
| 2018-06-01 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [GTK] Crash in WebKitFaviconDatabase when pageURL is unset |
| https://bugs.webkit.org/show_bug.cgi?id=186164 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| PageURL can legitimately be null here if JavaScript does something silly with window.open. |
| |
| * UIProcess/API/glib/WebKitFaviconDatabase.cpp: |
| (webkitFaviconDatabaseSetIconURLForPageURL): |
| (webkitFaviconDatabaseSetIconForPageURL): |
| |
| 2018-05-31 Brian Burg <bburg@apple.com> |
| |
| [Cocoa] Web Automation: use the session delegate to perform window maximize |
| https://bugs.webkit.org/show_bug.cgi?id=186167 |
| <rdar://problem/40544391> |
| |
| Reviewed by Timothy Hatcher. |
| |
| Add plumbing to hand off window maximizing to the session delegate. |
| |
| * UIProcess/API/Cocoa/_WKAutomationSessionDelegate.h: |
| * UIProcess/Cocoa/AutomationSessionClient.h: |
| * UIProcess/Cocoa/AutomationSessionClient.mm: |
| (WebKit::AutomationSessionClient::AutomationSessionClient): |
| (WebKit::AutomationSessionClient::requestMaximizeWindowOfPage): |
| |
| 2018-06-01 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Try to fix GTK+ build with old versions of GTK+ after r232390. |
| |
| * UIProcess/gtk/WebPopupMenuProxyGtk.cpp: |
| (WebKit::WebPopupMenuProxyGtk::showPopupMenu): |
| |
| 2018-06-01 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Switch to use a popup window with a tree view instead of a menu for option menu default implementation |
| https://bugs.webkit.org/show_bug.cgi?id=186146 |
| |
| Reviewed by Michael Catanzaro. |
| |
| It's more convenient to use than the menu. |
| |
| * UIProcess/API/gtk/WebKitPopupMenu.cpp: |
| (WebKit::menuCloseCallback): |
| (WebKit::WebKitPopupMenu::activateItem): |
| * UIProcess/API/gtk/WebKitPopupMenu.h: |
| * UIProcess/gtk/WebPopupMenuProxyGtk.cpp: |
| (WebKit::WebPopupMenuProxyGtk::WebPopupMenuProxyGtk): |
| (WebKit::WebPopupMenuProxyGtk::selectItem): |
| (WebKit::WebPopupMenuProxyGtk::activateItem): |
| (WebKit::WebPopupMenuProxyGtk::activateItemAtPath): |
| (WebKit::WebPopupMenuProxyGtk::treeViewRowActivatedCallback): |
| (WebKit::WebPopupMenuProxyGtk::treeViewButtonReleaseEventCallback): |
| (WebKit::WebPopupMenuProxyGtk::buttonPressEventCallback): |
| (WebKit::WebPopupMenuProxyGtk::keyPressEventCallback): |
| (WebKit::WebPopupMenuProxyGtk::createPopupMenu): |
| (WebKit::WebPopupMenuProxyGtk::show): |
| (WebKit::WebPopupMenuProxyGtk::showPopupMenu): |
| (WebKit::WebPopupMenuProxyGtk::hidePopupMenu): |
| (WebKit::WebPopupMenuProxyGtk::cancelTracking): |
| (WebKit::WebPopupMenuProxyGtk::typeAheadFindIndex): |
| (WebKit::WebPopupMenuProxyGtk::typeAheadFind): |
| * UIProcess/gtk/WebPopupMenuProxyGtk.h: |
| |
| 2018-05-31 Per Arne Vollan <pvollan@apple.com> |
| |
| Add OpenGL display mask to WebPage creation parameters. |
| https://bugs.webkit.org/show_bug.cgi?id=186163 |
| <rdar://problem/40634504> |
| |
| Reviewed by Brent Fulgham. |
| |
| To make sure the OpenGL display mask is always available, include it in the WebPage creation parameters. |
| The OpenGL display mask is sent to the WebProcess when the platform display ID changes, but that is not |
| early enough in all cases. If the OpenGL display mask is not set, only OpenGL software rendering is offered |
| on some hardware configurations. |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::creationParameters): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_credentialsMessenger): |
| |
| 2018-05-31 Brent Fulgham <bfulgham@apple.com> |
| |
| Add a rule to allow reading files with prefix /private/var/db/CVMS/cvmsCodeSignObj |
| https://bugs.webkit.org/show_bug.cgi?id=186157 |
| <rdar://problem/40666437> |
| |
| Reviewed by Eric Carlson. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-05-31 Megan Gardner <megan_gardner@apple.com> |
| |
| Add setting to allow override screen size to be disabled. |
| https://bugs.webkit.org/show_bug.cgi?id=186109 |
| |
| Reviewed by Andy Estes. |
| |
| Pipe the needed settings through to WebCore. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::m_configurationPreferenceValues): |
| |
| 2018-05-31 Brent Fulgham <bfulgham@apple.com> |
| |
| [macOS] Add JIT entitlements to WebContent process and plugin process on macOS |
| https://bugs.webkit.org/show_bug.cgi?id=184485 |
| <rdar://problem/37556535> |
| |
| Reviewed by Dan Bernstein. |
| |
| This patch builds on the changes from Bug 185526 to add support for a JIT entitlement. It makes the |
| following changes: |
| |
| 1. Adds a new 'WebContent-OSX.entitlements file that unconditionally adds the JIT entitlement for all builds. |
| 2. Modifies the PluginService.entitlements to unconditionally add the JIT entitlement. |
| |
| * Configurations/PluginService.entitlements: Updated to add the JIT entitlement. |
| * Configurations/WebContent-OSX.entitlements: Updated to add the JIT entitlement. |
| * Configurations/WebContentService.xcconfig: Updated to use the new 'WebContent-OSX.entitlements' file. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-05-31 Brent Fulgham <bfulgham@apple.com> |
| |
| Don't attempt to extend sandbox when running tests with mock media devices |
| https://bugs.webkit.org/show_bug.cgi?id=186150 |
| <rdar://problem/40690875> |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| Avoid attempting to issue a sandbox extension to actual media devices when |
| running with Mock capture devices. |
| |
| Also handle the 'denyNextRequest' test state outside of the USE(APPLE_INTERNAL_SDK) |
| guards, since it is needed for Open Source builds as well. |
| |
| * UIProcess/UserMediaProcessManager.cpp: |
| (WebKit::UserMediaProcessManager::willCreateMediaStream): |
| |
| 2018-05-31 Antti Koivisto <antti@apple.com> |
| |
| WebKit memory management: Safari jetsams on some websites when zooming and scrolling |
| https://bugs.webkit.org/show_bug.cgi?id=186091 |
| <rdar://problem/36315010> |
| |
| Reviewed by Geoff Garen. |
| |
| When zooming a page rapidly the visible rect and the page zoom level may get momentarily out of sync. |
| When this happens we may generate tiles for a much larger area than needed and run out of memory |
| building the next layer tree transaction. Running out of memory is more likely if the page has lots of |
| tiled layers in addition to the main content layer. |
| |
| We already have code for dealing with the scale mismatch for zoom-out case (where this would cause |
| visibly missing tiles). This patch enables the same exact adjustment for zoom-in case (where the |
| symptom is creating too many tiles). |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::adjustExposedRectForNewScale): |
| |
| Do some renames to make it clear that this can both expand and contract the visible rect. |
| Bail out if there is nothing to do. |
| |
| (WebKit::WebPage::updateVisibleContentRects): |
| |
| Call adjustExposedRectForNewScale directly and unconditionally. |
| |
| (WebKit::adjustExposedRectForBoundedScale): Deleted. |
| |
| 2018-05-30 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| [JSC] Pass VM& parameter as much as possible |
| https://bugs.webkit.org/show_bug.cgi?id=186085 |
| |
| Reviewed by Saam Barati. |
| |
| * WebProcess/Plugins/Netscape/NPJSObject.cpp: |
| (WebKit::NPJSObject::hasMethod): |
| (WebKit::NPJSObject::construct): |
| (WebKit::NPJSObject::invoke): |
| |
| 2018-05-30 Brent Fulgham <bfulgham@apple.com> |
| |
| [macOS] WebProcess needs TCC entitlements for media capture (Take 2) |
| https://bugs.webkit.org/show_bug.cgi?id=185526 |
| <rdar://problem/36674649> |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| In Bug 181995 I added TCC entitlements for media capture to the macOS entitlements used for |
| relocatable builds. These changes also need to apply to system builds of WebKit. |
| |
| Previously we had not needed an entitlements file for system builds of WebKit, so only provided |
| an entitlements file for our relocatable build targets. Now we need entitlements when building |
| on recent macOS targets using internal SDKs. |
| |
| Since these various scenarios are beginning to multiple, this patch dynamically generates the |
| entitlements file. |
| |
| This patch does the following: |
| |
| 1. Changes the "WebContent-OSX.entitlements" to hold the TCC entitlements needed for media capture, and rename |
| to "WebContent-OSX-restricted.entitlements". |
| 2. Removes the unneeded "com.apple.private.xpc.domain-extension" from WebContent-OSX.entitlement, and dynamically |
| adds it using a new build step using the script 'process-webcontent-entitlements.sh' |
| 3. Updates DebugRelease.xcconfig to use the 'Safari Engineering' signing key for internal builds. |
| 4. Updates WebContentService.xcconfig to remove the CODE_SIGN_ENTITLEMENTS_OSX_WITH_XPC_DOMAIN_EXTENSION_YES target |
| since we no longer need a custom entitlement file for this case. |
| 5. Updates WebContentService.Development.xcconfig to remove CODE_SIGN_ENTITLEMENTS_COCOA_TOUCH_NO since it is no |
| longer needed. |
| 6. Deletes the file Configurations/WebContent.Development.entitlements since it is no longer needed. |
| 7. Revises the WebContent process sandbox to allow camera and microphone access without needing TCC |
| entitlements, since those cannot be applied without an internal SDK. |
| 8. Revises the UserMediaProcessManager to not pass dynamic sandbox extensions to the WebContent process |
| when building with the public SDK since those entitlements cannot be added or consumed in Open |
| Source builds. |
| |
| We want to use the TCC entitlements when building with the internal SDK on recent macOS builds. |
| |
| * Configurations/Base.xcconfig: |
| * Configurations/DebugRelease.xcconfig: |
| * Configurations/WebContent-OSX-restricted.entitlements: Renamed from Source/WebKit/Configurations/WebContent-OSX.entitlements. |
| * Configurations/WebContent.Development.entitlements: Removed. |
| * Configurations/WebContentService.Development.xcconfig: |
| * Configurations/WebContentService.xcconfig: |
| * Scripts/process-webcontent-entitlements.sh: Added. |
| * UIProcess/UserMediaProcessManager.cpp: |
| (WebKit::UserMediaProcessManager::willCreateMediaStream): Don't bother creating and sending sandbox extensions for |
| camera and microphone control for builds that cannot support them. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-05-30 Daniel Bates <dabates@apple.com> |
| |
| NavigationAction does not need to hold initiating DOM Event |
| https://bugs.webkit.org/show_bug.cgi?id=185958 |
| <rdar://problem/40531539> |
| |
| Reviewed by Simon Fraser. |
| |
| Write in terms of NavigationAction::{keyStateEventData, mouseEventDataForFirstMouseEvent}(). |
| |
| * WebProcess/InjectedBundle/InjectedBundleNavigationAction.cpp: |
| (WebKit::mouseButtonForMouseEventData): |
| (WebKit::syntheticClickTypeForMouseEventData): |
| (WebKit::clickLocationInRootViewCoordinatesForMouseEventData): |
| (WebKit::InjectedBundleNavigationAction::modifiersForNavigationAction): |
| (WebKit::InjectedBundleNavigationAction::mouseButtonForNavigationAction): |
| (WebKit::InjectedBundleNavigationAction::syntheticClickTypeForNavigationAction): |
| (WebKit::InjectedBundleNavigationAction::clickLocationInRootViewCoordinatesForNavigationAction): |
| (WebKit::InjectedBundleNavigationAction::InjectedBundleNavigationAction): |
| (WebKit::mouseEventForNavigationAction): Deleted. |
| (WebKit::mouseButtonForMouseEvent): Deleted. |
| (WebKit::syntheticClickTypeForMouseEvent): Deleted. |
| (WebKit::clickLocationInRootViewCoordinatesForMouseEvent): Deleted. |
| |
| 2018-05-30 Andy Estes <aestes@apple.com> |
| |
| [Cocoa] Add an SPI to suppress connection termination errors from CFNetwork when network interfaces change |
| https://bugs.webkit.org/show_bug.cgi?id=186107 |
| <rdar://problem/39338957> |
| |
| Reviewed by Brady Eidson. |
| |
| Added an SPI which configures a process pool's networking process to set the |
| kCFStreamPropertyAutoErrorOnSystemChange to NO on its NSURLSessionConfigurations. |
| This instructs CFNetwork to not terminate active connections when the system's |
| network interfaces change. |
| |
| * NetworkProcess/NetworkProcess.h: |
| (WebKit::NetworkProcess::suppressesConnectionTerminationOnSystemChange const): |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa): |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| (API::ProcessPoolConfiguration::copy): |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: |
| (-[_WKProcessPoolConfiguration suppressesConnectionTerminationOnSystemChange]): |
| (-[_WKProcessPoolConfiguration setSuppressesConnectionTerminationOnSystemChange:]): |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeNetworkProcess): |
| |
| 2018-05-30 Youenn Fablet <youenn@apple.com> |
| |
| Rename FromOrigin runtime flag to CrossOriginResourcePolicy and enable it by default |
| https://bugs.webkit.org/show_bug.cgi?id=186082 |
| |
| Reviewed by Chris Dumez. |
| |
| * NetworkProcess/NetworkResourceLoadParameters.cpp: |
| (WebKit::NetworkResourceLoadParameters::encode const): |
| (WebKit::NetworkResourceLoadParameters::decode): |
| * NetworkProcess/NetworkResourceLoadParameters.h: |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetCrossOriginResourcePolicyEnabled): |
| (WKPreferencesGetCrossOriginResourcePolicyEnabled): |
| (WKPreferencesSetFromOriginResponseHeaderEnabled): Deleted. |
| (WKPreferencesGetFromOriginResponseHeaderEnabled): Deleted. |
| * UIProcess/API/C/WKPreferencesRef.h: |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess): |
| |
| 2018-05-30 Youenn Fablet <youenn@apple.com> |
| |
| Rename CrossOriginResourcePolicy same to same-origin |
| https://bugs.webkit.org/show_bug.cgi?id=186080 |
| |
| Reviewed by Chris Dumez. |
| |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::shouldCrossOriginResourcePolicyPolicyCancelLoad): |
| |
| 2018-05-30 David Kilzer <ddkilzer@apple.com> |
| |
| [iOS] -[WKFullScreenViewController viewWillAppear:] should call [super viewWillAppeear:] |
| <https://webkit.org/b/186103> |
| <rdar://problem/40655695> |
| |
| Reviewed by Eric Carlson. |
| |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.mm: |
| (WKFullScreenViewControllerPlaybackSessionModelClient::setInterface): |
| Drive-by clean up. For consistency, we always use the same |
| variable in the body of the `if` statement that was used in the |
| condition. |
| (-[WKFullScreenViewController viewWillAppear:]): Call |
| [super viewWillAppeear:] to fulfill API contract. |
| |
| 2018-05-30 Chris Dumez <cdumez@apple.com> |
| |
| Take a background process assertion in WebPageProxy::callAfterNextPresentationUpdate() |
| https://bugs.webkit.org/show_bug.cgi?id=186097 |
| <rdar://problem/40651225> |
| |
| Reviewed by Dan Bernstein. |
| |
| Refactor fix landed in r232298 so that we rely on the existing Callback infrastructure |
| to take a background process assertion. |
| |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm: |
| (WebKit::RemoteLayerTreeDrawingAreaProxy::dispatchAfterEnsuringDrawing): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::callAfterNextPresentationUpdate): |
| |
| 2018-05-30 Aditya Keerthi <akeerthi@apple.com> |
| |
| Fix the ENABLE(DATALIST_ELEMENT) build |
| https://bugs.webkit.org/show_bug.cgi?id=186105 |
| |
| Reviewed by Wenson Hsieh. |
| |
| * WebProcess/Automation/WebAutomationSessionProxy.cpp: |
| |
| 2018-05-30 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Unreviewed, a quick build fix for r232276. |
| |
| Enabled SecItemShim again as it turns out to be useful for CFNetwork APIs that |
| query Keychains underneath us. |
| |
| * NetworkProcess/ios/NetworkProcessIOS.mm: |
| (WebKit::NetworkProcess::platformInitializeNetworkProcess): |
| * NetworkProcess/mac/NetworkProcessMac.mm: |
| (WebKit::NetworkProcess::platformInitializeNetworkProcess): |
| |
| 2018-05-30 Jer Noble <jer.noble@apple.com> |
| |
| Auto-pip should use main content heuristic. |
| https://bugs.webkit.org/show_bug.cgi?id=186065 |
| <rdar://problem/35862502> |
| |
| Reviewed by Eric Carlson. |
| |
| Make the m_pipStandbyElement clearable, which will allow the auto-pip mechanism to be torn down. Add |
| a WebProcess-side notification when the main content changes, to facilitate this. |
| |
| * WebProcess/FullScreen/WebFullScreenManager.cpp: |
| (WebKit::WebFullScreenManager::videoControlsManagerDidChange): |
| (WebKit::WebFullScreenManager::setPIPStandbyElement): |
| (WebKit::WebFullScreenManager::didEnterFullScreen): |
| (WebKit::WebFullScreenManager::willExitFullScreen): |
| * WebProcess/FullScreen/WebFullScreenManager.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::videoControlsManagerDidChange): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/cocoa/PlaybackSessionManager.h: |
| * WebProcess/cocoa/PlaybackSessionManager.mm: |
| (WebKit::PlaybackSessionManager::setUpPlaybackControlsManager): |
| (WebKit::PlaybackSessionManager::clearPlaybackControlsManager): |
| (WebKit::PlaybackSessionManager::currentPlaybackControlsElement const): |
| |
| 2018-05-30 Jer Noble <jer.noble@apple.com> |
| |
| Fix a few issues in WKFullScreenViewController |
| https://bugs.webkit.org/show_bug.cgi?id=186067 |
| <rdar://problem/40630944> |
| |
| Reviewed by Darin Adler. |
| |
| The check in setInterface() is checking the wrong pointer: |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.mm: |
| (WKFullScreenViewControllerPlaybackSessionModelClient::setInterface): |
| |
| The check in -_effectiveFullscreenInsetTop is backwards: |
| (-[WKFullScreenViewController _effectiveFullscreenInsetTop]): |
| |
| 2018-05-30 Chris Dumez <cdumez@apple.com> |
| |
| Take a background process assertion in WebPageProxy::callAfterNextPresentationUpdate() |
| https://bugs.webkit.org/show_bug.cgi?id=186097 |
| <rdar://problem/40651225> |
| |
| Reviewed by Tim Horton. |
| |
| Take a background process assertion in WebPageProxy::callAfterNextPresentationUpdate(). Otherwise, |
| apps may get stuck on _doAfterNextPresentationUpdate because the WebProcess got suspended. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::callAfterNextPresentationUpdate): |
| |
| 2018-05-29 Tim Horton <timothy_horton@apple.com> |
| |
| Fix the build |
| https://bugs.webkit.org/show_bug.cgi?id=186078 |
| |
| Unreviewed build fix. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _denyNextUserMediaRequest]): |
| |
| 2018-05-29 Andy Estes <aestes@apple.com> |
| |
| [Wi-Fi Assertions] Track whether WiFiAssertionHolder should actually hold a Wi-Fi assertion |
| https://bugs.webkit.org/show_bug.cgi?id=185983 |
| <rdar://problem/40205486> |
| |
| Reviewed by Tim Horton. |
| |
| * Configurations/Network-iOS.entitlements: |
| |
| Added a needed entitlement. |
| |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.h: |
| * NetworkProcess/cocoa/WiFiAssertionHolder.h: |
| (WebKit::WiFiAssertionHolder::shouldHoldWiFiAssertion const): |
| |
| Track whether WiFiAssertionHolder should actually hold a Wi-Fi assertion. |
| |
| * NetworkProcess/cocoa/WiFiAssertionHolder.mm: Renamed from Source/WebKit/NetworkProcess/cocoa/WiFiAssertionHolder.cpp. |
| (holdWiFiAssertion): |
| (releaseWiFiAssertion): |
| (WebKit::WiFiAssertionHolder::WiFiAssertionHolder): |
| (WebKit::WiFiAssertionHolder::~WiFiAssertionHolder): |
| |
| Changed holdWiFiAssertion() and releaseWiFiAssertion() to take the |
| WiFiAssertionHolder as an argument. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb: |
| |
| Added a needed sandbox extension. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-05-29 Youenn Fablet <youenn@apple.com> |
| |
| Add a consistency check between URL and CFURL |
| https://bugs.webkit.org/show_bug.cgi?id=186057 |
| <rdar://problem/40258457> |
| |
| Reviewed by Geoff Garen. |
| |
| * Shared/Cocoa/WKNSURLExtras.mm: |
| (+[NSURL _web_URLWithWTFString:relativeToURL:]): |
| (urlWithWTFString): Deleted. |
| (+[NSURL _web_URLWithWTFString:]): Deleted. |
| |
| 2018-05-29 Alex Christensen <achristensen@webkit.org> |
| |
| Remove unused WebPage::dummy |
| https://bugs.webkit.org/show_bug.cgi?id=186068 |
| |
| Reviewed by Sam Weinig. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::dummy): Deleted. |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2018-05-29 Per Arne Vollan <pvollan@apple.com> |
| |
| Create typedef for HashMap<PlatformDisplayID, ScreenProperties> |
| https://bugs.webkit.org/show_bug.cgi?id=186056 |
| |
| Reviewed by Brent Fulgham. |
| |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::decode): |
| * Shared/WebProcessCreationParameters.h: |
| |
| 2018-05-25 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Tighten sandbox profiles for Networking Processes to restrict accesses to macOS/iOS Keychains |
| https://bugs.webkit.org/show_bug.cgi?id=162948 |
| <rdar://problem/40558894> |
| |
| Reviewed by Brent Fulgham. |
| |
| The patch conditionally tighten sandbox profiles for Networking Processes to remove Keychain related |
| permissions and some security permisssions that are not needed. Also it conditionally remove the |
| Process Privilege for Networking Processes to access Credentials. |
| |
| In addition, it remove process privilege assertions for SecItemShim as it is supposed to work in processes |
| that don't have privileges to access Keychains and delegate all operations to UI Process via IPC. Also, |
| the patch disables SecItemShim for Networking Process conditionally. |
| |
| * Configurations/Network-iOS.entitlements: |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| * NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in: |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb: |
| * Shared/mac/SecItemShim.cpp: |
| (WebKit::sendSecItemRequest): |
| (WebKit::webSecItemCopyMatching): |
| (WebKit::webSecItemAdd): |
| (WebKit::webSecItemUpdate): |
| (WebKit::webSecItemDelete): |
| (WebKit::initializeSecItemShim): |
| |
| 2018-05-29 Chris Dumez <cdumez@apple.com> |
| |
| Store 0-lifetime stylesheets / scripts into the disk cache for faster history navigations |
| https://bugs.webkit.org/show_bug.cgi?id=186060 |
| <rdar://problem/40627270> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Tweak our storeUnconditionallyForHistoryNavigation logic to match resources whose priority |
| is High, not just VeryHigh. Per logic in CachedResource::defaultPriorityForResourceType(Type), |
| This now matches stylesheets and scripts in addition to main resources. |
| |
| I found that in case of a history navigation to apple.com, a significant number of scripts |
| and stylesheets had to be loaded from the network because our previous heuristic decided |
| not to store them (because their priority was not VeryHigh and because their max-age was |
| 0). |
| |
| * NetworkProcess/cache/NetworkCache.cpp: |
| (WebKit::NetworkCache::makeStoreDecision): |
| |
| 2018-05-28 Jeff Miller <jeffm@apple.com> |
| |
| Expose additional WKMenuItemIdentifier strings |
| https://bugs.webkit.org/show_bug.cgi?id=186041 |
| |
| Reviewed by Dan Bernstein. |
| |
| Expose identifiers for media-related menu items. |
| |
| * UIProcess/API/Cocoa/WKMenuItemIdentifiers.mm: |
| Define new identifiers. |
| |
| * UIProcess/API/Cocoa/WKMenuItemIdentifiersPrivate.h: |
| Declare new identifiers. |
| |
| * UIProcess/mac/WebContextMenuProxyMac.mm: |
| (WebKit::menuItemIdentifier): |
| Map to new identifiers. |
| |
| 2018-05-29 Geoffrey Garen <ggaren@apple.com> |
| |
| Removed some unused WebSQL trackers |
| https://bugs.webkit.org/show_bug.cgi?id=186026 |
| |
| Reviewed by Dan Bernstein. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::NetworkProcess): |
| * NetworkProcess/NetworkProcess.h: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::m_nonVisibleProcessCleanupTimer): |
| (WebKit::m_webSQLiteDatabaseTracker): Deleted. |
| * WebProcess/WebProcess.h: |
| |
| 2018-05-29 Per Arne Vollan <pvollan@apple.com> |
| |
| Follow-up fixes after r228907. |
| https://bugs.webkit.org/show_bug.cgi?id=183338 |
| |
| Reviewed by Brent Fulgham. |
| |
| Add screen properties to the WebProcess creation parameters, instead of sending |
| them in a message to the WebProcess just after starting it up. |
| |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::encode const): |
| (WebKit::WebProcessCreationParameters::decode): |
| * Shared/WebProcessCreationParameters.h: |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::initializeNewWebProcess): |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::platformInitializeWebProcess): |
| |
| 2018-05-29 Sihui Liu <sihui_liu@apple.com> |
| |
| Unable to remove IndexedDB Databases with Cocoa API removeDataOfTypes |
| https://bugs.webkit.org/show_bug.cgi?id=185835 |
| <rdar://problem/39142257> |
| |
| Reviewed by Chris Dumez. |
| |
| Fix a wrong if condition: databases should be closed and deleted if websiteDataTypes contains |
| WebsiteDataType::IndexedDBDatabases. |
| |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::deleteWebsiteDataForOrigins): |
| |
| 2018-05-28 Sam Weinig <sam@webkit.org> |
| |
| Modernize SVGRenderStyleDefs.h |
| https://bugs.webkit.org/show_bug.cgi?id=186024 |
| |
| Reviewed by Daniel Bates. |
| |
| * Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm: |
| (WebKit::applyPropertiesToLayer): |
| * Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm: |
| (WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties): |
| Update for new enum names. |
| |
| 2018-05-28 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Update OptionsGTK.cmake and NEWS for 2.21.3 release. |
| |
| * gtk/NEWS: Add release notes for 2.21.3. |
| |
| 2018-05-27 Dan Bernstein <mitz@apple.com> |
| |
| Reverted the changes made for https://webkit.org/b/186016 |
| |
| They broke the USE(APPLE_INTERNAL_SDK) Sierra build. |
| |
| 2018-05-27 David Kilzer <ddkilzer@apple.com> |
| |
| [iOS] Fix warnings about leaks found by clang static analyzer |
| <https://webkit.org/b/186009> |
| <rdar://problem/40574267> |
| |
| Reviewed by Daniel Bates. |
| |
| * UIProcess/Automation/ios/WebAutomationSessionIOS.mm: |
| (WebKit::WebAutomationSession::platformSimulateKeySequence): Fix |
| leak of two WebEvent objects that happened in a loop. |
| * UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: |
| (-[_WKPreviewControllerDelegate previewController:transitionImageForPreviewItem:contentRect:]): |
| Fix leak of a UIImage. |
| |
| 2018-05-27 Dan Bernstein <mitz@apple.com> |
| |
| [Cocoa] Avoid importing directly from subumbrella frameworks |
| https://bugs.webkit.org/show_bug.cgi?id=186016 |
| |
| Reviewed by Sam Weinig. |
| |
| * Configurations/BaseTarget.xcconfig: Removed -iframework options from OTHER_CFLAGS and |
| OTHER_CPLUSPLUSFLAGS. |
| * UIProcess/Automation/mac/WebAutomationSessionMac.mm: Import Carbon.h instead of an |
| HIToolbox header. |
| * UIProcess/Cocoa/WebViewImpl.mm: Ditto. |
| * UIProcess/mac/WKPrintingView.mm: Import Quartz.h instead of a PDFKit header. |
| * UIProcess/mac/WKTextInputWindowController.mm: Import Carbon.h instead of an HIToolbox |
| header. |
| * WebProcess/Plugins/PDF/PDFAnnotationTextWidgetDetails.h: Import Quartz.h instead of a |
| PDFKit header. |
| * WebProcess/Plugins/PDF/PDFLayerControllerSPI.h: Ditto. |
| * WebProcess/Plugins/PDF/PDFPlugin.mm: Ditto. |
| * WebProcess/Plugins/PDF/PDFPluginAnnotation.mm: Ditto. |
| * WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm: Ditto. |
| * WebProcess/Plugins/PDF/PDFPluginPasswordField.mm: Ditto. |
| * WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm: Ditto. |
| * WebProcess/WebPage/mac/WebPageMac.mm: Ditto. |
| |
| 2018-05-25 Timothy Hatcher <timothy@apple.com> |
| |
| Setting drawsBackground to YES on a WKView doesn't take effect immediately |
| https://bugs.webkit.org/show_bug.cgi?id=185885 |
| rdar://problem/39706506 |
| |
| Reviewed by Simon Fraser. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): Removed setBackgroundExtendsBeyondPage(true) |
| since it is now the default. |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::setDrawsBackground): Make sure updateLayer gets called on the web view |
| by calling setNeedsDisplay:YES. |
| (WebKit::WebViewImpl::setBackgroundColor): Ditto. |
| (WebKit::WebViewImpl::updateLayer): Removed dead code. |
| * UIProcess/WebPageProxy.h: Make m_backgroundExtendsBeyondPage default to true. WebKit was |
| always turning this on during WKWebView initializtion, which would cause the scroll |
| shadow layer to be created, flash black because of no background, then destroyed soon |
| after once WebKit's message to turn it on got delivered. |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebPage::WebPage): Call setBackgroundExtendsBeyondPage earlier to avoid creating the scroll |
| shadow layer, since backgroundShouldExtendBeyondPage defautls to false in WebCore for WK1. |
| (WebKit::WebPage::setDrawsBackground): Use updateBackgroundRecursively to propagate the |
| correct base background color. |
| |
| 2018-05-25 Youenn Fablet <youenn@apple.com> |
| |
| Migrate From-Origin to Cross-Origin-Resource-Policy |
| https://bugs.webkit.org/show_bug.cgi?id=185840 |
| |
| Reviewed by Chris Dumez. |
| |
| Do Cross-Origin-Resource-Policy (CORP) checks in NetworkLoadChecker instead of NetworkResourceLoader directly. |
| Make sure CORP only applies to no-cors loads. |
| Remove ancestor checks and only consider the document origin making the load. |
| This means that in case of cross-origin redirection to same-origin, the redirection will be CORP-checked, |
| the final response will not be CORP-checked but will be opaque. |
| |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::validateCrossOriginResourcePolicyPolicy): |
| (WebKit::NetworkLoadChecker::validateResponse): |
| * NetworkProcess/NetworkLoadChecker.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::retrieveCacheEntry): |
| (WebKit::NetworkResourceLoader::didReceiveResponse): |
| (WebKit::NetworkResourceLoader::continueWillSendRedirectedRequest): |
| (WebKit::NetworkResourceLoader::didRetrieveCacheEntry): |
| (WebKit::NetworkResourceLoader::dispatchWillSendRequestForCacheEntry): |
| * NetworkProcess/NetworkResourceLoader.h: |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess): |
| Send ancestor information for navigation loads only. |
| |
| 2018-05-25 Daniel Bates <dabates@apple.com> |
| |
| NavigationAction should not hold a strong reference to a Document |
| https://bugs.webkit.org/show_bug.cgi?id=185712 |
| <rdar://problem/40320916> |
| |
| Reviewed by Brent Fulgham. |
| |
| Update code to make use of NavigationAction::requester(). |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| |
| 2018-05-25 Tim Horton <timothy_horton@apple.com> |
| |
| Ensure that the Web Content process doesn't sleep during initialization |
| https://bugs.webkit.org/show_bug.cgi?id=185975 |
| <rdar://problem/40548159> |
| |
| Reviewed by Geoffrey Garen. |
| |
| WebProcessPool::warmInitialProcess isn't worth much (or at least, as much |
| as it could be) if the Web Content process goes to sleep in the middle |
| of initializeWebProcess. |
| |
| Keep the Web Content process alive until it has handled all messages |
| sent from WebProcessPool::initializeNewWebProcess. |
| |
| This is a significant speedup on some benchmarks I've been running |
| that involve prewarming a process long before any content is loaded. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::initializeNewWebProcess): |
| |
| 2018-05-25 Chris Dumez <cdumez@apple.com> |
| |
| WebsiteDataStore::enableResourceLoadStatisticsAndSetTestingCallback() unexpectedly constructs a process pool |
| https://bugs.webkit.org/show_bug.cgi?id=185992 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Update enableResourceLoadStatisticsAndSetTestingCallback() to pass the right parameter to processPools() |
| to avoid constructing a process pool when none exist. Also drop the 'resourceLoadStatisticsEnabled' |
| flag on the WebProcessPool and have it query its data store instead to know if the feature is enabled. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::initializeNewWebProcess): |
| (WebKit::WebProcessPool::setResourceLoadStatisticsEnabled): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::enableResourceLoadStatisticsAndSetTestingCallback): |
| |
| 2018-05-25 Chris Dumez <cdumez@apple.com> |
| |
| Drop support for NSURLCache in WebKit2 |
| https://bugs.webkit.org/show_bug.cgi?id=185990 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Drop support for NSURLCache in WebKit2 now that the WebKit network cache is stable. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::setCacheModel): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa): |
| (WebKit::NetworkProcess::clearDiskCache): |
| (WebKit::NetworkProcess::platformSetURLCacheSize): Deleted. |
| (WebKit::clearNSURLCache): Deleted. |
| * NetworkProcess/cocoa/NetworkSessionCocoa.h: |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| (): Deleted. |
| (WebKit::NetworkSessionCocoa::setUsesNetworkCache): Deleted. |
| * NetworkProcess/curl/NetworkProcessCurl.cpp: |
| (WebKit::NetworkProcess::platformSetURLCacheSize): Deleted. |
| * NetworkProcess/soup/NetworkProcessSoup.cpp: |
| (WebKit::NetworkProcess::platformSetURLCacheSize): Deleted. |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeNetworkProcess): |
| (WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory): |
| (WebKit::WebProcessPool::isNetworkCacheEnabled): Deleted. |
| * UIProcess/WebProcessPool.h: |
| * WebProcess/WebPage/WebFrame.cpp: |
| (WebKit::WebFrame::suggestedFilenameForResourceWithURL const): |
| (WebKit::WebFrame::mimeTypeForResourceWithURL const): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::getResourceDataFromFrame): |
| (WebKit::WebPage::hasLocalDataForURL): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/gtk/WebPageGtk.cpp: |
| (WebKit::WebPage::platformHasLocalDataForURL): Deleted. |
| (WebKit::WebPage::cachedResponseMIMETypeForURL): Deleted. |
| (WebKit::WebPage::cachedSuggestedFilenameForURL): Deleted. |
| (WebKit::WebPage::cachedResponseDataForURL): Deleted. |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::platformHasLocalDataForURL): Deleted. |
| (WebKit::WebPage::cachedSuggestedFilenameForURL): Deleted. |
| (WebKit::WebPage::cachedResponseMIMETypeForURL): Deleted. |
| (WebKit::WebPage::cachedResponseDataForURL): Deleted. |
| * WebProcess/WebPage/mac/WebPageMac.mm: |
| (WebKit::WebPage::accessibilityRemoteObject): |
| (WebKit::WebPage::platformHasLocalDataForURL): Deleted. |
| (WebKit::cachedResponseForURL): Deleted. |
| (WebKit::WebPage::cachedSuggestedFilenameForURL): Deleted. |
| (WebKit::WebPage::cachedResponseMIMETypeForURL): Deleted. |
| (WebKit::WebPage::cachedResponseDataForURL): Deleted. |
| * WebProcess/WebPage/win/WebPageWin.cpp: |
| (WebKit::WebPage::platformHasLocalDataForURL): Deleted. |
| (WebKit::WebPage::cachedResponseMIMETypeForURL): Deleted. |
| (WebKit::WebPage::cachedSuggestedFilenameForURL): Deleted. |
| (WebKit::WebPage::cachedResponseDataForURL): Deleted. |
| * WebProcess/WebPage/wpe/WebPageWPE.cpp: |
| (WebKit::WebPage::platformHasLocalDataForURL): Deleted. |
| (WebKit::WebPage::cachedResponseMIMETypeForURL): Deleted. |
| (WebKit::WebPage::cachedSuggestedFilenameForURL): Deleted. |
| (WebKit::WebPage::cachedResponseDataForURL): Deleted. |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::platformInitializeWebProcess): |
| |
| 2018-05-25 Alex Christensen <achristensen@webkit.org> |
| |
| Fix internal iOS builds after r232198 |
| https://bugs.webkit.org/show_bug.cgi?id=185986 |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::sendTapHighlightForNodeIfNecessary): |
| |
| 2018-05-25 Alex Christensen <achristensen@webkit.org> |
| |
| URL::host should return a StringView to reduce allocations |
| https://bugs.webkit.org/show_bug.cgi?id=185986 |
| |
| Reviewed by Geoff Garen. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::fetchDiskCacheEntries): |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::areFrameAncestorsSameSite): |
| * NetworkProcess/mac/NetworkProcessMac.mm: |
| (WebKit::overrideSystemProxies): |
| * Shared/API/APIURL.h: |
| (API::URL::host const): |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::addSingleCookie): |
| (WebKit::WebAutomationSession::deleteAllCookies): |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch): |
| * WebProcess/Plugins/PluginView.cpp: |
| (WebKit::PluginView::pluginDidReceiveUserInteraction): |
| * WebProcess/Plugins/WebPluginInfoProvider.cpp: |
| (WebKit::WebPluginInfoProvider::populatePluginCache): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::needsHiddenContentEditableQuirk): |
| (WebKit::needsPlainTextQuirk): |
| (WebKit::WebPage::determinePrimarySnapshottedPlugIn): |
| |
| 2018-05-25 Adrian Perez de Castro <aperez@igalia.com> |
| |
| Unreviewed. Update OptionsGTK.cmake and NEWS for 2.21.2 release. |
| |
| * wpe/NEWS: Add release notes for the 2.21.2 release. |
| |
| 2018-05-25 Chris Dumez <cdumez@apple.com> |
| |
| Minor ApplicationCacheStorage clean up |
| https://bugs.webkit.org/show_bug.cgi?id=185984 |
| |
| Reviewed by Youenn Fablet. |
| |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::fetchDataAndApply): |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: |
| (WKBundlePageCopyOriginsWithApplicationCache): |
| |
| 2018-05-25 Chris Dumez <cdumez@apple.com> |
| |
| Avoid triggering network cache speculative revalidation for loads allowing expired content |
| https://bugs.webkit.org/show_bug.cgi?id=185985 |
| |
| Reviewed by Antti Koivisto. |
| |
| Avoid triggering network cache speculative revalidation for loads allowing expired content |
| (e.g. history loads, restoring pages after crash or safari relaunch). This causes us to do |
| unnecessary revalidations, it is both wasteful and bad for performance. |
| |
| * NetworkProcess/cache/NetworkCache.cpp: |
| (WebKit::NetworkCache::Cache::retrieve): |
| |
| 2018-05-25 David Kilzer <ddkilzer@apple.com> |
| |
| Fix issues with -dealloc methods found by clang static analyzer |
| <https://webkit.org/b/185887> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: Drive-by fix |
| to use `copy` for `mimeType` property. |
| (-[_WKPreviewControllerDataSource initWithMIMEType:]): Drive-by |
| fix to use `instancetype` instead of `id`. Use -copy for |
| `mimeType` argument to match property definition. |
| (-[_WKPreviewControllerDataSource dealloc]): Add. Release |
| `_completionHandler` and `_mimeType` to fix leaks. |
| * UIProcess/ios/WKPasswordView.mm: |
| (-[WKPasswordView dealloc]): Add. Release |
| `_userDidEnterPassword` to fix leak. |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.h: |
| Drive-by clean-up to make `location` property `copy` instead of |
| `retain`. |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.mm: |
| (-[WKFullScreenViewController dealloc]): Release `_target` and |
| `_location` to fix leaks. |
| * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm: |
| (-[WKFullscreenAnimationController dealloc]): Add. Release |
| `_viewController` to fix leak. |
| * UIProcess/ios/fullscreen/WKFullscreenStackView.mm: |
| (@property secondaryMaterialOverlayView): Mark explicitly as |
| `assign` since this isn't a retained variable. |
| (@property secondaryMaterialOverlayViewConstraints): Mark |
| explicitly as `retain` since there is nothing to keep this |
| object alive. |
| (+[WKFullscreenStackView secondaryMaterialOverlayView]): Fix |
| leak by autoreleasing the return value. |
| (-[WKFullscreenStackView dealloc]): Release retained instance |
| variables to fix leaks. Note that `_stackView` and |
| `_visualEffectView` are internally retained despite their |
| @property declarations. |
| (-[WKFullscreenStackView setTargetViewForSecondaryMaterialOverlay:]): |
| Retain @property targetViewForSecondaryMaterialOverlay to match |
| its declaration. |
| |
| 2018-05-23 Antoine Quint <graouts@apple.com> |
| |
| [Web Animations] Use DEFAULT_EXPERIMENTAL_FEATURES_ENABLED for Web Animations experimental features |
| https://bugs.webkit.org/show_bug.cgi?id=185919 |
| |
| Reviewed by Dean Jackson. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-05-24 Dan Bernstein <mitz@apple.com> |
| |
| ProcessLauncherMac.mm contains a couple of meaningless #ifndef directives |
| https://bugs.webkit.org/show_bug.cgi?id=185973 |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/Launcher/mac/ProcessLauncherMac.mm: |
| (WebKit::ProcessLauncher::launchProcess): Use #if !ASSERT_DISABLED to guard statements that |
| are only needed for an assertion, instead of #ifndef _NDEBUG, which is always true. |
| |
| 2018-05-24 Carlos Alberto Lopez Perez <clopez@igalia.com> |
| |
| [GTK][WPE] Memory pressure monitor doesn't reliable notify all the subprocesses |
| https://bugs.webkit.org/show_bug.cgi?id=184261 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| On Linux we had two implementations for getting notifications about memory pressure events: |
| - The memory cgroup (called systemd here). |
| - The UIProcess memory monitor (which delivered events via a shared eventfd) |
| |
| The problem with the first is that it was usually not working on a standard machine due to |
| the special permissions or configurations required for memory cgroups, so the second one |
| (eventfd) was used as a fall-back in that case. |
| But this eventfd method is racy with more than one WebKit child process and it wasn't |
| reliably delivering the notifications. |
| |
| This patch removes the memory cgroup implementation and modifies the UIProcess memory monitor |
| to deliver the events via WebKit IPC. This simplifies the code a lot and allows us to have |
| only one implementation that should work in any Linux machine. |
| |
| The implementation now also triggers the event with information about the criticalness of it. |
| |
| Previously a critical event was triggered always at a 95% of pressure. |
| Now a non-critical one is triggered at 90% and critical remains at a 95%. |
| |
| Start triggering events early should compensate the fact than triggering the event via WebKit IPC is |
| a bit slower than doing that via an eventfd (or than listening on the memory cgroup event controller). |
| |
| The events are delivered to all WebKit childs: WebProcess, NetworkProcess, StorageProcess, PluginProcess. |
| |
| In the case of the StorageProcess a dummy controller is installed, which currently does nothing, |
| but leaves a note for a future implementation and at least allows to trigger platformReleaseMemory() |
| that on Linux/glibc should end calling malloc_trim() |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * PluginProcess/PluginProcess.cpp: |
| (WebKit::PluginProcess::didReceiveMessage): |
| (WebKit::PluginProcess::initializePluginProcess): |
| * Shared/ChildProcess.cpp: |
| (WebKit::ChildProcess::didReceiveMemoryPressureEvent): |
| * Shared/ChildProcess.h: |
| * Shared/ChildProcess.messages.in: |
| * Shared/Plugins/PluginProcessCreationParameters.cpp: |
| (WebKit::PluginProcessCreationParameters::encode const): |
| (WebKit::PluginProcessCreationParameters::decode): |
| * Shared/Plugins/PluginProcessCreationParameters.h: |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::encode const): |
| (WebKit::WebProcessCreationParameters::decode): |
| * Shared/WebProcessCreationParameters.h: |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::initializeProcess): |
| * UIProcess/Plugins/PluginProcessManager.cpp: |
| (WebKit::PluginProcessManager::sendMemoryPressureEvent): |
| * UIProcess/Plugins/PluginProcessManager.h: |
| * UIProcess/Plugins/PluginProcessProxy.cpp: |
| (WebKit::PluginProcessProxy::sendMemoryPressureEvent): |
| (WebKit::PluginProcessProxy::didFinishLaunching): |
| * UIProcess/Plugins/PluginProcessProxy.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::sendMemoryPressureEvent): |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| (WebKit::WebProcessPool::initializeNewWebProcess): |
| * UIProcess/WebProcessPool.h: |
| (WebKit::WebProcessPool::sendToStorageProcess): |
| * UIProcess/linux/MemoryPressureMonitor.cpp: |
| (WebKit::pollIntervalForUsedMemoryPercentage): Fix equation for calculating the interval percentage. |
| (WebKit::MemoryPressureMonitor::singleton): |
| (WebKit::MemoryPressureMonitor::start): |
| * UIProcess/linux/MemoryPressureMonitor.h: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeWebProcess): |
| |
| 2018-05-24 Youenn Fablet <youenn@apple.com> |
| |
| Update plugin search path to look for user installed plugins |
| https://bugs.webkit.org/show_bug.cgi?id=185960 |
| |
| Reviewed by Brent Fulgham. |
| |
| Now that UIProcess may be sandboxed, the home directory is no longer the user home directory. |
| Update the path to still look for plugins in the user home directory. |
| |
| * UIProcess/Plugins/mac/PluginInfoStoreMac.mm: |
| (WebKit::PluginInfoStore::pluginsDirectories): |
| |
| 2018-05-24 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Adopt SecKeyProxy SPI in certificate based challenge response code |
| https://bugs.webkit.org/show_bug.cgi?id=185848 |
| <rdar://problem/34586181> |
| |
| Reviewed by Alex Christensen. |
| |
| This patch adopts SecKeyProxy SPI in HTTPS client certificate authentication code. |
| 1) SecKeyProxy is a new SPI to relay crypto operations from one process to another. The owner process of the proxy |
| will behave like a server, and other owners of the SecKeys created from the proxy's endpoints will then behave |
| like clients. This client-server model allows more restricted sandbox for client processes, and meanwhile permits |
| them to relay crypto operations to the server process while maintaining the same SecKey interfaces as used for local operations. |
| 2) Because of the client-server model, the server process, i.e. the UI Process in our case, needs to keep the proxy |
| object alive long enough for the client process, i.e. Network Processes in our case, to finish all operations, and then destroy |
| the proxy object afterward. The ideal place to hold such a proxy is WebsiteDataStore such that proxies could live with the |
| corresponding network session. |
| 3) A new class called SecKeyProxyStore is then created to bind the lifetime of SecKeyProxy to the WebsiteDataStore while initializing |
| it correctly. At the time the authentication process reaches WebPageProxy::didReceiveAuthenticationChallengeProxy where we have |
| accesses to the WebsiteDataStore, we haven't yet been able to determine the Credential to authenticate the challenge. Therefore, we |
| have to reserve a place in the WebsiteDataStore ahead and then fill it with the right Credential. That's why SecKeyProxyStore exists. |
| In WebPageProxy::didReceiveAuthenticationChallengeProxy, we create a strong reference of SecKeyProxyStore which will eventually hold |
| a strong reference of the SecKeyProxy, and move it to the WebsiteDataStore. We also create a weak reference to SecKeyProxyStore |
| and move it to the AuthenticationChallenge. In this way, we indirectly bind the lifetime of SecKeyProxy to the WebsiteDataStore through |
| the strong reference and also we can initialize the proxy through the weak reference while a credential is finally determined. |
| 4) Endpoints of the SecKeyProxy will be passed to the Network Process for creating the 'remote' SecKey. However, those endpoints are |
| of NSXPCListenerEndpoint type, which can only be passed with xpc connections and are not compatible with our IPC mechanism. In order |
| to pass endpoints around, this patch reuses the xpc connection that is used to bootstrap Network Processes from the UI Process. To do |
| so, it sends xpc messages at the place where original IPC messages are sent and overwrites the boostrap listener of the xpc connection |
| when Network Process is initialized. From the listener, it continues the original authentication code path. |
| 5) Tests, again, are manually covered by tlstestwebkit.org. Noted, the prompting Keychain dialog in macOS should say Safari instead of |
| "com.apple.WebKit.Networking*" now. |
| |
| * Shared/AuthenticationManagerCocoa.mm: Added. |
| (WebKit::AuthenticationManager::initializeConnection): |
| * Shared/Authentication/cocoa/AuthenticationManager.h: |
| * Shared/Authentication/cocoa/ClientCertificateAuthenticationXPCConstants.h: |
| * UIProcess/Authentication/AuthenticationChallengeProxy.cpp: |
| (WebKit::AuthenticationChallengeProxy::useCredential): |
| (WebKit::AuthenticationChallengeProxy::setSecKeyProxyStore): |
| * UIProcess/Authentication/AuthenticationChallengeProxy.h: |
| * UIProcess/Authentication/cocoa/AuthenticationChallengeProxyCocoa.mm: Added. |
| (WebKit::AuthenticationChallengeProxy::sendClientCertificateCredentialOverXpc const): |
| * UIProcess/Authentication/cocoa/SecKeyProxyStore.h: Added. |
| (WebKit::SecKeyProxyStore::create): |
| (WebKit::SecKeyProxyStore::isInitialized const): |
| (WebKit::SecKeyProxyStore::get const): |
| (WebKit::SecKeyProxyStore::weakPtrFactory const): |
| * UIProcess/Authentication/cocoa/SecKeyProxyStore.mm: Added. |
| (WebKit::SecKeyProxyStore::initialize): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didReceiveAuthenticationChallengeProxy): |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::addSecKeyProxyStore): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-05-24 Megan Gardner <megan_gardner@apple.com> |
| |
| Fix Issues with Loupe Gesture |
| https://bugs.webkit.org/show_bug.cgi?id=185926 |
| |
| Reviewed by Tim Horton. |
| |
| The loupe gesture was not giving us the correct selection in some situations. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView gestureRecognizer:canBePreventedByGestureRecognizer:]): |
| (-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]): |
| (-[WKContentView setSelectedTextRange:]): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::selectWithGesture): |
| (WebKit::WebPage::clearSelection): |
| |
| 2018-05-24 Keith Rollin <krollin@apple.com> |
| |
| Don't track resource load milestones in private sessions |
| https://bugs.webkit.org/show_bug.cgi?id=185828 |
| <rdar://problem/40424197> |
| |
| Reviewed by Brent Fulgham. |
| |
| Bug 184838 adds the facility for tracing the beginning and ending of |
| resources loads and reporting so that historical information can be |
| gathered to assess the health of the networking stack. Disable this |
| facility for private browsing sessions. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::startTrackingResourceLoad): |
| (WebKit::NetworkConnectionToWebProcess::stopTrackingResourceLoad): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::start): |
| |
| 2018-05-24 Brent Fulgham <bfulgham@apple.com> |
| |
| REGRESSION(r224908): [macOS] Media playback not honoring custom caption styles |
| https://bugs.webkit.org/show_bug.cgi?id=185955 |
| <rdar://problem/40339278> |
| |
| Reviewed by Eric Carlson. |
| |
| In r224908 I removed access to the MediaAccessibility mach port, as well as |
| read/write access to various preferences associated with that process, as it |
| was no longer needed by modern WebKit media routines. |
| |
| Detailed testing reveals that read access is still needed to these preferences |
| to properly handle custom caption styles. |
| |
| This patch re-enables access to the media accessibility preferences. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-05-24 Brent Fulgham <bfulgham@apple.com> |
| |
| REGRESSION(r230269): ASSERTION FAILED: sendRightCount == 1 at ProcessLauncherMac.mm(218) |
| https://bugs.webkit.org/show_bug.cgi?id=185687 |
| <rdar://problem/39386361> |
| |
| Reviewed by Brady Eidson. |
| |
| In r230269 I added an assertion to help identify cases where we were doing bad |
| bookkeeping in our port send rights. I assumed that because we were adding |
| one send right, that when we went to close down the connection that we should |
| have only one send right. |
| |
| I have since discovered that this assumption is invalid, and that I should |
| only be checking that we have AT LEAST ONE send right at the time we attempt |
| to remove it. |
| |
| This patch changes the assertion to confirm that we have at least one send |
| right before we remove the send right. |
| |
| * UIProcess/Launcher/mac/ProcessLauncherMac.mm: |
| (WebKit::ProcessLauncher::launchProcess): |
| |
| 2018-05-24 Chris Dumez <cdumez@apple.com> |
| |
| Some of the work in initializeLogChannelsIfNecessary() is unnecessary for release builds |
| https://bugs.webkit.org/show_bug.cgi?id=185951 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Some of the work in initializeLogChannelsIfNecessary() is unnecessary for release builds and slows down |
| launch time. In particular, it is unnecessary to read NSDefaults to figure out which logging channels |
| should be enabled. |
| |
| * Platform/foundation/LoggingFoundation.mm: |
| (WebKit::logLevelString): |
| * Platform/unix/LoggingUnix.cpp: |
| (WebKit::logLevelString): |
| * Platform/win/LoggingWin.cpp: |
| (WebKit::logLevelString): |
| |
| 2018-05-24 Per Arne Vollan <pvollan@apple.com> |
| |
| Crash under WebKit::PluginProxy::destroy() |
| https://bugs.webkit.org/show_bug.cgi?id=185841 |
| <rdar://problem/39936896> |
| |
| Reviewed by Brent Fulgham. |
| |
| A release assert in Connection::sencSync is failing since scripts are not allowed in this context, |
| and the WebKit process is allowed to process incoming messages while waiting for the sync reply. |
| In this context, scripts are disallowed in the method Element::addShadowRoot. To make sure the |
| WebContent process will not wait indefinitely for a reply from the Plugin process, use a timeout |
| of 1 second when sending the message. |
| |
| * WebProcess/Plugins/PluginProxy.cpp: |
| (WebKit::PluginProxy::destroy): |
| |
| 2018-05-24 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Fix GTK+ input method unit tests after r232049. |
| |
| Unit tests don't use a WebPageProxy. |
| |
| * UIProcess/gtk/InputMethodFilter.cpp: |
| (WebKit::InputMethodFilter::isViewFocused const): |
| (WebKit::InputMethodFilter::setEnabled): |
| * UIProcess/gtk/InputMethodFilter.h: |
| |
| 2018-05-24 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| WebDriver: implement maximize, minimize and fullscreen window commands |
| https://bugs.webkit.org/show_bug.cgi?id=180398 |
| |
| Reviewed by Brian Burg. |
| |
| * UIProcess/API/APIAutomationSessionClient.h: |
| (API::AutomationSessionClient::requestMaximizeWindowOfPage): Added to allow clients maximize the window. |
| * UIProcess/API/glib/WebKitAutomationSession.cpp: |
| * UIProcess/API/glib/WebKitWebViewPrivate.h: |
| * UIProcess/API/gtk/WebKitWebViewGtk.cpp: |
| (WindowStateEvent::WindowStateEvent): Struct to handle window state events. |
| (WindowStateEvent::~WindowStateEvent): Complete the event. |
| (WindowStateEvent::complete): Call the completion handler is not called already. |
| (windowStateEventCallback): Handle window state event changes. |
| (webkitWebViewMaximizeWindow): Try to maximize the window and wait for the event. |
| (webkitWebViewMinimizeWindow): Try to minimize the window and wait for the event. |
| (webkitWebViewRestoreWindow): Try to unmaximize or unminimize the window and wait for the event. |
| * UIProcess/API/wpe/WebKitWebViewWPE.cpp: |
| (webkitWebViewMaximizeWindow): |
| (webkitWebViewMinimizeWindow): |
| (webkitWebViewRestoreWindow): |
| * UIProcess/Automation/Automation.json: |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::maximizeWindowOfBrowsingContext): Exit fullscreen, restore the window and then |
| maximize it. |
| (WebKit::WebAutomationSession::maximizeWindowForPage): Ask the client to maximize the window of page. |
| * UIProcess/Automation/WebAutomationSession.h: |
| * UIProcess/Automation/atoms/EnterFullscreen.js: |
| (enterFullscreen): Return early if fullscreen is disabled or if window is already in fullscreen. |
| |
| 2018-05-23 Eric Carlson <eric.carlson@apple.com> |
| |
| Avoid loading AVFoundation to check supported MIME types if possible |
| https://bugs.webkit.org/show_bug.cgi?id=185839 |
| <rdar://problem/40182010> |
| |
| Reviewed by Jer Noble. |
| |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::encode const): Encode mediaMIMETypes. |
| (WebKit::WebProcessCreationParameters::decode): Decode mediaMIMETypes. |
| * Shared/WebProcessCreationParameters.h: |
| |
| * UIProcess/Cocoa/WebProcessProxyCocoa.mm: |
| (WebKit::mediaTypeCache): Static Vector of media MIME types. |
| (WebKit::WebProcessProxy::cacheMediaMIMETypes): Cache the type list and pass it to every other |
| process proxy. |
| (WebKit::WebProcessProxy::cacheMediaMIMETypesInternal): Cache the type list and pass it to the |
| web process. |
| (WebKit::WebProcessProxy::mediaMIMETypes): Return the cached type list. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::initializeNewWebProcess): Set parameters.mediaMIMETypes. |
| |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebProcessProxy.messages.in: Add CacheMediaMIMETypes. |
| |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: Add SetMediaMIMETypes. |
| |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::platformInitializeWebProcess): Cache the MIME types if the list isn't |
| empty, else register with AVFoundationMIMETypeCache to be notified when it loads types. |
| AVFoundationMIMETypeCache to |
| (WebKit::WebProcess::platformTerminate): Unregister with AVFoundationMIMETypeCache. |
| (WebKit::WebProcess::setMediaMIMETypes): Pass list of types to AVFoundationMIMETypeCache. |
| |
| 2018-05-23 Brian Burg <bburg@apple.com> |
| |
| Web Automation: disable process swap on navigation when an automation session is active |
| https://bugs.webkit.org/show_bug.cgi?id=185552 |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigationInternal): |
| This is not intended to work right now. Opt out to avoid crashing |
| later when a process is deallocated unexpectedly. |
| |
| 2018-05-23 Youenn Fablet <youenn@apple.com> |
| |
| NetworkLoadChecker should check cached redirections |
| https://bugs.webkit.org/show_bug.cgi?id=185849 |
| |
| Reviewed by Chris Dumez. |
| |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::checkRedirection): |
| Set the resource error url as done by WebCore SubresourceLoader. |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::retrieveCacheEntry): |
| Pass the resource request to dispatchWillSendRedirectedRequest now needs it. |
| (WebKit::NetworkResourceLoader::willSendRedirectedRequest): |
| Make sure that m_networkLoad is not null before cancelling it since we might be checking a cached redirection. |
| (WebKit::NetworkResourceLoader::continueWillSendRedirectedRequest): |
| Ensure the redirect response is coming from the Network before adding it to the cache. |
| (WebKit::NetworkResourceLoader::dispatchWillSendRequestForCacheEntry): |
| Call willSendRedirectedRequest to make sure the cached redirect is validated. |
| * NetworkProcess/NetworkResourceLoader.h: |
| |
| 2018-05-23 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] WebDriver: implement AutomationSessionClient::didDisconnectFromRemote |
| https://bugs.webkit.org/show_bug.cgi?id=185866 |
| |
| Reviewed by Brian Burg. |
| |
| To handle the case of the session being closed by the browser, for example in case of a network process |
| crash. This is currently causing WebDriver tests to timeout in the bot. |
| |
| * UIProcess/API/glib/WebKitAutomationSession.cpp: Add an implementation of didDisconnectFromRemote() to notify |
| the WebContext that the session will be closed. |
| * UIProcess/API/glib/WebKitWebContext.cpp: Remove the automation session when closed. |
| * UIProcess/API/glib/WebKitWebContextPrivate.h: |
| |
| 2018-05-22 Brent Fulgham <bfulgham@apple.com> |
| |
| Close access to "lsopen" for non-UI process |
| https://bugs.webkit.org/show_bug.cgi?id=185890 |
| <rdar://problem/39686511> |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| Close down access to 'lsopen' in the iOS sandboxes. These operations are |
| performed by the UIProcess on behalf of these helper processes. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb: |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.Storage.sb: |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2018-05-22 Dean Jackson <dino@apple.com> |
| |
| Optimized path zoom animation needs a valid UIImage and CGRect |
| https://bugs.webkit.org/show_bug.cgi?id=185883 |
| <rdar://problem/40306056> |
| |
| Reviewed by Jon Lee. |
| |
| Take the rectangle that was passed into the ResourceRequest and |
| use it for the origin of an animation into QuickLook. |
| |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<ResourceRequest>::encode): |
| (IPC::ArgumentCoder<ResourceRequest>::decode): |
| * UIProcess/Cocoa/DownloadClient.mm: |
| (WebKit::DownloadClient::didStart): |
| * UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: |
| (-[_WKPreviewControllerDelegate initWithSystemPreviewController:fromRect:]): |
| (-[_WKPreviewControllerDelegate presentingViewController]): |
| (-[_WKPreviewControllerDelegate previewController:frameForPreviewItem:inSourceView:]): |
| (-[_WKPreviewControllerDelegate previewController:transitionImageForPreviewItem:contentRect:]): |
| (WebKit::SystemPreviewController::start): |
| (-[_WKPreviewControllerDelegate initWithSystemPreviewController:]): Deleted. |
| * UIProcess/Downloads/DownloadProxy.h: |
| (WebKit::DownloadProxy::systemPreviewDownloadRect const): |
| * UIProcess/SystemPreviewController.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::syncRootViewToScreen): |
| * UIProcess/WebPageProxy.h: |
| |
| 2018-05-22 Sihui Liu <sihui_liu@apple.com> |
| |
| [iOS] TestWebKitAPI.WebKit.WKHTTPCookieStoreWithoutProcessPool fails because cookies use different files with/without processpool |
| https://bugs.webkit.org/show_bug.cgi?id=185831 |
| |
| Reviewed by Chris Dumez. |
| |
| Started to use uiProcessCookieStorageIdentifier for iOS: make sure cookies handled without |
| processpool would use the same storage file as when processpool exists. |
| |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa): |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::encode const): |
| (WebKit::WebProcessCreationParameters::decode): |
| * Shared/WebProcessCreationParameters.h: |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): |
| (WebKit::WebProcessPool::platformInitializeNetworkProcess): |
| |
| 2018-05-22 Chris Dumez <cdumez@apple.com> |
| |
| Regression(AsyncPolicyDelegates): Box.app login Window is blank |
| https://bugs.webkit.org/show_bug.cgi?id=185832 |
| <rdar://problem/40307871> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Moved WeakObjCPtr.h header from WebKit/ to wtf/ so that it can be used in |
| WebKitLegacy code. |
| |
| * UIProcess/API/Cocoa/WKBrowsingContextController.mm: |
| * UIProcess/API/Cocoa/WKBrowsingContextControllerInternal.h: |
| * UIProcess/API/Cocoa/WKConnection.mm: |
| * UIProcess/API/Cocoa/WKHTTPCookieStore.mm: |
| * UIProcess/API/Cocoa/WKProcessGroup.mm: |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| * UIProcess/API/Cocoa/WKScriptMessage.mm: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: |
| * UIProcess/API/Cocoa/_WKAutomationSession.mm: |
| * UIProcess/API/Cocoa/_WKDownload.mm: |
| * UIProcess/API/Cocoa/_WKElementAction.mm: |
| * UIProcess/ApplicationStateTracker.h: |
| * UIProcess/Cocoa/AutomationClient.h: |
| * UIProcess/Cocoa/AutomationSessionClient.h: |
| * UIProcess/Cocoa/DiagnosticLoggingClient.h: |
| * UIProcess/Cocoa/DownloadClient.h: |
| * UIProcess/Cocoa/FindClient.h: |
| * UIProcess/Cocoa/FullscreenClient.h: |
| * UIProcess/Cocoa/IconLoadingDelegate.h: |
| * UIProcess/Cocoa/NavigationState.h: |
| * UIProcess/Cocoa/UIDelegate.h: |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.mm: |
| * UIProcess/Cocoa/WKReloadFrameErrorRecoveryAttempter.mm: |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/ios/ViewGestureControllerIOS.mm: |
| * UIProcess/ios/WKActionSheetAssistant.mm: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| * UIProcess/ios/WKPDFView.mm: |
| (-[WKPDFView web_setContentProviderData:suggestedFilename:]): |
| * UIProcess/ios/WKScrollView.mm: |
| * UIProcess/mac/WKInspectorViewController.mm: |
| * UIProcess/mac/WKInspectorWKWebView.mm: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm: |
| |
| 2018-05-22 Sihui Liu <sihui_liu@apple.com> |
| |
| Conversion between SecurityOriginData and DatabaseIdentifier is asymmetric when port is null |
| https://bugs.webkit.org/show_bug.cgi?id=185715 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Add getter for origins in WKWebsiteDataRecord for testing. |
| |
| * UIProcess/API/Cocoa/WKWebsiteDataRecord.mm: |
| (-[WKWebsiteDataRecord _originsString]): |
| * UIProcess/API/Cocoa/WKWebsiteDataRecordPrivate.h: |
| |
| |
| 2018-05-22 Brady Eidson <beidson@apple.com> |
| |
| Rename the "Web content is visible" process assertion. |
| https://bugs.webkit.org/show_bug.cgi?id=185878 |
| |
| Reviewed by Chris Dumez. |
| |
| * UIProcess/ios/ProcessAssertionIOS.mm: |
| (WebKit::ProcessAssertion::ProcessAssertion): |
| |
| 2018-05-22 Andy Estes <aestes@apple.com> |
| |
| [Wi-Fi Assertions] Drop assertions on process suspension |
| https://bugs.webkit.org/show_bug.cgi?id=185844 |
| <rdar://problem/40352319> |
| |
| Reviewed by Daniel Bates. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::actualPrepareToSuspend): |
| (WebKit::NetworkProcess::processDidResume): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::platformPrepareToSuspend): |
| (WebKit::NetworkProcess::platformProcessDidResume): |
| |
| 2018-05-22 Brent Fulgham <bfulgham@apple.com> |
| |
| REGRESSION(r229093): Re-enable Network Extension support in the WebContent process (Take 2) |
| https://bugs.webkit.org/show_bug.cgi?id=185874 |
| <rdar://problem/40454404> |
| |
| Reviewed by Eric Carlson. |
| |
| Add back a necessary XPC connection after locking down the network features in r229093. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-05-22 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r232052. |
| |
| Breaks internal builds. |
| |
| Reverted changeset: |
| |
| "Use more C++17" |
| https://bugs.webkit.org/show_bug.cgi?id=185176 |
| https://trac.webkit.org/changeset/232052 |
| |
| 2018-05-22 Alberto Garcia <berto@igalia.com> |
| |
| [CMake] Properly detect compiler flags, needed libs, and fallbacks for usage of 64-bit atomic operations |
| https://bugs.webkit.org/show_bug.cgi?id=182622 |
| <rdar://problem/40292317> |
| |
| Reviewed by Michael Catanzaro. |
| |
| Move the test to determine whether we need to link against |
| libatomic to the common file WebKitCompilerFlags.cmake so it can |
| also be used for JavaScriptCore. |
| |
| * CMakeLists.txt: |
| |
| 2018-05-22 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, rolling out r231843. |
| |
| Broke cross build |
| |
| Reverted changeset: |
| |
| "[CMake] Properly detect compiler flags, needed libs, and |
| fallbacks for usage of 64-bit atomic operations" |
| https://bugs.webkit.org/show_bug.cgi?id=182622 |
| https://trac.webkit.org/changeset/231843 |
| |
| 2018-05-22 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Crash when loading a SVG image |
| https://bugs.webkit.org/show_bug.cgi?id=185819 |
| |
| Reviewed by Brent Fulgham. |
| |
| This is happening in WebLoaderStrategy::scheduleLoad() when getting the value of |
| FrameLoaderClient::pageID(). SVGImage uses the empty clients for the loader, and |
| EmptyFrameLoaderClient::pageID() returns std::nullopt. The same happens with the frameID. This changed in |
| r225934, when pageID() and frameID() were changed to return std::optional, EmptyFrameLoaderClient was updated to |
| return std::nullopt instead of 0. |
| |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::scheduleLoad): Use value_or(0) instead of value() to get pageID and frameID from |
| FrameLoaderClient. |
| |
| 2018-05-21 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| Use more C++17 |
| https://bugs.webkit.org/show_bug.cgi?id=185176 |
| |
| Reviewed by JF Bastien. |
| |
| * Configurations/Base.xcconfig: |
| * DerivedSources.make: |
| |
| 2018-05-21 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK][Wayland] UI process crash when closing the window |
| https://bugs.webkit.org/show_bug.cgi?id=185818 |
| |
| Reviewed by Michael Catanzaro. |
| |
| This happens when a page containing a text field is loaded but the focus remains in the url bar when the window |
| is closed. This is because we are sending a notify-in to the IM context, but the focus is still in the URL |
| bar. That confuses the wayland input method manager that tries to free the text of the web view IM context that has |
| already been deleted. |
| |
| * UIProcess/gtk/InputMethodFilter.cpp: |
| (WebKit::InputMethodFilter::setEnabled): Only send notify-in if the view is actually focused. |
| |
| 2018-05-21 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Remove unused and no-op WKContextSetCookieStorageDirectory |
| https://bugs.webkit.org/show_bug.cgi?id=185857 |
| |
| Reviewed by Youenn Fablet. |
| |
| Deleted C API which didn't do anything useful, and consequently not used by anyone. |
| |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextSetCookieStorageDirectory): Deleted. |
| * UIProcess/API/C/WKContextPrivate.h: |
| * UIProcess/WebProcessPool.h: |
| |
| 2018-05-21 Chris Nardi <cnardi@chromium.org> |
| |
| Remove dead exception in MediaList.appendMedium |
| https://bugs.webkit.org/show_bug.cgi?id=185278 |
| |
| Reviewed by Chris Dumez. |
| |
| Remove code pertaining to an exception being thrown by appendMedium(). |
| |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaList.cpp: |
| (webkit_dom_media_list_append_medium): |
| |
| 2018-05-21 Aditya Keerthi <akeerthi@apple.com> |
| |
| [iOS] Click events only fire once when editing |
| https://bugs.webkit.org/show_bug.cgi?id=185777 |
| |
| Reviewed by Tim Horton. |
| |
| gestureRecognizerShouldBegin: was returning false for the single tap gesture when a node was being |
| edited. This is an artifact of how the gesture was previously handled with the text selection assistant. |
| This condition is now removed, allowing the single tap gesture to go through and correctly propagate the |
| click event. |
| |
| Also added an early return to _didGetTapHighlightForRequest: in order to prevent the tap highlight from |
| being shown when the node is already being assisted. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _didGetTapHighlightForRequest:color:quads:topLeftRadius:topRightRadius:bottomLeftRadius:bottomRightRadius:]): |
| (-[WKContentView gestureRecognizerShouldBegin:]): |
| |
| 2018-05-21 Daniel Bates <dabates@apple.com> |
| |
| REGRESSION (r231107): CSP report-only policies are ignored for beacon, importScripts, fetch(), EventSource, and XHR |
| https://bugs.webkit.org/show_bug.cgi?id=185789 |
| <rdar://problem/40380175> |
| |
| Reviewed by Andy Estes. |
| |
| Have NetworkLoadChecker implement the ContentSecurityPolicyClient interface and support logging |
| console messages, sending CSP reports, and dispatching SecurityPolicyViolation events. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::loadPing): |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::NetworkLoadChecker): Modified to take a reference to the NetworkConnectionToWebProcess, |
| the web page ID, the web frame ID, and the resource load identifier. These details are necessary |
| in order to implement the ContentSecurityPolicyClient interface. |
| (WebKit::NetworkLoadChecker::isAllowedByContentSecurityPolicy): Added. |
| (WebKit::NetworkLoadChecker::continueCheckingRequest): Write in terms of isAllowedByContentSecurityPolicy(). |
| (WebKit::NetworkLoadChecker::contentSecurityPolicy): Pass ourself as the client so that we receive |
| delegate callbacks. |
| (WebKit::NetworkLoadChecker::addConsoleMessage): Added. |
| (WebKit::NetworkLoadChecker::sendCSPViolationReport): Added. |
| (WebKit::NetworkLoadChecker::enqueueSecurityPolicyViolationEvent): Added. |
| * NetworkProcess/NetworkLoadChecker.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (NetworkResourceLoader::enqueueSecurityPolicyViolationEvent): Added. |
| * NetworkProcess/NetworkResourceLoader.h: |
| * NetworkProcess/PingLoad.cpp: |
| (WebKit::PingLoad::PingLoad): Modified to take a reference to the NetworkConnectionToWebProcess and pass |
| this through to the NetworkLoadChecker along with the web page ID, web frame ID and resource load identifier. |
| * NetworkProcess/PingLoad.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::enqueueSecurityPolicyViolationEvent): Added. |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: Add message EnqueueSecurityPolicyViolationEvent. |
| |
| 2018-05-21 Brian Burg <bburg@apple.com> |
| |
| Web Automation: always return an empty cookie list if document.cookieURL() is empty |
| https://bugs.webkit.org/show_bug.cgi?id=185838 |
| <rdar://problem/37737526> |
| |
| Reviewed by Tim Horton. |
| |
| * WebProcess/Automation/WebAutomationSessionProxy.cpp: |
| (WebKit::WebAutomationSessionProxy::getCookiesForFrame): |
| This crashes in CFNetwork code because an empty cookie URL is not a valid input. |
| Just return an empty list since there couldn't be any cookies returned. |
| |
| 2018-05-21 Brian Burg <bburg@apple.com> |
| |
| Web Automation: terminate the automation session if the network or storage process crashes |
| https://bugs.webkit.org/show_bug.cgi?id=185827 |
| <rdar://problem/40424020> |
| |
| Reviewed by Tim Horton. |
| |
| If one of the processes crashes, the page may be in an undefined state and |
| automation will fail in unpredictable ways. It's better to just give up immediately. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::networkProcessFailedToLaunch): |
| (WebKit::WebProcessPool::storageProcessCrashed): |
| |
| 2018-05-21 Sihui Liu <sihui_liu@apple.com> |
| |
| Add a diskCacheSizeOverride accessor function on WKContextConfigurationRef |
| https://bugs.webkit.org/show_bug.cgi?id=185826 |
| <rdar://problem/39732113> |
| |
| Reviewed by Alex Christensen. |
| |
| * UIProcess/API/C/WKContextConfigurationRef.cpp: |
| (WKContextConfigurationDiskCacheSizeOverride): |
| (WKContextConfigurationSetDiskCacheSizeOverride): |
| * UIProcess/API/C/WKContextConfigurationRef.h: |
| |
| 2018-05-21 Jer Noble <jer.noble@apple.com> |
| |
| Complete fix for enabling modern EME by default |
| https://bugs.webkit.org/show_bug.cgi?id=185770 |
| <rdar://problem/40368220> |
| |
| Reviewed by Eric Carlson. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2018-05-21 Sam Weinig <sam@webkit.org> |
| |
| Modernize RenderStyleConstants.h - Part 1 |
| https://bugs.webkit.org/show_bug.cgi?id=185809 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::rangeForWebSelectionAtPosition): |
| (WebKit::WebPage::getPositionInformation): |
| Update for new enum names. |
| |
| 2018-05-21 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Update OptionsGTK.cmake and NEWS for 2.21.2 release. |
| |
| * gtk/NEWS: Add release notes for 2.21.2. |
| |
| 2018-05-21 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed, rolling out r222967. |
| |
| It's not ready yet |
| |
| Reverted changeset: |
| |
| "[GTK][WPE] Add API to configure and enable resource load |
| statistics" |
| https://bugs.webkit.org/show_bug.cgi?id=177943 |
| https://trac.webkit.org/changeset/222967 |
| |
| 2018-05-18 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r231982. |
| https://bugs.webkit.org/show_bug.cgi?id=185793 |
| |
| Caused layout test failures (Requested by realdawei on |
| #webkit). |
| |
| Reverted changeset: |
| |
| "Complete fix for enabling modern EME by default" |
| https://bugs.webkit.org/show_bug.cgi?id=185770 |
| https://trac.webkit.org/changeset/231982 |
| |
| 2018-05-18 Brian Burg <bburg@apple.com> |
| |
| [Cocoa] Add missing nullability annotations to _WKAutomationSessionDelegate |
| https://bugs.webkit.org/show_bug.cgi?id=185791 |
| <rdar://problem/40279891> |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/API/Cocoa/_WKAutomationSessionDelegate.h: If there is no dialog shown, |
| then the delegate methods to return the dialog text may return a nil NSString. |
| |
| 2018-05-18 Youenn Fablet <youenn@apple.com> |
| |
| NetworkLoadChecker should cancel its content extension retrieval task when being destroyed |
| https://bugs.webkit.org/show_bug.cgi?id=185661 |
| <rdar://problem/39985509> |
| |
| Reviewed by Chris Dumez. |
| |
| Make sure that the Content Extension retrieval callback checks that NetworkLoadChecker is alive. |
| This allows stopping NetworkLoadChecker be ref counted. |
| This in turns allows NetworkResourceLoader to delete its NetworkLoadChecker when being deleted as well. |
| By doing so, we simplify the memory management of NetworkResourceLoader and NetworkLoadChecker. |
| |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::checkRequest): |
| (WebKit::NetworkLoadChecker::processContentExtensionRulesForLoad): |
| * NetworkProcess/NetworkLoadChecker.h: |
| (WebKit::NetworkLoadChecker::weakPtrFactory): |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| * NetworkProcess/NetworkResourceLoader.h: |
| * NetworkProcess/PingLoad.cpp: |
| (WebKit::PingLoad::PingLoad): |
| * NetworkProcess/PingLoad.h: |
| |
| 2018-05-18 Per Arne Vollan <pvollan@apple.com> |
| |
| WebProcess fails to launch |
| https://bugs.webkit.org/show_bug.cgi?id=185140 |
| |
| Reviewed by Geoffrey Garen. |
| |
| If the NSApplication runloop is not used in the WebContent process, launchServicesCheckIn() needs to be called |
| in order for enableSandboxStyleFileQuarantine() to succeed. Determine at runtime if launchServicesCheckIn() |
| should be called by checking if the NSApplication event loop is running. |
| |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::platformInitializeProcess): |
| |
| 2018-05-18 Jer Noble <jer.noble@apple.com> |
| |
| Complete fix for enabling modern EME by default |
| https://bugs.webkit.org/show_bug.cgi?id=185770 |
| <rdar://problem/40368220> |
| |
| Reviewed by Eric Carlson. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2018-05-18 Brent Fulgham <bfulgham@apple.com> |
| |
| Convert ProcessPrivilege assertions to regular debug-only assertions |
| https://bugs.webkit.org/show_bug.cgi?id=185775 |
| <rdar://problem/40372286> |
| |
| Reviewed by Geoffrey Garen. |
| |
| In Bug 184322 I added a number of RELEASE_ASSERT checks that certain |
| UI-only calls were not being made in the WebContent process. |
| |
| Measurements have shown that these RELEASE_ASSERTs have regressed performance |
| by around 1% on some benchmarks, so we should convert them to normal asserts. |
| |
| This patch changes the RELEASE_ASSERTs into ASSERTs. |
| |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::WebViewImpl): |
| (WebKit::WebViewImpl::becomeFirstResponder): |
| (WebKit::WebViewImpl::pluginFocusOrWindowFocusChanged): |
| (WebKit::WebViewImpl::validateUserInterfaceItem): |
| (WebKit::WebViewImpl::startSpeaking): |
| (WebKit::WebViewImpl::stopSpeaking): |
| (WebKit::applicationFlagsForDrag): |
| (WebKit::WebViewImpl::doneWithKeyEvent): |
| * UIProcess/Gamepad/mac/UIGamepadProviderMac.mm: |
| (WebKit::UIGamepadProvider::platformWebPageProxyForGamepadInput): |
| * UIProcess/Plugins/mac/PluginProcessProxyMac.mm: |
| (WebKit::PluginProcessProxy::enterFullscreen): |
| (WebKit::PluginProcessProxy::beginModal): |
| (WebKit::PluginProcessProxy::endModal): |
| * UIProcess/mac/DisplayLink.cpp: |
| (WebKit::DisplayLink::DisplayLink): |
| (WebKit::DisplayLink::~DisplayLink): |
| * UIProcess/mac/WebPageProxyMac.mm: |
| (WebKit::WebPageProxy::getIsSpeaking): |
| (WebKit::WebPageProxy::speak): |
| (WebKit::WebPageProxy::stopSpeaking): |
| (WebKit::WebPageProxy::startDisplayLink): |
| * UIProcess/mac/WebPopupMenuProxyMac.mm: |
| (WebKit::WebPopupMenuProxyMac::showPopupMenu): |
| |
| 2018-05-18 Eric Carlson <eric.carlson@apple.com> |
| |
| Handle failure to extend sandbox gracefully |
| https://bugs.webkit.org/show_bug.cgi?id=185779 |
| <rdar://problem/40316349> |
| |
| Reviewed by Brent Fulgham. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _denyNextUserMediaRequest]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| |
| * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: |
| (WebKit::UserMediaPermissionRequestManagerProxy::userMediaAccessWasGranted): Don't append |
| the request to m_grantedRequests if it failed. |
| (WebKit::UserMediaPermissionRequestManagerProxy::grantAccess): Deny request if willCreateMediaStream |
| fails. |
| * UIProcess/UserMediaPermissionRequestManagerProxy.h: |
| |
| * UIProcess/UserMediaProcessManager.cpp: |
| (WebKit::UserMediaProcessManager::willCreateMediaStream): Don't try to extend sandbox if |
| we fail to allocate all necessary handles. |
| * UIProcess/UserMediaProcessManager.h: |
| (WebKit::UserMediaProcessManager::denyNextUserMediaRequest): New, for testing. |
| |
| 2018-05-18 Antoine Quint <graouts@apple.com> |
| |
| [Web Animations] Turn Web Animations with CSS integration on for test runners |
| https://bugs.webkit.org/show_bug.cgi?id=184819 |
| <rdar://problem/39597337> |
| |
| Unreviewed. Rolling out the patch for this bug, it caused some flaky timeouts for animation suspension tests. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-05-18 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Clearing text fields should dispatch input events of type "deleteContent" |
| https://bugs.webkit.org/show_bug.cgi?id=185769 |
| <rdar://problem/40368261> |
| |
| Reviewed by Tim Horton. |
| |
| When setting the text of the currently focused element to the empty string, just delete the text instead of |
| pretending to insert an empty string. This mimics deleting content using the delete key on macOS, and fires an |
| input event with inputType "deleteContent" instead of "insertText". |
| |
| Test: fast/forms/extrazoom/delete-content-in-text-field.html |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::setTextAsync): |
| |
| 2018-05-18 Keith Rollin <krollin@apple.com> |
| |
| Renamed "trackNetworkActivity" to "tracksResourceLoadMilestones" |
| https://bugs.webkit.org/show_bug.cgi?id=185523 |
| <rdar://problem/40136361> |
| |
| Reviewed by Geoffrey Garen. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::networkActivityTrackingEnabled): |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| * NetworkProcess/NetworkProcess.h: |
| (WebKit::NetworkProcess::tracksResourceLoadMilestones const): |
| (WebKit::NetworkProcess::trackNetworkActivity const): Deleted. |
| * 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: |
| (WKContextConfigurationTracksResourceLoadMilestones): |
| (WKContextConfigurationSetTracksResourceLoadMilestones): |
| (WKContextConfigurationTrackNetworkActivity): Deleted. |
| (WKContextConfigurationSetTrackNetworkActivity): Deleted. |
| * UIProcess/API/C/WKContextConfigurationRef.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: |
| (-[_WKProcessPoolConfiguration tracksResourceLoadMilestones]): |
| (-[_WKProcessPoolConfiguration setTracksResourceLoadMilestones:]): |
| (-[_WKProcessPoolConfiguration trackNetworkActivity]): Deleted. |
| (-[_WKProcessPoolConfiguration setTrackNetworkActivity:]): Deleted. |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| |
| 2018-05-18 Chris Dumez <cdumez@apple.com> |
| |
| Avoid keeping the frame alive when ref'ing a WindowProxy |
| https://bugs.webkit.org/show_bug.cgi?id=185737 |
| <rdar://problem/40004666> |
| |
| Reviewed by Sam Weinig. |
| |
| * WebProcess/Plugins/PluginView.cpp: |
| (WebKit::PluginView::windowScriptNPObject): |
| |
| 2018-05-18 Youenn Fablet <youenn@apple.com> |
| |
| -Wmemset-elt-size warning in LibWebRTCSocket constructor |
| https://bugs.webkit.org/show_bug.cgi?id=185555 |
| <rdar://problem/40217250> |
| |
| Reviewed by Darin Adler. |
| |
| GetOption implementation was broken in that it was not initializing properly its array of options. |
| This patch fixes it by using an array of optional<int> which are initialized by default. |
| When no value is set, we return the error code -1. |
| In theory, we should go to NetworkProcess to get the actual value. |
| Since GetOption is not used in practice, we just do this best effort implementation of storing previously set values. |
| |
| * WebProcess/Network/webrtc/LibWebRTCSocket.cpp: |
| (WebKit::LibWebRTCSocket::LibWebRTCSocket): |
| (WebKit::LibWebRTCSocket::GetOption): |
| * WebProcess/Network/webrtc/LibWebRTCSocket.h: |
| |
| 2018-05-18 Antoine Quint <graouts@apple.com> |
| |
| [Web Animations] Turn Web Animations with CSS integration on for test runners |
| https://bugs.webkit.org/show_bug.cgi?id=184819 |
| <rdar://problem/39597337> |
| |
| Reviewed by Jon Lee. |
| |
| * Shared/WebPreferences.yaml: Leave Web Animations off by default, it's up to clients |
| to turn it on. |
| |
| 2018-05-18 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [Curl] Remove unused SystemProxyWin.cpp |
| https://bugs.webkit.org/show_bug.cgi?id=185224 |
| |
| Reviewed by Antti Koivisto. |
| |
| SystemProxyWin is not used at the moment. Remove it. |
| |
| * NetworkProcess/win/SystemProxyWin.cpp: Removed. |
| * NetworkProcess/win/SystemProxyWin.h: Removed. |
| * PlatformWin.cmake: Removed SystemProxyWin.cpp. |
| |
| 2018-05-17 Nan Wang <n_wang@apple.com> |
| |
| AX: [macOS] Expose the primary screen height through AX API |
| https://bugs.webkit.org/show_bug.cgi?id=185742 |
| |
| Reviewed by Chris Fleizach. |
| |
| * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm: |
| (-[WKAccessibilityWebPageObject accessibilityAttributeNames]): |
| (-[WKAccessibilityWebPageObject accessibilityAttributeValue:]): |
| |
| 2018-05-17 Alex Christensen <achristensen@webkit.org> |
| |
| Use CompletionHandlers for DelayedReplies |
| https://bugs.webkit.org/show_bug.cgi?id=182269 |
| |
| Reviewed by Youenn Fablet. |
| |
| DelayedReplies should be a noncopyable, non-refcountable type. They should be |
| called once and only once. This is what CompletionHandlers are for. |
| |
| No change in behavior. Just cleaner code. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::performSynchronousLoad): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::SynchronousLoadData::SynchronousLoadData): |
| (WebKit::sendReplyToSynchronousRequest): |
| (WebKit::NetworkResourceLoader::NetworkResourceLoader): |
| * NetworkProcess/NetworkResourceLoader.h: |
| * Platform/IPC/HandleMessage.h: |
| (IPC::callMemberFunctionImpl): |
| (IPC::callMemberFunction): |
| (IPC::handleMessageDelayed): |
| * PluginProcess/PluginControllerProxy.cpp: |
| (WebKit::PluginControllerProxy::setInitializationReply): |
| (WebKit::PluginControllerProxy::takeInitializationReply): |
| * PluginProcess/PluginControllerProxy.h: |
| * PluginProcess/WebProcessConnection.cpp: |
| (WebKit::WebProcessConnection::destroyPlugin): |
| (WebKit::WebProcessConnection::createPlugin): |
| (WebKit::WebProcessConnection::createPluginAsynchronously): |
| * PluginProcess/WebProcessConnection.h: |
| * Scripts/webkit/LegacyMessageReceiver-expected.cpp: |
| (Messages::WebPage::GetPluginProcessConnection::send): |
| (Messages::WebPage::TestMultipleAttributes::send): |
| (Messages::WebPage::GetPluginProcessConnection::DelayedReply::DelayedReply): Deleted. |
| (Messages::WebPage::GetPluginProcessConnection::DelayedReply::~DelayedReply): Deleted. |
| (Messages::WebPage::GetPluginProcessConnection::DelayedReply::send): Deleted. |
| (Messages::WebPage::TestMultipleAttributes::DelayedReply::DelayedReply): Deleted. |
| (Messages::WebPage::TestMultipleAttributes::DelayedReply::~DelayedReply): Deleted. |
| (Messages::WebPage::TestMultipleAttributes::DelayedReply::send): Deleted. |
| * Scripts/webkit/LegacyMessages-expected.h: |
| * Scripts/webkit/MessageReceiver-expected.cpp: |
| (Messages::WebPage::GetPluginProcessConnection::send): |
| (Messages::WebPage::TestMultipleAttributes::send): |
| (Messages::WebPage::GetPluginProcessConnection::DelayedReply::DelayedReply): Deleted. |
| (Messages::WebPage::GetPluginProcessConnection::DelayedReply::~DelayedReply): Deleted. |
| (Messages::WebPage::GetPluginProcessConnection::DelayedReply::send): Deleted. |
| (Messages::WebPage::TestMultipleAttributes::DelayedReply::DelayedReply): Deleted. |
| (Messages::WebPage::TestMultipleAttributes::DelayedReply::~DelayedReply): Deleted. |
| (Messages::WebPage::TestMultipleAttributes::DelayedReply::send): Deleted. |
| * Scripts/webkit/Messages-expected.h: |
| * Scripts/webkit/messages.py: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::getNetworkProcessConnection): |
| (WebKit::NetworkProcessProxy::networkProcessCrashed): |
| (WebKit::NetworkProcessProxy::networkProcessFailedToLaunch): |
| (WebKit::NetworkProcessProxy::didCreateNetworkConnectionToWebProcess): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Plugins/PluginProcessManager.cpp: |
| (WebKit::PluginProcessManager::getPluginProcessConnection): |
| * UIProcess/Plugins/PluginProcessManager.h: |
| * UIProcess/Plugins/PluginProcessProxy.cpp: |
| (WebKit::PluginProcessProxy::getPluginProcessConnection): |
| (WebKit::PluginProcessProxy::pluginProcessCrashedOrFailedToLaunch): |
| (WebKit::PluginProcessProxy::didCreateWebProcessConnection): |
| * UIProcess/Plugins/PluginProcessProxy.h: |
| * UIProcess/Storage/StorageProcessProxy.cpp: |
| (WebKit::StorageProcessProxy::getStorageProcessConnection): |
| (WebKit::StorageProcessProxy::didClose): |
| (WebKit::StorageProcessProxy::didCreateStorageToWebProcessConnection): |
| * UIProcess/Storage/StorageProcessProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::ExceededDatabaseQuotaRecords::createRecord): |
| (WebKit::WebPageProxy::receivedPolicyDecision): |
| (WebKit::WebPageProxy::decidePolicyForNavigationActionSync): |
| (WebKit::WebPageProxy::createNewPage): |
| (WebKit::WebPageProxy::runJavaScriptAlert): |
| (WebKit::WebPageProxy::runJavaScriptConfirm): |
| (WebKit::WebPageProxy::runJavaScriptPrompt): |
| (WebKit::WebPageProxy::webGLPolicyForURL): |
| (WebKit::WebPageProxy::resolveWebGLPolicyForURL): |
| (WebKit::WebPageProxy::getToolbarsAreVisible): |
| (WebKit::WebPageProxy::getMenuBarIsVisible): |
| (WebKit::WebPageProxy::getStatusBarIsVisible): |
| (WebKit::WebPageProxy::getWindowFrame): |
| (WebKit::WebPageProxy::screenToRootView): |
| (WebKit::WebPageProxy::rootViewToScreen): |
| (WebKit::WebPageProxy::runBeforeUnloadConfirmPanel): |
| (WebKit::WebPageProxy::exceededDatabaseQuota): |
| (WebKit::WebPageProxy::reachedApplicationCacheOriginQuota): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::networkProcessCrashed): |
| (WebKit::WebProcessPool::getNetworkProcessConnection): |
| (WebKit::WebProcessPool::getStorageProcessConnection): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::getPluginProcessConnection): |
| (WebKit::WebProcessProxy::getNetworkProcessConnection): |
| (WebKit::WebProcessProxy::getStorageProcessConnection): |
| * UIProcess/WebProcessProxy.h: |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::syncTerminateWorker): |
| * WebProcess/Storage/WebSWContextManagerConnection.h: |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::computePagesForPrintingAndDrawToPDF): |
| |
| 2018-05-17 Jer Noble <jer.noble@apple.com> |
| |
| CRASH in -[WKFullScreenViewController _manager] |
| https://bugs.webkit.org/show_bug.cgi?id=185745 |
| <rdar://problem/39195241> |
| |
| Reviewed by Eric Carlson. |
| |
| Protect against WKFullScreenViewController outliving WKWebView by making its |
| _webView property weak. Additionally, add a sanity-check RetainPtr where _webView |
| is referenced multiple times within a function. |
| |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.mm: |
| * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm: |
| (-[WKFullScreenWindowController initWithWebView:]): |
| (-[WKFullScreenWindowController enterFullScreen]): |
| (-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]): |
| (-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:finalFrame:]): |
| (-[WKFullScreenWindowController _completedExitFullScreen]): |
| (-[WKFullScreenWindowController close]): |
| (-[WKFullScreenWindowController webViewDidRemoveFromSuperviewWhileInFullscreen]): |
| (-[WKFullScreenWindowController _exitFullscreenImmediately]): |
| (-[WKFullScreenWindowController _isSecure]): |
| (-[WKFullScreenWindowController _serverTrust]): |
| (-[WKFullScreenWindowController _updateLocationInfo]): |
| (-[WKFullScreenWindowController _manager]): |
| (-[WKFullScreenWindowController _startToDismissFullscreenChanged:]): |
| |
| 2018-05-17 Brent Fulgham <bfulgham@apple.com> |
| |
| Correct default for StorageAccess API |
| https://bugs.webkit.org/show_bug.cgi?id=185748 |
| <rdar://problem/40220659> |
| |
| Reviewed by Dean Jackson. |
| |
| Flip the default state to 'true' so that the new "sticky" state |
| for Storage Access API and attributing user interaction for |
| Storage Access API use is applied by default. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-05-17 Carlos Alberto Lopez Perez <clopez@igalia.com> |
| |
| [WPE] Implement and enable FULLSCREEN_API |
| https://bugs.webkit.org/show_bug.cgi?id=185676 |
| |
| Reviewed by Žan Doberšek. |
| |
| Do the initial implementation of FULLSCREEN_API for WPE and |
| enable the CMake option by default. |
| |
| Most of the layout tests (55 of 58) are passing and the feature |
| seems to work fine on different websites that use it. |
| |
| * UIProcess/API/wpe/PageClientImpl.cpp: |
| (WebKit::PageClientImpl::fullScreenManagerProxyClient): |
| (WebKit::PageClientImpl::closeFullScreenManager): |
| (WebKit::PageClientImpl::isFullScreen): |
| (WebKit::PageClientImpl::enterFullScreen): |
| (WebKit::PageClientImpl::exitFullScreen): |
| (WebKit::PageClientImpl::beganEnterFullScreen): |
| (WebKit::PageClientImpl::beganExitFullScreen): |
| * UIProcess/API/wpe/PageClientImpl.h: |
| * UIProcess/API/wpe/WPEView.h: |
| (WKWPE::View::isFullScreen): |
| (WKWPE::View::setFullScreen): |
| |
| 2018-05-17 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Convert CertificateInfo into Credential in UI Process instead of Networking Process |
| https://bugs.webkit.org/show_bug.cgi?id=185662 |
| <rdar://problem/40275561> |
| |
| Reviewed by Alex Christensen. |
| |
| Right now we convert CertificateInfo into Credential in the very last stage of client certificate authentication process |
| when it reaches Networking Process. This patch moves that conversion earlier in UI Process such that we don't have to |
| pass both Credential and CertificateInfo to Networking Process. |
| |
| CertificateInfo is only used in macOS for C API specifically. WK2 includes macOS/iOS relies on NSURLCredential/WebCore::Credential |
| solely. WK2 has already exercised the ability of using WebCore::Credential to do client certficate authentication. This patch therefore |
| takes advantage of that. It converts CertficateInfo objects into Credential objects right after WebCredential is initialized, and then merge |
| any code paths that utilizes CertficateInfo into ones that uses WebCore::Credential. |
| |
| Covered by existing tests. |
| |
| * Shared/Authentication/AuthenticationManager.cpp: |
| (WebKit::AuthenticationManager::useCredentialForChallenge): |
| (WebKit::AuthenticationManager::useCredentialForSingleChallenge): |
| (WebKit::AuthenticationManager::tryUseCertificateInfoForChallenge): Deleted. |
| * Shared/Authentication/AuthenticationManager.h: |
| * Shared/Authentication/AuthenticationManager.messages.in: |
| * UIProcess/Authentication/AuthenticationChallengeProxy.cpp: |
| (WebKit::AuthenticationChallengeProxy::useCredential): |
| * UIProcess/Authentication/WebCredential.cpp: |
| (WebKit::WebCredential::WebCredential): |
| (WebKit::WebCredential::certificateInfo): Deleted. |
| * UIProcess/Authentication/WebCredential.h: |
| (WebKit::WebCredential::create): |
| * UIProcess/Authentication/mac/WebCredentialMac.mm: Renamed from Source/WebKit/Shared/Authentication/mac/AuthenticationManager.mac.mm. |
| (WebKit::leafCertificate): |
| (WebKit::chain): |
| (WebKit::WebCredential::WebCredential): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-05-17 Jeremy Jones <jeremyj@apple.com> |
| |
| Ensure valid rects for fullsceen animation. |
| https://bugs.webkit.org/show_bug.cgi?id=185736 |
| rdar://problem/40320174 |
| |
| Reviewed by Jer Noble. |
| |
| Protect against zero width and height since those can make for NANs in the animation transforms. |
| |
| * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm: |
| (-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]): |
| (-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:finalFrame:]): |
| |
| 2018-05-17 Jer Noble <jer.noble@apple.com> |
| |
| Turn Modern EME API on by default and remove it as an experimental feature |
| https://bugs.webkit.org/show_bug.cgi?id=185693 |
| <rdar://problem/39954396> |
| |
| Reviewed by Eric Carlson. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-05-17 Dean Jackson <dino@apple.com> |
| |
| Safari optimized flow should be releasing viewer to prevent memory growth with subsequent launches/closes |
| https://bugs.webkit.org/show_bug.cgi?id=185722 |
| <rdar://problem/40247351> |
| |
| Reviewed by Antoine Quint. |
| |
| I made a rookie mistake in the original patch: I was holding a strong |
| reference to "self" in a block, which was causing a retain cycle. |
| Replace that with a WeakObjCPtr. |
| |
| * UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: |
| (-[_WKPreviewControllerDataSource previewController:previewItemAtIndex:]): |
| |
| 2018-05-16 Brent Fulgham <bfulgham@apple.com> |
| |
| REGRESSION(r229093)[macOS] Allow network-outbound for syslog use |
| https://bugs.webkit.org/show_bug.cgi?id=185703 |
| <rdar://problem/39778918> |
| |
| Reviewed by Eric Carlson. |
| |
| In r229093 I removed the 'network-outbound' permission for syslog use. |
| Further testing has shown that this is still needed for subsystem |
| logging in our bundle loading code. |
| |
| This patch re-enabled network-outbound for syslog. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-05-16 Andy VanWagoner <andy@vanwagoner.family> |
| |
| Add support for Intl NumberFormat formatToParts |
| https://bugs.webkit.org/show_bug.cgi?id=185375 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| Add flag for NumberFormat formatToParts. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2018-05-16 Andy Estes <aestes@apple.com> |
| |
| [Wi-Fi Assertions] Adopt WiFiAssertionHolderAdditions |
| https://bugs.webkit.org/show_bug.cgi?id=185685 |
| <rdar://problem/40136681> |
| |
| Reviewed by Sam Weinig. |
| |
| * NetworkProcess/cocoa/WiFiAssertionHolder.cpp: |
| (WebKit::WiFiAssertionHolder::WiFiAssertionHolder): |
| (WebKit::WiFiAssertionHolder::~WiFiAssertionHolder): |
| (WebKit::ensureWiFiManagerClient): Deleted. |
| |
| 2018-05-16 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [Win] Implement WebPage::handleEditingKeyboardEvent |
| https://bugs.webkit.org/show_bug.cgi?id=185327 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| * WebProcess/WebPage/win/WebPageWin.cpp: |
| (WebKit::WebPage::handleEditingKeyboardEvent): Copied from WebKitLegacy. |
| |
| 2018-05-16 Sihui Liu <sihui_liu@apple.com> |
| |
| Session cookies aren't reliably set when using default WKWebSiteDataStore |
| https://bugs.webkit.org/show_bug.cgi?id=185624 |
| <rdar://problem/39111626> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Session cookies of default session were set in UI Process when there was no process pool, |
| but they were not synced (or synced slowly to) Network Process. To make these cookies visible |
| as soon as they were set through API, we could manually set those cookies in Network Process |
| during its initilization. |
| |
| * NetworkProcess/mac/RemoteNetworkingContext.mm: |
| (WebKit::RemoteNetworkingContext::ensureWebsiteDataStoreSession): |
| * UIProcess/API/APIHTTPCookieStore.cpp: |
| (API::HTTPCookieStore::cookies): |
| (API::HTTPCookieStore::setCookie): |
| (API::HTTPCookieStore::deleteCookie): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| (WebKit::WebProcessPool::pageBeginUsingWebsiteDataStore): |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::clearPendingCookies): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| |
| 2018-05-16 Chris Nardi <cnardi@chromium.org> |
| |
| Remove Document#selectedStylesheetSet/preferredStylesheetSet |
| https://bugs.webkit.org/show_bug.cgi?id=185381 |
| |
| Reviewed by Darin Adler. |
| |
| Make API methods for Document#selectedStylesheetSet/preferredStylesheetSet do nothing. |
| |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocument.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentGtk.cpp: |
| (webkit_dom_document_set_property): |
| (webkit_dom_document_get_property): |
| (webkit_dom_document_get_preferred_stylesheet_set): |
| (webkit_dom_document_get_selected_stylesheet_set): |
| (webkit_dom_document_set_selected_stylesheet_set): |
| |
| 2018-05-16 Alberto Garcia <berto@igalia.com> |
| |
| [CMake] Properly detect compiler flags, needed libs, and fallbacks for usage of 64-bit atomic operations |
| https://bugs.webkit.org/show_bug.cgi?id=182622 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Move the test to determine whether we need to link against |
| libatomic to the common file WebKitCompilerFlags.cmake so it can |
| also be used for JavaScriptCore. |
| |
| * CMakeLists.txt: |
| |
| 2018-05-15 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| [JSC] Check TypeInfo first before calling getCallData when we would like to check whether given object is a function |
| https://bugs.webkit.org/show_bug.cgi?id=185601 |
| |
| Reviewed by Saam Barati. |
| |
| * WebProcess/Plugins/Netscape/JSNPObject.h: |
| |
| 2018-05-15 Sihui Liu <sihui_liu@apple.com> |
| |
| StorageManager::deleteLocalStorageOriginsModifiedSince: database files get deleted before database connections close |
| https://bugs.webkit.org/show_bug.cgi?id=185671 |
| |
| Reviewed by Geoffrey Garen. |
| |
| We should delete database files before closing databases. |
| |
| * UIProcess/WebStorage/LocalStorageDatabase.cpp: |
| (WebKit::LocalStorageDatabase::updateDatabaseWithChangedItems): |
| * UIProcess/WebStorage/LocalStorageDatabaseTracker.cpp: |
| (WebKit::LocalStorageDatabaseTracker::databasesModifiedSince): |
| (WebKit::LocalStorageDatabaseTracker::deleteDatabasesModifiedSince): Deleted. |
| * UIProcess/WebStorage/LocalStorageDatabaseTracker.h: |
| * UIProcess/WebStorage/StorageManager.cpp: |
| (WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince): |
| |
| 2018-05-15 Dean Jackson <dino@apple.com> |
| |
| Launch System Preview as the download starts, rather than waiting for a response |
| https://bugs.webkit.org/show_bug.cgi?id=185669 |
| <rdar://problem/40278181> |
| |
| Reviewed by Tim Horton. |
| |
| We were waiting for the RequestResponse to get a MIME-type before |
| launching the system preview. This causes an annoying delay. |
| |
| Instead, assume that the system preview is one of the handled |
| mime types and launch the viewer immediately. If it gets something it |
| didn't expect, it will show an error. |
| |
| * UIProcess/Cocoa/DownloadClient.mm: |
| (WebKit::DownloadClient::didStart): |
| (WebKit::DownloadClient::didReceiveResponse): |
| * UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: |
| (-[_WKPreviewControllerDataSource previewController:previewItemAtIndex:]): |
| (WebKit::SystemPreviewController::start): Small cleanup to ensure we |
| don't try to present twice (this shouldn't happen). |
| |
| 2018-05-15 Dean Jackson <dino@apple.com> |
| |
| Post-review cleanup for 185459 |
| https://bugs.webkit.org/show_bug.cgi?id=185665 |
| <rdar://problem/40276689> |
| |
| Reviewed by Tim Horton. |
| |
| Jon made some comments in 185459 that I'm addressing here. |
| |
| * UIProcess/Cocoa/DownloadClient.h: |
| * UIProcess/Cocoa/DownloadClient.mm: Guard the activity token for iOS |
| in a way that means it will still work ok on macOS. |
| (WebKit::DownloadClient::didStart): |
| (WebKit::DownloadClient::processDidCrash): |
| (WebKit::DownloadClient::didFinish): |
| (WebKit::DownloadClient::didFail): |
| (WebKit::DownloadClient::didCancel): |
| (WebKit::DownloadClient::takeActivityToken): |
| (WebKit::DownloadClient::releaseActivityTokenIfNecessary): |
| (WebKit::DownloadClient::releaseActivityToken): Deleted. |
| |
| * UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: Add an early return. |
| (-[_WKPreviewControllerDataSource previewController:previewItemAtIndex:]): |
| |
| 2018-05-15 Tadeu Zagallo <tzagallo@apple.com> |
| |
| Update touch event tracking types on every touch |
| https://bugs.webkit.org/show_bug.cgi?id=184250 |
| <rdar://problem/39145092> |
| |
| Reviewed by Geoffrey Garen. |
| |
| The tracking types for touch events were only update on touchstart, which meant that event |
| listeners added after the touchstart would always be treated as passive, even if explicitly |
| setting passive to false. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::handleTouchEventSynchronously): |
| (WebKit::WebPageProxy::handleTouchEvent): |
| |
| 2018-05-15 Per Arne Vollan <pvollan@apple.com> |
| |
| Pause display links when window is not visible. |
| https://bugs.webkit.org/show_bug.cgi?id=185627 |
| <rdar://problem/39401106> |
| |
| Reviewed by Simon Fraser. |
| |
| Pause/resume display links created in the UI process when the window is hidden/shown. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::dispatchActivityStateChange): |
| * UIProcess/mac/DisplayLink.cpp: |
| (WebKit::DisplayLink::pause): |
| (WebKit::DisplayLink::resume): |
| * UIProcess/mac/DisplayLink.h: |
| |
| 2018-05-15 Dean Jackson <dino@apple.com> |
| |
| Provide UIView and UIImage for zoom transition |
| https://bugs.webkit.org/show_bug.cgi?id=185655 |
| <rdar://problem/40267224> |
| |
| Reviewed by Antoine Quint. |
| |
| Provide a UIView* for the frameForPreviewItem to use as a source view. |
| Also implement the transitionImageForPreviewItem delegate, even though |
| we're returning nil. |
| |
| * UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: |
| (-[_WKPreviewControllerDelegate previewController:frameForPreviewItem:inSourceView:]): |
| (-[_WKPreviewControllerDelegate previewController:transitionImageForPreviewItem:contentRect:]): |
| |
| 2018-05-15 Daniel Bates <dabates@apple.com> |
| |
| Fix the Apple Internal build |
| |
| Make a similar change to WebKit as I did for LegacyWebKit in r231777. See <rdar://problem/40237873> for more details. |
| |
| * UIProcess/mac/WKFullScreenWindowController.mm: |
| (-[WKFullScreenWindowController enterFullScreen:]): |
| (-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]): |
| (-[WKFullScreenWindowController exitFullScreen]): |
| (-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:finalFrame:]): |
| (-[WKFullScreenWindowController finishedExitFullScreenAnimation:]): |
| (-[WKFullScreenWindowController completeFinishExitFullScreenAnimationAfterRepaint]): |
| (-[WKFullScreenWindowController _startEnterFullScreenAnimationWithDuration:]): |
| (-[WKFullScreenWindowController _startExitFullScreenAnimationWithDuration:]): |
| |
| 2018-05-15 Megan Gardner <megan_gardner@apple.com> |
| |
| Clear selections from web content with single tap |
| https://bugs.webkit.org/show_bug.cgi?id=185634 |
| |
| Reviewed by Tim Horton. |
| |
| With the switch to the single text selection assistant, we were not correctly clearing the selection when a |
| single tap happened. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _singleTapCommited:]): |
| |
| 2018-05-15 Antoine Quint <graouts@apple.com> |
| |
| [Web Animations] Expose Web Animations CSS integration as an experimental feature |
| https://bugs.webkit.org/show_bug.cgi?id=185647 |
| |
| Reviewed by Dean Jackson. |
| |
| Rename the Web Animations CSS integration flag. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetWebAnimationsCSSIntegrationEnabled): |
| (WKPreferencesGetWebAnimationsCSSIntegrationEnabled): |
| (WKPreferencesSetCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled): Deleted. |
| (WKPreferencesGetCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled): Deleted. |
| * UIProcess/API/C/WKPreferencesRefPrivate.h: |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences _setWebAnimationsCSSIntegrationEnabled:]): |
| (-[WKPreferences _webAnimationsCSSIntegrationEnabled]): |
| (-[WKPreferences _setCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled:]): Deleted. |
| (-[WKPreferences _cssAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled]): Deleted. |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): |
| (WebKit::InjectedBundle::setWebAnimationsCSSIntegrationEnabled): |
| (WebKit::InjectedBundle::setCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled): Deleted. |
| * WebProcess/InjectedBundle/InjectedBundle.h: |
| |
| 2018-05-15 Dean Jackson <dino@apple.com> |
| |
| Update animation when presenting QuickLook |
| https://bugs.webkit.org/show_bug.cgi?id=185648 |
| <rdar://problem/39652624> |
| |
| Reviewed by Antoine Quint. |
| |
| Implement the QuickLook delegate on _WKPreviewControllerDelegate that |
| produces a zoom-like animation when the QLPreviewController appears. |
| |
| * UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: |
| (-[_WKPreviewControllerDelegate previewController:frameForPreviewItem:inSourceView:]): |
| * UIProcess/SystemPreviewController.h: Add a reference back to the page, so that |
| the delegate implementation can access the presentingViewController. |
| (WebKit::SystemPreviewController::page): |
| |
| 2018-05-14 Dean Jackson <dino@apple.com> |
| |
| Download and present System Preview |
| https://bugs.webkit.org/show_bug.cgi?id=185459 |
| <rdar://problem/40079228> |
| |
| Reviewed by Tim Horton. |
| |
| Extend DownloadClient so that it can handle the case where |
| the download was triggered by a System Preview. In this situation |
| the result (and progress) are piped into QuickLook via the SystemPreviewController. |
| |
| The DownloadProxy class is also extended to handle the destination |
| filename and the size of the content. |
| |
| Lastly, SystemPreviewController is updated to have a start(), show() |
| and cancel() interface, and no longer adjusts page navigation. |
| |
| * UIProcess/Cocoa/DownloadClient.h: |
| * UIProcess/Cocoa/DownloadClient.mm: Handle the SystemPreview case, which |
| doesn't have a download delegate, but instead needs to communicate with |
| the SystemPreviewController, if one exists. |
| (WebKit::DownloadClient::didStart): |
| (WebKit::DownloadClient::didReceiveResponse): |
| (WebKit::DownloadClient::didReceiveData): |
| (WebKit::DownloadClient::didCreateDestination): |
| (WebKit::DownloadClient::processDidCrash): |
| (WebKit::DownloadClient::decideDestinationWithSuggestedFilename): |
| (WebKit::DownloadClient::didFinish): |
| (WebKit::DownloadClient::didFail): |
| (WebKit::DownloadClient::didCancel): |
| (WebKit::DownloadClient::releaseActivityToken): |
| |
| * UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: Implement the new API. |
| (-[_WKPreviewControllerDataSource initWithMIMEType:]): |
| (-[_WKPreviewControllerDataSource previewController:previewItemAtIndex:]): |
| (-[_WKPreviewControllerDataSource setProgress:]): |
| (-[_WKPreviewControllerDataSource finish:]): |
| (-[_WKPreviewControllerDelegate previewControllerDidDismiss:]): |
| (WebKit::SystemPreviewController::start): |
| (WebKit::SystemPreviewController::updateProgress): |
| (WebKit::SystemPreviewController::finish): |
| (WebKit::SystemPreviewController::cancel): |
| (-[_WKPreviewControllerDataSource initWithURL:]): Deleted. |
| (-[_WKPreviewControllerDelegate previewControllerWillDismiss:]): Deleted. |
| (WebKit::SystemPreviewController::canPreview const): Deleted. |
| (WebKit::SystemPreviewController::showPreview): Deleted. |
| * UIProcess/Downloads/DownloadProxy.h: Track the destination file by name |
| and size. Also expose a helper to identify system preview downloads. |
| (WebKit::DownloadProxy::destinationFilename const): |
| (WebKit::DownloadProxy::setDestinationFilename): |
| (WebKit::DownloadProxy::expectedContentLength const): |
| (WebKit::DownloadProxy::setExpectedContentLength): |
| (WebKit::DownloadProxy::bytesLoaded const): |
| (WebKit::DownloadProxy::setBytesLoaded): |
| (WebKit::DownloadProxy::isSystemPreviewDownload const): |
| |
| * UIProcess/SystemPreviewController.cpp: New API. |
| (WebKit::SystemPreviewController::canPreview const): |
| (WebKit::SystemPreviewController::sendPageBack): Deleted. |
| (WebKit::SystemPreviewController::showPreview): Deleted. |
| * UIProcess/SystemPreviewController.h: |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::m_configurationPreferenceValues): |
| (WebKit::WebPageProxy::reattachToWebProcess): |
| (WebKit::WebPageProxy::resetState): |
| * UIProcess/WebPageProxy.h: |
| |
| 2018-05-14 Brady Eidson <beidson@apple.com> |
| |
| Add an API test to guard against regressions while re-entering setDefersLoading:. |
| <rdar://problem/37033737> and https://bugs.webkit.org/show_bug.cgi?id=185630 |
| |
| Reviewed by Chris Dumez. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _setDefersLoadingForTesting:]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::setDefersLoadingForTesting): |
| * UIProcess/WebPageProxy.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2018-05-14 Tim Horton <timothy_horton@apple.com> |
| |
| Use the system font by default in extra zoom mode |
| https://bugs.webkit.org/show_bug.cgi?id=185638 |
| <rdar://problem/40230277> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * Shared/WebPreferencesDefaultValues.h: |
| |
| 2018-05-14 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, rolling out r231755. |
| |
| Change is not correct |
| |
| Reverted changeset: |
| |
| "-Wmemset-elt-size warning in LibWebRTCSocket constructor" |
| https://bugs.webkit.org/show_bug.cgi?id=185555 |
| https://trac.webkit.org/changeset/231755 |
| |
| 2018-05-14 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Google search results are excessively zoomed in |
| https://bugs.webkit.org/show_bug.cgi?id=185347 |
| <rdar://problem/39999778> |
| |
| Reviewed by Tim Horton. |
| |
| Adds a new experimental feature for the "disabled-adaptations" meta tag, and adds plumbing in WebKit to |
| propagate disabled adaptation changes to the ViewportConfiguration. The experimental feature is on by default in |
| extra zoom mode. |
| |
| * Shared/WebPreferences.yaml: |
| * Shared/WebPreferencesDefaultValues.h: |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::dispatchDisabledAdaptationsDidChange const): |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::disabledAdaptationsDidChange): |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2018-05-14 Chris Dumez <cdumez@apple.com> |
| |
| Overly aggressive timer throttling in service workers |
| https://bugs.webkit.org/show_bug.cgi?id=185575 |
| <rdar://problem/40219038> |
| |
| Reviewed by Geoff Garen. |
| |
| After ~30 seconds, the system would put the service worker process in "App Nap", |
| causing its timers to get aggressively throttled. This happens because the |
| service worker processes are WebProcesses that have no visible WebPages. |
| |
| To address the issue, we now disable process suppression for all service worker |
| processes. This causes those processes to construct a UserActivity which prevents |
| App Nap. |
| |
| This patch also refactors the code a bit to avoid duplication. The ProcessSuppression |
| suppression logic in now all on ChildProcessProxy / ChildProcess. |
| |
| * NetworkProcess/NetworkProcess.messages.in: |
| * PluginProcess/PluginProcess.messages.in: |
| * Shared/ChildProcess.messages.in: |
| * UIProcess/ChildProcessProxy.cpp: |
| (WebKit::ChildProcessProxy::setProcessSuppressionEnabled): |
| * UIProcess/ChildProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/mac/NetworkProcessProxyMac.mm: Removed. |
| * UIProcess/Plugins/PluginProcessProxy.h: |
| * UIProcess/Plugins/mac/PluginProcessProxyMac.mm: |
| * UIProcess/ServiceWorkerProcessProxy.cpp: |
| (WebKit::ServiceWorkerProcessProxy::didFinishLaunching): |
| * UIProcess/ServiceWorkerProcessProxy.h: |
| * UIProcess/WebProcessProxy.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebProcess.messages.in: |
| |
| 2018-05-14 Andy Estes <aestes@apple.com> |
| |
| [Wi-Fi Assertions] Allow clients to specify a context identifier |
| https://bugs.webkit.org/show_bug.cgi?id=185620 |
| <rdar://problem/39915196> |
| |
| Reviewed by Brady Eidson. |
| |
| Added an SPI on _WKProcessPoolConfiguration that allows clients to specify a |
| context identifier. |
| |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa): |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| (API::ProcessPoolConfiguration::copy): |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: |
| (-[_WKProcessPoolConfiguration wirelessContextIdentifier]): |
| (-[_WKProcessPoolConfiguration setWirelessContextIdentifier:]): |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeNetworkProcess): |
| |
| 2018-05-11 Brian Burg <bburg@apple.com> |
| |
| Web Automation: Automation.getBrowsingContext returns window origin that differs from window.screenX/Y |
| https://bugs.webkit.org/show_bug.cgi?id=185571 |
| <rdar://problem/40180785> |
| |
| Reviewed by Timothy Hatcher. |
| |
| This code path was refactored to use completion handlers. It seems that the window.screenX/Y |
| code path converts back to user coordinates but the WebDriver code path does not. Make them |
| consistent since that is how it is spec'd and tested. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::getWindowFrameWithCallback): |
| Convert the window frame to user coordinate space so it's the same as window.screenY. |
| |
| 2018-05-14 Brian Burg <bburg@apple.com> |
| |
| WebDriver: W3C test case actions/key.py::test_lone_keyup_sends_no_events is failing |
| https://bugs.webkit.org/show_bug.cgi?id=185577 |
| <rdar://problem/40185478> |
| |
| Reviewed by Timothy Hatcher. |
| |
| This test is failing because it expects Release Actions to not emit any |
| events if nothing has changed from the initial state. Because the two code paths |
| for creating empty states don't actually produce the same empty state, a difference |
| in location was detected between the two empty states. This generates a mousemove. |
| |
| To fix this, unify the code that creates an empty state. For mouse input sources, always |
| initialize the location to (0, 0) so that the mouse input source always has |
| a location that is valid to click at. |
| |
| * UIProcess/Automation/SimulatedInputDispatcher.h: |
| Extract the type enum out of the class to avoid circular definitions of |
| SimulatedInputSource and SimulatedInputSourceState. |
| |
| * UIProcess/Automation/SimulatedInputDispatcher.cpp: |
| (WebKit::SimulatedInputSourceState::emptyStateForSourceType): |
| Take the input source type when generating an empty state. We always want location |
| set for a mouse input source, but not set it for other input sources like keys. |
| |
| (WebKit::SimulatedInputKeyFrame::keyFrameToResetInputSources): |
| (WebKit::SimulatedInputDispatcher::transitionInputSourceToState): |
| (WebKit::SimulatedInputSource::create): |
| (WebKit::SimulatedInputSource::SimulatedInputSource): |
| (WebKit::SimulatedInputSourceState::emptyState): Deleted. |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::WebAutomationSession): |
| (WebKit::WebAutomationSession::inputSourceForType const): |
| (WebKit::simulatedInputSourceTypeFromProtocolSourceType): |
| (WebKit::WebAutomationSession::performInteractionSequence): |
| * UIProcess/Automation/WebAutomationSession.h: |
| |
| 2018-05-14 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| -Wmemset-elt-size warning in LibWebRTCSocket constructor |
| https://bugs.webkit.org/show_bug.cgi?id=185555 |
| |
| Reviewed by Youenn Fablet. |
| |
| Add missing multiplication. |
| |
| * WebProcess/Network/webrtc/LibWebRTCSocket.cpp: |
| (WebKit::LibWebRTCSocket::LibWebRTCSocket): |
| |
| 2018-05-14 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GTK] REGRESSION(r231170) Build broken with Clang 5.0 |
| https://bugs.webkit.org/show_bug.cgi?id=185198 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * Shared/RTCNetwork.h: With std::optional forward declaration gone, |
| explicitly include the WTF Optional.h header. |
| |
| 2018-05-13 Dean Jackson <dino@apple.com> |
| |
| WebKit2_Sim-7606.1.17.4 introduced dep cycle |
| https://bugs.webkit.org/show_bug.cgi?id=185588 |
| <rdar://problem/40196581> |
| |
| Reviewed by Tim Horton. |
| |
| Soft link AssetViewer.framework to avoid a dependency cycle. |
| |
| * Configurations/WebKit.xcconfig: |
| * UIProcess/ios/WKSystemPreviewView.mm: |
| (-[WKSystemPreviewView web_setContentProviderData:suggestedFilename:]): |
| |
| 2018-05-11 Daniel Bates <dabates@apple.com> |
| |
| X-Frame-Options: SAMEORIGIN needs to check all ancestor frames |
| https://bugs.webkit.org/show_bug.cgi?id=185567 |
| <rdar://problem/40175008> |
| |
| Reviewed by Brent Fulgham. |
| |
| Change the behavior of "X-Frame-Options: SAMEORIGIN" to ensure that all ancestors frames |
| are same-origin with the document that delivered this header. This prevents an intermediary |
| malicious frame from clickjacking a child frame whose document is same-origin with the top- |
| level frame. It also makes the behavior of X-Frame-Options in WebKit more closely match |
| the behavior of X-Frame-Options in other browsers, including Chrome and Firefox. |
| |
| Currently a document delivered with "X-Frame-Options: SAMEORIGIN" must only be same-origin |
| with the top-level frame's document in order to be displayed. This prevents clickjacking by |
| a malicious page that embeds a page delivered with "X-Frame-Options: SAMEORIGIN". However, |
| it does not protect against clickjacking of the "X-Frame-Options: SAMEORIGIN" page (victim) |
| if embedded by an intermediate malicious iframe, say a "rogue ad", that was embedded in a |
| document same origin with the victim page. We should protect against such attacks. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::shouldInterruptLoadForXFrameOptions): |
| |
| 2018-05-11 Dean Jackson <dino@apple.com> |
| |
| WKWebViewContentProvider should know what MIME type it was created to handle |
| https://bugs.webkit.org/show_bug.cgi?id=185574 |
| <rdar://problem/40183049> |
| |
| Reviewed by Tim Horton. |
| |
| Pass the MIME type of the downloaded asset into the WKWebViewContentProvider's |
| init method, so it can choose to do something based on that information. The |
| PDF and LegacyPDF views don't care because they, clearly, only handle PDF. But |
| a WKSystemPreviewView can handle multiple types. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _setHasCustomContentView:loadedMIMEType:]): Send the MIME type on |
| to the WKWebViewContentProvider. |
| * UIProcess/Cocoa/WKWebViewContentProvider.h: Add a new parameter to web_initWithFrame. |
| * UIProcess/ios/WKLegacyPDFView.mm: |
| (-[WKLegacyPDFView web_initWithFrame:webView:mimeType:]): |
| (-[WKLegacyPDFView web_initWithFrame:webView:]): Deleted. |
| * UIProcess/ios/WKPDFView.mm: |
| (-[WKPDFView web_initWithFrame:webView:mimeType:]): |
| (-[WKPDFView web_initWithFrame:webView:]): Deleted. |
| * UIProcess/ios/WKSystemPreviewView.mm: |
| (-[WKSystemPreviewView web_initWithFrame:webView:mimeType:]): |
| (-[WKSystemPreviewView web_setContentProviderData:suggestedFilename:]): Actually use |
| the MIME type to tell QuickLook what it will be getting, rather than basing it on |
| the file extension. |
| (-[WKSystemPreviewView web_initWithFrame:webView:]): Deleted. |
| |
| 2018-05-11 Brent Fulgham <bfulgham@apple.com> |
| |
| Allow the WebContent process to read global ViewBridge preferences |
| https://bugs.webkit.org/show_bug.cgi?id=185569 |
| <rdar://problem/40164339> |
| |
| Reviewed by Eric Carlson. |
| |
| Allow reads of the global /Library/Preferences/com.apple.ViewBridge.plist preference file. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-05-11 Megan Gardner <megan_gardner@apple.com> |
| |
| Cleanup canPerformActionForWebView in relation to the webSelectionAssistant being removed |
| https://bugs.webkit.org/show_bug.cgi?id=185536 |
| |
| Reviewed by Tim Horton. |
| |
| The _webSelectionAssistant is now always nil, therefor many of these checks are unnecessary. |
| Remove the check for a webSelection and clean up the logic surrounding those checks. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView canPerformActionForWebView:withSender:]): |
| |
| 2018-05-11 Brady Eidson <beidson@apple.com> |
| |
| Followup to: Make sure history navigations reuse the existing process when necessary. |
| https://bugs.webkit.org/show_bug.cgi?id=185532 |
| |
| Reviewed by Andy Estes. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigationInternal): When re-using the same process, |
| don't change the policy action. |
| |
| 2018-05-11 Charles Vazac <cvazac@gmail.com> |
| |
| Runtime feature flag for Server-Timing |
| https://bugs.webkit.org/show_bug.cgi?id=184758 |
| |
| Reviewed by Youenn Fablet. |
| |
| * Shared/WebPreferences.yaml: Added ServerTimingEnabled. |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesGetServerTimingEnabled): |
| * UIProcess/API/C/WKPreferencesRefPrivate.h: WK_EXPORT for WKPreferencesSetServerTimingEnabled. |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: Call setServerTimingEnabled. |
| |
| 2018-05-11 Antti Koivisto <antti@apple.com> |
| |
| Network process should not stat() all cache files on startup to find their sizes |
| https://bugs.webkit.org/show_bug.cgi?id=185542 |
| <rdar://problem/40092953> |
| |
| Reviewed by Chris Dumez. |
| |
| This is done to compute how much disk space a cache is using. While the operation happens |
| in a background priority thread it is still quite a bit of work. |
| |
| Large bodies are saved in separate blob files so record file sizes are capped. We can avoid work by |
| estimating their size instead of counting it exactly. |
| |
| * NetworkProcess/cache/NetworkCacheStorage.cpp: |
| (WebKit::NetworkCache::estimateRecordsSize): |
| (WebKit::NetworkCache::Storage::synchronize): |
| |
| Use size estimation if blob storage is in use. |
| Remove the code that would delete empty files. Normal cache shrinking handles this. |
| |
| (WebKit::NetworkCache::Storage::shouldStoreBodyAsBlob): |
| |
| 2018-05-11 Brady Eidson <beidson@apple.com> |
| |
| Make sure history navigations reuse the existing process when necessary. |
| <rdar://problem/39746516> and https://bugs.webkit.org/show_bug.cgi?id=185532 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| If a view navigates to either a data: or blob: URL, it reuses the existing process. |
| |
| In such cases we need to also ensure that history navigations back will also reuse the existing process. |
| |
| * Shared/NavigationActionData.cpp: |
| (WebKit::NavigationActionData::encode const): |
| (WebKit::NavigationActionData::decode): |
| * Shared/NavigationActionData.h: |
| |
| * UIProcess/API/APINavigation.h: |
| (API::Navigation::setTargetItem): |
| |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: |
| (-[_WKProcessPoolConfiguration pageCacheEnabled]): |
| (-[_WKProcessPoolConfiguration setPageCacheEnabled:]): |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::receivedPolicyDecision): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigationInternal): If the current and target back/forward items both |
| came from the same process, then reuse the existing process. |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| |
| 2018-05-10 Brent Fulgham <bfulgham@apple.com> |
| |
| REGRESSION(r231057): Encrypted media content playback failures |
| https://bugs.webkit.org/show_bug.cgi?id=185537 |
| <rdar://problem/40038478> |
| |
| Reviewed by Eric Carlson. |
| |
| Put access to the SecurityServer back in the sandbox so we can validate the |
| signatures of media encoder/decoders. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-05-11 Youenn Fablet <youenn@apple.com> |
| |
| NetworkCORSPreflightChecker should proceed when having a ProtectionSpaceAuthenticationSchemeServerTrustEvaluationRequested challenge |
| https://bugs.webkit.org/show_bug.cgi?id=185522 |
| <rdar://problem/39987152> |
| |
| Reviewed by Brent Fulgham. |
| |
| In case of such challenge, refuse to proceed with authentication since preflight is not using credentials. |
| Previously, we were failing right away which is not right in case preflight is the request triggering the connection. |
| |
| Manually tested. |
| |
| * NetworkProcess/NetworkCORSPreflightChecker.cpp: |
| (WebKit::NetworkCORSPreflightChecker::didReceiveChallenge): |
| |
| 2018-05-10 Daniel Bates <dabates@apple.com> |
| |
| Use PlatformStrategies to switch between WebKit and WebKitLegacy checking of CSP frame-ancestors and X-Frame-Options |
| https://bugs.webkit.org/show_bug.cgi?id=185412 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Update code for renaming and write in terms of WebLoaderStrategy::shouldPerformSecurityChecks() |
| instead of explicitly querying RuntimeEnabledFeatures::sharedFeatures().restrictedHTTPResponseAccess(). |
| |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess): |
| (WebKit::WebLoaderStrategy::loadResourceSynchronously): |
| (WebKit::WebLoaderStrategy::startPingLoad): |
| (WebKit::WebLoaderStrategy::preconnectTo): |
| (WebKit::WebLoaderStrategy::shouldPerformSecurityChecks const): |
| (WebKit::WebLoaderStrategy::havePerformedSecurityChecks const): |
| (WebKit::WebLoaderStrategy::isDoingLoadingSecurityChecks const): Deleted. |
| * WebProcess/Network/WebLoaderStrategy.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| |
| 2018-05-10 Timothy Horton <timothy_horton@apple.com> |
| |
| Fix the build after r231393 |
| https://bugs.webkit.org/show_bug.cgi?id=185519 |
| <rdar://problem/40131741> |
| |
| * Configurations/WebKit.xcconfig: |
| |
| 2018-05-10 John Wilander <wilander@apple.com> |
| |
| Storage Access API: Extend lifetime of cookies on successful user approval |
| https://bugs.webkit.org/show_bug.cgi?id=185534 |
| <rdar://problem/40064547> |
| |
| Reviewed by Brent Fulgham. |
| |
| * UIProcess/Cocoa/WebResourceLoadStatisticsStoreCocoa.mm: |
| (WebKit::WebResourceLoadStatisticsStore::registerUserDefaultsIfNeeded): |
| Picks up the experimental feature flag. |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::grantStorageAccessInternal): |
| Now updates the domain's user interaction timestamp if the user was |
| prompted for this access. |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| |
| 2018-05-10 Chris Dumez <cdumez@apple.com> |
| |
| [iOS] Release page load process assertion if the screen is locked |
| https://bugs.webkit.org/show_bug.cgi?id=185333 |
| |
| Reviewed by Geoff Garen. |
| |
| We normally take a background process assertion during page loads to allow them to complete |
| even if the tab / app is backgrounded. We should however avoid doing so when the backgrounding |
| is caused by the screen locking. Keeping the process assertion in this case would prevent the |
| whole device from sleeping longer than it should, thus negatively impacting power. |
| |
| * UIProcess/Cocoa/NavigationState.h: |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationState): |
| (WebKit::NavigationState::releaseNetworkActivityToken): |
| (WebKit::NavigationState::didChangeIsLoading): |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::applicationDidEnterBackground): |
| |
| 2018-05-10 Megan Gardner <megan_gardner@apple.com> |
| |
| Remove Unused Chinese/Japanese Reanalyze code |
| https://bugs.webkit.org/show_bug.cgi?id=185529 |
| |
| Reviewed by Wenson Hsieh. |
| |
| The code for this has actually been completely removed from UIKit. This is unreachable |
| dead code that should be removed if just for cleanliness. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView canPerformActionForWebView:withSender:]): |
| (-[WKContentView _reanalyzeForWebView:]): Deleted. |
| |
| 2018-05-10 Chris Dumez <cdumez@apple.com> |
| |
| [iOS] Apps that are not visible may not get suspended if they trigger page loads while in the background |
| https://bugs.webkit.org/show_bug.cgi?id=185318 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Whenever there is a page load going on, we take a background process assertion to delay process |
| suspension until this load completes. However, there is also a 3 seconds grace period after |
| a load is complete to allow the app to trigger a new load shortly after. This grace period was |
| introduced to support use cases where a visible app does loads in an offscreen view. However, |
| it can be abused by apps running in the background as they could trigger new page loads while |
| in the background to delay process suspension. This patch tightens the policy so that only |
| apps that are currently visible get to use this grace period. Apps that are in the background |
| get to finish their current load and will then get suspended. |
| |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::didChangeIsLoading): |
| |
| 2018-05-10 Chris Dumez <cdumez@apple.com> |
| |
| 'Cross-Origin-Options header implementation follow-up |
| https://bugs.webkit.org/show_bug.cgi?id=185520 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::frameBecameRemote): |
| |
| 2018-05-10 Per Arne Vollan <pvollan@apple.com> |
| |
| Drop-down Control borders missing. |
| https://bugs.webkit.org/show_bug.cgi?id=185500 |
| <rdar://problem/40093461> |
| |
| Reviewed by Brent Fulgham. |
| |
| Open sandbox for reading of some files in temp folder. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-05-10 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream, iOS] Don't check authorizationStatusForMediaType when using mock capture devices |
| https://bugs.webkit.org/show_bug.cgi?id=185516 |
| <rdar://problem/36328191> |
| |
| Reviewed by Youenn Fablet. |
| |
| * UIProcess/Cocoa/UIDelegate.mm: |
| (WebKit::UIDelegate::UIClient::decidePolicyForUserMediaPermissionRequest): Don't check |
| +[AVCaptureDevice authorizationStatusForMediaType:] when using mock capture devices. |
| |
| 2018-05-10 Brent Fulgham <bfulgham@apple.com> |
| |
| REGRESSION(r230323): UIProcess needs to notify WebContent process of Accessibility setting changes |
| https://bugs.webkit.org/show_bug.cgi?id=185515 |
| <rdar://problem/39627764> |
| |
| Reviewed by Chris Fleizach. |
| |
| The UIProcess needs to register for relevant Accessibility preference updates so that it can notify the |
| WebContent processes that screen properties have changed. |
| |
| This is represented by NSWorkspaceAccessibilityDisplayOptionsDidChangeNotification. |
| |
| Tested manually with the Accessibility preferences pane. |
| |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::registerNotificationObservers): Add notification observer. When the notification |
| is received, call 'screenPropertiesStateChanged' to message the information to the WebContent processes. |
| (WebKit::WebProcessPool::unregisterNotificationObservers): Clean up observer. |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::screenPropertiesStateChanged): Added helper function. |
| * UIProcess/WebProcessPool.h: |
| |
| 2018-05-09 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| WebDriver: implement advance user interactions |
| https://bugs.webkit.org/show_bug.cgi?id=174616 |
| |
| Reviewed by Brian Burg. |
| |
| Handle origin in case of mouse move transitions. |
| |
| * UIProcess/Automation/Automation.json: Add MouseMoveOrigin enum and pass it as parameter of InputSourceState |
| together with optional node handle. Also pass the frame handle to performInteractionSequence command to find the |
| node in the current browsing context. |
| * UIProcess/Automation/SimulatedInputDispatcher.cpp: |
| (WebKit::SimulatedInputKeyFrame::keyFrameToResetInputSources): Ensure we reset the location. |
| (WebKit::SimulatedInputDispatcher::resolveLocation): Helper to resolve destination location based on current |
| location and mouse move origin. |
| (WebKit::SimulatedInputDispatcher::transitionInputSourceToState): Use resolveLocation() in mouse transitions. |
| (WebKit::SimulatedInputDispatcher::run): Receive and save the frame ID. |
| (WebKit::SimulatedInputDispatcher::finishDispatching): Reset the frame ID. |
| * UIProcess/Automation/SimulatedInputDispatcher.h: |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::computeElementLayout): Use even numbers for the callback ID to not conflict with |
| viewportInViewCenterPointOfElement() callbacks. |
| (WebKit::WebAutomationSession::didComputeElementLayout): Handle computeElementLayout() or |
| viewportInViewCenterPointOfElement() requests by calling the right callback depending on whether the ID is odd |
| or even number. |
| (WebKit::WebAutomationSession::viewportInViewCenterPointOfElement): Send ComputeElementLayout message to the |
| WebProcess using odd numbers for the callback ID to not conflict with computeElementLayout() callbacks. |
| (WebKit::WebAutomationSession::performInteractionSequence): Handle the mouse origin and element handle. |
| (WebKit::WebAutomationSession::cancelInteractionSequence): Pass the frame ID to the input dispatcher. |
| * UIProcess/Automation/WebAutomationSession.h: |
| * UIProcess/Automation/WebAutomationSessionMacros.h: |
| |
| 2018-05-09 Tim Horton <timothy_horton@apple.com> |
| |
| Remove the unused HAVE_OS_ACTIVITY |
| https://bugs.webkit.org/show_bug.cgi?id=185501 |
| |
| Reviewed by Wenson Hsieh. |
| |
| * config.h: |
| |
| 2018-05-09 Chris Dumez <cdumez@apple.com> |
| |
| Add initial support for 'Cross-Origin-Options' HTTP response header |
| https://bugs.webkit.org/show_bug.cgi?id=184996 |
| <rdar://problem/39664620> |
| |
| Reviewed by Geoff Garen. |
| |
| * Shared/WebPreferences.yaml: |
| Add this as an experimental feature, on by default. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::frameBecameRemote): |
| Make sure we pass the cross-origin options from the local Window |
| to the remote one when transitioning. |
| |
| 2018-05-09 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] fast/viewport/extrazoom/viewport-change-min-device-width.html sometimes fails |
| https://bugs.webkit.org/show_bug.cgi?id=185490 |
| <rdar://problem/40097629> |
| |
| Reviewed by Tim Horton. |
| |
| This test is currently flaky due to incorrect logic when computing the unobscured content rect, in the slice of |
| time after a frame load has been committed, and before the first visible content rect update from the UI process |
| after the frame load has been committed. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::viewportConfigurationChanged): |
| |
| In the case where !m_hasReceivedVisibleContentRectsAfterDidCommitLoad, we try to set the unobscured content size |
| to be the view size divided by the initial scale. However, in extra zoom mode, `ViewportConfiguration`'s |
| `minimumLayoutSize()` is the layout size, which is larger than the size of the view by default, so dividing this |
| by the initial scale yields a bogus value. Instead, use `viewLayoutSize()` instead. |
| |
| (WebKit::WebPage::updateViewportSizeForCSSViewportUnits): |
| |
| We also try to divide the view size by the initial scale when computing the effective viewport size for `vw` and |
| `vh`. Additionally, fix the misleading name of a variable (largestUnobscuredRect) that stores a size. |
| |
| 2018-05-09 Brent Fulgham <bfulgham@apple.com> |
| |
| Restrict unarchiving of bundle parameters to a set of known classes |
| https://bugs.webkit.org/show_bug.cgi?id=185489 |
| <rdar://problem/21912401> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Stop accepting anything derived from NSObject, and instead only agree to unarchive objects |
| from a set of things we actually pass as InjectedBundle parameters. |
| |
| * WebProcess/InjectedBundle/mac/InjectedBundleMac.mm: |
| (WebKit::InjectedBundle::setBundleParameter): |
| |
| 2018-05-09 Richard Houle <rhoule@apple.com> |
| |
| [Cocoa] Some fields are not identified as [WKWebProcessPlugInNodeHandle isTextField] |
| https://bugs.webkit.org/show_bug.cgi?id=185260 |
| <rdar://problem/39290394> |
| |
| INPUT element are not considered to be text fields when |
| calling -[WKWebProcessPlugInNodeHandle isTextField] |
| when they are of type number. |
| |
| Reviewed by Tim Horton. |
| |
| * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp: |
| (WebKit::InjectedBundleNodeHandle::isTextField const): |
| |
| 2018-05-09 Youenn Fablet <youenn@apple.com> |
| |
| Allow WebResourceLoader to cancel a load served from a service worker |
| https://bugs.webkit.org/show_bug.cgi?id=185274 |
| |
| Reviewed by Chris Dumez. |
| |
| Use FetchIdentifier instead of uint64_t. |
| Add IPC support for cancelling a fetch from WebProcess to service worker process. |
| Ask service worker process to cancel the fetch when its corresponding WebResourceLoader is cancelled. |
| No change of behavior as once a WebResourceLoader is cancelled, any related IPC is not processed. |
| A follow-up patch should try to cancel the FetchResponse load, meaning to either cancel the network load |
| or to abort reading the readable stream. |
| |
| * Scripts/webkit/messages.py: |
| * StorageProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::cancelFetch): |
| (WebKit::WebSWServerConnection::startFetch): |
| (WebKit::WebSWServerConnection::didReceiveFetchResponse): |
| (WebKit::WebSWServerConnection::didReceiveFetchData): |
| (WebKit::WebSWServerConnection::didReceiveFetchFormData): |
| (WebKit::WebSWServerConnection::didFinishFetch): |
| (WebKit::WebSWServerConnection::didFailFetch): |
| (WebKit::WebSWServerConnection::didNotHandleFetch): |
| * StorageProcess/ServiceWorker/WebSWServerConnection.h: |
| * StorageProcess/ServiceWorker/WebSWServerConnection.messages.in: |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::didFailFetch): |
| (WebKit::StorageProcess::didNotHandleFetch): |
| (WebKit::StorageProcess::didReceiveFetchResponse): |
| (WebKit::StorageProcess::didReceiveFetchData): |
| (WebKit::StorageProcess::didReceiveFetchFormData): |
| (WebKit::StorageProcess::didFinishFetch): |
| * StorageProcess/StorageProcess.h: |
| * StorageProcess/StorageProcess.messages.in: |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::remove): |
| * WebProcess/Storage/ServiceWorkerClientFetch.cpp: |
| (WebKit::ServiceWorkerClientFetch::create): |
| (WebKit::ServiceWorkerClientFetch::ServiceWorkerClientFetch): |
| (WebKit::ServiceWorkerClientFetch::start): |
| (WebKit::ServiceWorkerClientFetch::cancel): |
| * WebProcess/Storage/ServiceWorkerClientFetch.h: |
| * WebProcess/Storage/WebSWClientConnection.cpp: |
| (WebKit::WebSWClientConnection::startFetch): |
| (WebKit::WebSWClientConnection::cancelFetch): |
| * WebProcess/Storage/WebSWClientConnection.h: |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::cancelFetch): |
| (WebKit::WebSWContextManagerConnection::startFetch): |
| * WebProcess/Storage/WebSWContextManagerConnection.h: |
| * WebProcess/Storage/WebSWContextManagerConnection.messages.in: |
| * WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp: |
| (WebKit::WebServiceWorkerFetchTaskClient::WebServiceWorkerFetchTaskClient): |
| (WebKit::WebServiceWorkerFetchTaskClient::cancel): |
| * WebProcess/Storage/WebServiceWorkerFetchTaskClient.h: |
| * WebProcess/Storage/WebServiceWorkerProvider.cpp: |
| (WebKit::WebServiceWorkerProvider::handleFetch): |
| (WebKit::WebServiceWorkerProvider::cancelFetch): |
| (WebKit::WebServiceWorkerProvider::fetchFinished): |
| * WebProcess/Storage/WebServiceWorkerProvider.h: |
| |
| 2018-05-09 Andy Estes <aestes@apple.com> |
| |
| [iOS] Consider the annotation bounds when positioning action sheets near long-pressed PDF links |
| https://bugs.webkit.org/show_bug.cgi?id=185472 |
| <rdar://problem/39967092> |
| |
| Reviewed by Daniel Bates. |
| |
| Adopted new PDFHostViewControllerDelegate methods that include annotation rects |
| when URLs and page indices are long-pressed. This allows us to avoid obscuring |
| annotations when positioning action sheet popovers. |
| |
| We also no longer need to convert the press location into host view coordinate |
| space, as PDFKit now does that for us. |
| |
| * UIProcess/ios/WKPDFView.mm: |
| (-[WKPDFView _showActionSheetForURL:atLocation:withAnnotationRect:]): |
| (-[WKPDFView pdfHostViewController:didLongPressURL:atLocation:withAnnotationRect:]): |
| (-[WKPDFView pdfHostViewController:didLongPressPageIndex:atLocation:withAnnotationRect:]): |
| (-[WKPDFView _showActionSheetForURL:atLocation:]): Deleted. |
| (-[WKPDFView pdfHostViewController:didLongPressURL:atLocation:]): Deleted. |
| (-[WKPDFView pdfHostViewController:didLongPressPageIndex:atLocation:]): Deleted. |
| |
| 2018-05-09 Andy Estes <aestes@apple.com> |
| |
| [iOS] Tell PDFHostViewController when animated resizes begin and end |
| https://bugs.webkit.org/show_bug.cgi?id=185477 |
| <rdar://problem/39875372> |
| |
| Reviewed by Anders Carlsson. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _beginAnimatedResizeWithUpdates:]): |
| (-[WKWebView _endAnimatedResize]): |
| * UIProcess/Cocoa/WKWebViewContentProvider.h: |
| * UIProcess/ios/WKPDFView.mm: |
| (-[WKPDFView web_beginAnimatedResize]): |
| (-[WKPDFView web_endAnimatedResize]): |
| |
| 2018-05-09 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed. Update OptionsWPE.cmake and NEWS for 2.21.1 release. |
| |
| * wpe/NEWS: Added. Add release notes for 2.21.1. |
| |
| 2018-05-09 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [WPE] Build cleanly with GCC 8 and ICU 60 |
| https://bugs.webkit.org/show_bug.cgi?id=185462 |
| |
| Reviewed by Carlos Alberto Lopez Perez. |
| |
| * Platform/IPC/glib/GSocketMonitor.cpp: |
| (IPC::GSocketMonitor::start): Silence -Wcast-function-type warning. |
| * Shared/API/glib/WebKitContextMenu.cpp: |
| (webkit_context_menu_new_with_items): Ditto. |
| |
| 2018-05-08 Sihui Liu <sihui_liu@apple.com> |
| |
| Adopt new async _savecookies SPI for keeping networking process active during flushing cookies |
| https://bugs.webkit.org/show_bug.cgi?id=185261 |
| <rdar://problem/37214391> |
| |
| Reviewed by Chris Dumez. |
| |
| By adopting new async SPI _savecookies, we can keep networking process active(not suspended) |
| until cookies are fully synced to disk with process assertion. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::didSyncAllCookies): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::syncAllCookies): |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::didClose): |
| (WebKit::NetworkProcessProxy::syncAllCookies): |
| (WebKit::NetworkProcessProxy::didSyncAllCookies): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::syncNetworkProcessCookies): |
| |
| 2018-05-08 Per Arne Vollan <pvollan@apple.com> |
| |
| Set colorspace in the PDF plugin. |
| https://bugs.webkit.org/show_bug.cgi?id=185445 |
| <rdar://problem/40030981> |
| |
| Reviewed by Simon Fraser. |
| |
| * WebProcess/Plugins/PDF/PDFLayerControllerSPI.h: |
| * WebProcess/Plugins/PDF/PDFPlugin.mm: |
| (WebKit::PDFPlugin::PDFPlugin): |
| |
| 2018-05-08 Megan Gardner <megan_gardner@apple.com> |
| |
| Don't clear selection until we are actually interacting with a Node. |
| https://bugs.webkit.org/show_bug.cgi?id=185455 |
| |
| Reviewed by Wenson Hsieh. |
| |
| The presence of TextInteractionAssistant should not be used as a proxy for it we are actually editing content. |
| We need to check to see if we have an active node, and then we should clear the selection. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView setSelectedTextRange:]): |
| |
| 2018-05-08 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r231486. |
| |
| Caused service worker LayoutTest failures on macOS Debug WK2. |
| |
| Reverted changeset: |
| |
| "Allow WebResourceLoader to cancel a load served from a |
| service worker" |
| https://bugs.webkit.org/show_bug.cgi?id=185274 |
| https://trac.webkit.org/changeset/231486 |
| |
| 2018-05-08 Andy Estes <aestes@apple.com> |
| |
| [iOS] _WKWebViewPrintFormatter should return a page count of 0 for PDF documents that do not allow printing |
| https://bugs.webkit.org/show_bug.cgi?id=185133 |
| |
| Reviewed by Andreas Kling. |
| |
| * UIProcess/ios/WKPDFView.mm: |
| (-[WKPDFView _ensureDocumentForPrinting]): |
| (-[WKPDFView _wk_pageCountForPrintFormatter:]): |
| (-[WKPDFView _wk_printedDocument]): |
| |
| 2018-05-08 Andy Estes <aestes@apple.com> |
| |
| [iOS] WKPDFView remains in the view hierarchy after navigating away |
| https://bugs.webkit.org/show_bug.cgi?id=185449 |
| <rdar://problem/39693469> |
| |
| Reviewed by Tim Horton. |
| |
| WKPDFView removes the PDF host view from the view hierarchy in its -dealloc |
| method, and relies on WKWebView releasing its last reference in |
| -_setHasCustomContentView:loadedMIMEType: when the user navigates. |
| |
| However, WKWPDFView was capturing a strong reference to self in the block passed |
| to +[PDFHostViewController createHostView:forExtensionIdentifier:], and PDFKit |
| (actually UIKit) is retaining this block beyond its being called. This results in |
| the PDF host view remaining as a child of the WKScrollView even after the user |
| navigates to another page. |
| |
| Changed the aforementioned block to a lambda that captures a weak reference to |
| self to prevent WKPDFView from outliving the current navigation. |
| |
| * UIProcess/ios/WKPDFView.mm: |
| (-[WKPDFView retain]): |
| (-[WKPDFView web_setContentProviderData:suggestedFilename:]): |
| |
| 2018-05-08 John Wilander <wilander@apple.com> |
| |
| Storage Access API: Make user opt-in sticky |
| https://bugs.webkit.org/show_bug.cgi?id=185454 |
| <rdar://problem/40003946> |
| |
| Reviewed by Alex Christensen. |
| |
| This patch persists the user's choice to opt-in to access under specific domains. |
| Such storage access should age out with the accessing domain's cookies and website |
| data. The opt-in prompt is still an experimental feature. |
| |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::hasStorageAccess): |
| (WebKit::WebResourceLoadStatisticsStore::requestStorageAccess): |
| (WebKit::WebResourceLoadStatisticsStore::requestStorageAccessUnderOpener): |
| (WebKit::WebResourceLoadStatisticsStore::grantStorageAccess): |
| (WebKit::WebResourceLoadStatisticsStore::grantStorageAccessInternal): |
| (WebKit::WebResourceLoadStatisticsStore::hasUserGrantedStorageAccessThroughPrompt const): |
| (WebKit::WebResourceLoadStatisticsStore::hasHadUnexpiredRecentUserInteraction const): |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| |
| 2018-05-08 Daniel Bates <dabates@apple.com> |
| |
| Do not apply X-Frame-Options and CSP frame-ancestors to Quick Look-applicable responses in NetworkProcess |
| https://bugs.webkit.org/show_bug.cgi?id=185442 |
| <rdar://problem/40067209> |
| |
| Reviewed by Andy Estes. |
| |
| Just as we exempt responses in WebContent process that will be handled by Quick Look from the Content |
| Security Policy frame-ancestors directive and X-Frame-Options checking we need to do the same when |
| such checks are performed in NetworkProcess following r231479. |
| |
| HTTP responses that will be previewed using Quick Look are not considered web pages and are subject |
| to the security model for Quick Look documents. That is, they are exempt from Content Security Policy |
| and X-Frame-Options processing. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::shouldInterruptLoadForCSPFrameAncestorsOrXFrameOptions): |
| |
| 2018-05-08 Brian Burg <bburg@apple.com> |
| |
| REGRESSION(r230743): Mousemove events are not coalesced properly, mousemove/drag is very laggy |
| https://bugs.webkit.org/show_bug.cgi?id=185425 |
| <rdar://problem/39323336> |
| |
| Reviewed by Simon Fraser. |
| |
| When mousemove events come in faster than they can be processed, we should coalesce |
| pending mousemoves that have not yet been sent to WebProcess. This has the effect of |
| processing the most recent mousemove location, which is the old behavior that regressed. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::handleMouseEvent): |
| If there is >1 event in the mouse queue, then the first one is being processed by WebProcess |
| and the second one is eligible for coalescing. Replace it if the last event and new event |
| are both mousemoves. |
| |
| 2018-05-08 Per Arne Vollan <pvollan@apple.com> |
| |
| The PDF context menu should not be created in the WebContent process. |
| https://bugs.webkit.org/show_bug.cgi?id=185401 |
| |
| Reviewed by Tim Horton. |
| |
| Send a sync IPC message from the WebContent process to the UI process with the necessary context |
| menu information when the menu is requested. The NSMenu will then be created and shown in the |
| UI process. The reply will contain the selected menu item index. |
| |
| * Shared/mac/PDFContextMenu.h: Added. |
| (WebKit::PDFContextMenuItem::encode const): |
| (WebKit::PDFContextMenuItem::decode): |
| (WebKit::PDFContextMenu::encode const): |
| (WebKit::PDFContextMenu::decode): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/mac/WebPageProxyMac.mm: |
| (-[WKPDFMenuTarget menuItem]): |
| (-[WKPDFMenuTarget contextMenuAction:]): |
| (WebKit::WebPageProxy::showPDFContextMenu): |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/Plugins/PDF/PDFPlugin.mm: |
| (WebKit::PDFPlugin::handleContextMenuEvent): |
| |
| 2018-05-08 Dean Jackson <dino@apple.com> |
| |
| System Preview links should trigger a download |
| https://bugs.webkit.org/show_bug.cgi?id=185439 |
| <rdar://problem/40065545> |
| |
| Reviewed by Jon Lee. |
| |
| Encode the new field identifying a system preview. And |
| if you encounter such a resource request, trigger |
| a download. |
| |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<ResourceRequest>::encode): |
| (IPC::ArgumentCoder<ResourceRequest>::decode): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| |
| 2018-05-08 John Wilander <wilander@apple.com> |
| |
| Storage Access API: Add a request roundtrip to check whether prompting is needed |
| https://bugs.webkit.org/show_bug.cgi?id=185368 |
| <rdar://problem/40011556> |
| |
| Reviewed by Alex Christensen and Youenn Fablet. |
| |
| This patch adds an enum WebKit::StorageAccessStatus to handle our three access |
| states: |
| - WebKit::StorageAccessStatus::CannotRequestAccess. |
| This means the domain is blocked from cookie access. |
| - WebKit::StorageAccessStatus::RequiresUserPrompt. |
| This means that access has not been granted yet and a prompt is required. |
| - WebKit::StorageAccessStatus::HasAccess. |
| This either means that this domain does not need to ask for access, |
| access was already granted, or access was granted now. |
| |
| If the call to WebResourceLoadStatisticsStore::requestStorageAccess() comes |
| back as WebKit::StorageAccessStatus::RequiresUserPrompt, the WebPageProxy |
| prompts the user and if the user said yes, calls a direct |
| WebResourceLoadStatisticsStore::grantStorageAccess(). |
| |
| Existing test cases pass because requestStorageAccessConfirm in WKPage.cpp |
| does not have m_client.requestStorageAccessConfirm and thus returns true. |
| |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| Added a missing #endif. |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::requestStorageAccess): |
| Here we now handle the various cases encoded in WebKit::StorageAccessStatus. |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::requestStorageAccess): |
| Now covers the optional prompt case. |
| (WebKit::WebResourceLoadStatisticsStore::requestStorageAccessUnderOpener): |
| (WebKit::WebResourceLoadStatisticsStore::grantStorageAccess): |
| (WebKit::WebResourceLoadStatisticsStore::grantStorageAccessInternal): |
| Granting access is broken out to allow WebKit::WebPageProxy to call it |
| directly. |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::requestStorageAccess): |
| (WebKit::WebsiteDataStore::grantStorageAccess): |
| Piping through calls from from WebKit::WebResourceLoadStatisticsStore |
| to WebKit::WebPageProxy. |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| |
| 2018-05-08 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, rolling out r231376 and r231458. |
| |
| Caused some API tests failures on iOS |
| |
| Reverted changesets: |
| |
| "[iOS] Apps that are not visible may not get suspended if they |
| trigger page loads while in the background" |
| https://bugs.webkit.org/show_bug.cgi?id=185318 |
| https://trac.webkit.org/changeset/231376 |
| |
| "[iOS] Release page load process assertion if the screen is |
| locked" |
| https://bugs.webkit.org/show_bug.cgi?id=185333 |
| https://trac.webkit.org/changeset/231458 |
| |
| 2018-05-08 Dean Jackson <dino@apple.com> |
| |
| Use thumbnails in System Previews |
| https://bugs.webkit.org/show_bug.cgi?id=185397 |
| <rdar://problem/40039376> |
| |
| Reviewed by Jon Lee. |
| |
| A system preview that goes through the WKWebViewContentProvider will |
| show a static thumbnail/snapshot of the item, rather than jumping |
| directly to QuickLook. |
| |
| This means we have to link to the AssetViewer framework. That provides |
| a ASVThumbnailView that will trigger QuickLook for us. |
| |
| * Configurations/WebKit.xcconfig: Link to AssetViewer. |
| |
| * UIProcess/ios/WKSystemPreviewView.h: Better macro use. Remove some unneeded protocols. |
| * UIProcess/ios/WKSystemPreviewView.mm: |
| (-[WKSystemPreviewView web_setContentProviderData:suggestedFilename:]): Update this |
| to use an ASVThumbnailView, when on the internal SDK (because it is private). |
| (-[WKSystemPreviewView _layoutThumbnailView]): Use the content insets to put |
| the thumbnail in the right place. |
| (-[WKSystemPreviewView thumbnailView:wantsToPresentPreviewController:forItem:]): |
| Delegate method. |
| (-[WKSystemPreviewView web_contentView]): |
| (-[WKSystemPreviewView web_computedContentInsetDidChange]): |
| (-[WKSystemPreviewView numberOfPreviewItemsInPreviewController:]): Deleted. |
| (-[WKSystemPreviewView previewController:previewItemAtIndex:]): Deleted. |
| (-[WKSystemPreviewView previewControllerWillDismiss:]): Deleted. |
| |
| 2018-05-08 Youenn Fablet <youenn@apple.com> |
| |
| Allow WebResourceLoader to cancel a load served from a service worker |
| https://bugs.webkit.org/show_bug.cgi?id=185274 |
| |
| Reviewed by Chris Dumez. |
| |
| Use FetchIdentifier instead of uint64_t. |
| Add IPC support for cancelling a fetch from WebProcess to service worker process. |
| Ask service worker process to cancel the fetch when its corresponding WebResourceLoader is cancelled. |
| No change of behavior as once a WebResourceLoader is cancelled, any related IPC is not processed. |
| A follow-up patch should try to cancel the FetchResponse load, meaning to either cancel the network load |
| or to abort reading the readable stream. |
| |
| * Scripts/webkit/messages.py: |
| * StorageProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::cancelFetch): |
| (WebKit::WebSWServerConnection::startFetch): |
| (WebKit::WebSWServerConnection::didReceiveFetchResponse): |
| (WebKit::WebSWServerConnection::didReceiveFetchData): |
| (WebKit::WebSWServerConnection::didReceiveFetchFormData): |
| (WebKit::WebSWServerConnection::didFinishFetch): |
| (WebKit::WebSWServerConnection::didFailFetch): |
| (WebKit::WebSWServerConnection::didNotHandleFetch): |
| * StorageProcess/ServiceWorker/WebSWServerConnection.h: |
| * StorageProcess/ServiceWorker/WebSWServerConnection.messages.in: |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::didFailFetch): |
| (WebKit::StorageProcess::didNotHandleFetch): |
| (WebKit::StorageProcess::didReceiveFetchResponse): |
| (WebKit::StorageProcess::didReceiveFetchData): |
| (WebKit::StorageProcess::didReceiveFetchFormData): |
| (WebKit::StorageProcess::didFinishFetch): |
| * StorageProcess/StorageProcess.h: |
| * StorageProcess/StorageProcess.messages.in: |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::remove): |
| * WebProcess/Storage/ServiceWorkerClientFetch.cpp: |
| (WebKit::ServiceWorkerClientFetch::create): |
| (WebKit::ServiceWorkerClientFetch::ServiceWorkerClientFetch): |
| (WebKit::ServiceWorkerClientFetch::start): |
| (WebKit::ServiceWorkerClientFetch::cancel): |
| * WebProcess/Storage/ServiceWorkerClientFetch.h: |
| * WebProcess/Storage/WebSWClientConnection.cpp: |
| (WebKit::WebSWClientConnection::startFetch): |
| (WebKit::WebSWClientConnection::cancelFetch): |
| * WebProcess/Storage/WebSWClientConnection.h: |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::cancelFetch): |
| (WebKit::WebSWContextManagerConnection::startFetch): |
| * WebProcess/Storage/WebSWContextManagerConnection.h: |
| * WebProcess/Storage/WebSWContextManagerConnection.messages.in: |
| * WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp: |
| (WebKit::WebServiceWorkerFetchTaskClient::WebServiceWorkerFetchTaskClient): |
| (WebKit::WebServiceWorkerFetchTaskClient::cancel): |
| * WebProcess/Storage/WebServiceWorkerFetchTaskClient.h: |
| * WebProcess/Storage/WebServiceWorkerProvider.cpp: |
| (WebKit::WebServiceWorkerProvider::handleFetch): |
| (WebKit::WebServiceWorkerProvider::cancelFetch): |
| (WebKit::WebServiceWorkerProvider::fetchFinished): |
| * WebProcess/Storage/WebServiceWorkerProvider.h: |
| |
| 2018-05-08 Antti Koivisto <antti@apple.com> |
| |
| Don't use mapped cache files in case of Class A/B protected app |
| https://bugs.webkit.org/show_bug.cgi?id=185422 |
| <rdar://problem/34001688> |
| |
| Reviewed by Chris Dumez. |
| |
| Currently we don't use shared memory maps in these cases. This still leaves us open for crashes |
| in the network process when the device is locked. |
| |
| This patch disables use of blob storage (mapped cache files) in apps that use class A/B protection. |
| Normally we use blobs for resources > 16KB. Since use of shared memory is already disabled, |
| the only optimization lost for these apps is body data deduplication. |
| |
| Any existing cache entries with blobs are ignored and deleted. New entries are created with |
| body data inlined with the metadata. |
| |
| * NetworkProcess/cache/NetworkCache.cpp: |
| (WebKit::NetworkCache::Cache::store): |
| * NetworkProcess/cache/NetworkCache.h: |
| (WebKit::NetworkCache::Cache::canUseSharedMemoryForBodyData const): Deleted. |
| * NetworkProcess/cache/NetworkCacheEntry.cpp: |
| (WebKit::NetworkCache::Entry::initializeShareableResourceHandleFromStorageRecord const): |
| |
| Remove the code the prevented use of shared memory in these cases. Non-mapped Data objects |
| are never shareable. |
| |
| (WebKit::NetworkCache::Entry::setNeedsValidation): |
| * NetworkProcess/cache/NetworkCacheFileSystem.cpp: |
| (WebKit::NetworkCache::isSafeToUseMemoryMapForPath): |
| (WebKit::NetworkCache::canUseSharedMemoryForPath): Deleted. |
| * NetworkProcess/cache/NetworkCacheFileSystem.h: |
| * NetworkProcess/cache/NetworkCacheStorage.cpp: |
| (WebKit::NetworkCache::Storage::Storage): |
| (WebKit::NetworkCache::Storage::mayContainBlob const): |
| (WebKit::NetworkCache::Storage::shouldStoreBodyAsBlob): |
| (WebKit::NetworkCache::shouldStoreBodyAsBlob): Deleted. |
| * NetworkProcess/cache/NetworkCacheStorage.h: |
| (WebKit::NetworkCache::Storage::canUseSharedMemoryForBodyData const): Deleted. |
| |
| 2018-05-07 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Add missing exit not included in r231298. |
| |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::ensureWebToStorageProcessConnection): |
| |
| 2018-05-07 Daniel Bates <dabates@apple.com> |
| |
| Check X-Frame-Options and CSP frame-ancestors in network process |
| https://bugs.webkit.org/show_bug.cgi?id=185410 |
| <rdar://problem/37733934> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * NetworkProcess/NetworkResourceLoadParameters.cpp: |
| (WebKit::NetworkResourceLoadParameters::encode const): Always encode the frame ancestor origins. |
| (WebKit::NetworkResourceLoadParameters::decode): Always decode the frame ancestor origins. |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::shouldInterruptLoadForXFrameOptions): Added. |
| (WebKit::NetworkResourceLoader::shouldInterruptLoadForCSPFrameAncestorsOrXFrameOptions): Added. |
| (WebKit::NetworkResourceLoader::didReceiveResponse): Check if the load needs to be interrupted due |
| to a violation of the CSP frame-ancestors directive or X-Frame-Options. If there is a violation |
| then stop the load. |
| (WebKit::NetworkResourceLoader::didRetrieveCacheEntry): Ditto. |
| (NetworkResourceLoader::addConsoleMessage): Added. |
| (NetworkResourceLoader::sendCSPViolationReport): Added. |
| * NetworkProcess/NetworkResourceLoader.h: |
| * Scripts/webkit/messages.py: Teach the generator about data types MessageLevel and MessageSource |
| as they are both defined in file JavaScriptCore/ConsoleTypes.h as opposed to independent headers. |
| Also tell the generator that these types should not be forward declared so that we can use these |
| types without their JSC:: prefix in WebPage.messages.in. |
| * WebProcess/Network/NetworkProcessConnection.cpp: |
| (WebKit::NetworkProcessConnection::didReceiveMessage): Route WebPage messages to the appropriate |
| web page. |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess): Added message StopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied. |
| * WebProcess/Network/WebResourceLoader.cpp: |
| (WebKit::WebResourceLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied): Added. |
| * WebProcess/Network/WebResourceLoader.h: |
| * WebProcess/Network/WebResourceLoader.messages.in: |
| * WebProcess/WebPage/WebFrame.cpp: |
| (WebKit::WebFrame::addConsoleMessage): |
| * WebProcess/WebPage/WebFrame.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::addConsoleMessage): Added. |
| (WebKit::WebPage::sendCSPViolationReport): Added. |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: Add messages AddConsoleMessage and SendCSPViolationReport |
| for adding a console message to Web Inspector and sending a CSP report, respectively. |
| |
| 2018-05-07 Daniel Bates <dabates@apple.com> |
| |
| Abstract logic to log console messages and send CSP violation reports into a client |
| https://bugs.webkit.org/show_bug.cgi?id=185393 |
| <rdar://problem/40036053> |
| |
| Reviewed by Brent Fulgham. |
| |
| For now, build a URL from the source origin associated with the NetworkResourceLoader |
| and pass this to the ContentSecurityPolicy constructor. |
| |
| Additionally, make NetworkLoadChecker::contentSecurityPolicy() non-const since it returns |
| a non-const pointer to a ContentSecurityPolicy object; => callers can mutate this object |
| right from under NetworkLoadChecker. Making this non-const makes this clear to a reader. |
| Also remove the mutable keyword from the definition of NetworkLoadChecker::m_contentSecurityPolicy. |
| |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::contentSecurityPolicy): |
| (WebKit::NetworkLoadChecker::contentSecurityPolicy const): Deleted. |
| * NetworkProcess/NetworkLoadChecker.h: |
| |
| 2018-05-07 Alex Christensen <achristensen@webkit.org> |
| |
| WebResourceLoadStatisticsStore::requestStorageAccess should call its completion handler on the main thread |
| https://bugs.webkit.org/show_bug.cgi?id=185403 |
| |
| Reviewed by Brent Fulgham. |
| |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::requestStorageAccess): |
| |
| 2018-05-07 Chris Dumez <cdumez@apple.com> |
| |
| [iOS] Release page load process assertion if the screen is locked |
| https://bugs.webkit.org/show_bug.cgi?id=185333 |
| |
| Reviewed by Geoffrey Garen. |
| |
| We normally take a background process assertion during page loads to allow them to complete |
| even if the tab / app is backgrounded. We should however avoid doing so when the backgrounding |
| is caused by the screen locking. Keeping the process assertion in this case would prevent the |
| whole device from sleeping longer than it should, thus negatively impacting power. |
| |
| * UIProcess/Cocoa/NavigationState.h: |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationState): |
| (WebKit::NavigationState::releaseNetworkActivityToken): |
| (WebKit::NavigationState::didChangeIsLoading): |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::applicationDidEnterBackground): |
| |
| 2018-05-07 Brent Fulgham <bfulgham@apple.com> |
| |
| Add experimental feature to prompt for Storage Access API use |
| https://bugs.webkit.org/show_bug.cgi?id=185335 |
| <rdar://problem/39994649> |
| |
| Reviewed by Alex Christensen and Youenn Fablet. |
| |
| Create a new experimental feature that gates the ability of WebKit clients to prompt the user when |
| Storage Access API is invoked. |
| |
| Currently this feature doesn't have any user-visible impact. |
| |
| * Shared/API/APIObject.h: |
| * Shared/API/c/WKBase.h: |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/APIUIClient.h: |
| (API::UIClient::requestStorageAccessConfirm): |
| * UIProcess/API/C/WKPage.cpp: |
| (WebKit::RequestStorageAccessConfirmResultListener::create): |
| (WebKit::RequestStorageAccessConfirmResultListener::~RequestStorageAccessConfirmResultListener): |
| (WebKit::RequestStorageAccessConfirmResultListener::call): |
| (WebKit::RequestStorageAccessConfirmResultListener::RequestStorageAccessConfirmResultListener): |
| (WKPageRequestStorageAccessConfirmResultListenerGetTypeID): |
| (WKPageRequestStorageAccessConfirmResultListenerCall): |
| (WKPageSetPageUIClient): |
| * UIProcess/API/C/WKPageUIClient.h: |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences _storageAccessPromptsEnabled]): |
| (-[WKPreferences _setStorageAccessPromptsEnabled:]): |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: |
| * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: |
| * UIProcess/Cocoa/UIDelegate.h: |
| * UIProcess/Cocoa/UIDelegate.mm: |
| (WebKit::UIDelegate::setDelegate): |
| (WebKit::UIDelegate::UIClient::requestStorageAccessConfirm): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::requestStorageAccessConfirm): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/WebPreferences.cpp: |
| (WebKit::WebPreferences::update): |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::requestStorageAccess): |
| |
| 2018-05-07 Dean Jackson <dino@apple.com> |
| |
| Use a dark gray for system preview bbackground |
| https://bugs.webkit.org/show_bug.cgi?id=185391 |
| <rdar://problem/40035120> |
| |
| Reviewed by Eric Carlson. |
| |
| Throw some darker shade at this view. |
| |
| * UIProcess/ios/WKSystemPreviewView.mm: |
| (-[WKSystemPreviewView web_initWithFrame:webView:]): |
| |
| 2018-05-07 Don Olmstead <don.olmstead@sony.com> |
| |
| [Win] Add missing methods to WebChromeClient |
| https://bugs.webkit.org/show_bug.cgi?id=185325 |
| |
| Reviewed by Brent Fulgham. |
| |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| |
| 2018-05-07 Megan Gardner <megan_gardner@apple.com> |
| |
| Allow Web Touch events to timeout |
| https://bugs.webkit.org/show_bug.cgi?id=185282 |
| |
| Reviewed by Tim Horton. |
| |
| This is backwards, fixing. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::handleTouchEventSynchronously): |
| |
| 2018-05-07 Don Olmstead <don.olmstead@sony.com> |
| |
| [Win] LoggingWin is missing includes |
| https://bugs.webkit.org/show_bug.cgi?id=185326 |
| |
| Reviewed by Per Arne Vollan. |
| |
| * Platform/win/LoggingWin.cpp: |
| |
| 2018-05-07 Daniel Bates <dabates@apple.com> |
| |
| CSP should be passed the referrer |
| https://bugs.webkit.org/show_bug.cgi?id=185367 |
| |
| Reviewed by Per Arne Vollan. |
| |
| Pass the referrer through NetworkLoadChecker so that it can pass it to the ContentSecurityPolicy |
| object it instantiates. |
| |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::NetworkLoadChecker): |
| (WebKit::NetworkLoadChecker::contentSecurityPolicy const): |
| * NetworkProcess/NetworkLoadChecker.h: |
| (WebKit::NetworkLoadChecker::create): |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| * NetworkProcess/PingLoad.cpp: |
| (WebKit::PingLoad::PingLoad): |
| |
| 2018-05-07 Daniel Bates <dabates@apple.com> |
| |
| Substitute CrossOriginPreflightResultCache::clear() for CrossOriginPreflightResultCache::empty() |
| https://bugs.webkit.org/show_bug.cgi?id=185170 |
| |
| Reviewed by Per Arne Vollan. |
| |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::clearResourceCaches): |
| (WebKit::WebProcess::deleteWebsiteData): |
| |
| 2018-05-07 Brian Burg <bburg@apple.com> |
| |
| Web Inspector: opt out of process swap on navigation if a Web Inspector frontend is connected |
| https://bugs.webkit.org/show_bug.cgi?id=184861 |
| <rdar://problem/39153768> |
| |
| Reviewed by Timothy Hatcher. |
| |
| We need to track how many frontends are attached to the web page (both local and remote). |
| InspectorController propagates this out to WebKit via InspectorClient. This is then |
| kept in UIProcess as a member of WebPageProxy. When making a decision whether to use a |
| new process for a navigation, return early with "no" if any frontends are open for the |
| page being navigated. |
| |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::didChangeInspectorFrontendCount): |
| (WebKit::WebPageProxy::inspectorFrontendCount const): |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigation): |
| * WebProcess/WebCoreSupport/WebInspectorClient.cpp: |
| (WebKit::WebInspectorClient::frontendCountChanged): |
| * WebProcess/WebCoreSupport/WebInspectorClient.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::inspectorFrontendCountChanged): |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2018-05-04 Tim Horton <timothy_horton@apple.com> |
| |
| Shift to a lower-level framework for simplifying URLs |
| https://bugs.webkit.org/show_bug.cgi?id=185334 |
| |
| Reviewed by Dan Bernstein. |
| |
| * Configurations/WebKit.xcconfig: |
| * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm: |
| (-[WKFullScreenWindowController _updateLocationInfo]): |
| |
| 2018-05-04 Per Arne Vollan <pvollan@apple.com> |
| |
| Shutdown WindowServer connections after checking in with launch services |
| https://bugs.webkit.org/show_bug.cgi?id=185082 |
| <rdar://problem/39613173> |
| |
| Reviewed by Brent Fulgham. |
| |
| When WindowServer access is blocked in the WebContent process, we should shutdown all connections |
| after checking in with launch services. |
| |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::platformInitializeProcess): |
| |
| 2018-05-04 Don Olmstead <don.olmstead@sony.com> |
| |
| [Win][WebKit] Fix forwarding headers for Windows build |
| https://bugs.webkit.org/show_bug.cgi?id=184412 |
| |
| Reviewed by Alex Christensen. |
| |
| * PlatformWin.cmake: |
| * UIProcess/API/APIAttachment.h: |
| * UIProcess/API/APIContextMenuClient.h: |
| * UIProcess/API/C/WKProcessTerminationReason.h: |
| * WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp: |
| |
| 2018-05-04 Chris Dumez <cdumez@apple.com> |
| |
| [iOS] Apps that are not visible may not get suspended if they trigger page loads while in the background |
| https://bugs.webkit.org/show_bug.cgi?id=185318 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Whenever there is a page load going on, we take a background process assertion to delay process |
| suspension until this load completes. However, there is also a 3 seconds grace period after |
| a load is complete to allow the app to trigger a new load shortly after. This grace period was |
| introduced to support use cases where a visible app does loads in an offscreen view. However, |
| it can be abused by apps running in the background as they could trigger new page loads while |
| in the background to delay process suspension. This patch tightens the policy so that only |
| apps that are currently visible get to use this grace period. Apps that are in the background |
| get to finish their current load and will then get suspended. |
| |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::didChangeIsLoading): |
| |
| 2018-05-04 Per Arne Vollan <pvollan@apple.com> |
| |
| Adjust sandbox profile for simulator. |
| https://bugs.webkit.org/show_bug.cgi?id=185319 |
| |
| Reviewed by Brent Fulgham. |
| |
| Disable Kerberos rules, as well as rules related to NSApplication initialization. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-05-04 Tim Horton <timothy_horton@apple.com> |
| |
| Wasted time dlopening Lookup when tearing down a WKWebView |
| https://bugs.webkit.org/show_bug.cgi?id=185310 |
| <rdar://problem/39934085> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (-[WKWindowVisibilityObserver dealloc]): |
| (-[WKWindowVisibilityObserver startObservingLookupDismissalIfNeeded]): |
| (WebKit::WebViewImpl::prepareForDictionaryLookup): |
| (-[WKWindowVisibilityObserver startObservingLookupDismissal]): Deleted. |
| Avoid un-registering as a Lookup dismissal observer if we never |
| registered in the first place, because that involves dlopening Lookup. |
| |
| 2018-05-04 Megan Gardner <megan_gardner@apple.com> |
| |
| Allow Web Touch events to timeout |
| https://bugs.webkit.org/show_bug.cgi?id=185282 |
| <rdar://problem/38728319> |
| |
| Reviewed by Tim Horton. |
| |
| Web Touch events currently never time out, which blocks the user from interacting with the UI Process at all. |
| We should allow these events to time out so that the user can interact with the rest of the UI. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::handleTouchEventSynchronously): |
| |
| 2018-05-04 Wenson Hsieh <whsieh@berkeley.edu> |
| |
| REGRESSION: [ios-simulator] 3 WKWebViewAutofillTests API test failures seen with 11.3 SDK |
| https://bugs.webkit.org/show_bug.cgi?id=184196 |
| <rdar://problem/39054481> |
| |
| Reviewed by Tim Horton. |
| |
| Remove an unnecessary call to NSClassFromString, now that trunk WebKit only supports iOS 11.3+. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView insertTextSuggestion:]): |
| |
| 2018-05-04 Youenn Fablet <youenn@apple.com> |
| |
| NetworkProcessProxy::didReceiveAuthenticationChallenge should take an AuthenticationChallenge r-value |
| https://bugs.webkit.org/show_bug.cgi?id=185302 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Pass AuthenticationChallenge as an r-value since it comes from IPC. |
| No change of behavior. |
| |
| * UIProcess/Authentication/AuthenticationChallengeProxy.cpp: |
| (WebKit::AuthenticationChallengeProxy::AuthenticationChallengeProxy): |
| * UIProcess/Authentication/AuthenticationChallengeProxy.h: |
| (WebKit::AuthenticationChallengeProxy::create): |
| * UIProcess/Downloads/DownloadProxy.cpp: |
| (WebKit::DownloadProxy::didReceiveAuthenticationChallenge): |
| * UIProcess/Downloads/DownloadProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::didReceiveAuthenticationChallenge): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| |
| 2018-05-04 Sihui Liu <sihui_liu@apple.com> |
| |
| Assertion failure in NetworkStorageSession::setCookie: privilege of UI process is not set |
| https://bugs.webkit.org/show_bug.cgi?id=185262 |
| |
| Reviewed by Chris Dumez. |
| |
| Fix an assertion failure by setting UI process privileges in constructor of WebsiteDataStore |
| because UI process may use the cookie API before creating a WebView. |
| |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::WebsiteDataStore): |
| |
| 2018-05-04 Per Arne Vollan <pvollan@apple.com> |
| |
| Adjust sandbox rules for simulator. |
| https://bugs.webkit.org/show_bug.cgi?id=185275 |
| |
| Reviewed by Brent Fulgham. |
| |
| Enable rules related to CoreMedia for minimal simulator. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-05-04 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Epiphany (GNOME Web) says "Error downloading: Service Unavailable." when trying to download an image from discogs.com |
| https://bugs.webkit.org/show_bug.cgi?id=174730 |
| |
| Reviewed by Michael Catanzaro. |
| |
| The problem is that we don't send any User-Agent HTTP header for downloads started by WebProcessPool::download(). |
| |
| * UIProcess/API/glib/WebKitDownload.cpp: |
| (webkitDownloadUpdateRequest): Helper to update the cached request. |
| (webkitDownloadStarted): Updated the cached request if we have one. |
| (webkit_download_get_request): Use webkitDownloadUpdateRequest(). |
| * UIProcess/API/glib/WebKitDownloadClient.cpp: |
| * UIProcess/API/glib/WebKitDownloadPrivate.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::download): Set the User-Agent HTTP header if there isn't any. |
| |
| 2018-05-04 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Some event tests failing after r230817 |
| https://bugs.webkit.org/show_bug.cgi?id=185072 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Do not send mouse move events to the WebProcess for crossing events during testing. WTR never generates crossing |
| events and they can confuse tests. |
| |
| Fixes: editing/pasteboard/drag-link-with-data-transfer-adds-trusted-link-to-pasteboard.html |
| fast/css/user-drag-none.html |
| fast/events/context-activated-by-key-event.html |
| fast/events/drag-selects-image.html |
| fast/events/dropzone-005.html |
| fast/events/mouse-click-events.html |
| fast/events/mouse-cursor-change.html |
| |
| * UIProcess/API/gtk/WebKitWebViewBase.cpp: |
| (webkitWebViewBaseCrossingNotifyEvent): |
| |
| 2018-05-03 Chris Dumez <cdumez@apple.com> |
| |
| More aggressively terminate child processes when the connection to their parent process is severed |
| https://bugs.webkit.org/show_bug.cgi?id=177972 |
| <rdar://problem/33317607> |
| |
| Reviewed by Geoff Garen. |
| |
| More aggressively terminate child processes when the connection to their parent process is severed. |
| Previously, we would dispatch to the main thread and then exit the process. This would sometimes |
| cause the process to say alive for 10 seconds until our watchdog would forcefully terminate the |
| process. This could happen in particular when the main thread is blocked on a synchronous IPC. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::didClose): Deleted. |
| * NetworkProcess/NetworkProcess.h: |
| * PluginProcess/PluginProcess.cpp: |
| (WebKit::PluginProcess::didClose): Deleted. |
| * PluginProcess/PluginProcess.h: |
| * Shared/ChildProcess.cpp: |
| (WebKit::ChildProcess::didClose): |
| (WebKit::didCloseOnConnectionWorkQueue): |
| (WebKit::ChildProcess::terminationTimerFired): |
| * Shared/ChildProcess.h: |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::didClose): Deleted. |
| * StorageProcess/StorageProcess.h: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::didClose): Deleted. |
| * WebProcess/WebProcess.h: |
| |
| 2018-05-03 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| Use default std::optional if it is provided |
| https://bugs.webkit.org/show_bug.cgi?id=185159 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * Shared/SandboxExtension.h: |
| (WebKit::SandboxExtension::Handle::decode): |
| * Shared/TouchBarMenuItemData.cpp: |
| (WebKit::TouchBarMenuItemData::decode): |
| |
| 2018-05-03 Justin Fan <justin_fan@apple.com> |
| |
| [WebGL] Add runtime flag for enabling ASTC support in WebGL |
| https://bugs.webkit.org/show_bug.cgi?id=184840 |
| |
| Reviewed by Myles C. Maxfield. |
| |
| Added runtime flag for ASTC support in WebGL, to turn on/off when extension is implemented. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-05-03 Keith Rollin <krollin@apple.com> |
| |
| Unreviewed build fix after <https://trac.webkit.org/changeset/231282>. |
| |
| * NetworkProcess/NetworkActivityTracker.h: |
| |
| 2018-05-03 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Ads in NYTimes app are shifted downwards by the scroll view's top content inset |
| https://bugs.webkit.org/show_bug.cgi?id=185251 |
| <rdar://problem/39062357> |
| |
| Reviewed by Tim Horton. |
| |
| The NYTimes app embeds advertisements in each article's WKWebView by adding views in the WKScrollView's view |
| hierarchy. These views are positioned using the bounding client rects of elements in the DOM (via Element |
| ::getBoundingClientRect). Prior to r229641, WebKit would report bounding client rects inset by the content |
| insets of WKScrollView, which means that if a top content inset X is specified on the scroll view, an element |
| that is flush against the top of the viewport will have a bounding client rect top of -X (when it should really |
| be 0). |
| |
| To account for this, NYTimes adds the scroll view content insets back to the bounding client rect when |
| determining the position of each advertisement which, after r229641, causes these views to be shifted downwards |
| by an amount equal to the scroll view content inset top. |
| |
| This new behavior does not affect Safari, since Safari uses SPI to explicitly set obscured insets. As such, we |
| address this by gating the scroll view content inset fix with a linked-on-or-after check. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _computedObscuredInset]): |
| * UIProcess/Cocoa/VersionChecks.h: |
| |
| 2018-05-03 Chris Dumez <cdumez@apple.com> |
| |
| Load hangs if the WebProcess fails to launch |
| https://bugs.webkit.org/show_bug.cgi?id=185225 |
| <rdar://problem/38249058> |
| |
| Reviewed by Geoff Garen. |
| |
| When a process fails to launch, ChildProcessProxy::didFinishLaunching() gets called with an |
| invalid connection identifier. While NetworkProcessProxy::didFinishLaunching() properly deals with |
| this situation, WebProcessProxy::didFinishLaunching() does not. As a result, we do not attempt to |
| relaunch the process, we do not notify the client and WebPageProxy::m_isValid stays true. |
| |
| This patch thus updates WebProcessProxy::didFinishLaunching() to check if the connection identifier |
| is valid and treats it as a crash. As a result, the WebPageProxies properly reset their state and |
| the client gets notified of the crash so that it can attempt to reload. |
| |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _makeNextWebProcessLaunchFailForTesting]): |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/Launcher/ProcessLauncher.h: |
| * UIProcess/Launcher/mac/ProcessLauncherMac.mm: |
| (WebKit::ProcessLauncher::launchProcess): |
| Add SPI to make the next WebProcess launch fail, for the purpose of API testing. |
| |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::getLaunchOptions): |
| (WebKit::WebProcessProxy::didClose): |
| (WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch): |
| (WebKit::WebProcessProxy::didFinishLaunching): |
| * UIProcess/WebProcessProxy.h: |
| |
| 2018-05-03 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r231223 and r231288. |
| https://bugs.webkit.org/show_bug.cgi?id=185256 |
| |
| The change in r231223 breaks internal builds, and r231288 is a |
| dependent change. (Requested by ryanhaddad on #webkit). |
| |
| Reverted changesets: |
| |
| "Use default std::optional if it is provided" |
| https://bugs.webkit.org/show_bug.cgi?id=185159 |
| https://trac.webkit.org/changeset/231223 |
| |
| "Use pointer instead of |
| std::optional<std::reference_wrapper<>>" |
| https://bugs.webkit.org/show_bug.cgi?id=185186 |
| https://trac.webkit.org/changeset/231288 |
| |
| 2018-05-03 Per Arne Vollan <pvollan@apple.com> |
| |
| An error message is written to stderr when the WebContent process is blocking WindowServer access. |
| https://bugs.webkit.org/show_bug.cgi?id=184701 |
| |
| Reviewed by Brent Fulgham. |
| |
| Calling 'setApplicationIsDaemon(true)' instead of 'CGSSetDenyWindowServerConnections(true)' to disable |
| access to the WindowServer in the WebContent process, will remove this error message. After this change, |
| the url of the WebContent process is still showing up in Activity Monitor, which previously was a |
| problem when calling 'setApplicationIsDaemon(true)'. |
| |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeProcess): |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::platformInitializeProcess): |
| |
| 2018-05-03 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r231253. |
| |
| The API test added with this change is crashing on the bots. |
| |
| Reverted changeset: |
| |
| "Web Inspector: opt out of process swap on navigation if a Web |
| Inspector frontend is connected" |
| https://bugs.webkit.org/show_bug.cgi?id=184861 |
| https://trac.webkit.org/changeset/231253 |
| |
| 2018-05-03 Brent Fulgham <bfulgham@apple.com> |
| |
| Re-eneable Network Extension support in the WebContent process |
| https://bugs.webkit.org/show_bug.cgi?id=185236 |
| <rdar://problem/39883004> |
| |
| Reviewed by Eric Carlson. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-05-03 Tim Horton <timothy_horton@apple.com> |
| |
| REGRESSION (r231014): Entitlements are not applied to XPC services on macOS |
| https://bugs.webkit.org/show_bug.cgi?id=185241 |
| |
| Reviewed by Dan Bernstein. |
| |
| * Configurations/BaseXPCService.xcconfig: |
| * Configurations/WebContentService.Development.xcconfig: |
| * Configurations/WebContentService.xcconfig: |
| |
| 2018-05-03 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| REGRESSION(r222772): [GTK][WPE] WebProcess from WebKitGtk+ 2.19.9x SIGSEVs in WebKit::WebProcess::ensureNetworkProcessConnection() at Source/WebKit/WebProcess/WebProcess.cpp:1127 |
| https://bugs.webkit.org/show_bug.cgi?id=183348 |
| |
| Reviewed by Michael Catanzaro. |
| |
| When connection doesn't exit in case of sync message failure, always exit in case of failing to send |
| GetNetworkProcessConnection or GetStorageProcessConnection messages. This can happen when the WebView is created |
| and destroyed quickly. |
| |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::ensureNetworkProcessConnection): |
| (WebKit::WebProcess::ensureWebToStorageProcessConnection): |
| |
| 2018-05-02 Nan Wang <n_wang@apple.com> |
| |
| AX: Missing kAXSWebAccessibilityEventsEnabledNotification causes a crash |
| https://bugs.webkit.org/show_bug.cgi?id=185237 |
| |
| Reviewed by Dan Bernstein. |
| |
| When libAccessibility.dylib is missing, the compiler would optimize out the global |
| notification and lead to a crash. Fixed it by using the isNullFunction check instead, |
| since we are sure the global notification would be there when the corresponding function |
| is available. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| |
| 2018-05-02 Keith Rollin <krollin@apple.com> |
| |
| Add facility for tracking times and results of page and resource loading |
| https://bugs.webkit.org/show_bug.cgi?id=184838 |
| <rdar://problem/36548974> |
| |
| Reviewed by Brent Fulgham. |
| |
| Add NetworkActivityTracker. The idea behind this facility is to create |
| and destroy them around networking activity that we want to track for |
| the purpose of measuring overall network health. They can be created |
| around the loading of pages or individual resources, and can be |
| arranged in a parent/child hierarchy to indicate what pages the |
| resources are part of. The NetworkActivity tracker tracks load times |
| and results. On Cocoa, it can be integrated with CFNetwork in order to |
| associate WebKit activity with low-level networking activity. |
| |
| * CMakeLists.txt: |
| * Configurations/WebKit.xcconfig: |
| * NetworkProcess/NetworkActivityTracker.cpp: Copied from Source/WebKit/NetworkProcess/NetworkLoadParameters.h. |
| (WebKit::NetworkActivityTracker::NetworkActivityTracker): |
| (WebKit::NetworkActivityTracker::~NetworkActivityTracker): |
| (WebKit::NetworkActivityTracker::setParent): |
| (WebKit::NetworkActivityTracker::start): |
| (WebKit::NetworkActivityTracker::complete): |
| * NetworkProcess/NetworkActivityTracker.h: Added. |
| (WebKit::NetworkActivityTracker::getPlatformObject): |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::didClose): |
| (WebKit::NetworkConnectionToWebProcess::pageLoadCompleted): |
| (WebKit::networkActivityTrackingEnabled): |
| (WebKit::NetworkConnectionToWebProcess::startTrackingResourceLoad): |
| (WebKit::NetworkConnectionToWebProcess::stopTrackingResourceLoad): |
| (WebKit::NetworkConnectionToWebProcess::stopAllNetworkActivityTracking): |
| (WebKit::NetworkConnectionToWebProcess::stopAllNetworkActivityTrackingForPage): |
| (WebKit::NetworkConnectionToWebProcess::findRootNetworkActivity): |
| (WebKit::NetworkConnectionToWebProcess::findNetworkActivityTracker): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| (WebKit::NetworkConnectionToWebProcess::ResourceNetworkActivityTracker::ResourceNetworkActivityTracker): |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkDataTask.cpp: |
| (WebKit::NetworkDataTask::create): |
| * NetworkProcess/NetworkLoadParameters.h: |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| * NetworkProcess/NetworkProcess.h: |
| (WebKit::NetworkProcess::trackNetworkActivity const): |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::start): |
| (WebKit::NetworkResourceLoader::cleanup): |
| (WebKit::NetworkResourceLoader::abort): |
| (WebKit::NetworkResourceLoader::didFinishLoading): |
| (WebKit::NetworkResourceLoader::didFailLoading): |
| (WebKit::NetworkResourceLoader::didRetrieveCacheEntry): |
| (WebKit::NetworkResourceLoader::continueProcessingCachedEntryAfterDidReceiveResponse): |
| * NetworkProcess/NetworkResourceLoader.h: |
| * NetworkProcess/cocoa/NetworkActivityTrackerCocoa.mm: Added. |
| (WebKit::NetworkActivityTracker::NetworkActivityTracker): |
| (WebKit::NetworkActivityTracker::~NetworkActivityTracker): |
| (WebKit::NetworkActivityTracker::setParent): |
| (WebKit::NetworkActivityTracker::start): |
| (WebKit::NetworkActivityTracker::complete): |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.h: |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| (API::ProcessPoolConfiguration::copy): |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| * UIProcess/API/C/WKContextConfigurationRef.cpp: |
| (WKContextConfigurationTrackNetworkActivity): |
| (WKContextConfigurationSetTrackNetworkActivity): |
| * UIProcess/API/C/WKContextConfigurationRef.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: |
| (-[_WKProcessPoolConfiguration trackNetworkActivity]): |
| (-[_WKProcessPoolConfiguration setTrackNetworkActivity:]): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::pageLoadCompleted): |
| * WebProcess/Network/WebLoaderStrategy.h: |
| |
| 2018-05-02 Jer Noble <jer.noble@apple.com> |
| |
| Open audio/video sandbox services for minimal simulator |
| https://bugs.webkit.org/show_bug.cgi?id=185217 |
| <rdar://problem/39918909> |
| |
| Reviewed by Per Arne Vollan. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-05-02 Daniel Bates <dabates@apple.com> |
| |
| Cleanup NetworkResourceLoader::didReceiveResponse() |
| https://bugs.webkit.org/show_bug.cgi?id=185209 |
| |
| Reviewed by Chris Dumez. |
| |
| Use early returns to make the control flow easier to read and reason about. Disregarding a |
| From-Origin violation, NetworkResourceLoader::didReceiveResponse() only returns NetworkLoadClient::ShouldContinueDidReceiveResponse::No |
| when the load is for a main resource and hence it must wait for the embedding client to allow |
| the load before continuing with it. With regards to a From-Origin violation, the network |
| process schedules to fail the load in a subsequent turn of the event loop before returning |
| NetworkLoadClient::ShouldContinueDidReceiveResponse::No. It return NetworkLoadClient::ShouldContinueDidReceiveResponse::No |
| solely to tell the NetworkLoadClient to defer assuming the load is allowed (because we will |
| fail it on the next turn of the event loop). |
| |
| Additionally, remove all logging about the return value as we no longer have a need for |
| such logging. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::didReceiveResponse): |
| |
| 2018-05-02 Alex Christensen <achristensen@webkit.org> |
| |
| Add WKWebsiteDataStorePrivate._proxyConfiguration SPI |
| https://bugs.webkit.org/show_bug.cgi?id=185179 |
| |
| Reviewed by Andy Estes. |
| |
| * NetworkProcess/NetworkSessionCreationParameters.h: |
| (WebKit::NetworkSessionCreationParameters::encode const): |
| (WebKit::NetworkSessionCreationParameters::decode): |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::applySniffingPoliciesAndBindRequestToInferfaceIfNeeded): |
| * NetworkProcess/cocoa/NetworkSessionCocoa.h: |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| * Shared/WebsiteDataStoreParameters.cpp: |
| (WebKit::WebsiteDataStoreParameters::privateSessionParameters): |
| * Shared/cf/ArgumentCodersCF.cpp: |
| (IPC::encode): |
| (IPC::decode): |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _setProxyConfiguration:]): |
| (-[WKWebsiteDataStore _proxyConfiguration]): |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| (WebKit::WebsiteDataStore::setProxyConfiguration): |
| (WebKit::WebsiteDataStore::proxyConfiguration): |
| |
| 2018-05-02 Youenn Fablet <youenn@apple.com> |
| |
| Use NetworkLoadChecker for navigation loads |
| https://bugs.webkit.org/show_bug.cgi?id=184892 |
| <rdar://problem/39652686> |
| |
| Reviewed by Chris Dumez. |
| |
| Compute whether a response is same origin in no-cors case. |
| This allows providing more precise filtering. |
| In case of navigate loads, set the tainting to basic which will make filtering to the minimum. |
| |
| Pass the sourceOrigin for navigation loads as well. |
| Enable to restrict HTTP response access for navigation load. |
| |
| Content Blockers are disabled for now in NetworkLoadChecker for navigation loads. |
| They should be reenabled as a follow-up. |
| |
| Add a specific case to allow any redirection to about:// URLs. |
| While this does not conform with the spec, this keeps the existing WebKit behavior. |
| |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::NetworkLoadChecker): |
| (WebKit::NetworkLoadChecker::validateResponse): |
| (WebKit::NetworkLoadChecker::continueCheckingRequest): |
| (WebKit::NetworkLoadChecker::doesNotNeedCORSCheck const): |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::sanitizeResponseIfPossible): |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess): |
| (WebKit::WebLoaderStrategy::isDoingLoadingSecurityChecks const): |
| We only do security checks if this runtime flag is on. |
| * WebProcess/Network/WebLoaderStrategy.h: |
| |
| 2018-05-02 Jer Noble <jer.noble@apple.com> |
| |
| Make EncryptedMediaAPIEnabled an experimental feature |
| https://bugs.webkit.org/show_bug.cgi?id=185212 |
| |
| Reviewed by Eric Carlson. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-05-02 Per Arne Vollan <pvollan@apple.com> |
| |
| Adjust sandbox profile in simulator mode. |
| https://bugs.webkit.org/show_bug.cgi?id=185172 |
| <rdar://problem/39876860> |
| |
| Reviewed by Brent Fulgham. |
| |
| Fix some sandbox violations. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-05-02 Brian Burg <bburg@apple.com> |
| |
| Web Inspector: opt out of process swap on navigation if a Web Inspector frontend is connected |
| https://bugs.webkit.org/show_bug.cgi?id=184861 |
| <rdar://problem/39153768> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| We need to track how many frontends are attached to the web page (both local and remote). |
| InspectorController propagates this out to WebKit via InspectorClient. This is then |
| kept in UIProcess as a member of WebPageProxy. When making a decision whether to use a |
| new process for a navigation, return early with "no" if any frontends are open for the |
| page being navigated. |
| |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::didChangeInspectorFrontendCount): |
| (WebKit::WebPageProxy::inspectorFrontendCount const): |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigation): |
| * WebProcess/WebCoreSupport/WebInspectorClient.cpp: |
| (WebKit::WebInspectorClient::frontendCountChanged): |
| * WebProcess/WebCoreSupport/WebInspectorClient.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::inspectorFrontendCountChanged): |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2018-05-02 Jer Noble <jer.noble@apple.com> |
| |
| Adopt -destinationWindowToExitFullScreenForWindow: |
| https://bugs.webkit.org/show_bug.cgi?id=185204 |
| <rdar://problem/22486621> |
| |
| Reviewed by Eric Carlson. |
| |
| * UIProcess/mac/WKFullScreenWindowController.mm: |
| (-[WKFullScreenWindowController destinationWindowToExitFullScreenForWindow:]): |
| |
| 2018-05-02 Per Arne Vollan <pvollan@apple.com> |
| |
| Disable Media capture rules in sandbox for simulator. |
| https://bugs.webkit.org/show_bug.cgi?id=185206 |
| <rdar://problem/39910015> |
| |
| Reviewed by Eric Carlson. |
| |
| These rules are not relevant in this case. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-05-02 Eric Carlson <eric.carlson@apple.com> |
| |
| [iOS] Provide audio route information when invoking AirPlay picker |
| https://bugs.webkit.org/show_bug.cgi?id=185199 |
| <rdar://problem/39853103> |
| |
| Reviewed by Jer Noble. |
| |
| * Scripts/webkit/messages.py: |
| * UIProcess/PageClient.h: |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::showPlaybackTargetPicker): Pass route sharing policy and routing context UID. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _showPlaybackTargetPicker:fromRect:routeSharingPolicy:routingContextUID:]): Take same. |
| (-[WKContentView _showPlaybackTargetPicker:fromRect:]): Deleted. |
| |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::showPlaybackTargetPicker): Pass route sharing policy and routing context UID. |
| |
| * UIProcess/ios/forms/WKAirPlayRoutePicker.h: |
| * UIProcess/ios/forms/WKAirPlayRoutePicker.mm: |
| (-[WKAirPlayRoutePicker showFromView:routeSharingPolicy:routingContextUID:]): Take same. |
| (-[WKAirPlayRoutePicker showFromView:]): Deleted. |
| |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| * WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm: |
| (WebKit::WebChromeClient::showPlaybackTargetPicker): |
| |
| 2018-05-02 Jer Noble <jer.noble@apple.com> |
| |
| Get the WebKit.framework bundle by asking for WKWebView |
| https://bugs.webkit.org/show_bug.cgi?id=185175 |
| |
| Reviewed by Tim Horton. |
| |
| * NetworkProcess/mac/NetworkProcessMac.mm: |
| (WebKit::NetworkProcess::initializeSandbox): |
| * Shared/mac/ChildProcessMac.mm: |
| (WebKit::ChildProcess::initializeSandbox): |
| * StorageProcess/mac/StorageProcessMac.mm: |
| (WebKit::StorageProcess::initializeSandbox): |
| |
| 2018-05-02 Youenn Fablet <youenn@apple.com> |
| |
| Cannot gather srflx or relay ICE candidates on IPv6 network (ICE agent hangs?) |
| https://bugs.webkit.org/show_bug.cgi?id=181009 |
| <rdar://problem/36144555> |
| |
| Reviewed by Eric Carlson. |
| |
| On iOS/IPv6 networks, STUN servers name resolution returns a zero IPv6 IP address. |
| No error is raised which leads to sending STUN requests with that IP address. |
| Once the request times out, the ICE candidate gathering finishes with host candidates only. |
| |
| This patch makes WebRTC DNS resolver to send only IPv4 resolved addresses. |
| STUN is used for NAT traversal which is for IPv4 addresses. |
| Not sending IPv6 addresses allows terminating ICE candidate gathering sooner. |
| |
| Manually tested on iOS with IPv4/IPv6 and IPv6 networks. |
| |
| * NetworkProcess/webrtc/NetworkRTCResolverCocoa.cpp: |
| (WebKit::resolvedName): |
| |
| 2018-05-02 Youenn Fablet <youenn@apple.com> |
| |
| CacheStorage::Engine should keep a list of initialization callback |
| https://bugs.webkit.org/show_bug.cgi?id=185184 |
| <rdar://problem/38875651> |
| |
| Reviewed by Antti Koivisto. |
| |
| Keep each initialize callback in a Vector so as to compute the salt only once. |
| Call all callbacks then in a loop. |
| |
| * NetworkProcess/cache/CacheStorageEngine.cpp: |
| (WebKit::CacheStorage::Engine::~Engine): |
| (WebKit::CacheStorage::Engine::initialize): |
| * NetworkProcess/cache/CacheStorageEngine.h: |
| |
| 2018-05-02 Jer Noble <jer.noble@apple.com> |
| |
| Pipe volume through PlaybackSessionManager/Proxy. |
| https://bugs.webkit.org/show_bug.cgi?id=185182 |
| |
| Reviewed by Eric Carlson. |
| |
| * UIProcess/Cocoa/PlaybackSessionManagerProxy.h: |
| * UIProcess/Cocoa/PlaybackSessionManagerProxy.messages.in: |
| * UIProcess/Cocoa/PlaybackSessionManagerProxy.mm: |
| (WebKit::PlaybackSessionModelContext::setVolume): |
| (WebKit::PlaybackSessionModelContext::volumeChanged): |
| (WebKit::PlaybackSessionManagerProxy::volumeChanged): |
| (WebKit::PlaybackSessionManagerProxy::setVolume): |
| * WebProcess/cocoa/PlaybackSessionManager.h: |
| * WebProcess/cocoa/PlaybackSessionManager.messages.in: |
| * WebProcess/cocoa/PlaybackSessionManager.mm: |
| (WebKit::PlaybackSessionInterfaceContext::volumeChanged): |
| (WebKit::PlaybackSessionManager::volumeChanged): |
| (WebKit::PlaybackSessionManager::setVolume): |
| |
| 2018-05-01 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| Use default std::optional if it is provided |
| https://bugs.webkit.org/show_bug.cgi?id=185159 |
| |
| Reviewed by JF Bastien. |
| |
| * Shared/SandboxExtension.h: |
| (WebKit::SandboxExtension::Handle::decode): |
| * Shared/TouchBarMenuItemData.cpp: |
| (WebKit::TouchBarMenuItemData::decode): |
| |
| 2018-05-01 Jer Noble <jer.noble@apple.com> |
| |
| Production build error in Migrate Header phase when WK_ALTERNATE_FRAMEWORKS_DIR is set to non-empty value |
| https://bugs.webkit.org/show_bug.cgi?id=185171 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * Configurations/BaseTarget.xcconfig: |
| |
| 2018-05-01 Per Arne Vollan <pvollan@apple.com> |
| |
| Use correct runloop type in the WebContent process. |
| https://bugs.webkit.org/show_bug.cgi?id=185140 |
| |
| Reviewed by Brent Fulgham. |
| |
| Use WK_MACOS_* machinery to determine runloop type for the WebContent process. |
| |
| * Configurations/WebContentService.xcconfig: |
| |
| 2018-05-01 Oleksandr Skachkov <gskachkov@gmail.com> |
| |
| WebAssembly: add support for stream APIs - JavaScript API |
| https://bugs.webkit.org/show_bug.cgi?id=183442 |
| |
| Reviewed by Yusuke Suzuki and JF Bastien. |
| |
| Add WEBASSEMBLY_STREAMING_API feature flag |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2018-04-30 Per Arne Vollan <pvollan@apple.com> |
| |
| Use correct runloop type in the WebContent process. |
| https://bugs.webkit.org/show_bug.cgi?id=185140 |
| <rdar://problem/39585037> |
| |
| Reviewed by Brent Fulgham. |
| |
| The macOS target version should be used to determine the runloop type. |
| |
| * Configurations/WebContentService.xcconfig: |
| |
| 2018-04-30 Michael Saboff <msaboff@apple.com> |
| |
| Eliminate WebProcessShim.dylib |
| https://bugs.webkit.org/show_bug.cgi?id=185147 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * Configurations/WebContentService.xcconfig: |
| * Configurations/WebProcessShim.xcconfig: Removed. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-04-30 Michael Saboff <msaboff@apple.com> |
| |
| Remove unused mac/CookieStorageShimLibrary |
| https://bugs.webkit.org/show_bug.cgi?id=185146 |
| |
| Reviewed by Alex Christensen. |
| |
| * Shared/mac/CookieStorageShimLibrary.cpp: Removed. |
| * Shared/mac/CookieStorageShimLibrary.h: Removed. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-04-30 Alex Christensen <achristensen@webkit.org> |
| |
| Add WKUIDelegatePrivate equivalent of WKPageContextMenuClient getContextMenuFromProposedMenuAsync |
| https://bugs.webkit.org/show_bug.cgi?id=180955 |
| |
| Reviewed by Andy Estes. |
| |
| * UIProcess/API/APIContextMenuClient.h: |
| (API::ContextMenuClient::menuFromProposedMenu): |
| * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: |
| * UIProcess/Cocoa/UIDelegate.h: |
| * UIProcess/Cocoa/UIDelegate.mm: |
| (WebKit::UIDelegate::setDelegate): |
| (WebKit::UIDelegate::ContextMenuClient::menuFromProposedMenu): |
| * UIProcess/mac/WebContextMenuProxyMac.mm: |
| (WebKit::WebContextMenuProxyMac::showContextMenuWithItems): |
| |
| 2018-04-30 JF Bastien <jfbastien@apple.com> |
| |
| Use some C++17 features |
| https://bugs.webkit.org/show_bug.cgi?id=185135 |
| |
| Reviewed by Alex Christensen. |
| |
| As discussed here [0] let's move WebKit to a subset of C++17. We |
| now require GCC 6 [1] which means that, according to [2] we can |
| use the following C++17 language features (I removed some |
| uninteresting ones): |
| |
| - New auto rules for direct-list-initialization |
| - static_assert with no message |
| - typename in a template template parameter |
| - Nested namespace definition |
| - Attributes for namespaces and enumerators |
| - u8 character literals |
| - Allow constant evaluation for all non-type template arguments |
| - Fold Expressions |
| - Unary fold expressions and empty parameter packs |
| - __has_include in preprocessor conditional |
| - Differing begin and end types in range-based for |
| - Improving std::pair and std::tuple |
| |
| Consult the Tony Tables [3] to see before / after examples. |
| |
| Of course we can use any library feature if we're willing to |
| import them to WTF (and they don't require language support). |
| |
| |
| [0]: https://lists.webkit.org/pipermail/webkit-dev/2018-March/029922.html |
| [1]: https://trac.webkit.org/changeset/231152/webkit |
| [2]: https://en.cppreference.com/w/cpp/compiler_support |
| [3]: https://github.com/tvaneerd/cpp17_in_TTs/blob/master/ALL_IN_ONE.md |
| |
| * Configurations/Base.xcconfig: |
| * DerivedSources.make: |
| * PlatformMac.cmake: |
| |
| 2018-04-30 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Respect the existing shrink-to-fit attribute instead of using min-device-width |
| https://bugs.webkit.org/show_bug.cgi?id=185132 |
| <rdar://problem/39834562> |
| |
| Reviewed by Tim Horton. |
| |
| Remove the experimental feature for `min-device-width`. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-04-30 Keith Rollin <krollin@apple.com> |
| |
| Include breadcrumb for tracking resource loading into CFNetwork |
| https://bugs.webkit.org/show_bug.cgi?id=184837 |
| rdar://problem/39575411 |
| |
| Reviewed by Brent Fulgham. |
| |
| When starting the network-based loading of a resource, log the |
| description provided by NetworkDataTask. On Cocoa, this is implemented |
| to return the description property in NSURLSessionTask. This |
| information better allows us to track a resource load through the |
| WebContent process, the Networking process, and the Cocoa networking |
| layers. |
| |
| * NetworkProcess/NetworkDataTask.cpp: |
| (WebKit::NetworkDataTask::description const): |
| * NetworkProcess/NetworkDataTask.h: |
| * NetworkProcess/NetworkLoad.cpp: |
| (WebKit::NetworkLoad::description const): |
| * NetworkProcess/NetworkLoad.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::startNetworkLoad): |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.h: |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::description const): |
| |
| 2018-04-30 Andy Estes <aestes@apple.com> |
| |
| [iOS] Try to unlock PDF documents before printing them |
| https://bugs.webkit.org/show_bug.cgi?id=185084 |
| <rdar://problem/39356622> |
| |
| Reviewed by Dan Bernstein. |
| |
| * UIProcess/ios/WKPDFView.mm: |
| (-[WKPDFView pdfHostViewController:documentDidUnlockWithPassword:]): |
| |
| Stored the password that successfully unlocked the current PDF document. |
| |
| (-[WKPDFView _wk_printedDocument]): |
| |
| Used the stored password to unlock the CGPDFDocument we create for printing. |
| |
| 2018-04-28 Andy Estes <aestes@apple.com> |
| |
| [iOS] Present an action sheet when long-pressing on PDF links |
| https://bugs.webkit.org/show_bug.cgi?id=185093 |
| <rdar://problem/39356651> |
| |
| Reviewed by Dan Bernstein. |
| |
| * UIProcess/ios/WKPDFView.mm: |
| (-[WKPDFView dealloc]): |
| |
| Called -[WKActionSheetAssistant cleanupSheet]. |
| |
| (-[WKPDFView web_setContentProviderData:suggestedFilename:]): |
| |
| Created a WKActionSheetAssistant with the host view as the assistant view and |
| ourselves as the delegate. |
| |
| (-[WKPDFView _URLWithPageIndex:]): |
| |
| Added. Creates a URL to the current page with a page number fragment appended. |
| |
| (-[WKPDFView _goToURL:atLocation:]): |
| |
| Added. Navigates to a URL with a synthetic mouse click at a location in host view |
| coordinates. |
| |
| (-[WKPDFView pdfHostViewController:goToURL:]): |
| (-[WKPDFView pdfHostViewController:goToPageIndex:withViewFrustum:]): |
| |
| Called -_goToURL:atLocation:. Used -_URLWithPageIndex: to construct an NSURL from |
| a page index. |
| |
| (-[WKPDFView _showActionSheetForURL:atLocation:]): |
| |
| Added. Populates _positionInformation with a URL and location and calls |
| -[WKActionSheetAssistant showLinkSheet]. |
| |
| (-[WKPDFView pdfHostViewController:didLongPressURL:atLocation:]): |
| (-[WKPDFView pdfHostViewController:didLongPressPageIndex:atLocation:]): |
| |
| Called -_showActionSheetForURL:atLocation:. Used -_URLWithPageIndex: to construct |
| an NSURL from a page index. |
| |
| (-[WKPDFView positionInformationForActionSheetAssistant:]): |
| |
| Returned _positionInformation. |
| |
| (-[WKPDFView actionSheetAssistant:performAction:]): |
| |
| Populated the pasteboard with plain text and URL representations of |
| _positionInformation.url. |
| |
| (-[WKPDFView actionSheetAssistant:openElementAtLocation:]): |
| |
| Called -_goToURL:atLocation. |
| |
| (-[WKPDFView actionSheetAssistant:shareElementWithURL:rect:]): |
| |
| Created a UIWKSelectionAssistant and called -showShareSheetFor:fromRect:. |
| |
| (-[WKPDFView actionSheetAssistant:shouldIncludeAppLinkActionsForElement:]): |
| |
| Returned API::UIClient::shouldIncludeAppLinkActionsForElement(). |
| |
| (-[WKPDFView actionSheetAssistant:decideActionsForElement:defaultActions:]): |
| |
| Returned API::UIClient::actionsForElement()l |
| |
| 2018-04-28 Andy Estes <aestes@apple.com> |
| |
| [iOS] Allow com.apple.WebKit.Networking to look up com.apple.wifi.manager |
| https://bugs.webkit.org/show_bug.cgi?id=185114 |
| <rdar://problem/39808763> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb: |
| |
| 2018-04-28 Brent Fulgham <bfulgham@apple.com> |
| |
| Revise sandboxes to allow additional IOKit property access |
| https://bugs.webkit.org/show_bug.cgi?id=185095 |
| <rdar://problem/39809455> |
| |
| Reviewed by Eric Carlson. |
| |
| Update the WebContent and Plugin processes to allow additional IOKit property access. |
| |
| * PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in: |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-04-28 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] WebProcess from WebKitGtk+ 2.19.92 SIGSEVs in WebCore::TextureMapperGL::~TextureMapperGL |
| https://bugs.webkit.org/show_bug.cgi?id=184040 |
| |
| Reviewed by Michael Catanzaro. |
| |
| This can happen when using single shared process model or when the process limit is reached in multiple process |
| model. In this case, all pages in the same web process with accelerated compositing enabled share the same |
| compositing thread. Every page sets its GL context as current when rendering a frame, but not when invalidating |
| the threaded compositor when the page is closed. So, if a hidden tab is closed, the threaded compositor is |
| invalidated and the GL resources of the current context (the visible page) are destroyed. This is also causing |
| the blank pages issue when closing a tab related to another one, the current one stops rendering anything because |
| its GL context has been released. We should make the threaded compositor context current when invalidating it. |
| |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: |
| (WebKit::ThreadedCompositor::invalidate): |
| |
| 2018-04-27 Timothy Hatcher <timothy@apple.com> |
| |
| REGRESSION: Touch events fail to dispatch to the page in all cases. |
| |
| https://bugs.webkit.org/show_bug.cgi?id=185097 |
| rdar://problem/39731995 |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]): |
| Consult internal gesture recognizers, otherwise NO might get returned. |
| |
| 2018-04-26 Ryosuke Niwa <rniwa@webkit.org> |
| |
| PSON: Triggering a navigation to an invalid URL creates a new WebContent process |
| https://bugs.webkit.org/show_bug.cgi?id=185066 |
| |
| Reviewed by Youenn Fablet. |
| |
| Don't create a new WebContent process when the target URL is invalid as well as when the source URL is invalid. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigationInternal): |
| |
| 2018-04-27 Youenn Fablet <youenn@apple.com> |
| |
| Use NetworkLoadChecker for XHR/fetch loads |
| https://bugs.webkit.org/show_bug.cgi?id=184741 |
| |
| Reviewed by Chris Dumez. |
| |
| * NetworkProcess/NetworkCORSPreflightChecker.cpp: |
| (WebKit::NetworkCORSPreflightChecker::didCompleteWithError): |
| Pass the preflight error as completion error if any. |
| * NetworkProcess/NetworkLoad.cpp: |
| (WebKit::NetworkLoad::willPerformHTTPRedirection): |
| Set response source to Network so that checks relying on that are correct. |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::validateResponse): |
| Adding Oppaqueredirect tainting. |
| (NetworkLoadChecker::doesNotNeedCORSCheck): |
| Adding a check to only activate CORS checks for CORS enabled schemes. |
| Non CORS enabled schemes loads should have failed in WebProcess already. |
| (WebKit::NetworkLoadChecker::checkCORSRedirectedRequest): |
| Remove Authorization header as done by SubresourceLoader. |
| (WebKit::NetworkLoadChecker::checkCORSRequestWithPreflight): |
| If error is cancellation, we still want to call the completion handler. |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| Activate network load checker for all types of loads. |
| (WebKit::NetworkResourceLoader::willSendRedirectedRequest): |
| Handle manual redirection by directly calling didReceiveResponse. |
| |
| 2018-04-27 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Add an experimental feature flag for viewport "min-device-width" |
| https://bugs.webkit.org/show_bug.cgi?id=185050 |
| <rdar://problem/39624038> |
| |
| Reviewed by Tim Horton. |
| |
| Add MinDeviceWidthEnabled as a new experimental feature, on by default in extra zoom mode and off elsewhere. |
| |
| * Shared/WebPreferences.yaml: |
| * Shared/WebPreferencesDefaultValues.h: |
| |
| 2018-04-27 Daniel Bates <dabates@apple.com> |
| |
| UIDelegate::UIClient::didResignInputElementStrongPasswordAppearance() is applicable to both Mac and iOS |
| https://bugs.webkit.org/show_bug.cgi?id=185079 |
| <rdar://problem/39794960> |
| |
| I inadvertently forgot to move the UIDelegate field webViewDidResignInputElementStrongPasswordAppearanceWithUserInfo |
| outside the PLATFORM(MAC)-guard. |
| |
| * UIProcess/Cocoa/UIDelegate.h: |
| |
| 2018-04-27 Daniel Bates <dabates@apple.com> |
| |
| UIDelegate::UIClient::didResignInputElementStrongPasswordAppearance() is applicable to both Mac and iOS |
| https://bugs.webkit.org/show_bug.cgi?id=185079 |
| <rdar://problem/39794960> |
| |
| Reviewed by Andy Estes. |
| |
| * UIProcess/Cocoa/UIDelegate.h: |
| * UIProcess/Cocoa/UIDelegate.mm: |
| (WebKit::UIDelegate::setDelegate): |
| (WebKit::UIDelegate::UIClient::didResignInputElementStrongPasswordAppearance): |
| |
| 2018-04-27 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Rename minimumLayoutSize to viewLayoutSize |
| https://bugs.webkit.org/show_bug.cgi?id=185050 |
| <rdar://problem/39624038> |
| |
| Reviewed by Tim Horton. |
| |
| Renames minimumLayoutSize to viewLayoutSize, since the minimum layout size in ViewportConfiguration is now |
| different from the minimum layout size that is currently pushed down from the UI process (e.g. WKWebView SPI) in |
| the case where `min-device-width` is used to override the minimum layout size. |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _processDidExit]): |
| (-[WKWebView activeViewLayoutSize:]): |
| (-[WKWebView _dispatchSetViewLayoutSize:]): |
| (-[WKWebView _frameOrBoundsChanged]): |
| (-[WKWebView _minimumLayoutSizeOverride]): |
| (-[WKWebView _setViewLayoutSizeOverride:]): |
| (-[WKWebView _beginAnimatedResizeWithUpdates:]): |
| (-[WKWebView _endAnimatedResize]): |
| (-[WKWebView _overrideLayoutParametersWithMinimumLayoutSize:maximumUnobscuredSizeOverride:]): |
| (-[WKWebView _clearOverrideLayoutParameters]): |
| (-[WKWebView _minimumLayoutWidth]): |
| (-[WKWebView _setMinimumLayoutWidth:]): |
| (-[WKWebView activeMinimumLayoutSize:]): Deleted. |
| (-[WKWebView _dispatchSetMinimumLayoutSize:]): Deleted. |
| (-[WKWebView _setMinimumLayoutSizeOverride:]): Deleted. |
| (-[WKWebView _overrideLayoutParametersWithMinimumLayoutSize:minimumLayoutSizeForMinimalUI:maximumUnobscuredSizeOverride:]): Deleted. |
| |
| Remove unused SPI that has been deprecated since iOS 9, has a simple drop-in replacement, and no longer has any |
| internal clients. |
| |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::setMinimumSizeForAutoLayout): |
| (WebKit::WebViewImpl::minimumSizeForAutoLayout const): |
| (WebKit::WebViewImpl::setIntrinsicContentSize): |
| * UIProcess/DrawingAreaProxy.h: |
| (WebKit::DrawingAreaProxy::viewLayoutSizeDidChange): |
| (WebKit::DrawingAreaProxy::minimumLayoutSizeDidChange): Deleted. |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::creationParameters): |
| (WebKit::WebPageProxy::setViewLayoutSize): |
| (WebKit::WebPageProxy::setMinimumLayoutSize): Deleted. |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::viewLayoutSize const): |
| (WebKit::WebPageProxy::minimumLayoutSize const): Deleted. |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::dynamicViewportSizeUpdate): |
| (WebKit::WebPageProxy::setViewportConfigurationViewLayoutSize): |
| (WebKit::WebPageProxy::setViewportConfigurationMinimumLayoutSize): Deleted. |
| * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h: |
| * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm: |
| (WebKit::TiledCoreAnimationDrawingAreaProxy::viewLayoutSizeDidChange): |
| (WebKit::TiledCoreAnimationDrawingAreaProxy::didUpdateGeometry): |
| (WebKit::TiledCoreAnimationDrawingAreaProxy::intrinsicContentSizeDidChange): |
| (WebKit::TiledCoreAnimationDrawingAreaProxy::willSendUpdateGeometry): |
| (WebKit::TiledCoreAnimationDrawingAreaProxy::minimumLayoutSizeDidChange): Deleted. |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage): |
| * WebProcess/WebPage/ViewGestureGeometryCollector.cpp: |
| (WebKit::ViewGestureGeometryCollector::collectGeometryForSmartMagnificationGesture): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_credentialsMessenger): |
| (WebKit::WebPage::setViewLayoutSize): |
| (WebKit::WebPage::setMinimumLayoutSize): Deleted. |
| * WebProcess/WebPage/WebPage.h: |
| (WebKit::WebPage::viewLayoutSize const): |
| (WebKit::WebPage::minimumLayoutSize const): Deleted. |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::setViewportConfigurationViewLayoutSize): |
| (WebKit::WebPage::dynamicViewportSizeUpdate): |
| (WebKit::WebPage::setViewportConfigurationMinimumLayoutSize): Deleted. |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: |
| (WebKit::TiledCoreAnimationDrawingArea::updateIntrinsicContentSizeIfNeeded): |
| (WebKit::TiledCoreAnimationDrawingArea::updateGeometry): |
| |
| 2018-04-27 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Add a mechanism to override default viewport behaviors in extra zoom mode |
| https://bugs.webkit.org/show_bug.cgi?id=185050 |
| <rdar://problem/39624038> |
| |
| Reviewed by Tim Horton. |
| |
| Remove the forceHorizontalViewportShrinkToFit and minimumAllowedLayoutWidth SPI hooks from WebKit, and |
| additionally remove all logic for plumbing viewSize to WebCore. See WebCore/ChangeLog for more information. |
| |
| * Shared/VisibleContentRectUpdateInfo.cpp: |
| (WebKit::VisibleContentRectUpdateInfo::encode const): |
| (WebKit::VisibleContentRectUpdateInfo::decode): |
| (WebKit::operator<<): |
| * Shared/VisibleContentRectUpdateInfo.h: |
| (WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo): |
| (WebKit::VisibleContentRectUpdateInfo::allowShrinkToFit const): |
| (WebKit::operator==): |
| (WebKit::VisibleContentRectUpdateInfo::forceHorizontalShrinkToFit const): Deleted. |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| (-[WKWebView activeMinimumLayoutSize:]): |
| (-[WKWebView _dispatchSetMinimumLayoutSize:]): |
| (-[WKWebView _frameOrBoundsChanged]): |
| (-[WKWebView _setMinimumLayoutSizeOverride:]): |
| (-[WKWebView _beginAnimatedResizeWithUpdates:]): |
| (-[WKWebView _endAnimatedResize]): |
| (-[WKWebView _minimumAllowedLayoutWidth]): Deleted. |
| (-[WKWebView _setMinimumAllowedLayoutWidth:]): Deleted. |
| (-[WKWebView activeMinimumLayoutSizes:]): Deleted. |
| (-[WKWebView _dispatchSetMinimumLayoutSize:viewSize:]): Deleted. |
| (-[WKWebView _setForceHorizontalViewportShrinkToFit:]): Deleted. |
| (-[WKWebView _forceHorizontalViewportShrinkToFit]): Deleted. |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::creationParameters): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/ios/WKContentView.mm: |
| (-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:obscuredInsets:unobscuredSafeAreaInsets:inputViewBounds:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollableAncestorView:]): |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::dynamicViewportSizeUpdate): |
| (WebKit::WebPageProxy::setViewportConfigurationMinimumLayoutSize): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_credentialsMessenger): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::setViewportConfigurationMinimumLayoutSize): |
| (WebKit::WebPage::dynamicViewportSizeUpdate): |
| (WebKit::WebPage::updateVisibleContentRects): |
| |
| 2018-04-27 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| REGRESSION(r230812): [WPE][GTK] WebKitWebViewSessionState.cpp throws away encoded BackForwardList identifier |
| https://bugs.webkit.org/show_bug.cgi?id=184823 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Bump session sate format version to 2 and stop encoding the backfoward list item identifier, since it's always |
| regenerated. |
| |
| * UIProcess/API/glib/WebKitWebViewSessionState.cpp: |
| (encodeBackForwardListItemState): Always encode version 2. |
| (encodeBackForwardListState): Ditto. |
| (encodeSessionState): Ditto. |
| (decodeBackForwardListItemStateV1): Decode list item state for version 1. |
| (decodeBackForwardListItemState): Receive the version and call decodeBackForwardListItemStateV1() if it's 1 or |
| use the version 2 otherwise. |
| (decodeSessionState): Load data for known formats and use the one that worked to decode it. |
| |
| 2018-04-26 Megan Gardner <megan_gardner@apple.com> |
| |
| Add timeout for ensurePositionInformationIsUpToDate |
| https://bugs.webkit.org/show_bug.cgi?id=184567 |
| |
| Reviewed by Wenson Hsieh. |
| |
| We are having long hang times for WebKit, and this is one of the culprits. |
| If we do not get an answer for positionInformation in a reasonable amount of time, we should timeout, |
| so as to not hang the UI. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView ensurePositionInformationIsUpToDate:]): |
| |
| 2018-04-26 Andy Estes <aestes@apple.com> |
| |
| Try again to fix the iOS build after r231063. |
| |
| * Configurations/Base.xcconfig: |
| |
| 2018-04-26 Jer Noble <jer.noble@apple.com> |
| |
| WK_COCOA_TOUCH the WK_ACCESSIBILITY_LDFLAGS |
| https://bugs.webkit.org/show_bug.cgi?id=185007 |
| <rdar://problem/39735943> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * Configurations/WebKit.xcconfig: |
| |
| 2018-04-26 Jer Noble <jer.noble@apple.com> |
| |
| Unreviewed build fix; fix iOS TAPI build step after r231063. |
| |
| * Configurations/WebKit.xcconfig: |
| |
| 2018-04-26 Jer Noble <jer.noble@apple.com> |
| |
| WK_COCOA_TOUCH all the things. |
| https://bugs.webkit.org/show_bug.cgi?id=185006 |
| |
| Reviewed by Tim Horton. |
| |
| * Configurations/BaseTarget.xcconfig: |
| * Configurations/WebKit.xcconfig: |
| |
| 2018-04-26 Daniel Bates <dabates@apple.com> |
| |
| Remove WebCore::-qualifier in NetworkLoadChecker.cpp |
| https://bugs.webkit.org/show_bug.cgi?id=185037 |
| |
| Reviewed by Youenn Fablet. |
| |
| It is unncesssary to qualify WebCore types in NetworkLoadChecker.cpp as it has a |
| "using namespace WebCore" directive. |
| |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::NetworkLoadChecker): |
| (WebKit::NetworkLoadChecker::checkRedirection): |
| (WebKit::NetworkLoadChecker::validateResponse): |
| (WebKit::NetworkLoadChecker::continueCheckingRequest): Removed extra space character and unnecessary |
| parentheses from the right-hand side of the assignment to m_storedCredentialsPolicy. |
| (WebKit::NetworkLoadChecker::processContentExtensionRulesForLoad): |
| |
| 2018-04-26 Daniel Bates <dabates@apple.com> |
| |
| Rename NetworkLoadChecker::returnError() to NetworkLoadChecker::accessControlErrorForValidationHandler() |
| https://bugs.webkit.org/show_bug.cgi?id=185035 |
| |
| Reviewed by Youenn Fablet. |
| |
| Substitute NetworkLoadChecker::accessControlErrorForValidationHandler() for NetworkLoadChecker::returnError() |
| to better describe that it is a convenience function that returns a wrapped ResourceError object, |
| that represents an access control error, suitable to be passed directly to a validation handler. |
| |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::checkRedirection): Update as needed for renaming. |
| (WebKit::NetworkLoadChecker::accessControlErrorForValidationHandler): Use auto -> syntax to avoid the need to |
| class-qualify the return type. Also renamed parameter from error to message as it represents the message/description |
| for the access control error. |
| (WebKit::NetworkLoadChecker::checkRequest): Update as needed for renaming. Also substitute "message" for "error" |
| to match the argument of accessControlErrorForValidationHandler() with the same name. |
| (WebKit::NetworkLoadChecker::continueCheckingRequest): Update as needed for renaming. |
| (WebKit::NetworkLoadChecker::returnError): Deleted; renamed to accessControlErrorForValidationHandler(). |
| * NetworkProcess/NetworkLoadChecker.h: |
| |
| 2018-04-26 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Remove access to keychain from the WebContent process |
| https://bugs.webkit.org/show_bug.cgi?id=184428 |
| <rdar://problem/13150903> |
| |
| Part 3. |
| |
| Tighten WebContent Process' sandbox profile to all Security.framework services. |
| |
| Reviewed by Brent Fulgham. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-04-26 Youenn Fablet <youenn@apple.com> |
| |
| Make cross origin redirection error messages consistent between SubresourceLoader and NetworkLoadChecker |
| https://bugs.webkit.org/show_bug.cgi?id=185023 |
| |
| Reviewed by Chris Dumez. |
| |
| Align NetworkLoadChecker with what SubresourceLoader is doing so that we can keep WK1 and WK2 error messages as consistent as possible. |
| |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::checkRedirection): |
| (WebKit::NetworkLoadChecker::validateResponse): |
| |
| 2018-04-25 Megan Gardner <megan_gardner@apple.com> |
| |
| Activate selection when interacting with editable content |
| https://bugs.webkit.org/show_bug.cgi?id=185017 |
| |
| Reviewed by Tim Horton. |
| |
| Fixes a regression from r231016 where selection now does not work when interacting with |
| editable content. When we go into editable content, we should turn on the assistant. |
| This fulfills the requirement of user interaction as well, so any javascript selections |
| after this point should be valid. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _startAssistingKeyboard]): |
| (-[WKContentView _stopAssistingKeyboard]): |
| |
| 2018-04-26 Per Arne Vollan <pvollan@apple.com> |
| |
| Disable content filtering in minimal simulator mode |
| https://bugs.webkit.org/show_bug.cgi?id=185027 |
| <rdar://problem/39736091> |
| |
| Reviewed by Jer Noble. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2018-04-26 Brady Eidson <beidson@apple.com> |
| |
| Add a setting for keeping around all processes and always reusing them per-origin. |
| <rdar://problem/39695798> and https://bugs.webkit.org/show_bug.cgi?id=185020 |
| |
| Reviewed by Andy Estes. |
| |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| (API::ProcessPoolConfiguration::copy): |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| |
| * UIProcess/API/C/WKContextConfigurationRef.cpp: |
| (WKContextConfigurationAlwaysKeepAndReuseSwappedProcesses): |
| (WKContextConfigurationSetAlwaysKeepAndReuseSwappedProcesses): |
| * UIProcess/API/C/WKContextConfigurationRef.h: |
| |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: |
| (-[_WKProcessPoolConfiguration setAlwaysKeepAndReuseSwappedProcesses:]): |
| (-[_WKProcessPoolConfiguration alwaysKeepAndReuseSwappedProcesses]): |
| |
| * UIProcess/SuspendedPageProxy.cpp: |
| (WebKit::SuspendedPageProxy::webProcessDidClose): |
| (WebKit::SuspendedPageProxy::destroyWebPageInWebProcess): |
| * UIProcess/SuspendedPageProxy.h: |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::suspendedPageClosed): |
| (WebKit::WebPageProxy::suspendedPageProcessClosed): Deleted. |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::suspendedPage const): |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::shouldTerminate): |
| (WebKit::WebProcessPool::disconnectProcess): |
| (WebKit::WebProcessPool::addProcessToOriginCacheSet): |
| (WebKit::WebProcessPool::removeProcessFromOriginCacheSet): |
| (WebKit::WebProcessPool::processForNavigation): If a swap will occur, cache the old process. |
| (WebKit::WebProcessPool::processForNavigationInternal): Consider re-using a previously cached process. |
| * UIProcess/WebProcessPool.h: |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_credentialsMessenger): |
| |
| 2018-04-26 Andy VanWagoner <thetalecrafter@gmail.com> |
| |
| [INTL] Implement Intl.PluralRules |
| https://bugs.webkit.org/show_bug.cgi?id=184312 |
| |
| Reviewed by JF Bastien. |
| |
| Added Intl.PluralRules feature flag. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2018-04-26 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GTK][WPE] Initial ASYNC_SCROLLING support |
| https://bugs.webkit.org/show_bug.cgi?id=184961 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Guard RemoteScrollingCoordinator and RemoteScrollingCoordinatorProxy |
| usage in WebChromeClient and WebPageProxy, respectively, with |
| PLATFORM(COCOA) in addition to the ASYNC_SCROLLING guards. |
| |
| Despite enabling the code at build-time, the feature (as intended) is |
| not yet used because of the DrawingArea rejection in the WebPage |
| constructor. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::initializeWebPage): |
| (WebKit::WebPageProxy::handleWheelEvent): |
| (WebKit::WebPageProxy::updateTouchEventTracking): |
| * UIProcess/WebPageProxy.h: |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::createScrollingCoordinator const): |
| |
| 2018-04-25 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [WPE] Build and link against latest WPEBackend and WPEBackend-fdo |
| https://bugs.webkit.org/show_bug.cgi?id=184643 |
| |
| Reviewed by Žan Doberšek. |
| |
| Adapt to single-header WPE includes. |
| |
| Null-initialize padding to silence -Wmissing-field-initializers. (Yuck.) |
| |
| * Shared/NativeWebTouchEvent.h: |
| * Shared/wpe/WebEventFactory.cpp: |
| * UIProcess/API/glib/WebKitPrivate.cpp: |
| * UIProcess/API/wpe/CompositingManagerProxy.cpp: |
| * UIProcess/API/wpe/ScrollGestureController.h: |
| * UIProcess/API/wpe/WPEView.cpp: |
| (WKWPE::m_backend): |
| * UIProcess/API/wpe/WebKitWebViewBackend.h: |
| * UIProcess/Launcher/glib/ProcessLauncherGLib.cpp: |
| * WebProcess/WebPage/wpe/AcceleratedSurfaceWPE.cpp: |
| (WebKit::AcceleratedSurfaceWPE::initialize): |
| |
| 2018-04-25 Saam Barati <sbarati@apple.com> |
| |
| dlopen the bundle's executable before calling -[NSBundle load] since that will also do a bunch of other things we don't need |
| https://bugs.webkit.org/show_bug.cgi?id=184904 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Loading an NSBundle does a lot of work to find the principal class inside |
| the bundle. This means it walks all the objective C class names loaded |
| by the bundle. Doing this is *really* expensive. |
| |
| Some users of the injected bundle define a WKBundleInitialize function. |
| In such a case, we don't need the principal class, so we can skip loading |
| the NSBundle. Now, before we load the bundle, we dlopen and dlsym looking |
| for the WKBundleInitialize function. If we find it, we skip loading |
| the bundle. If we don't find the WKBundleInitialize function, we fall |
| back to loading the bundle and finding the principal class. |
| |
| This speeds up initializeWebProcess by ~70ms on my MBP. |
| |
| * WebProcess/InjectedBundle/mac/InjectedBundleMac.mm: |
| (WebKit::InjectedBundle::initialize): |
| |
| 2018-04-25 Youenn Fablet <youenn@apple.com> |
| |
| Use NetworkLoadChecker for all subresource loads except fetch/XHR |
| https://bugs.webkit.org/show_bug.cgi?id=184870 |
| <rdar://problem/39370034> |
| |
| Reviewed by Chris Dumez. |
| |
| Relax rules to check for non HTTP(s) redirections to throw only when WebProcess says to load it after redirection. |
| This allows WebProcess to load redirected non HTTP(s) URLs, such as data URLs. |
| We keep these checks when WebProcess asks to continue the load and for all PingLoads. |
| |
| Update error messages to be more consistent with WK1. |
| |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::checkRedirection): |
| (WebKit::NetworkLoadChecker::continueCheckingRequest): |
| (WebKit::NetworkLoadChecker::validateResourceResponse): |
| (WebKit::NetworkLoadChecker::continueCheckingRequest): |
| * NetworkProcess/NetworkLoadChecker.h: |
| (WebKit::NetworkLoadChecker::validateResponse): |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::shouldUseNetworkLoadChecker): |
| (WebKit::NetworkResourceLoader::continueWillSendRequest): |
| |
| 2018-04-25 Ryosuke Niwa <rniwa@webkit.org> |
| |
| PSON: Don't create a new process when navigating to a blob URL, data URL, and about:blank |
| https://bugs.webkit.org/show_bug.cgi?id=184962 |
| |
| Reviewed by Youenn Fablet. |
| <rdar://problem/39715044> |
| |
| Build fix. Revert the change in r231019 to remove the empty URL and about:blank check here. |
| These checks are for the source / originating URL, not the target URL. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigation): |
| |
| 2018-04-25 Youenn Fablet <youenn@apple.com> |
| |
| WebLoaderStrategy::networkMetricsFromResourceLoadIdentifier should use DoNotProcessIncomingMessagesWhenWaitingForSyncReply |
| https://bugs.webkit.org/show_bug.cgi?id=184978 |
| <rdar://problem/39667094> |
| |
| Reviewed by Simon Fraser. |
| |
| Use DoNotProcessIncomingMessagesWhenWaitingForSyncReply to keep a consistent state after the sync IPC call. |
| |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::responseFromResourceLoadIdentifier): |
| (WebKit::WebLoaderStrategy::networkMetricsFromResourceLoadIdentifier): |
| |
| 2018-04-25 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Remove access to keychain from the WebContent process |
| https://bugs.webkit.org/show_bug.cgi?id=184428 |
| <rdar://problem/13150903> |
| |
| Reviewed by Brent Fulgham. |
| |
| This patch does the followings: |
| 1. Added necessary support to move HTMLKeygenElement's operation from WebContent Process to UI Process. |
| 2. Craft new SPI copySignedPublicKeyAndChallengeString to supply HTMLKeygenElement with dummy data such |
| that WebKitTestRunner tests will not modify the underlying key store (e.g., the macOS Keychain). |
| |
| * UIProcess/API/APINavigationClient.h: |
| (API::NavigationClient::signedPublicKeyAndChallengeString): |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetPageNavigationClient): |
| * UIProcess/API/C/WKPageNavigationClient.h: |
| * UIProcess/Cocoa/NavigationState.h: |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationClient::signedPublicKeyAndChallengeString): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::signedPublicKeyAndChallengeString): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::signedPublicKeyAndChallengeString const): |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| |
| 2018-04-25 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] The search field on www.bing.com is missing label text |
| https://bugs.webkit.org/show_bug.cgi?id=184975 |
| <rdar://problem/39723081> |
| |
| Reviewed by Tim Horton. |
| |
| Adds support for displaying the "aria-label" attribute as the input view's label text in extra zoom mode. Also |
| adds support for grabbing the input label's text for testing. |
| |
| Test: fast/forms/extrazoom/form-control-label-text.html |
| |
| * Shared/AssistedNodeInformation.cpp: |
| (WebKit::AssistedNodeInformation::encode const): |
| (WebKit::AssistedNodeInformation::decode): |
| * Shared/AssistedNodeInformation.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView formInputLabel]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView formInputLabel]): |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::getAssistedNodeInformation): |
| |
| 2018-04-25 Ryosuke Niwa <rniwa@webkit.org> |
| |
| PSON: Don't create a new process when navigating to a blob URL, data URL, and about:blank |
| https://bugs.webkit.org/show_bug.cgi?id=184962 |
| |
| Reviewed by Youenn Fablet. |
| |
| Don't create a new WebContent process when navigating to a blob object URL since doing so |
| can result in a race condition in which the blog URL is removed from the blob registry of |
| the network process by the time the navigation gets commited. This causes a failure in |
| fast/dom/HTMLAnchorElement/anchor-download-unset.html and oher layout tests. |
| |
| In the future, the network process should verify that a given WebContent process has access |
| to a given blob URL. For now, we rely on WebContent process to tell us whether it can |
| navigate to a given blob URL or not. |
| |
| * Shared/NavigationActionData.cpp: |
| (WebKit::NavigationActionData::encode const): Encode newly added treatAsSameOriginNavigation. |
| (WebKit::NavigationActionData::decode): Ditto for decoding. |
| * Shared/NavigationActionData.h: |
| (WebKit::NavigationActionData::treatAsSameOriginNavigation): Added. |
| * UIProcess/API/APINavigation.h: |
| (API::Navigation::setTreatAsSameOriginNavigation): Added. |
| (API::Navigation::treatAsSameOriginNavigation const): Added. |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): Use the current process when |
| treatAsSameOriginNavigation is set to true; i.e. when navigating to a blob URL the current |
| document has access. |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigation): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| |
| 2018-04-25 Megan Gardner <megan_gardner@apple.com> |
| |
| Don't activate Selection Assistant unless it is actually needed. |
| https://bugs.webkit.org/show_bug.cgi?id=184944 |
| <rdar://problem/39469671> |
| |
| Reviewed by Tim Horton. |
| |
| Don't activate the selection unless we need to. Activating on init is overeager and allowing Javascript to |
| activate selections without user input. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView useSelectionAssistantWithGranularity:]): |
| |
| 2018-04-25 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Fix entitlements and sandbox configurations in WebKit after r230778 |
| https://bugs.webkit.org/show_bug.cgi?id=184960 |
| <rdar://problem/39662827> |
| |
| Reviewed by Tim Horton. |
| |
| Build fixes for watchOS and tvOS after r230778. |
| |
| * Configurations/BaseXPCService.xcconfig: |
| * Configurations/NetworkService.xcconfig: |
| * Configurations/WebContentService.xcconfig: |
| |
| 2018-04-25 Brent Fulgham <bfulgham@apple.com> |
| |
| Unreviewed build fix after r231008. |
| |
| * NetworkProcess/NetworkDataTask.cpp: |
| (WebKit::NetworkDataTask::create): Forgot to remove an unneeded constructor argument. |
| |
| 2018-04-25 Brent Fulgham <bfulgham@apple.com> |
| |
| Don't Block First Party Cookies on Redirects |
| https://bugs.webkit.org/show_bug.cgi?id=184948 |
| <rdar://problem/39534099> |
| |
| Reviewed by Youenn Fablet. |
| |
| Top-level navigations should not be subject to cookie blocking behavior. When performing redirects for main frame |
| navigation we are blocking cookies, leading to site breakage. |
| |
| We need to keep track of which NetworkDataTasks are due to a main frame navigation. When a redirect is performed |
| on the main frame, we should treat the new origin as the 'first party for cookies' and avoid blocking cookies for |
| that URL. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::preconnectTo): Use the correct parameter type. We actually serialize |
| NetworkResourceLoadParameters over IPC, so we should get access to all the members of this child class. |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkDataTask.cpp: |
| (WebKit::NetworkDataTask::create): Pass new 'loadIsForNavigation' flag to create methods. |
| (WebKit::NetworkDataTask::NetworkDataTask): Capture 'loadIsForNavigation' in constructor. |
| * NetworkProcess/NetworkDataTask.h: |
| (WebKit::NetworkDataTask::isTopLevelNavigation const): Added. |
| * NetworkProcess/NetworkDataTaskBlob.cpp: |
| (WebKit::NetworkDataTaskBlob::NetworkDataTaskBlob): Accept new constructor argument. |
| * NetworkProcess/NetworkDataTaskBlob.h: |
| * NetworkProcess/NetworkLoad.cpp: |
| (WebKit::NetworkLoad::willPerformHTTPRedirection): Retain requester value from old request during redirect. |
| * NetworkProcess/NetworkResourceLoadParameters.cpp: |
| (NetworkResourceLoadParameters::decode): Update to pass new flag. |
| (NetworkResourceLoadParameters::encode): Ditto. |
| * NetworkProcess/NetworkLoadParameters.h: |
| * NetworkProcess/capture/NetworkDataTaskReplay.cpp: |
| (WebKit::NetworkCapture::NetworkDataTaskReplay::NetworkDataTaskReplay): Accept new constructor argument. |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.h: |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): Accept new constructor argument. |
| (WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection): |
| * NetworkProcess/curl/NetworkDataTaskCurl.cpp: |
| (WebKit::NetworkDataTaskCurl::NetworkDataTaskCurl): Accept new constructor argument. |
| * NetworkProcess/curl/NetworkDataTaskCurl.h: |
| * NetworkProcess/soup/NetworkDataTaskSoup.cpp: |
| (WebKit::NetworkDataTaskSoup::NetworkDataTaskSoup): Accept new constructor argument. |
| * NetworkProcess/soup/NetworkDataTaskSoup.h: |
| |
| 2018-04-25 Youenn Fablet <youenn@apple.com> |
| |
| Ensure DNT is set for redirections handled in NetworkProcess |
| https://bugs.webkit.org/show_bug.cgi?id=184890 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Compute whether DNT header should be set on requests based on: |
| - request has a DNT header |
| - session is ephemeral (aka private browsing mode) |
| In both cases, we ensure a DNT header is added for any request triggered by a redirection. |
| |
| Covered by http/wpt/fetch/dnt-header-after-redirection.html. |
| |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::check): |
| (WebKit::NetworkLoadChecker::prepareRedirectedRequest): |
| * NetworkProcess/NetworkLoadChecker.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::willSendRedirectedRequest): |
| (WebKit::NetworkResourceLoader::continueWillSendRequest): |
| * NetworkProcess/PingLoad.cpp: |
| (WebKit::PingLoad::willPerformHTTPRedirection): |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess): |
| |
| 2018-04-25 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [WPE] Remove deprecated functions and properties from the API |
| https://bugs.webkit.org/show_bug.cgi?id=179295 |
| |
| Reviewed by Žan Doberšek. |
| |
| * UIProcess/API/glib/WebKitCookieManager.cpp: |
| * UIProcess/API/glib/WebKitFormSubmissionRequest.cpp: |
| * UIProcess/API/glib/WebKitNavigationPolicyDecision.cpp: |
| (webkitNavigationPolicyDecisionGetProperty): |
| (webkit_navigation_policy_decision_class_init): |
| * UIProcess/API/glib/WebKitSettings.cpp: |
| (webKitSettingsSetProperty): |
| (webKitSettingsGetProperty): |
| (webkit_settings_class_init): |
| * UIProcess/API/glib/WebKitWebContext.cpp: |
| (webkitWebContextGetProperty): |
| (webkitWebContextSetProperty): |
| (webkit_web_context_class_init): |
| * UIProcess/API/glib/WebKitWebView.cpp: |
| (webkit_web_view_class_init): |
| (webkitWebViewHandleAuthenticationChallenge): |
| (webkitWebViewWebProcessTerminated): |
| * UIProcess/API/wpe/WebKitCookieManager.h: |
| * UIProcess/API/wpe/WebKitFormSubmissionRequest.h: |
| * UIProcess/API/wpe/WebKitNavigationPolicyDecision.h: |
| * UIProcess/API/wpe/WebKitSettings.h: |
| * UIProcess/API/wpe/WebKitWebContext.h: |
| |
| 2018-04-25 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, silence -Wreturn-type warning |
| https://bugs.webkit.org/show_bug.cgi?id=184560 |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::shouldCancelCrossOriginLoad): |
| |
| 2018-04-25 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [GTK] Miscellaneous build cleanups |
| https://bugs.webkit.org/show_bug.cgi?id=184399 |
| |
| Reviewed by Žan Doberšek. |
| |
| * PlatformGTK.cmake: |
| |
| 2018-04-25 Dean Jackson <dino@apple.com> |
| |
| Make a better flag for system preview, and disable it where necessary |
| https://bugs.webkit.org/show_bug.cgi?id=184968 |
| <rdar://problem/39686506> |
| |
| Reviewed by Eric Carlson. |
| |
| Use USE(SYSTEM_PREVIEW). |
| |
| * UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: |
| * UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm: |
| (-[WKWebViewContentProviderRegistry init]): |
| * UIProcess/ios/WKSystemPreviewView.mm: |
| |
| 2018-04-25 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Implement MouseEvent.buttons |
| https://bugs.webkit.org/show_bug.cgi?id=184913 |
| |
| Reviewed by Žan Doberšek. |
| |
| It's currently returning always 0. |
| |
| * Shared/gtk/WebEventFactory.cpp: |
| (WebKit::pressedMouseButtons): Helper function to get the pressed mouse buttons. |
| (WebKit::WebEventFactory::createWebMouseEvent): Pass presssed mouse buttons to constructor instead of 0. |
| * UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp: |
| (WebKit::WebAutomationSession::platformSimulateMouseInteraction): Include the mouse buttons state in automation |
| synthesized events and update m_currentModifiers with the mouse buttons state. |
| (WebKit::keyCodeForVirtualKey): Do not set the state here. |
| (WebKit::modifiersForKeyCode): Helper to get the modifiers for a key code. |
| (WebKit::WebAutomationSession::platformSimulateKeyboardInteraction): Initialize the modifiers also when |
| virtualKey is std::nullopt; |
| |
| 2018-04-24 Nan Wang <n_wang@apple.com> |
| |
| AX: soft link libAccessibility.dylb |
| https://bugs.webkit.org/show_bug.cgi?id=184919 |
| |
| Reviewed by Dan Bernstein. |
| |
| Weakly linked libAccessibility.dylib on macOS. |
| |
| * Configurations/WebKit.xcconfig: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| (-[WKWebView _updateAccessibilityEventsEnabled]): |
| |
| 2018-04-24 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [WinCairo] Add WKView and WKAPI |
| https://bugs.webkit.org/show_bug.cgi?id=182869 |
| |
| Reviewed by Alex Christensen. |
| |
| Resurrected source files for WebKit for Windows port which was |
| removed in r139003. |
| |
| * PlatformWin.cmake: Renamed the output name of WebKit to WebKit2 |
| not to conflict WebKitLegacy. Added source files and include paths. |
| * UIProcess/API/C/WKAPICast.h: |
| * UIProcess/API/C/win/WKAPICastWin.h: Added. |
| * UIProcess/API/C/win/WKView.cpp: Added. |
| (WKViewCreate): |
| (WKViewGetWindow): |
| (WKViewGetPage): |
| (WKViewSetParentWindow): |
| (WKViewWindowAncestryDidChange): |
| (WKViewSetIsInWindow): |
| (WKViewSetScrollOffsetOnNextResize): |
| * UIProcess/API/C/win/WKView.h: Added. |
| * UIProcess/API/win/APIWebsiteDataStoreWin.cpp: Added. |
| (API::WebsiteDataStore::defaultApplicationCacheDirectory): |
| (API::WebsiteDataStore::defaultCacheStorageDirectory): |
| (API::WebsiteDataStore::defaultNetworkCacheDirectory): |
| (API::WebsiteDataStore::defaultIndexedDBDatabaseDirectory): |
| (API::WebsiteDataStore::defaultServiceWorkerRegistrationDirectory): |
| (API::WebsiteDataStore::defaultLocalStorageDirectory): |
| (API::WebsiteDataStore::defaultMediaKeysStorageDirectory): |
| (API::WebsiteDataStore::defaultWebSQLDatabaseDirectory): |
| (API::WebsiteDataStore::defaultResourceLoadStatisticsDirectory): |
| (API::WebsiteDataStore::cacheDirectoryFileSystemRepresentation): |
| (API::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation): |
| (API::WebsiteDataStore::defaultDataStoreConfiguration): |
| * UIProcess/Launcher/ProcessLauncher.h: |
| * UIProcess/Launcher/win/ProcessLauncherWin.cpp: Added. |
| (WebKit::processName): |
| (WebKit::ProcessLauncher::launchProcess): |
| (WebKit::ProcessLauncher::terminateProcess): |
| (WebKit::ProcessLauncher::platformInvalidate): |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::networkProcessFailedToLaunch): |
| (WebKit::NetworkProcessProxy::didCreateNetworkConnectionToWebProcess): |
| * UIProcess/WebsiteData/win/WebsiteDataStoreWin.cpp: Added. |
| (WebKit::WebsiteDataStore::platformInitialize): |
| (WebKit::WebsiteDataStore::platformDestroy): |
| (WebKit::WebsiteDataStore::platformRemoveRecentSearches): |
| * UIProcess/win/PageClientImpl.cpp: Added. |
| (WebKit::PageClientImpl::PageClientImpl): |
| (WebKit::PageClientImpl::createDrawingAreaProxy): |
| (WebKit::PageClientImpl::setViewNeedsDisplay): |
| (WebKit::PageClientImpl::requestScroll): |
| (WebKit::PageClientImpl::viewScrollPosition): |
| (WebKit::PageClientImpl::viewSize): |
| (WebKit::PageClientImpl::isViewWindowActive): |
| (WebKit::PageClientImpl::isViewFocused): |
| (WebKit::PageClientImpl::isViewVisible): |
| (WebKit::PageClientImpl::isViewInWindow): |
| (WebKit::PageClientImpl::PageClientImpl::processDidExit): |
| (WebKit::PageClientImpl::didRelaunchProcess): |
| (WebKit::PageClientImpl::toolTipChanged): |
| (WebKit::PageClientImpl::setCursor): |
| (WebKit::PageClientImpl::setCursorHiddenUntilMouseMoves): |
| (WebKit::PageClientImpl::didChangeViewportProperties): |
| (WebKit::PageClientImpl::registerEditCommand): |
| (WebKit::PageClientImpl::clearAllEditCommands): |
| (WebKit::PageClientImpl::canUndoRedo): |
| (WebKit::PageClientImpl::executeUndoRedo): |
| (WebKit::PageClientImpl::convertToDeviceSpace): |
| (WebKit::PageClientImpl::convertToUserSpace): |
| (WebKit::PageClientImpl::screenToRootView): |
| (WebKit::PageClientImpl::rootViewToScreen): |
| (WebKit::PageClientImpl::doneWithKeyEvent): |
| (WebKit::PageClientImpl::createPopupMenuProxy): |
| (WebKit::PageClientImpl::createContextMenuProxy): |
| (WebKit::createColorPicker): |
| (WebKit::PageClientImpl::enterAcceleratedCompositingMode): |
| (WebKit::PageClientImpl::exitAcceleratedCompositingMode): |
| (WebKit::PageClientImpl::updateAcceleratedCompositingMode): |
| (WebKit::PageClientImpl::pageClosed): |
| (WebKit::PageClientImpl::preferencesDidChange): |
| (WebKit::PageClientImpl::didChangeContentSize): |
| (WebKit::PageClientImpl::handleDownloadRequest): |
| (WebKit::PageClientImpl::didCommitLoadForMainFrame): |
| (WebKit::PageClientImpl::fullScreenManagerProxyClient): |
| (WebKit::PageClientImpl::closeFullScreenManager): |
| (WebKit::PageClientImpl::isFullScreen): |
| (WebKit::PageClientImpl::enterFullScreen): |
| (WebKit::PageClientImpl::exitFullScreen): |
| (WebKit::PageClientImpl::beganEnterFullScreen): |
| (WebKit::PageClientImpl::beganExitFullScreen): |
| (WebKit::PageClientImpl::doneWithTouchEvent): |
| (WebKit::PageClientImpl::wheelEventWasNotHandledByWebCore): |
| (WebKit::PageClientImpl::didFinishLoadingDataForCustomContentProvider): |
| (WebKit::PageClientImpl::navigationGestureDidBegin): |
| (WebKit::PageClientImpl::navigationGestureWillEnd): |
| (WebKit::PageClientImpl::navigationGestureDidEnd): |
| (WebKit::PageClientImpl::willRecordNavigationSnapshot): |
| (WebKit::PageClientImpl::didRemoveNavigationGestureSnapshot): |
| (WebKit::PageClientImpl::didFirstVisuallyNonEmptyLayoutForMainFrame): |
| (WebKit::PageClientImpl::didFinishLoadForMainFrame): |
| (WebKit::PageClientImpl::didSameDocumentNavigationForMainFrame): |
| (WebKit::PageClientImpl::didChangeBackgroundColor): |
| (WebKit::PageClientImpl::isPlayingAudioWillChange): |
| (WebKit::PageClientImpl::isPlayingAudioDidChange): |
| (WebKit::PageClientImpl::refView): |
| (WebKit::PageClientImpl::derefView): |
| * UIProcess/win/PageClientImpl.h: Added. |
| * UIProcess/win/TextCheckerWin.cpp: Added. |
| (WebKit::checkerState): |
| (WebKit::TextChecker::state): |
| (WebKit::TextChecker::setTestingMode): |
| (WebKit::TextChecker::isTestingMode): |
| (WebKit::TextChecker::isContinuousSpellCheckingAllowed): |
| (WebKit::TextChecker::setContinuousSpellCheckingEnabled): |
| (WebKit::TextChecker::setGrammarCheckingEnabled): |
| (WebKit::TextChecker::continuousSpellCheckingEnabledStateChanged): |
| (WebKit::TextChecker::grammarCheckingEnabledStateChanged): |
| (WebKit::TextChecker::uniqueSpellDocumentTag): |
| (WebKit::TextChecker::closeSpellDocumentWithTag): |
| (WebKit::TextChecker::checkSpellingOfString): |
| (WebKit::TextChecker::checkGrammarOfString): |
| (WebKit::TextChecker::spellingUIIsShowing): |
| (WebKit::TextChecker::toggleSpellingUIIsShowing): |
| (WebKit::TextChecker::updateSpellingUIWithMisspelledWord): |
| (WebKit::TextChecker::updateSpellingUIWithGrammarString): |
| (WebKit::TextChecker::getGuessesForWord): |
| (WebKit::TextChecker::learnWord): |
| (WebKit::TextChecker::ignoreWord): |
| (WebKit::TextChecker::requestCheckingOfString): |
| (WebKit::TextChecker::checkTextOfParagraph): |
| * UIProcess/win/WebContextMenuProxyWin.cpp: Added. |
| (WebKit::WebContextMenuProxyWin::show): |
| (WebKit::WebContextMenuProxyWin::showContextMenuWithItems): |
| (WebKit::WebContextMenuProxyWin::WebContextMenuProxyWin): |
| (WebKit::WebContextMenuProxyWin::~WebContextMenuProxyWin): |
| * UIProcess/win/WebContextMenuProxyWin.h: Added. |
| (WebKit::WebContextMenuProxyWin::create): |
| * UIProcess/win/WebInspectorProxyWin.cpp: Added. |
| (WebKit::WebInspectorProxy::platformCreateFrontendPage): |
| (WebKit::WebInspectorProxy::platformCreateFrontendWindow): |
| (WebKit::WebInspectorProxy::platformCloseFrontendPageAndWindow): |
| (WebKit::WebInspectorProxy::platformDidCloseForCrash): |
| (WebKit::WebInspectorProxy::platformInvalidate): |
| (WebKit::WebInspectorProxy::platformHide): |
| (WebKit::WebInspectorProxy::platformBringToFront): |
| (WebKit::WebInspectorProxy::platformBringInspectedPageToFront): |
| (WebKit::WebInspectorProxy::platformIsFront): |
| (WebKit::WebInspectorProxy::platformInspectedURLChanged): |
| (WebKit::WebInspectorProxy::inspectorPageURL): |
| (WebKit::WebInspectorProxy::inspectorTestPageURL): |
| (WebKit::WebInspectorProxy::inspectorBaseURL): |
| (WebKit::WebInspectorProxy::platformInspectedWindowHeight): |
| (WebKit::WebInspectorProxy::platformInspectedWindowWidth): |
| (WebKit::WebInspectorProxy::platformAttach): |
| (WebKit::WebInspectorProxy::platformDetach): |
| (WebKit::WebInspectorProxy::platformSetAttachedWindowHeight): |
| (WebKit::WebInspectorProxy::platformSetAttachedWindowWidth): |
| (WebKit::WebInspectorProxy::platformStartWindowDrag): |
| (WebKit::WebInspectorProxy::platformSave): |
| (WebKit::WebInspectorProxy::platformAppend): |
| (WebKit::WebInspectorProxy::platformAttachAvailabilityChanged): |
| * UIProcess/win/WebPageProxyWin.cpp: Added. |
| (WebKit::WebPageProxy::platformInitialize): |
| (WebKit::WebPageProxy::standardUserAgent): |
| (WebKit::WebPageProxy::saveRecentSearches): |
| (WebKit::WebPageProxy::loadRecentSearches): |
| (WebKit::WebPageProxy::editorStateChanged): |
| * UIProcess/win/WebPreferencesWin.cpp: Added. |
| (WebKit::WebPreferences::platformInitializeStore): |
| (WebKit::WebPreferences::platformUpdateStringValueForKey): |
| (WebKit::WebPreferences::platformUpdateBoolValueForKey): |
| (WebKit::WebPreferences::platformUpdateUInt32ValueForKey): |
| (WebKit::WebPreferences::platformUpdateDoubleValueForKey): |
| (WebKit::WebPreferences::platformUpdateFloatValueForKey): |
| (WebKit::WebPreferences::platformGetStringUserValueForKey): |
| (WebKit::WebPreferences::platformGetBoolUserValueForKey): |
| (WebKit::WebPreferences::platformGetUInt32UserValueForKey): |
| (WebKit::WebPreferences::platformGetDoubleUserValueForKey): |
| * UIProcess/win/WebProcessPoolWin.cpp: Added. |
| (WebKit::WebProcessPool::platformInitialize): |
| (WebKit::WebProcessPool::platformInitializeNetworkProcess): |
| (WebKit::WebProcessPool::platformInitializeWebProcess): |
| (WebKit::WebProcessPool::platformInvalidateContext): |
| (WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory): |
| (WebKit::WebProcessPool::legacyPlatformDefaultMediaCacheDirectory): |
| (WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory): |
| (WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory): |
| (WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory): |
| (WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory): |
| (WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory): |
| (WebKit::WebProcessPool::legacyPlatformDefaultJavaScriptConfigurationDirectory): |
| (WebKit::WebProcessPool::platformResolvePathsForSandboxExtensions): |
| * UIProcess/win/WebView.cpp: Added. |
| (WebKit::WebView::WebViewWndProc): |
| (WebKit::WebView::wndProc): |
| (WebKit::WebView::registerWebViewWindowClass): |
| (WebKit::WebView::WebView): |
| (WebKit::WebView::~WebView): |
| (WebKit::WebView::initialize): |
| (WebKit::WebView::setParentWindow): |
| (WebKit::findTopLevelParentWindow): |
| (WebKit::WebView::windowAncestryDidChange): |
| (WebKit::WebView::onMouseEvent): |
| (WebKit::WebView::onWheelEvent): |
| (WebKit::WebView::onHorizontalScroll): |
| (WebKit::WebView::onVerticalScroll): |
| (WebKit::WebView::onKeyEvent): |
| (WebKit::drawPageBackground): |
| (WebKit::WebView::paint): |
| (WebKit::WebView::onPaintEvent): |
| (WebKit::WebView::onPrintClientEvent): |
| (WebKit::WebView::onSizeEvent): |
| (WebKit::WebView::onWindowPositionChangedEvent): |
| (WebKit::WebView::onSetFocusEvent): |
| (WebKit::WebView::onKillFocusEvent): |
| (WebKit::WebView::onTimerEvent): |
| (WebKit::WebView::onShowWindowEvent): |
| (WebKit::WebView::onSetCursor): |
| (WebKit::WebView::updateActiveState): |
| (WebKit::WebView::updateActiveStateSoon): |
| (WebKit::initCommonControls): |
| (WebKit::WebView::initializeToolTipWindow): |
| (WebKit::WebView::startTrackingMouseLeave): |
| (WebKit::WebView::stopTrackingMouseLeave): |
| (WebKit::WebView::shouldInitializeTrackPointHack): |
| (WebKit::WebView::close): |
| (WebKit::WebView::cursorToShow const): |
| (WebKit::WebView::updateNativeCursor): |
| (WebKit::WebView::setOverrideCursor): |
| (WebKit::WebView::setIsInWindow): |
| (WebKit::WebView::setIsVisible): |
| (WebKit::WebView::isWindowActive): |
| (WebKit::WebView::isFocused): |
| (WebKit::WebView::isVisible): |
| (WebKit::WebView::isInWindow): |
| (WebKit::WebView::setScrollOffsetOnNextResize): |
| (WebKit::WebView::setViewNeedsDisplay): |
| (WebKit::WebView::createColorChooserProxy): |
| (WebKit::WebView::didCommitLoadForMainFrame): |
| (WebKit::WebView::customRepresentationZoomFactor): |
| (WebKit::WebView::setCustomRepresentationZoomFactor): |
| (WebKit::WebView::findStringInCustomRepresentation): |
| (WebKit::WebView::countStringMatchesInCustomRepresentation): |
| (WebKit::WebView::nativeWindow): |
| (WebKit::WebView::windowReceivedMessage): |
| * UIProcess/win/WebView.h: Added. |
| (WebKit::WebView::create): |
| (WebKit::WebView::window const): |
| (WebKit::WebView::page const): |
| (WebKit::WebView::drawingArea): |
| (WebKit::WebView::setWasActivatedByMouseEvent): |
| |
| 2018-04-24 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| Implement Same-Site cookies |
| https://bugs.webkit.org/show_bug.cgi?id=159464 |
| <rdar://problem/27196358> |
| |
| Unreviewed build fix. |
| |
| WinCairo WebKit2 can't compile since r230921. |
| |
| * NetworkProcess/curl/NetworkDataTaskCurl.cpp: |
| (WebKit::NetworkDataTaskCurl::appendCookieHeader): |
| CookieJarCurlDatabase::cookieRequestHeaderFieldValue needs |
| SameSiteInfo. |
| |
| 2018-04-24 Simon Fraser <simon.fraser@apple.com> |
| |
| Add a new "color-filter" CSS property as an experimental feature |
| https://bugs.webkit.org/show_bug.cgi?id=184940 |
| |
| Reviewed by Jon Lee. |
| |
| Add the color-filter property as an experimental feature. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-04-24 Saam Barati <sbarati@apple.com> |
| |
| Keep around a pre-warmed process when doing process swap on navigation |
| https://bugs.webkit.org/show_bug.cgi?id=184765 |
| <rdar://problem/39685099> |
| |
| Reviewed by Ryosuke Niwa and Brady Eidson. |
| |
| This patch makes it so that WebProcessPool prewarms a process when process |
| swap on navigation is turned on. When we do a process swap on navigation, |
| we first try to grab a prewarmed process before creating a new one. |
| |
| We try to be smart about when to create these processes. The initial heuristic |
| that this patch chooses is when we reach the DidFirstVisuallyNonEmptyLayout |
| layout milestone. We're going to try to improve on this heuristic in: |
| https://bugs.webkit.org/show_bug.cgi?id=184899 |
| |
| This is a 40% progression on PLT with process swap on navigation turned on. |
| |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _prewarmedWebProcessCount]): |
| (-[WKProcessPool _webProcessCountIgnoringPrewarmed]): |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/ServiceWorkerProcessProxy.cpp: |
| (WebKit::ServiceWorkerProcessProxy::ServiceWorkerProcessProxy): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::notifyProcessPoolToPrewarm): |
| (WebKit::WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::createNewWebProcess): |
| (WebKit::WebProcessPool::tryTakePrewarmedProcess): |
| (WebKit::WebProcessPool::warmInitialProcess): |
| (WebKit::WebProcessPool::disconnectProcess): |
| (WebKit::WebProcessPool::createWebPage): |
| (WebKit::WebProcessPool::didReachGoodTimeToPrewarm): |
| (WebKit::WebProcessPool::processForNavigation): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::create): |
| (WebKit::WebProcessProxy::WebProcessProxy): |
| (WebKit::m_isInPrewarmedPool): |
| (WebKit::m_userMediaCaptureManagerProxy): Deleted. |
| * UIProcess/WebProcessProxy.h: |
| (WebKit::WebProcessProxy::isInPrewarmedPool const): |
| (WebKit::WebProcessProxy::setIsInPrewarmedPool): |
| |
| 2018-04-24 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r230971. |
| https://bugs.webkit.org/show_bug.cgi?id=184939 |
| |
| This fix was not appropriate (Requested by n_wang on #webkit). |
| |
| Reverted changeset: |
| |
| "AX: soft link libAccessibility.dylb" |
| https://bugs.webkit.org/show_bug.cgi?id=184919 |
| https://trac.webkit.org/changeset/230971 |
| |
| 2018-04-24 Nan Wang <n_wang@apple.com> |
| |
| AX: soft link libAccessibility.dylb |
| https://bugs.webkit.org/show_bug.cgi?id=184919 |
| |
| Reviewed by Chris Fleizach. |
| |
| Make sure we soft link the library so that it won't crash |
| if it's missing in the system. |
| |
| * Configurations/WebKit.xcconfig: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| (-[WKWebView _updateAccessibilityEventsEnabled]): |
| |
| 2018-04-24 John Wilander <wilander@apple.com> |
| |
| From-Origin: Support for 'same' and 'same-site' response header, nested frame origin check |
| https://bugs.webkit.org/show_bug.cgi?id=184560 |
| <rdar://problem/38901344> |
| |
| Reviewed by Youenn Fablet and Daniel Bates. |
| |
| This patch implements significant parts of https://github.com/whatwg/fetch/issues/687. |
| We consume the From-Origin response header and only load the resource if: |
| - The header is non-existent, empty, or invalid. |
| - The header specifies 'same' and the resource's origin matches the originating |
| document's origin and the origins up the frame tree. |
| - The header specifies 'same-site' and the resource's eTLD+1 matches the originating |
| document's eTLD+1 and the eTLD+1 of the documents up the frame tree. |
| |
| This feature is experimental and off by default. |
| |
| * NetworkProcess/NetworkResourceLoadParameters.cpp: |
| (WebKit::NetworkResourceLoadParameters::encode const): |
| (WebKit::NetworkResourceLoadParameters::decode): |
| Support for the two new load parameters: |
| - shouldEnableFromOriginResponseHeader |
| - frameAncestorOrigins |
| * NetworkProcess/NetworkResourceLoadParameters.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::areFrameAncestorsSameSite): |
| (WebKit::areFrameAncestorsSameOrigin): |
| (WebKit::shouldCancelCrossOriginLoad): |
| The three functions above implement the new blocking logic. |
| (WebKit::fromOriginResourceError): |
| Convenience function that returns an error with the From-Origin error message. |
| (WebKit::NetworkResourceLoader::didReceiveResponse): |
| Now checks for a From-Origin response header. |
| (WebKit::NetworkResourceLoader::didFailLoading): |
| Now checks for a From-Origin response header. |
| (WebKit::NetworkResourceLoader::continueWillSendRedirectedRequest): |
| Now checks for a From-Origin response header. |
| (WebKit::NetworkResourceLoader::didRetrieveCacheEntry): |
| Now checks for a From-Origin response header. |
| (WebKit::NetworkResourceLoader::dispatchWillSendRequestForCacheEntry): |
| Now checks for a From-Origin response header. |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<Vector<RefPtr<SecurityOrigin>>>::encode): |
| (IPC::ArgumentCoder<Vector<RefPtr<SecurityOrigin>>>::decode): |
| Now encodes and decodes vectors of RefPtr<WebCore::SecurityOrigin>. |
| * Shared/WebCoreArgumentCoders.h: |
| * Shared/WebPreferences.yaml: |
| Added From-Origin support as an experimental feature. |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetFromOriginResponseHeaderEnabled): |
| (WKPreferencesGetFromOriginResponseHeaderEnabled): |
| * UIProcess/API/C/WKPreferencesRef.h: |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess): |
| Sets the two new load parameters: |
| - shouldEnableFromOriginResponseHeader |
| - frameAncestorOrigins |
| |
| 2018-04-24 Jer Noble <jer.noble@apple.com> |
| |
| Don't add system framework paths to FRAMEWORK_SEARCH_PATHS |
| https://bugs.webkit.org/show_bug.cgi?id=184786 |
| |
| Reviewed by Tim Horton. |
| |
| * Configurations/BaseTarget.xcconfig: |
| * DerivedSources.make: |
| |
| 2018-04-24 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r230938. |
| |
| Introduced two ProcessSwap API test failures. |
| |
| Reverted changeset: |
| |
| "Keep around a pre-warmed process when doing process swap on |
| navigation" |
| https://bugs.webkit.org/show_bug.cgi?id=184765 |
| https://trac.webkit.org/changeset/230938 |
| |
| 2018-04-24 Zan Dobersek <zdobersek@igalia.com> |
| |
| [CoordGraphics] Remove dead fixed layer code |
| https://bugs.webkit.org/show_bug.cgi?id=184912 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Drop the unused fixed layer handling code in CoordinatedGraphicsScene. |
| The m_fixedLayers container can be removed, along with the |
| adjustPositionForFixedLayers() method that operated on that container. |
| |
| This was the only method that operated with the m_scrollPosition member |
| variable and the contentsPosition argument that's passed to the |
| CoordinatedGraphicsScene::paintToCurrentGLContext() method. Both of |
| these are removed, along with the scrollPosition attribute on the |
| CoordinatedGraphicsState struct. |
| |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: |
| (WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext): |
| (WebKit::CoordinatedGraphicsScene::setLayerState): |
| (WebKit::CoordinatedGraphicsScene::deleteLayer): |
| (WebKit::CoordinatedGraphicsScene::commitSceneState): |
| (WebKit::CoordinatedGraphicsScene::purgeGLResources): |
| (WebKit::CoordinatedGraphicsScene::adjustPositionForFixedLayers): Deleted. |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h: |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: |
| (WebKit::ThreadedCompositor::renderLayerTree): |
| * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp: |
| (WebKit::CompositingCoordinator::flushPendingLayerChanges): |
| |
| 2018-04-24 Zan Dobersek <zdobersek@igalia.com> |
| |
| REGRESSION(r230950): Faulty commit sequencing in CoordinatedGraphicsScene |
| https://bugs.webkit.org/show_bug.cgi?id=184917 |
| |
| Reviewed by Michael Catanzaro. |
| |
| After r230950, current animation state for a given layer is also taken |
| into account when determining whether or not the layer requires a |
| backing store. For that to work properly, all the animation state has |
| to be updated before the backing store work. This patch changes the |
| order of helper method invocations in |
| CoordinatedGraphicsScene::setLayerState() to address that. |
| |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: |
| (WebKit::CoordinatedGraphicsScene::setLayerState): |
| |
| 2018-04-24 Zan Dobersek <zdobersek@igalia.com> |
| |
| [CoordGraphics] Remove unused fixed layout functionality |
| https://bugs.webkit.org/show_bug.cgi?id=184908 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Ports using the CoordinatedGraphics subsystem don't expose fixed layout |
| support. As such, we're able to remove a lot of unused code and |
| unnecessary USE(COORDINATED_GRAPHICS) special cases in generic sections |
| in both WebCore and WebKit. |
| |
| Remove USE(COORDINATED_GRAPHICS) special-casing from the |
| WebPage::setUseFixedLayout() method. This is not possible to enable for |
| the GTK+ and WPE ports that use the CoordinatedGraphics subsytem via |
| API. Removing all this unlocks removing considerable amounts of dead |
| code and complexities in CoordinatedGraphics. |
| |
| WebChromeClient::delegatedScrollRequested() method is removed, along |
| with the WebPage::pageDidRequestScroll() method that was only called |
| from there. |
| |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::delegatedScrollRequested): Deleted. |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::setUseFixedLayout): |
| (WebKit::WebPage::pageDidRequestScroll): Deleted. |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2018-04-24 Zan Dobersek <zdobersek@igalia.com> |
| |
| [CoordGraphics] Avoid painting backing stores for zero-opacity layers |
| https://bugs.webkit.org/show_bug.cgi?id=184143 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: |
| (WebKit::layerShouldHaveBackingStore): |
| Mirror CoordinatedGraphicsLayer's backing store requirements. |
| |
| 2018-04-23 Daniel Bates <dabates@apple.com> |
| |
| Implement Same-Site cookies |
| https://bugs.webkit.org/show_bug.cgi?id=159464 |
| <rdar://problem/27196358> |
| |
| Reviewed by Brent Fulgham. |
| |
| Pass the Same-Site info through the WebKit abstractions. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::cookiesForDOM): |
| (WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM): |
| (WebKit::NetworkConnectionToWebProcess::cookieRequestHeaderFieldValue): |
| (WebKit::NetworkConnectionToWebProcess::getRawCookies): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::logCookieInformation const): |
| (WebKit::logBlockedCookieInformation): |
| (logCookieInformationInternal): |
| (NetworkResourceLoader::logCookieInformation): |
| * NetworkProcess/NetworkResourceLoader.h: |
| * NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp: |
| (WebKit::NetworkCache::constructRevalidationRequest): |
| * NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp: |
| (WebKit::NetworkCache::SubresourceInfo::encode const): |
| (WebKit::NetworkCache::SubresourceInfo::decode): |
| (WebKit::NetworkCache::SubresourceInfo::SubresourceInfo): |
| * NetworkProcess/cache/NetworkCacheSubresourcesEntry.h: |
| (WebKit::NetworkCache::SubresourceInfo::isSameSite const): |
| (WebKit::NetworkCache::SubresourceInfo::isTopSite const): Returns false; subresources do not represent |
| a top-level navigation. |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::isThirdPartyRequest): |
| (WebKit::updateTaskWithFirstPartyForSameSiteCookies): |
| (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): |
| (WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::download): |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: |
| (WebKit::WebPlatformStrategies::cookiesForDOM): |
| (WebKit::WebPlatformStrategies::setCookiesFromDOM): |
| (WebKit::WebPlatformStrategies::cookieRequestHeaderFieldValue): |
| (WebKit::WebPlatformStrategies::getRawCookies): |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.h: |
| |
| 2018-04-23 Youenn Fablet <youenn@apple.com> |
| |
| Make WebLoaderStrategy send to NetworkResourceLoader necessary parameters to handle full loads in NetworkProcess |
| https://bugs.webkit.org/show_bug.cgi?id=184763 |
| |
| Reviewed by Chris Dumez. |
| |
| Set all required NetworkResourceLoadParameters for asynchronous loads. |
| This includes preflight policy, CSP response headers, SecurityOrigin and content blockers identifier. |
| |
| Update NetworkLoadChecker to handle preflight policy. |
| This is not needed right now since sync XHR and ping loads are using the default ConsiderPreflight policy. |
| But this will be needed for XHR/fetch/EventSource loads. |
| |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::NetworkLoadChecker): |
| (WebKit::NetworkLoadChecker::checkRedirection): |
| (WebKit::NetworkLoadChecker::validateResponse): |
| (WebKit::NetworkLoadChecker::checkCORSRequest): |
| * NetworkProcess/NetworkLoadChecker.h: |
| (WebKit::NetworkLoadChecker::create): |
| * NetworkProcess/NetworkResourceLoadParameters.cpp: |
| (WebKit::NetworkResourceLoadParameters::encode const): |
| (WebKit::NetworkResourceLoadParameters::decode): |
| * NetworkProcess/NetworkResourceLoadParameters.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| * NetworkProcess/PingLoad.cpp: |
| (WebKit::PingLoad::PingLoad): |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess): |
| |
| 2018-04-23 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] REGRESSION(230860) Unable to change time input values using UI |
| https://bugs.webkit.org/show_bug.cgi?id=184901 |
| <rdar://problem/39664797> |
| |
| Reviewed by Tim Horton. |
| |
| Fixes the bug by falling back to setting the value of the focused input element in the case where the selection |
| is not editable. Also adds plumbing to make time pickers testable in extra zoom mode. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView setTimePickerValueToHour:minute:]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView setTimePickerValueToHour:minute:]): |
| |
| Add plumbing to make it possible for WebKitTestRunner to simulate picking a time from the given hours and |
| minutes. This is currently only implemented for extra zoom mode, but may be implemented for UIKit's time picker |
| as well in the future by adjusting -[WKContentView setTimePickerValueToHour:minute:]. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::setTextAsync): |
| |
| 2018-04-23 Saam Barati <sbarati@apple.com> |
| |
| Keep around a pre-warmed process when doing process swap on navigation |
| https://bugs.webkit.org/show_bug.cgi?id=184765 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| This patch makes it so that WebProcessPool prewarms a process when process |
| swap on navigation is turned on. When we do a process swap on navigation, |
| we first try to grab a prewarmed process before creating a new one. |
| |
| We try to be smart about when to create these processes. The initial heuristic |
| that this patch chooses is when we reach the DidFirstVisuallyNonEmptyLayout |
| layout milestone. We're going to try to improve on this heuristic in: |
| https://bugs.webkit.org/show_bug.cgi?id=184899 |
| |
| This is a 40% progression on PLT with process swap on navigation turned on. |
| |
| * UIProcess/ServiceWorkerProcessProxy.cpp: |
| (WebKit::ServiceWorkerProcessProxy::ServiceWorkerProcessProxy): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::notifyProcessPoolToPrewarm): |
| (WebKit::WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::createNewWebProcess): |
| (WebKit::WebProcessPool::tryTakePrewarmedProcess): |
| (WebKit::WebProcessPool::warmInitialProcess): |
| (WebKit::WebProcessPool::disconnectProcess): |
| (WebKit::WebProcessPool::createWebPage): |
| (WebKit::WebProcessPool::didReachGoodTimeToPrewarm): |
| (WebKit::WebProcessPool::processForNavigation): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::create): |
| (WebKit::WebProcessProxy::WebProcessProxy): |
| (WebKit::m_isInPrewarmedPool): |
| (WebKit::m_userMediaCaptureManagerProxy): Deleted. |
| * UIProcess/WebProcessProxy.h: |
| (WebKit::WebProcessProxy::isInPrewarmedPool const): |
| (WebKit::WebProcessProxy::setIsInPrewarmedPool): |
| |
| 2018-04-23 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [WPE][GTK] Remove WlUniquePtr<wl_display> footgun |
| https://bugs.webkit.org/show_bug.cgi?id=184405 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Switch to std::unique_ptr. |
| |
| * UIProcess/gtk/WaylandCompositor.cpp: |
| (WebKit::WaylandCompositor::WaylandCompositor): |
| * UIProcess/gtk/WaylandCompositor.h: |
| (WebKit::WaylandCompositor::DisplayDeleter::operator()): |
| |
| 2018-04-23 Daniel Bates <dabates@apple.com> |
| |
| Attempt to fix the Apple Internal build following r230921 |
| (https://bugs.webkit.org/show_bug.cgi?id=159464) |
| |
| Forward declare some SPI. Add availability guard. |
| |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| |
| 2018-04-23 Zalan Bujtas <zalan@apple.com> |
| |
| [LayoutFormattingContext] Initial commit. |
| https://bugs.webkit.org/show_bug.cgi?id=184896 |
| |
| Reviewed by Antti Koivisto. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2018-04-23 Daniel Bates <dabates@apple.com> |
| |
| Implement Same-Site cookies |
| https://bugs.webkit.org/show_bug.cgi?id=159464 |
| <rdar://problem/27196358> |
| |
| Reviewed by Brent Fulgham. |
| |
| Pass the Same-Site info through the WebKit abstractions. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::cookiesForDOM): |
| (WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM): |
| (WebKit::NetworkConnectionToWebProcess::cookieRequestHeaderFieldValue): |
| (WebKit::NetworkConnectionToWebProcess::getRawCookies): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::logCookieInformation const): |
| (WebKit::logBlockedCookieInformation): |
| (logCookieInformationInternal): |
| (NetworkResourceLoader::logCookieInformation): |
| * NetworkProcess/NetworkResourceLoader.h: |
| * NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp: |
| (WebKit::NetworkCache::constructRevalidationRequest): |
| * NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp: |
| (WebKit::NetworkCache::SubresourceInfo::encode const): |
| (WebKit::NetworkCache::SubresourceInfo::decode): |
| (WebKit::NetworkCache::SubresourceInfo::SubresourceInfo): |
| * NetworkProcess/cache/NetworkCacheSubresourcesEntry.h: |
| (WebKit::NetworkCache::SubresourceInfo::isSameSite const): |
| (WebKit::NetworkCache::SubresourceInfo::isTopSite const): Returns false; subresources do not represent |
| a top-level navigation. |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::isThirdPartyRequest): |
| (WebKit::updateTaskWithFirstPartyForSameSiteCookies): |
| (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): |
| (WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::download): |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: |
| (WebKit::WebPlatformStrategies::cookiesForDOM): |
| (WebKit::WebPlatformStrategies::setCookiesFromDOM): |
| (WebKit::WebPlatformStrategies::cookieRequestHeaderFieldValue): |
| (WebKit::WebPlatformStrategies::getRawCookies): |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.h: |
| |
| 2018-04-23 Chris Dumez <cdumez@apple.com> |
| |
| WebProcessProxy frequently re-takes a process assertion for the network process even though is already has one |
| https://bugs.webkit.org/show_bug.cgi?id=184889 |
| <rdar://problem/38151530> |
| |
| Reviewed by Brady Eidson. |
| |
| In ProcessThrottler::updateAssertionNow(), if the new process assertion state is the same |
| as the existing one, then return early. Otherwise, we would end up calling WebProcessProxy::didSetAssertionState() |
| for the same assertion state, which would cause duplicate logging but also some unnecessary work. |
| |
| * UIProcess/ProcessThrottler.cpp: |
| (WebKit::ProcessThrottler::updateAssertionNow): |
| |
| 2018-04-23 Zan Dobersek <zdobersek@igalia.com> |
| |
| [CoordGraphics] Remove unused trajectory cruft in CoordinatedLayerTreeHost, CoordinatedGraphicsLayer |
| https://bugs.webkit.org/show_bug.cgi?id=184881 |
| |
| Reviewed by Michael Catanzaro. |
| |
| The CompositingCoordinator::setVisibleContentsRect() method is always |
| called with a (0,0) FloatPoint value as the trajectory vector parameter, |
| which is already the default value in TiledBackingStore where this ends |
| up. Removing this call chain also enables removing some unnecessary and |
| odd code in the CoordinatedGraphicsLayer class. |
| |
| This doesn't yet touch the trajectory logic in the TiledBackingStore |
| class since it's not yet a given this won't be used in the future. But |
| if that will be necessary, hope is to not use it this way. |
| |
| * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp: |
| (WebKit::CompositingCoordinator::setVisibleContentsRect): |
| (WebKit::CompositingCoordinator::mainContentsLayer): Deleted. |
| * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h: |
| * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp: |
| (WebKit::CoordinatedLayerTreeHost::setVisibleContentsRect): |
| * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h: |
| * WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp: |
| (WebKit::ThreadedCoordinatedLayerTreeHost::didChangeViewport): |
| |
| 2018-04-23 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [Win][WK2] REGRESSION(r230834) 'getpid': identifier not found |
| https://bugs.webkit.org/show_bug.cgi?id=184877 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| * WebProcess/WebPage/WebBackForwardListProxy.cpp: |
| (WebKit::WebBackForwardListProxy::addItem): Use WTF::getCurrentProcessID() instead of getpid(). |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::goToBackForwardItem): Ditto. |
| |
| 2018-04-23 Zan Dobersek <zdobersek@igalia.com> |
| |
| [TexMap] Drop RefCounted inheritance off of TextureMapperBackingStore |
| https://bugs.webkit.org/show_bug.cgi?id=184810 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| CoordinatedBackingStore should inherit directly from RefCounted<> now |
| that TextureMapperBackingStore doesn't anymore. |
| |
| * Shared/CoordinatedGraphics/CoordinatedBackingStore.h: |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: |
| (WebKit::CoordinatedGraphicsScene::createBackingStoreIfNeeded): |
| |
| 2018-04-22 Zan Dobersek <zdobersek@igalia.com> |
| |
| [CoordinatedGraphics] Unused contentsSize, coveredRect attributes in CoordinatedGraphicsState |
| https://bugs.webkit.org/show_bug.cgi?id=184811 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp: |
| (WebKit::CompositingCoordinator::flushPendingLayerChanges): Stop setting |
| the removed contentsSize and coveredRect attributes. These were only |
| ever set to the appropriate values, but were then never used anywhere. |
| |
| 2018-04-22 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: WebInspectorProxy releases WKWebInspectorProxyObjCAdapter without removing corresponding observer |
| https://bugs.webkit.org/show_bug.cgi?id=184865 |
| <rdar://problem/37764960> |
| |
| Reviewed by Brian Burg. |
| |
| Replace the early return removed in https://bugs.webkit.org/show_bug.cgi?id=177661, |
| so that WKWebInspectorProxyObjCAdapter and the view controller can be reused |
| when reopening the Inspector while the WebView is still alive. |
| |
| * UIProcess/mac/WebInspectorProxyMac.mm: |
| (WebKit::WebInspectorProxy::platformCreateFrontendPage): |
| |
| 2018-04-22 Paul Knight <pknight@apple.com> |
| |
| Add -[WKInputDelegate _webView:decidePolicyForFocusedElement:] so clients can request default focusing behavior |
| https://bugs.webkit.org/show_bug.cgi?id=184844 |
| |
| Reviewed by Dan Bernstein. |
| |
| If a client doesn't implement -[_WKInputDelegate _webView:focusShouldStartInputSession:] the default |
| focus behavior only brings up the keyboard if it's already onscreen, the interaction is user driven, |
| and other factors that even depend on what feature flags are enabled. |
| |
| If a client implements _webView:focusShouldStartInputSession:, they don't have a good way to specifiy |
| they'd like to fall back to the default behavior. This makes it difficult for a client to use the |
| default in most cases, but sometimes allow programmatic focus from the page, for example. |
| |
| Add a new delegate method -_webView:decidePolicyForFocusedElement: that returns a new enum type |
| _WKFocusStartsInputSessionPolicy. Clients can return _WKFocusStartsInputSessionPolicyAuto to request |
| the default behavior, or _WKFocusStartsInputSessionPolicyAllow / Disallow to directly control whether |
| the keyboard appears to assist the focused node. |
| |
| * UIProcess/API/Cocoa/_WKInputDelegate.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]): |
| |
| 2018-04-21 Jeremy Jones <jeremyj@apple.com> |
| |
| Disable backward and forward navigation swipes while in fullscreen. |
| https://bugs.webkit.org/show_bug.cgi?id=184656 |
| rdar://problem/36057535 |
| |
| Reviewed by Tim Horton. |
| |
| Disable navigation swipes while in fullscreen. |
| |
| * UIProcess/Cocoa/ViewGestureController.cpp: |
| (WebKit::ViewGestureController::canSwipeInDirection const): |
| |
| 2018-04-21 Youenn Fablet <youenn@apple.com> |
| |
| Activate NetworkLoadChecker for media loads |
| https://bugs.webkit.org/show_bug.cgi?id=184841 |
| |
| Reviewed by Eric Carlson. |
| |
| Instantiate a NetworkLoadChecker for NetworkResourceLoader for audio/video loads. |
| |
| Move CORS checks for response after handling of 304 checks. |
| For 304 checks, we need to do the CORS checks on the validated cached response, not the 304 received response. |
| |
| Updated ResourceError argument coder to explicitly pass the error type |
| as some errors created by NetworkLoadChecker would otherwise be received as General errors by WebProcess. |
| Updated platform data encoding of ResourceError accordingly. |
| |
| All changes are covered by regular media loading layout tests. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::shouldUseNetworkLoadChecker): |
| (WebKit::NetworkResourceLoader::didReceiveResponse): |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<ResourceError>::encode): |
| (IPC::ArgumentCoder<ResourceError>::decode): |
| * Shared/mac/WebCoreArgumentCodersMac.mm: |
| (IPC::ArgumentCoder<ResourceError>::encodePlatformData): |
| (IPC::ArgumentCoder<ResourceError>::decodePlatformData): |
| We need to set the type after decoding the NSError as ResourceError tries to guess the type from NSError data. |
| * Shared/soup/WebCoreArgumentCodersSoup.cpp: |
| (IPC::ArgumentCoder<ResourceError>::encodePlatformData): |
| (IPC::ArgumentCoder<ResourceError>::decodePlatformData): |
| |
| 2018-04-20 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [SOUP] Do TLS error checking on GTlsConnection::accept-certificate |
| https://bugs.webkit.org/show_bug.cgi?id=184480 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Connect to GTlsConnection::accept-certificate signal instead of SoupMessage::notify::tls-errors to perform the |
| TLS errors check. |
| |
| * NetworkProcess/soup/NetworkDataTaskSoup.cpp: |
| (WebKit::NetworkDataTaskSoup::createRequest): Do not connect to SoupMessage::notify::tls-errors. |
| (WebKit::NetworkDataTaskSoup::tlsConnectionAcceptCertificateCallback): Call tlsConnectionAcceptCertificate() is |
| the task is still ongoing. |
| (WebKit::NetworkDataTaskSoup::tlsConnectionAcceptCertificate): Check TLS errors here. |
| (WebKit::NetworkDataTaskSoup::networkEventCallback): Pass the stream to networkEvent. |
| (WebKit::NetworkDataTaskSoup::networkEvent): Connect to GTlsConnection::accept-certificate. |
| * NetworkProcess/soup/NetworkDataTaskSoup.h: |
| |
| 2018-04-20 Timothy Hatcher <timothy@apple.com> |
| |
| NULL dereference crash sometimes under [super initWithCoder:] in WebView |
| |
| https://bugs.webkit.org/show_bug.cgi?id=184851 |
| rdar://problem/39611236 |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| (-[WKWebView effectiveAppearanceDidChange]): |
| Added a null check and call the code later in initialization. |
| |
| 2018-04-20 Tim Horton <timothy_horton@apple.com> |
| |
| Adjust geolocation feature flag |
| https://bugs.webkit.org/show_bug.cgi?id=184856 |
| |
| Reviewed by Wenson Hsieh. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2018-04-20 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed attempt to fix GTK build after r230867. |
| |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.cpp: |
| (webkit_dom_dom_window_get_self): |
| (webkit_dom_dom_window_get_window): |
| (webkit_dom_dom_window_get_frames): |
| (webkit_dom_dom_window_get_opener): |
| (webkit_dom_dom_window_get_parent): |
| (webkit_dom_dom_window_get_top): |
| |
| 2018-04-20 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r230873. |
| https://bugs.webkit.org/show_bug.cgi?id=184857 |
| |
| Broke the iOS build (Requested by cdumez on #webkit). |
| |
| Reverted changeset: |
| |
| "Disable backward and forward navigation swipes while in |
| fullscreen." |
| https://bugs.webkit.org/show_bug.cgi?id=184656 |
| https://trac.webkit.org/changeset/230873 |
| |
| 2018-04-20 Chris Dumez <cdumez@apple.com> |
| |
| REGRESSION (r229828): web view doesn’t update or respond to resizing until client calls policy decision handler |
| https://bugs.webkit.org/show_bug.cgi?id=184210 |
| <rdar://problem/39072354> |
| |
| Reviewed by Wenson Hsieh. |
| |
| r229828 tried to have some API tests happy on iOS by freezing the layer tree |
| during the navigation policy decision. However, this is observable by the client |
| application and a regression from when the policy delegate was synchronous. |
| |
| To address the issue, this patch reverts r229828 and instead updates the iOS |
| API tests to wait for the next presentation update after navigating |
| before interacting with the view. |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse): |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| (WebKit::WebFrameLoaderClient::cancelPolicyCheck): |
| (WebKit::WebFrameLoaderClient::provisionalLoadStarted): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2018-04-20 Brent Fulgham <bfulgham@apple.com> |
| |
| Limit cookie header access to Network process |
| https://bugs.webkit.org/show_bug.cgi?id=184764 |
| <rdar://problem/36785285> |
| |
| Reviewed by Youenn Fablet. |
| |
| Revise the handling of cookie request headers so that we don't interact with them in the |
| WebContent process. They are only needed for interaction with the server and the network |
| process, so we should limit their scope to just the Network process. |
| |
| Instead, we should handle a token that represents the cookie headers in the WebContent |
| process, which can be converted to the relevant cookie data in the network process when |
| needed. |
| |
| * NetworkProcess/NetworkSocketStream.cpp: |
| (WebKit::NetworkSocketStream::sendHandshake): |
| * NetworkProcess/NetworkSocketStream.h: |
| * NetworkProcess/NetworkSocketStream.messages.in: |
| * WebProcess/Network/WebSocketStream.cpp: |
| (WebKit::WebSocketStream::networkProcessCrashed): |
| (WebKit::WebSocketStream::platformSendHandshake): |
| (WebKit::WebSocketStream::didSendHandshake): |
| * WebProcess/Network/WebSocketStream.h: |
| * WebProcess/Network/WebSocketStream.messages.in: |
| |
| 2018-04-20 Jeremy Jones <jeremyj@apple.com> |
| |
| Disable backward and forward navigation swipes while in fullscreen. |
| https://bugs.webkit.org/show_bug.cgi?id=184656 |
| rdar://problem/36057535 |
| |
| Reviewed by Tim Horton. |
| |
| Disable navigation swipes while in fullscreen. |
| |
| * UIProcess/Cocoa/ViewGestureController.cpp: |
| (WebKit::ViewGestureController::canSwipeInDirection const): |
| |
| 2018-04-20 Jeremy Jones <jeremyj@apple.com> |
| |
| Element fullscreen, expose WKWebView _fullScreenPlaceholderView as iOS SPI |
| https://bugs.webkit.org/show_bug.cgi?id=184826 |
| rdar://problem/39600825 |
| |
| Reviewed by Tim Horton. |
| |
| Add _fullScreenPlaceholderView for iOS similar to the one for Mac. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _fullScreenPlaceholderView]): |
| (-[WKWebView closeFullScreenWindowController]): |
| (-[WKWebView fullScreenPlaceholderView]): Deleted. |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.h: |
| * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm: |
| (-[WKFullScreenWindowController webViewPlaceholder]): |
| |
| 2018-04-20 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Injected bundle form client should be notified when editing text fields |
| https://bugs.webkit.org/show_bug.cgi?id=184822 |
| <rdar://problem/38807319> |
| |
| Reviewed by Tim Horton. |
| |
| Fixes the bug by making a couple of tweaks: (1) don't use a separate codepath for inserting text in text inputs, |
| and (2) force a user typing gesture when inserting text using this codepath (i.e. WKTextInputListViewController). |
| Also adds plumbing to enable testing text entry with WKTextInputListViewController in extra zoom mode. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _simulateTextEntered:]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| |
| Introduce testing SPI to simulate text entry. Additionally, add a missing availability annotation around testing |
| SPI added in 2017 to help test drag and drop for iOS 11. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _simulateTextEntered:]): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::setTextAsync): |
| |
| 2018-04-20 Jeremy Jones <jeremyj@apple.com> |
| |
| EnterFullscreen must update the minimum and maximum layout sizes. |
| https://bugs.webkit.org/show_bug.cgi?id=184828 |
| rdar://problem/38435829 |
| |
| Reviewed by Jon Lee. |
| |
| Without this, the WKWebView won't layout to the full size in fullscreen mode. |
| |
| * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm: |
| (-[WKFullScreenWindowController enterFullScreen]): |
| |
| 2018-04-18 Jer Noble <jer.noble@apple.com> |
| |
| Don't put build products into WK_ALTERNATE_WEBKIT_SDK_PATH for engineering builds |
| https://bugs.webkit.org/show_bug.cgi?id=184762 |
| |
| Reviewed by Dan Bernstein. |
| |
| * Configurations/BaseTarget.xcconfig: |
| |
| 2018-04-20 Youenn Fablet <youenn@apple.com> |
| |
| Refactor NetworkResourceLoader to check for m_networkLoadChecker presence before using it |
| https://bugs.webkit.org/show_bug.cgi?id=184755 |
| |
| Reviewed by Chris Dumez. |
| |
| Make NetworkResourceLoader always use m_networkLoadChecker if there is one. |
| This is only used now for synchronous loads but will be used in the future for asynchronous loads as well. |
| |
| Since we call didFail asynchronously to make sync/async handling more consistent, |
| We need to keep track of whether we will do clean-up twice. |
| A boolean is added for that purpose in NetworkResourceLoader. |
| |
| There is a small change of behavior in the way we return an error. |
| Instead of returning a platformBadResponseError, we are now returning the error as computed by NetworkLoadChecker. |
| This allows getting some more error logging in the JS console. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::didReceiveResponse): |
| (WebKit::NetworkResourceLoader::willSendRedirectedRequest): |
| (WebKit::NetworkResourceLoader::continueWillSendRedirectedRequest): |
| (WebKit::NetworkResourceLoader::didRetrieveCacheEntry): |
| * NetworkProcess/NetworkResourceLoader.h: |
| |
| 2018-04-20 Timothy Hatcher <timothy@apple.com> |
| |
| Include missing files in WKContentViewInteraction.{mm,h} |
| |
| https://bugs.webkit.org/show_bug.cgi?id=184832 |
| rdar://problem/35377120 |
| |
| Reviewed by Wenson Hsieh. |
| |
| Some WebDriver files were missing and should be included. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView setupInteraction]): |
| (-[WKContentView cleanupInteraction]): |
| (-[WKContentView _removeDefaultGestureRecognizers]): |
| (-[WKContentView _addDefaultGestureRecognizers]): |
| |
| 2018-04-20 Youenn Fablet <youenn@apple.com> |
| |
| WebPage sometimes incorrectly rules out PDF as a mime type that can be showed |
| https://bugs.webkit.org/show_bug.cgi?id=184369 |
| |
| Reviewed by Chris Dumez. |
| |
| Use API to check for plugin availability for response at navigation time. |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::canShowResponse const): |
| (WebKit::WebPage::canShowMIMEType const): |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2018-04-20 Daniel Bates <dabates@apple.com> |
| |
| Remove Strong Password decoration when text field type changes |
| https://bugs.webkit.org/show_bug.cgi?id=184795 |
| <rdar://problem/38325108> |
| |
| Reviewed by Antti Koivisto. |
| |
| Add injected bundle API and WebKit UI delegate SPI to notify the embedding client when the |
| Strong Password appearance of an HTML input element is resigned. |
| |
| We add C SPI for Safari on Mac. |
| |
| * UIProcess/API/APIUIClient.h: |
| (API::UIClient::didResignInputElementStrongPasswordAppearance): |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetPageUIClient): |
| * UIProcess/API/C/WKPageUIClient.h: |
| * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: |
| * UIProcess/Cocoa/UIDelegate.h: |
| * UIProcess/Cocoa/UIDelegate.mm: |
| (WebKit::UIDelegate::setDelegate): |
| (WebKit::UIDelegate::UIClient::didResignInputElementStrongPasswordAppearance): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didResignInputElementStrongPasswordAppearance): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/InjectedBundle/API/APIInjectedBundlePageUIClient.h: |
| (API::InjectedBundle::PageUIClient::didResignInputElementStrongPasswordAppearance): |
| * WebProcess/InjectedBundle/API/c/WKBundlePageUIClient.h: |
| * WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp: |
| (WebKit::InjectedBundlePageUIClient::didResignInputElementStrongPasswordAppearance): |
| * WebProcess/InjectedBundle/InjectedBundlePageUIClient.h: |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::inputElementDidResignStrongPasswordAppearance): |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| |
| 2018-04-20 Megan Gardner <megan_gardner@apple.com> |
| |
| Fixes for failing tests associated with switching Text Selection Assistants |
| https://bugs.webkit.org/show_bug.cgi?id=184806 |
| <rdar://problem/39367905> |
| |
| Reviewed by Beth Dakin and Wenson Hsieh. |
| |
| The major fix is the disabling the double tap noneditable text selection gesture. |
| The other fixes are small tweaks that shouldn't even be run into with the fix to |
| the double tap gesture, but they are incorrect, so I am taking the opportunity to |
| fix them now, in case we run into them again. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView textInteractionGesture:shouldBeginAtPoint:]): |
| We should not be allowing a double tap text gestures in non-editable web content. |
| We didn't have one with the old assistant. Fortunately, this is easily disabled. |
| (-[WKContentView canPerformActionForWebView:withSender:]): |
| We should not allow the lookup action if we do not actually have a selection. |
| It is meaningless without one. |
| (-[WKContentView selectedTextRange]): |
| We should not return a selection to UIKit if all we have is caret selection |
| in non-editable content. We have this for selections on Mac, but UIKit does |
| not know how to properly handle this, and will have incorrect behavior if we |
| return a valid selection. |
| |
| 2018-04-20 Timothy Hatcher <timothy@apple.com> |
| |
| WebEvent fails to convert synthetic WebMouseEvent for automation |
| |
| https://bugs.webkit.org/show_bug.cgi?id=184824 |
| rdar://problem/35377120 |
| |
| Reviewed by Brian Burg. |
| |
| Add WebEvent conversions that existed in PlatformEventFactoryIOS for legacy WebKit, |
| but never got added in WebIOSEventFactory and NativeWebMouseEvent for modern WebKit. |
| This affected WebDriver, and some events not being deliverd to the page. |
| |
| * Shared/NativeWebMouseEvent.h: |
| (WebKit::NativeWebMouseEvent::nativeEvent const): |
| * Shared/ios/NativeWebMouseEventIOS.mm: Added. |
| (WebKit::NativeWebMouseEvent::NativeWebMouseEvent): |
| * Shared/ios/WebIOSEventFactory.h: |
| * Shared/ios/WebIOSEventFactory.mm: |
| (WebIOSEventFactory::createWebMouseEvent): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-04-20 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, fix -Wformat warning |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didFinishLoadForFrame): |
| |
| 2018-04-20 Youenn Fablet <youenn@apple.com> |
| |
| Make PluginData cache its web visible plugins |
| https://bugs.webkit.org/show_bug.cgi?id=184421 |
| |
| Reviewed by Chris Dumez. |
| |
| Rename methods. |
| Pass an URL instead of relying on Page URL as the page URL |
| might not always be the URL we want to check against plugins. |
| In particular when navigation is on-going, we want to check the |
| plugins against the being navigated URL. |
| |
| * WebProcess/Plugins/WebPluginInfoProvider.cpp: |
| (WebKit::WebPluginInfoProvider::pluginInfo): |
| (WebKit::WebPluginInfoProvider::webVisiblePluginInfo): |
| * WebProcess/Plugins/WebPluginInfoProvider.h: |
| |
| 2018-04-19 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Fix GTK+ build after r230830. |
| |
| Add SimulatedInputDispatcher.cpp to the build. |
| |
| * CMakeLists.txt: |
| |
| 2018-04-19 Brady Eidson <beidson@apple.com> |
| |
| Make back forward cache work with process swapping. |
| <rdar://problem/38676604> and https://bugs.webkit.org/show_bug.cgi?id=184793 |
| |
| Reviewed by Chris Dumez. |
| |
| We previously saved old processes in "SuspendedPageProxy" objects. |
| Now we reuse them when going back or forward. |
| |
| * Platform/Logging.h: |
| |
| * Shared/WebBackForwardListItem.cpp: |
| (WebKit::WebBackForwardListItem::setSuspendedPage): |
| (WebKit::WebBackForwardListItem::loggingString): |
| * Shared/WebBackForwardListItem.h: |
| (WebKit::WebBackForwardListItem::suspendedPage const): |
| |
| Teach Navigation objects their source WebBackForwardListItems: |
| * UIProcess/API/APINavigation.cpp: |
| (API::Navigation::Navigation): |
| (API::Navigation::loggingString const): |
| * UIProcess/API/APINavigation.h: |
| (API::Navigation::create): |
| (API::Navigation::targetItem const): |
| (API::Navigation::fromItem const): |
| (API::Navigation::backForwardListItem): Deleted. |
| |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): |
| |
| * UIProcess/SuspendedPageProxy.cpp: |
| (WebKit::messageNamesToIgnoreWhileSuspended): |
| (WebKit::SuspendedPageProxy::SuspendedPageProxy): |
| (WebKit::SuspendedPageProxy::~SuspendedPageProxy): |
| (WebKit::SuspendedPageProxy::webProcessDidClose): |
| (WebKit::SuspendedPageProxy::didReceiveMessage): |
| (WebKit::SuspendedPageProxy::loggingString const): |
| * UIProcess/SuspendedPageProxy.h: |
| (WebKit::SuspendedPageProxy::origin const): |
| |
| * UIProcess/WebBackForwardList.cpp: |
| (WebKit::WebBackForwardList::WebBackForwardList): |
| (WebKit::WebBackForwardList::~WebBackForwardList): |
| (WebKit::WebBackForwardList::pageClosed): |
| (WebKit::WebBackForwardList::addItem): |
| (WebKit::WebBackForwardList::goToItem): |
| (WebKit::WebBackForwardList::removeAllItems): |
| (WebKit::WebBackForwardList::clear): |
| (WebKit::WebBackForwardList::restoreFromState): |
| (WebKit::WebBackForwardList::filteredItemStates const): |
| (WebKit::WebBackForwardList::itemStates const): |
| (WebKit::WebBackForwardList::loggingString): |
| * UIProcess/WebBackForwardList.h: |
| |
| * UIProcess/WebNavigationState.cpp: |
| (WebKit::WebNavigationState::createLoadRequestNavigation): |
| (WebKit::WebNavigationState::createBackForwardNavigation): |
| * UIProcess/WebNavigationState.h: |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::reattachToWebProcess): |
| (WebKit::WebPageProxy::maybeCreateSuspendedPage): |
| (WebKit::WebPageProxy::reattachToWebProcessWithItem): |
| (WebKit::WebPageProxy::loadRequest): |
| (WebKit::WebPageProxy::loadFile): |
| (WebKit::WebPageProxy::goToBackForwardItem): |
| (WebKit::WebPageProxy::receivedPolicyDecision): |
| (WebKit::WebPageProxy::continueNavigationInNewProcess): |
| (WebKit::WebPageProxy::didCreateMainFrame): |
| (WebKit::WebPageProxy::didCreateSubframe): |
| (WebKit::WebPageProxy::didStartProvisionalLoadForFrame): |
| (WebKit::WebPageProxy::didFailProvisionalLoadForFrame): |
| (WebKit::WebPageProxy::didCommitLoadForFrame): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::connectionWillOpen): |
| (WebKit::WebPageProxy::attachToProcessForNavigation): Deleted. |
| * UIProcess/WebPageProxy.h: |
| |
| * UIProcess/WebProcessLifetimeTracker.cpp: |
| (WebKit::WebProcessLifetimeTracker::webPageEnteringWebProcess): |
| (WebKit::WebProcessLifetimeTracker::connectionWillOpen): Deleted. |
| * UIProcess/WebProcessLifetimeTracker.h: |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigation): |
| (WebKit::WebProcessPool::registerSuspendedPageProxy): |
| (WebKit::WebProcessPool::unregisterSuspendedPageProxy): |
| * UIProcess/WebProcessPool.h: |
| |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::suspendWebPageProxy): |
| (WebKit::WebProcessProxy::updateBackForwardItem): |
| (WebKit::WebProcessProxy::frameCreated): |
| * UIProcess/WebProcessProxy.h: |
| |
| * WebProcess/WebPage/DrawingArea.h: |
| (WebKit::DrawingArea::attachDrawingArea): |
| |
| * WebProcess/WebPage/WebBackForwardListProxy.cpp: |
| (WebKit::WebBackForwardListProxy::addItemFromUIProcess): |
| (WebKit::WebBackForwardListProxy::addItem): |
| * WebProcess/WebPage/WebBackForwardListProxy.h: |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_credentialsMessenger): |
| (WebKit::WebPage::reinitializeWebPage): |
| (WebKit::WebPage::goToBackForwardItem): |
| (WebKit::WebPage::restoreSessionInternal): |
| (WebKit::WebPage::restoreSession): |
| (WebKit::WebPage::updateBackForwardListForReattach): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h: |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: |
| (WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea): |
| (WebKit::TiledCoreAnimationDrawingArea::attachDrawingArea): Force a reattachment of the drawing |
| area from a resumed WebProcess to the UIProcess (to make the page cache work) |
| |
| 2018-04-19 Brian Burg <bburg@apple.com> |
| |
| Web Automation: add support for mouse/keyboard interaction sequences |
| https://bugs.webkit.org/show_bug.cgi?id=184603 |
| <rdar://problem/39421839> |
| |
| Reviewed by Timothy Hatcher. |
| |
| Add new protocol methods and WebKit support for implementing the W3C Actions API. |
| This is a generic command for sending low-level mouse, key, and touch events to |
| test page behavior when performing drag-and-drop, gestures, or specific keydown/keyups. |
| |
| To implement this functionality, this patch adds SimulatedInputDispatcher, a class |
| for dispatching input events asynchronously. Similar to the WebDriver specification, |
| this is designed as a keyframing API. Callers set up several "input sources" such |
| as keyboard or mouse, and then specify the states of that input source over time. The |
| dispatcher calculates diffs between the previous and current keyframes and generates |
| the appropriate events that would happen if a user caused the state transition. |
| |
| For example, if a mouse input source's state changes, the dispatcher sends synthetic mousemove, |
| mousedown, or mouseup events depending on the pre- and post-state. This is uninteresting |
| and overcomplicated for simple key and mouse presses, but it's really designed with an |
| eye towards supporting mousemove interpolation and touch event interpolation in later patches. |
| |
| The strategy for dispatching events depends on the input source type; right now, these |
| map directly to the existing platformSimulate{Mouse, Keyboard}Interaction methods. In |
| the future, the dispatch strategy may be elaborated for interpolated mousemove events. |
| |
| This patch depends on support added in bug 184462. |
| |
| No tests yet. When this command is hooked up to a driver, the code will be exercised by |
| W3C actions test suite, which is fairly complex at this point relative to end-user code. |
| |
| * UIProcess/Automation/Automation.json: Add new types and commands. |
| |
| * UIProcess/Automation/SimulatedInputDispatcher.h: Added. |
| (WebKit::SimulatedInputSourceState::emptyState): |
| (WebKit::SimulatedInputSource::create): |
| (WebKit::SimulatedInputSource::SimulatedInputSource): |
| (WebKit::SimulatedInputDispatcher::Client::~Client): |
| Add structs for input source, source state, and keyframe. |
| The dispatcher's client interface is implemented by WebAutomationSession. |
| |
| (WebKit::SimulatedInputDispatcher::create): |
| * UIProcess/Automation/SimulatedInputDispatcher.cpp: Added. |
| (WebKit::SimulatedInputKeyFrame::SimulatedInputKeyFrame): |
| (WebKit::SimulatedInputKeyFrame::maximumDuration const): |
| (WebKit::SimulatedInputKeyFrame::keyFrameFromStateOfInputSources): |
| (WebKit::SimulatedInputKeyFrame::keyFrameToResetInputSources): |
| (WebKit::SimulatedInputDispatcher::SimulatedInputDispatcher): |
| (WebKit::SimulatedInputDispatcher::~SimulatedInputDispatcher): |
| (WebKit::SimulatedInputDispatcher::isActive const): |
| (WebKit::SimulatedInputDispatcher::keyFrameTransitionDurationTimerFired): |
| (WebKit::SimulatedInputDispatcher::isKeyFrameTransitionComplete const): |
| (WebKit::SimulatedInputDispatcher::transitionToNextKeyFrame): |
| (WebKit::SimulatedInputDispatcher::transitionToNextInputSourceState): |
| (WebKit::SimulatedInputDispatcher::transitionBetweenKeyFrames): |
| (WebKit::SimulatedInputDispatcher::transitionInputSourceToState): |
| (WebKit::SimulatedInputDispatcher::run): |
| (WebKit::SimulatedInputDispatcher::cancel): |
| (WebKit::SimulatedInputDispatcher::finishDispatching): |
| The dispatcher handles one interaction at a time. The interaction is described |
| by an array of keyframes, and each keyframe has an array of states. The dispatcher |
| transitions between keyframes by sequentially and asynchronously emitting events |
| that cause each input source state to transition as desired. Keyframe transitions |
| are additionally gated by a "maximum duration" timer. Each step that the dispatcher |
| executes is asynchronous, so the dispatcher keeps most state in members and uses |
| error argument lambdas as completion handlers for various async things. |
| |
| * UIProcess/Automation/WebAutomationSession.h: |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::WebAutomationSession): |
| (WebKit::WebAutomationSession::inputDispatcherForPage): |
| (WebKit::WebAutomationSession::inputSourceForType const): |
| Add canonical input sources that are used to keep track of state across |
| interaction sequences. |
| |
| (WebKit::WebAutomationSession::isSimulatingUserInteraction const): |
| (WebKit::WebAutomationSession::mouseEventsFlushedForPage): |
| (WebKit::WebAutomationSession::keyboardEventsFlushedForPage): |
| Remove m_simulatingUserInteraction since it can be computed based on other members. |
| |
| (WebKit::WebAutomationSession::willClosePage): |
| If the page is being torn down, stop the dispatcher if needed and cancel any |
| callbacks waiting for mouse/key events to be retired. |
| |
| (WebKit::WebAutomationSession::simulateMouseInteraction): |
| (WebKit::WebAutomationSession::simulateKeyboardInteraction): |
| Add easy-to-use async methods for simulating mouse and key events. These are |
| hooked up to SimulatedInputDispatcher using async completion handlers. |
| |
| (WebKit::protocolMouseButtonToWebMouseEventButton): |
| (WebKit::WebAutomationSession::performMouseInteraction): |
| (WebKit::WebAutomationSession::performKeyboardInteractions): |
| Adjust some naming. |
| |
| (WebKit::simulatedInputSourceTypeFromProtocolSourceType): |
| (WebKit::WebAutomationSession::performInteractionSequence): |
| (WebKit::WebAutomationSession::cancelInteractionSequence): |
| Add command handlers for the new action commands in Automation protocol. |
| |
| * UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp: |
| (WebKit::mouseButtonToGdkButton): |
| (WebKit::WebAutomationSession::platformSimulateMouseInteraction): |
| (WebKit::WebAutomationSession::platformSimulateKeyboardInteraction): |
| (WebKit::WebAutomationSession::platformSimulateKeyStroke): Deleted. |
| * UIProcess/Automation/ios/WebAutomationSessionIOS.mm: |
| (WebKit::WebAutomationSession::platformSimulateKeyboardInteraction): |
| (WebKit::WebAutomationSession::platformSimulateKeyStroke): Deleted. |
| Rename the keyboard platform method to match the naming of the mouse platform method. |
| Take advantage of the 'using' alias to make the tedious switches easier to read. |
| |
| * UIProcess/Automation/mac/WebAutomationSessionMac.mm: |
| (WebKit::WebAutomationSession::platformSimulateMouseInteraction): |
| (WebKit::virtualKeyHasStickyModifier): |
| (WebKit::keyCodeForVirtualKey): |
| (WebKit::eventModifierFlagsForVirtualKey): |
| (WebKit::WebAutomationSession::platformSimulateKeyboardInteraction): |
| (WebKit::WebAutomationSession::platformSimulateKeySequence): |
| (WebKit::keyHasStickyModifier): Deleted. |
| (WebKit::WebAutomationSession::platformSimulateKeyStroke): Deleted. |
| Allow the keyboard simulation method to take a virtual key and unichar to better |
| match how this is used by the Perform Actions command and its machinery. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-04-19 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Remove access to keychain from the WebContent process |
| https://bugs.webkit.org/show_bug.cgi?id=184428 |
| <rdar://problem/13150903> |
| |
| Reviewed by Brent Fulgham. |
| |
| Part 1. |
| |
| Remove com.apple.identities from WebContent-iOS.entitlements, which is needed to encode/decode NSError’s userInfo[NSErrorClientCertificateChainKey] |
| when the corresponding NSErorr is relayed through WebContent Process from Networking Process to UI Process after a HTTPS client certificate |
| authentication is rejected becuase of bad certificates. This patch implements corresponding workarounds as well. The workaround works for mac, too. |
| |
| Sadly, this change can only be tested manually at this moment. Please refer to the radar for testing steps. |
| |
| * Configurations/WebContent-iOS.entitlements: |
| * Shared/mac/WebCoreArgumentCodersMac.mm: |
| (IPC::encodeNSError): |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitialize): |
| |
| 2018-04-19 David Kilzer <ddkilzer@apple.com> |
| |
| Enable Objective-C weak references |
| <https://webkit.org/b/184789> |
| <rdar://problem/39571716> |
| |
| Reviewed by Dan Bernstein. |
| |
| * Configurations/Base.xcconfig: |
| (CLANG_ENABLE_OBJC_WEAK): Enable. |
| |
| 2018-04-19 Youenn Fablet <youenn@apple.com> |
| |
| Web Inspector backend should get headers & cookies from network process separately from resource requests |
| https://bugs.webkit.org/show_bug.cgi?id=184396 |
| <rdar://problem/38877384> |
| |
| Reviewed by Brian Burg. |
| |
| Add support for storing response and network metrics for every resource load. |
| This is made conditional on inspector being activated. |
| NetworkConnectionToWebProcess keeps a response and network metrics for every load. |
| This is cleared when inspector is going away or when a web process requests |
| the data. |
| |
| WebLoaderStrategy gets this data through synchronous IPC. |
| Synchronous IPC is a temporary implementation until Inspector code gets refactored. |
| |
| Updated WebLoaderStrategy to pass the sourceOrigin for every NetworkResourceLoader. |
| This activates additional sanitization based on cross origin status. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::setCaptureExtraNetworkLoadMetricsEnabled): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| (WebKit::NetworkConnectionToWebProcess::takeNetworkLoadInformationResponse): |
| (WebKit::NetworkConnectionToWebProcess::takeNetworkLoadInformationMetrics): |
| (WebKit::NetworkConnectionToWebProcess::addNetworkLoadInformationResponse): |
| (WebKit::NetworkConnectionToWebProcess::addNetworkLoadInformationMetrics): |
| (WebKit::NetworkConnectionToWebProcess::removeNetworkLoadInformation): |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::didReceiveResponse): |
| (WebKit::NetworkResourceLoader::didFinishLoading): |
| (WebKit::NetworkResourceLoader::didFailLoading): |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::responseFromResourceLoadIdentifier): |
| (WebKit::WebLoaderStrategy::networkMetricsFromResourceLoadIdentifier): |
| * WebProcess/Network/WebLoaderStrategy.h: |
| * WebProcess/Network/WebResourceLoader.cpp: |
| (WebKit::WebResourceLoader::didReceiveResponse): |
| |
| 2018-04-19 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Add a mechanism to extend the height of the layout viewport in extra zoom mode |
| https://bugs.webkit.org/show_bug.cgi?id=184782 |
| <rdar://problem/38346712> |
| |
| Reviewed by Tim Horton. |
| |
| In extra zoom mode, at initial scale, fixed position elements may take up a large portion of the viewport. This |
| leaves little room for non-fixed-position elements; to improve this experience, we introduce a mechanism to |
| extend the height of the layout viewport. By default, the layout viewport size is determined by the FrameView's |
| baseLayoutViewportSize, and passed into FrameView::computeUpdatedLayoutViewportRect in the client layer; in |
| extra zoom mode, if the layout viewport is shorter than the document width, we try to double the height of the |
| layout viewport and clamp to the document height if necessary. |
| |
| * Shared/WebPreferences.yaml: |
| |
| Add a new preference to determine the factor by which we should expand the height of the layout viewport. By |
| default, this is 0 (no increase in layout viewport height); in extra zoom mode, this is 1, which means we'll |
| increase the layout viewport's height by 1x the default height. |
| |
| * Shared/WebPreferencesDefaultValues.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView activeMinimumLayoutSizes:]): |
| |
| Fixes a bug when computing the active minimum layout size. If a minimum allowed layout width is specified, we |
| clamp the active layout width (normally the view size) so that it is no less than the minimum allowed layout |
| width. However, the height is currently unaffected, which causes FrameView::baseLayoutViewportSize to return a |
| bogus size, where the width is scaled to 320px but the height isn't. Instead, we should scale the layout height |
| to match the new width here. |
| |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::computeCustomFixedPositionRect const): |
| |
| Expand the base viewport layout size if necessary, given the expansion factor in WebPreferences. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::updatePreferences): |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::dynamicViewportSizeUpdate): |
| |
| Expand the base viewport layout size if necessary, given the expansion factor in Settings. |
| |
| 2018-04-19 Brian Burg <bburg@apple.com> |
| |
| Web Automation: simulated mouse interactions should not be done until associated DOM events have been dispatched |
| https://bugs.webkit.org/show_bug.cgi?id=184462 |
| <rdar://problem/39323336> |
| |
| Reviewed by Carlos Garcia Campos and Tim Horton. |
| |
| Covered by existing layout tests and actions endpoints in WebDriver test suite. |
| |
| In preparation for implementing the W3C WebDriver command "Perform Actions", we need a way to |
| know when a simulated mouse event has been fully processed by WebProcess and it is okay to continue |
| to dispatch more simulated events. |
| |
| This patch makes mouse events go through a queue as they are delivered to WebPageProxy. The approach |
| is very similar to how key events are handled. In the key event case, lots of WebEvents can come out |
| of typing one keystroke, so these need to be queued up and retired one by one when the WebProcess has |
| finished handling each event. In some mouse event cases---particularly fake mouse moves---there can |
| also be more than one mouse event waiting to be handled by WebProcess. |
| |
| In the past, these queued mouse events were tracked with several member variables as different |
| use cases emerged. These are all replaced with ordinary deque operations, such as peeking or |
| checking the queue length. |
| |
| * Platform/Logging.h: Add logging channel for mouse events. |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::AutomationCommandError::toProtocolString): Add type-safe helper class for command errors. |
| In future patches we can hide knowledge of how this is sent over the protocol by relying more on |
| the convenience constructors and .toProtocolString() method. |
| |
| (WebKit::WebAutomationSession::willShowJavaScriptDialog): |
| This section needs adjustments. Since performMouseInteraction now depends on key events being processed |
| prior to returning from the command, we need to abort any key event callbacks that are pending if an |
| alert pops up as a result of sending a mousedown event. Any mouse events that are still queued will |
| be handled when the alert is dismissed and the nested run loop exits. |
| |
| (WebKit::WebAutomationSession::mouseEventsFlushedForPage): |
| (WebKit::WebAutomationSession::keyboardEventsFlushedForPage): |
| Modernize this a bit. Don't spread knowledge about how commands are sent back out into event handling code. |
| Our wrapper callbacks in performXXXInteraction handle the protocol-specific details of the response. |
| |
| (WebKit::WebAutomationSession::performMouseInteraction): |
| Add code similar to performKeyboardInteractions so that the command doesn't finish until the mouse |
| event has been fully handled. Unlike keyboards, sometimes mouse interactions don't turn into WebEvents |
| so we also need to handle the case where there is nothing to be waited on because hit testing did |
| not return a target to deliver the event to. |
| |
| (WebKit::WebAutomationSession::performKeyboardInteractions): |
| Modernize a little bit to use generic callbacks rather than protocol-generated callbacks in the |
| event waiting/handling code. Now it matches the types used for the mouse event case. |
| |
| * UIProcess/Automation/WebAutomationSession.h: |
| (WebKit::AutomationCommandError::AutomationCommandError): |
| Add a helper struct to hold an enumerated error name and an optional free-form error message. |
| |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::webMouseEventTypeString): |
| (WebKit::webKeyboardEventTypeString): |
| (WebKit::WebPageProxy::handleMouseEvent): |
| (WebKit::WebPageProxy::processNextQueuedMouseEvent): |
| Split the old method into handleMouseEvent (called by other code) and processNextQueuedMouseEvent. |
| The latter sends the next mouse event to WebProcess, and can be triggered in didReceiveEvent |
| if there are more mouse events to be sent to WebProcess. |
| |
| (WebKit::WebPageProxy::isProcessingMouseEvents const): Added. |
| (WebKit::WebPageProxy::currentlyProcessedMouseDownEvent): Reimplemented on top of the deque. |
| (WebKit::WebPageProxy::didReceiveEvent): |
| Unify the code paths for different mouse event types to all use the deque. They also will |
| notify the automation session if there are no more mouse events to send (i.e., interaction is over). |
| |
| (WebKit::WebPageProxy::resetStateAfterProcessExited): Add handling for new map. |
| |
| 2018-04-19 Andy Estes <aestes@apple.com> |
| |
| [iOS] Implement find-in-page in the new WKPDFView |
| https://bugs.webkit.org/show_bug.cgi?id=184654 |
| <rdar://problem/39331654> |
| |
| Reviewed by Tim Horton. |
| |
| This is theoretically covered by existing WKPDFView API tests, but that's currently blocked |
| by <rdar://problem/39475542>. |
| |
| * UIProcess/ios/WKPDFView.mm: |
| (stringCompareOptions): |
| |
| Mapped _WKFindOptions to NSStringCompareOptions. |
| |
| (-[WKPDFView _resetFind]): |
| |
| Cancelled an in-progress search and reset the search state. |
| |
| (-[WKPDFView _findString:withOptions:maxCount:completion:]): |
| |
| Stored the completion block, find string, and max count, then called |
| -[PDFHostViewController findString:withOptions:]. |
| |
| (-[WKPDFView web_countStringMatches:options:maxCount:]): |
| |
| Called -_findString:withOptions:maxCount:completion: with a completion block that calls |
| FindClient::didCountStringMatches() with _findStringCount. |
| |
| (-[WKPDFView _computeFocusedSearchResultIndexWithOptions:didWrapAround:]): |
| |
| Computed the focused search result index, taking _findStringCount and wrap-around into |
| account. There are two interesting cases to mention here: |
| |
| 1. We can't change focus while a search is in progress, because we can't properly handle |
| wrap-around without a _findStringCount. If a search is in progress, store the requested |
| focus change in _focusedSearchResultPendingOffset, which will be applied once the search |
| finishes. |
| |
| 2. If wrap-around is about to happen but the find options do not allow it, we need to call |
| FindClient::didFailToFindString(). Handle this by returning NO, which will tell |
| -_focusOnSearchResultWithOptions: to call didFailToFindString() if a search is not in |
| progress. |
| |
| (-[WKPDFView _focusOnSearchResultWithOptions:]): |
| |
| If -_computeFocusedSearchResultIndexWithOptions:didWrapAround: failed while a search is in |
| progress, just return early. Otherwise, call FindClient::didFailToFindString(). If |
| computing the index did not fail, call -[PDFHostViewController focusOnSearchResultAtIndex:] |
| to change focus and then call FindClient::didFindString() to inform the client. |
| |
| (-[WKPDFView web_findString:options:maxCount:]): |
| |
| If the find string is equal to _findString, change focus. Otherwise, start a new search. |
| |
| (-[WKPDFView web_hideFindUI]): |
| |
| Called -_resetFind. |
| |
| (-[WKPDFView pdfHostViewController:findStringUpdate:done:]): |
| |
| Stored the count in _findStringCount and called _findCompletion once the search is done. |
| |
| 2018-04-17 Filip Pizlo <fpizlo@apple.com> |
| |
| The InternalFunction hierarchy should be in IsoSubspaces |
| https://bugs.webkit.org/show_bug.cgi?id=184721 |
| |
| Reviewed by Saam Barati. |
| |
| * WebProcess/Plugins/Netscape/JSNPMethod.cpp: |
| (WebKit::JSNPMethod::subspaceForImpl): |
| * WebProcess/Plugins/Netscape/JSNPMethod.h: |
| (WebKit::JSNPMethod::create): Deleted. |
| (WebKit::JSNPMethod::npIdentifier const): Deleted. |
| (WebKit::JSNPMethod::createStructure): Deleted. |
| * WebProcess/Plugins/Netscape/JSNPObject.cpp: |
| (WebKit::JSNPObject::subspaceForImpl): |
| * WebProcess/Plugins/Netscape/JSNPObject.h: |
| (WebKit::JSNPObject::create): Deleted. |
| (WebKit::JSNPObject::npObject const): Deleted. |
| (WebKit::JSNPObject::createStructure): Deleted. |
| |
| 2018-04-19 Brady Eidson <beidson@apple.com> |
| |
| Add globally-unique HistoryItem identifiers (and have WebKit2 adopt them). |
| <rdar://problem/39533949> and https://bugs.webkit.org/show_bug.cgi?id=184750 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| With process swapping, the assumption that "back/forward items belong to a process" is invalid. |
| |
| All HistoryItem/WebBackForwardListItems now need to be uniquely identified across all processes, |
| no matter which process they originated from, so there will never be a collision in the UIProcess. |
| |
| This allows us to: |
| - Have the UIProcess to keep a single process-wide map of all WebBackForwardListItems |
| - Get rid of the per-WebProcess WebBackForwardListItem map |
| - Simplify a lot of WebBackForwardList(Proxy) code that no longer needs to keep that per-process |
| map in sync |
| - Get rid of a lot of other ancillary code |
| |
| * Shared/SessionState.cpp: |
| (WebKit::BackForwardListItemState::decode): |
| * Shared/SessionState.h: |
| |
| * Shared/WebBackForwardListItem.cpp: |
| (WebKit::WebBackForwardListItem::WebBackForwardListItem): |
| (WebKit::WebBackForwardListItem::~WebBackForwardListItem): |
| (WebKit::WebBackForwardListItem::itemForID): |
| (WebKit::WebBackForwardListItem::highestUsedItemID): Deleted. |
| * Shared/WebBackForwardListItem.h: |
| (WebKit::WebBackForwardListItem::itemID const): |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| |
| * UIProcess/WebBackForwardList.cpp: |
| (WebKit::WebBackForwardList::itemForID): |
| (WebKit::WebBackForwardList::pageClosed): |
| (WebKit::WebBackForwardList::addItem): |
| (WebKit::WebBackForwardList::restoreFromState): |
| (WebKit::generateWebBackForwardItemID): Deleted. |
| * UIProcess/WebBackForwardList.h: |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::maybeCreateSuspendedPage): |
| (WebKit::WebPageProxy::initializeWebPage): |
| (WebKit::WebPageProxy::willGoToBackForwardListItem): |
| (WebKit::WebPageProxy::restoreFromSessionState): |
| (WebKit::WebPageProxy::backForwardAddItem): |
| (WebKit::WebPageProxy::backForwardGoToItem): |
| (WebKit::WebPageProxy::backForwardItemAtIndex): |
| (WebKit::WebPageProxy::creationParameters): |
| (WebKit::WebPageProxy::backForwardRemovedItem): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| |
| * UIProcess/WebProcessPool.cpp: Explicitly set the UIProcess Process::Identifier so it starts |
| at "1" and then the first child process starts at "2", etc etc. |
| |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::removeWebPage): |
| (WebKit::WebProcessProxy::checkURLReceivedFromWebProcess): |
| (WebKit::WebProcessProxy::updateBackForwardItem): |
| (WebKit::WebProcessProxy::webBackForwardItem const): Deleted. |
| (WebKit::WebProcessProxy::registerNewWebBackForwardListItem): Deleted. |
| (WebKit::WebProcessProxy::removeBackForwardItem): Deleted. |
| (WebKit::WebProcessProxy::addOrUpdateBackForwardItem): Deleted. |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebProcessProxy.messages.in: |
| |
| * WebProcess/WebCoreSupport/SessionStateConversion.cpp: |
| (WebKit::toBackForwardListItemState): |
| (WebKit::applyFrameState): |
| (WebKit::toHistoryItem): |
| (WebKit::toPageState): Deleted. |
| * WebProcess/WebCoreSupport/SessionStateConversion.h: |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::shouldGoToHistoryItem const): |
| |
| * WebProcess/WebPage/WebBackForwardListProxy.cpp: |
| (WebKit::WebBackForwardListProxy::addItemFromUIProcess): |
| (WebKit::WK2NotifyHistoryItemChanged): |
| (WebKit::WebBackForwardListProxy::itemForID): |
| (WebKit::WebBackForwardListProxy::removeItem): |
| (WebKit::WebBackForwardListProxy::addItem): Previously this was a two-step process of adding an item |
| to the process and then associating it with the page. Now it's just directly adding it to the page, |
| so we don't need to call updateBackForwardItem first. |
| (WebKit::WebBackForwardListProxy::goToItem): |
| (WebKit::WebBackForwardListProxy::itemAtIndex): |
| (WebKit::WebBackForwardListProxy::close): |
| (WebKit::historyItemToIDMap): Deleted. |
| (WebKit::generateHistoryItemID): Deleted. |
| (WebKit::WebBackForwardListProxy::setHighestItemIDFromUIProcess): Deleted. |
| (WebKit::updateBackForwardItem): Deleted. |
| (WebKit::WebBackForwardListProxy::idForItem): Deleted. |
| * WebProcess/WebPage/WebBackForwardListProxy.h: |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_credentialsMessenger): |
| (WebKit::WebPage::goToBackForwardItem): |
| (WebKit::WebPage::restoreSessionInternal): |
| (WebKit::WebPage::didRemoveBackForwardItem): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2018-04-19 Youenn Fablet <youenn@apple.com> |
| |
| NetworkProcess should use CSP/content blockers for sync XHR |
| https://bugs.webkit.org/show_bug.cgi?id=184760 |
| |
| Reviewed by Chris Dumez. |
| |
| Setting CSP/ContentBlockers parameters for sync XHR loads. |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| |
| 2018-04-19 Nan Wang <n_wang@apple.com> |
| |
| AX: AOM: respect the accessibility setting for dispatching the accessible events |
| https://bugs.webkit.org/show_bug.cgi?id=184619 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Linked libAccessibility on iOS and macOS to use the platform accessibility settings |
| for allowing dispatching the accessibility events. |
| |
| * Configurations/WebKit.xcconfig: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| (accessibilityEventsEnabledChangedCallback): |
| (-[WKWebView _updateAccessibilityEventsEnabled]): |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::updateAccessibilityEventsEnabled): |
| * UIProcess/WebPageProxy.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::updateAccessibilityEventsEnabled): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2018-04-18 Chris Dumez <cdumez@apple.com> |
| |
| Rename WindowProxyController to WindowProxy |
| https://bugs.webkit.org/show_bug.cgi?id=184756 |
| |
| Reviewed by Sam Weinig. |
| |
| Rename WindowProxyController to WindowProxy for clarity. When the IDL uses WindowProxy, the implementation |
| needed use WindowProxyController type, which was a bit confusing. |
| |
| * WebProcess/Plugins/PluginView.cpp: |
| (WebKit::PluginView::windowScriptNPObject): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::frameBecameRemote): |
| |
| 2018-04-18 Youenn Fablet <youenn@apple.com> |
| |
| Allow SameOrigin credentials handling for synchronous XHR |
| https://bugs.webkit.org/show_bug.cgi?id=184723 |
| |
| Reviewed by Alex Christensen. |
| |
| In case of SameOrigin credentials, we need to stop the current load |
| in case of cross origin redirection to restart a load with a different session. |
| Covered by updated WK2 tests. |
| Rebased WK1 tests since this is Wk1 only. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::startNetworkLoad): |
| (WebKit::NetworkResourceLoader::willSendRedirectedRequest): |
| * NetworkProcess/NetworkResourceLoader.h: |
| |
| 2018-04-18 Chris Dumez <cdumez@apple.com> |
| |
| Set RemoteDOMWindow's initial opener |
| https://bugs.webkit.org/show_bug.cgi?id=184716 |
| |
| Reviewed by Sam Weinig. |
| |
| When a frame becomes remote, transfer the frame opener from the old |
| frame to the new remote one. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::frameBecameRemote): |
| |
| 2018-04-18 Youenn Fablet <youenn@apple.com> |
| |
| NetworkResourceLoader should not clean itself inside didReceiveResponse |
| https://bugs.webkit.org/show_bug.cgi?id=184754 |
| |
| Reviewed by Chris Dumez. |
| |
| Delay the cleanup to after the didReceiveResponse call so that NetworkLoad can terminate its work. |
| Covered by XHR sync tests no longer crashing on GuardMalloc bots. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::didReceiveResponse): |
| |
| 2018-04-18 Jer Noble <jer.noble@apple.com> |
| |
| Fix rendering of WKRemoteView layers in the simulator |
| https://bugs.webkit.org/show_bug.cgi?id=184752 |
| |
| Reviewed by Tim Horton. |
| |
| * Platform/mac/LayerHostingContext.mm: |
| (WebKit::LayerHostingContext::createForExternalHostingProcess): |
| |
| 2018-04-18 Jer Noble <jer.noble@apple.com> |
| |
| Fix entitlements and sandboxing for iphoneminimalsimulator |
| https://bugs.webkit.org/show_bug.cgi?id=184692 |
| |
| Reviewed by Tim Horton. |
| |
| Use the correct implementations for ChildProcess and NetworkProcess |
| when building for iphoneminimalsimulator. Stub out imlementations |
| which rely on methods not available in the iphoneminimalsimulator SDK. |
| |
| * Configurations/Network-OSX.entitlements: Added. |
| * Configurations/NetworkService.xcconfig: |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::sourceApplicationAuditData const): |
| * NetworkProcess/ios/NetworkProcessIOS.mm: |
| * NetworkProcess/mac/NetworkProcessMac.mm: |
| (WebKit::NetworkProcess::initializeProcessName): |
| (WebKit::overrideSystemProxies): |
| * Shared/ios/ChildProcessIOS.mm: |
| (WebKit::ChildProcess::initializeSandbox): |
| * Shared/mac/ChildProcessMac.mm: |
| (WebKit::ChildProcess::setApplicationIsDaemon): |
| (WebKit::enableSandboxStyleFileQuarantine): |
| (WebKit::ChildProcess::initializeSandbox): |
| (WebKit::ChildProcess::platformStopRunLoop): |
| * Shared/mac/CodeSigning.mm: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::initializeSandbox): |
| |
| 2018-04-18 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r230743. |
| https://bugs.webkit.org/show_bug.cgi?id=184747 |
| |
| causes mouse clicks to not work on some platforms (Requested |
| by brrian on #webkit). |
| |
| Reverted changeset: |
| |
| "Web Automation: simulated mouse interactions should not be |
| done until associated DOM events have been dispatched" |
| https://bugs.webkit.org/show_bug.cgi?id=184462 |
| https://trac.webkit.org/changeset/230743 |
| |
| 2018-04-18 Brent Fulgham <bfulgham@apple.com> |
| |
| Avoid crash if ITP Debug mode is on, but ResourceLoadStatistics are not being used |
| https://bugs.webkit.org/show_bug.cgi?id=184739 |
| <rdar://problem/39287964> |
| |
| Reviewed by David Kilzer. |
| |
| If a user has the ResourceLoadStatistics logic turned off, but has the ITP Debug experimental |
| flag turned on, you can cause a crash. |
| |
| This is because the WebsiteDataStore for the process doesn't bother creating a ResourceLoadStatisticsStore |
| if the statistics machinery is not running. The ITP debug flag was being blindly set without checking |
| if the statistics store exists or not, which can cause a crash. |
| |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::setResourceLoadStatisticsDebugMode): Check if the statistics store exists |
| before calling functions on it. |
| |
| 2018-04-18 Paul Knight <pknight@apple.com> |
| |
| Add -[_WKInputDelegateDelegate willStartInputSession:] for clients that want to configure input session before assisting form node |
| https://bugs.webkit.org/show_bug.cgi?id=184662 |
| |
| Reviewed by Beth Dakin. |
| |
| Clients may wish to configure a WKInputSession before we start assisting |
| a node. Add a -[_WKInputDelegateDelegate _webView:willStartInputSession:] |
| callback. |
| |
| For example, clients that wish to present a custom input view will want |
| to configure the WKFormInputSession's customInputView before the |
| keyboard is presented. Otherwise the standard keyboard will begin to |
| animate and then the custom input view will swap in later. |
| |
| * UIProcess/API/Cocoa/_WKInputDelegate.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]): |
| Call -_webView:willStartInputSession: before assisting the node. |
| Only create the form session if the delegate implements either |
| the willStart or didStartInputSession callbacks. |
| |
| 2018-04-18 Chris Dumez <cdumez@apple.com> |
| |
| Add support for converting a local window to a remote window |
| https://bugs.webkit.org/show_bug.cgi?id=184515 |
| <rdar://problem/39011318> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Add initial support for process-swapping when navigating cross-origin as a result |
| of a window.open(). The window object returned by window.open() is initially same |
| origin and is for about:blank. The navigation cross-origin then happens and the |
| JS wrappers for the window then point to a cross-origin window which is remote (i.e. |
| hosted in another WebProcess). |
| |
| The RemoteDOMWindow exposed to JS looks like a regular cross-origin Window with a few |
| exceptions due to our incomplete implementation (e.g. w.location returns null) and |
| most of its API is currently not functional. The RemoteDOMWindow API will be implemented |
| in a follow-up by relying on IPC. |
| |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| (API::ProcessPoolConfiguration::copy): |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| * UIProcess/API/C/WKContextConfigurationRef.cpp: |
| (WKContextConfigurationProcessSwapsOnWindowOpenWithOpener): |
| (WKContextConfigurationSetProcessSwapsOnWindowOpenWithOpener): |
| * UIProcess/API/C/WKContextConfigurationRef.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: |
| (-[_WKProcessPoolConfiguration setProcessSwapsOnWindowOpenWithOpener:]): |
| (-[_WKProcessPoolConfiguration processSwapsOnWindowOpenWithOpener]): |
| Add ProcessPool configuration flag to turn on processSwap on window.open(), even |
| if there is an opener. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::continueNavigationInNewProcess): |
| If the navigation was triggered via window.open(), then set up on handler for when |
| a DOMWindow is constructed for the main frame in the new process. |
| |
| (WebKit::WebPageProxy::didCreateWindow): |
| When a Window is constructed for the main frame in a new process on process swap, |
| notify the old process that its representation of the window should become remote |
| and provide it with the Frame / Window identifiers it needs. |
| |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigation): |
| Do process swapping on cross-origin window.open() if the corresponding setting is |
| enabled. |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::didCreateWindow): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::frameBecameRemote): |
| This is called when process swapping has happened due to a window.open() navigation |
| cross-origin, when a Frame / Window has been constructed in the new process. We do |
| the following: |
| - Construct a RemoteFrame / RemoteWindow using the provided global identifiers to |
| represent the Frame / Window in the new process. |
| - We transfer the WindowProxies from the old Frame's WindowProxyController to the |
| new RemoteFrame's WindowProxyController. |
| - We update the window proxied by those WindowProxies to be the new RemoteWindow. |
| - We detach the old Frame as it is now remote and represented by the new RemoteFrame |
| object we constructed. |
| - If the old frame was the main frame (always the case currently), we close the page |
| as it is no longer needed. The new RemoteFrame is currently owned by the RemoteWindow |
| which is kept alive by its JS wrappers. |
| |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2018-04-18 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Update OptionsGTK.cmake and NEWS for 2.21.1 release. |
| |
| * gtk/NEWS: Add release notes for 2.21.1. |
| |
| 2018-04-18 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Remove symbols from webkitglib-symbols.map. |
| |
| Remove symbols not present in WebKit. |
| |
| * webkitglib-symbols.map: |
| |
| 2018-04-18 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Add missing symbols to webkitglib-symbols.map. |
| |
| Add symbols global in JSC and present in WebKit. |
| |
| * webkitglib-symbols.map: |
| |
| 2018-04-18 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [Win][WebKit] Implement InjectedBundleWin.cpp |
| https://bugs.webkit.org/show_bug.cgi?id=184525 |
| |
| Reviewed by Konstantin Tokarev. |
| |
| * WebProcess/InjectedBundle/win/InjectedBundleWin.cpp: |
| (WebKit::InjectedBundle::initialize): |
| |
| 2018-04-17 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Programmatically changing focus when an element already has focus is a confusing experience |
| https://bugs.webkit.org/show_bug.cgi?id=184635 |
| <rdar://problem/39440642> |
| |
| Reviewed by Tim Horton. |
| |
| Currently on iOS, we allow element focus to present UI if the keyboard is already shown. In extra zoom mode, |
| this would lead to a confusing experience when the focus form control overlay is disabled, since fullscreen |
| input view controllers are swapped out from underneath the user. Currently, this also puts the UI process into a |
| bad state where the focused form control overlay is active, but still hidden. This patch makes some tweaks to |
| input view controller handling in the UI process to address these issues, and also adds WebKitTestRunner support |
| for simulating interactions with select menus in extra zoom mode. See comments below for more detail. |
| |
| Test: fast/events/extrazoom/change-focus-during-change-event.html |
| |
| * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: |
| |
| Add new SPI delegate hooks to notify the UI delegate when view controllers are presented or dismissed in extra |
| zoom mode. See -presentViewControllerForCurrentAssistedNode and -dismissAllInputViewControllers. |
| |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::takeBackgroundActivityTokenForFullscreenInput): |
| (WebKit::WebProcessProxy::releaseBackgroundActivityTokenForFullscreenInput): |
| |
| See the comment below -dismissAllInputViewControllers. |
| |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]): |
| |
| In extra zoom mode, when changing focus from one assisted node to another, only allow the second node to be |
| assisted if the focused form control overlay is being shown. Otherwise, (i.e. when a fullscreen input view |
| controller is being presented), don't allow focus to start an input session. |
| |
| Additionally, make a minor tweak to allow the previous node to blur, even if we are not showing the keyboard for |
| the new focused element. Without this adjustment, in the case where the page has programmatically focused |
| another element while a fullscreen input view controller is presented, we'll show the old view controller for |
| the new focused element. |
| |
| (-[WKContentView presentViewControllerForCurrentAssistedNode]): |
| (-[WKContentView dismissAllInputViewControllers:]): |
| |
| Currently, when a fullscreen input view controller is presented, the web process gets backgrounded. This |
| prevents event handlers from executing, which leads to strange behaviors in many cases (for instance: if we |
| have a multiple select, and the "change" event handler blurs the select, the user may check or uncheck multiple |
| items, but only the first change will actually take effect). |
| |
| To fix this, we maintain a background activity token while presenting an input view controller. |
| |
| (-[WKContentView focusedFormControlViewDidBeginEditing:]): |
| |
| Start hiding the focused form overlay when re-presenting an input view controller. This allows us to bail from |
| showing fullscreen input UI for another focused element if focus programmatically changes while the current |
| fullscreen input view controller is presented, due to the -isHidden check in -_startAssistingNode:. |
| |
| (-[WKContentView selectFormAccessoryPickerRow:]): |
| |
| Simulate tapping a given row in select menu UI in extra zoom mode. |
| |
| 2018-04-17 Conrad Shultz <conrad_shultz@apple.com> |
| |
| WebKit::DisplayLink maintains a strong reference to WebPageProxy, creating a reference cycle |
| https://bugs.webkit.org/show_bug.cgi?id=184718 |
| |
| Reviewed by Tim Horton. |
| |
| It turns out that the m_webPageProxy back-reference in DisplayLink, which was creating a |
| reference cycle, wasn't ever read, so we can just remove it. |
| |
| * UIProcess/mac/DisplayLink.cpp: |
| (WebKit::DisplayLink::DisplayLink): |
| * UIProcess/mac/DisplayLink.h: |
| |
| 2018-04-17 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Double tap to zoom should account for text legibility in extra zoom mode |
| https://bugs.webkit.org/show_bug.cgi?id=184631 |
| <rdar://problem/39303706> |
| |
| Reviewed by Tim Horton. |
| |
| Implement the text legibility heuristic alluded to in r230506 by iterating through text runs in the document (up |
| to a maximum of 200) and building a histogram of font sizes that appear in the document, where each tally |
| represents a character. |
| |
| The first and second text legibility zoom scales are then computed based on the zoom scales needed to |
| make 50% and 90% of the text legible, respectively. Here, a zoom scale that makes text legible is such that the |
| text would have an apparent font size of a hard-coded constant (currently, 12) after zooming. This means the |
| first and second text legibility scales may end up being close to one another, or even the same (in the case |
| where there is only a single font size in the entire document). In this case, we just snap the first scale to |
| the second, so that double tapping will only toggle between two zoom scales. In another case where the document |
| has no text (e.g. an image document), we just fall back to a zoom scale of 1. |
| |
| Test: fast/events/extrazoom/double-tap-to-zoom-on-full-width-text.html |
| |
| * WebProcess/WebPage/ViewGestureGeometryCollector.cpp: |
| (WebKit::ViewGestureGeometryCollector::computeTextLegibilityScales): |
| |
| 2018-04-17 Megan Gardner <megan_gardner@apple.com> |
| |
| Don't activate selection on become first responder |
| https://bugs.webkit.org/show_bug.cgi?id=184719 |
| |
| Reviewed by Tim Horton. |
| |
| If we activate the selection immediately on becoming first responder, we cause the selection view to delete itself |
| since it is not guaranteed to have selection rects immediately due to async/two process architecture. The selection |
| is activated already when the selection rects change, so there is no reason to activate it now. This has likely worked |
| in the past because this selection assistant was only for editable text, which would immediately set a caret, which |
| is a selection. Now that this is for non-editable text as well, activating the selection is problematic. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView becomeFirstResponderForWebView]): |
| |
| 2018-04-11 Brian Burg <bburg@apple.com> |
| |
| Web Automation: simulated mouse interactions should not be done until associated DOM events have been dispatched |
| https://bugs.webkit.org/show_bug.cgi?id=184462 |
| <rdar://problem/39323336> |
| |
| Reviewed by Carlos Garcia Campos and Tim Horton. |
| |
| Covered by existing layout tests and actions endpoints in WebDriver test suite. |
| |
| In preparation for implementing the W3C WebDriver command "Perform Actions", we need a way to |
| know when a simulated mouse event has been fully processed by WebProcess and it is okay to continue |
| to dispatch more simulated events. |
| |
| This patch makes mouse events go through a queue as they are delivered to WebPageProxy. The approach |
| is very similar to how key events are handled. In the key event case, lots of WebEvents can come out |
| of typing one keystroke, so these need to be queued up and retired one by one when the WebProcess has |
| finished handling each event. In some mouse event cases---particularly fake mouse moves---there can |
| also be more than one mouse event waiting to be handled by WebProcess. |
| |
| In the past, these queued mouse events were tracked with several member variables as different |
| use cases emerged. These are all replaced with ordinary deque operations, such as peeking or |
| checking the queue length. |
| |
| * Platform/Logging.h: Add logging channel for mouse events. |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::AutomationCommandError::toProtocolString): Add type-safe helper class for command errors. |
| In future patches we can hide knowledge of how this is sent over the protocol by relying more on |
| the convenience constructors and .toProtocolString() method. |
| |
| (WebKit::WebAutomationSession::willShowJavaScriptDialog): |
| This section needs adjustments. Since performMouseInteraction now depends on key events being processed |
| prior to returning from the command, we need to abort any key event callbacks that are pending if an |
| alert pops up as a result of sending a mousedown event. Any mouse events that are still queued will |
| be handled when the alert is dismissed and the nested run loop exits. |
| |
| (WebKit::WebAutomationSession::mouseEventsFlushedForPage): |
| (WebKit::WebAutomationSession::keyboardEventsFlushedForPage): |
| Modernize this a bit. Don't spread knowledge about how commands are sent back out into event handling code. |
| Our wrapper callbacks in performXXXInteraction handle the protocol-specific details of the response. |
| |
| (WebKit::WebAutomationSession::performMouseInteraction): |
| Add code similar to performKeyboardInteractions so that the command doesn't finish until the mouse |
| event has been fully handled. Unlike keyboards, sometimes mouse interactions don't turn into WebEvents |
| so we also need to handle the case where there is nothing to be waited on because hit testing did |
| not return a target to deliver the event to. |
| |
| (WebKit::WebAutomationSession::performKeyboardInteractions): |
| Modernize a little bit to use generic callbacks rather than protocol-generated callbacks in the |
| event waiting/handling code. Now it matches the types used for the mouse event case. |
| |
| * UIProcess/Automation/WebAutomationSession.h: |
| (WebKit::AutomationCommandError::AutomationCommandError): |
| Add a helper struct to hold an enumerated error name and an optional free-form error message. |
| |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::webMouseEventTypeString): |
| (WebKit::webKeyboardEventTypeString): |
| (WebKit::WebPageProxy::handleMouseEvent): |
| (WebKit::WebPageProxy::processNextQueuedMouseEvent): |
| Split the old method into handleMouseEvent (called by other code) and processNextQueuedMouseEvent. |
| The latter sends the next mouse event to WebProcess, and can be triggered in didReceiveEvent |
| if there are more mouse events to be sent to WebProcess. |
| |
| (WebKit::WebPageProxy::isProcessingMouseEvents const): Added. |
| (WebKit::WebPageProxy::currentlyProcessedMouseDownEvent): Reimplemented on top of the deque. |
| (WebKit::WebPageProxy::didReceiveEvent): |
| Unify the code paths for different mouse event types to all use the deque. They also will |
| notify the automation session if there are no more mouse events to send (i.e., interaction is over). |
| |
| (WebKit::WebPageProxy::resetStateAfterProcessExited): Add handling for new map. |
| |
| 2018-04-17 Adrian Perez de Castro <aperez@igalia.com> |
| |
| [GTK][WPE] Build failure due to presence of Avahi's <dns_sd.h> header |
| https://bugs.webkit.org/show_bug.cgi?id=184711 |
| |
| Unreviewed build fix. |
| |
| * NetworkProcess/webrtc/NetworkMDNSRegister.h: Set ENABLE_MDNS only for PLATFORM(COCOA). |
| |
| 2018-04-17 Jonathan Bedard <jbedard@apple.com> |
| |
| Unreviewed rollout of r230632. Regression in memory usage. |
| |
| That bug tracked in https://bugs.webkit.org/show_bug.cgi?id=184569. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-04-17 Timothy Hatcher <timothy@apple.com> |
| |
| Always use LayerContentsType::IOSurface in minimal simulator mode |
| https://bugs.webkit.org/show_bug.cgi?id=184710 |
| |
| Reviewed by Simon Fraser. |
| |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm: |
| (WebKit::RemoteLayerTreeHost::updateLayerTree): |
| |
| 2018-04-17 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Release assert in InjectedBundle::postSynchronousMessage |
| https://bugs.webkit.org/show_bug.cgi?id=184683 |
| |
| Reviewed by Wenson Hsieh. |
| |
| Some injected bundles sends sync message when it's not safe to execute scripts. |
| |
| Use DoNotProcessIncomingMessagesWhenWaitingForSyncReply option in InjectedBundle::postSynchronousMessage |
| to avoid processing incoming sync IPC messages so that we don't execute arbitrary scripts in those cases. |
| |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::postSynchronousMessage): |
| |
| 2018-04-17 Chris Dumez <cdumez@apple.com> |
| |
| REGRESSION (r229831): CMD-clicking an iCloud web app link unexpectedly opens that link in a new tab and the current tab |
| https://bugs.webkit.org/show_bug.cgi?id=184678 |
| <rdar://problem/39422122> |
| |
| Reviewed by Alex Christensen. |
| |
| Re-introduce synchronous code path which existed pre-r229831 and use it for fragment navigations. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::receivedPolicyDecision): |
| (WebKit::WebPageProxy::decidePolicyForNavigationActionSync): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: |
| |
| 2018-04-17 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [WPE][GTK] GObject introspection annotation fixes: BackForwardList, NetworkProxySettings |
| https://bugs.webkit.org/show_bug.cgi?id=184658 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Thanks to Dylan Simon for recommending these annotation fixes. |
| |
| * UIProcess/API/glib/WebKitBackForwardList.cpp: |
| * UIProcess/API/glib/WebKitNetworkProxySettings.cpp: |
| |
| 2018-04-17 Brent Fulgham <bfulgham@apple.com> |
| |
| [macOS] Don't establish unneeded Dock connections (Follow-up) |
| https://bugs.webkit.org/show_bug.cgi?id=184664 |
| <rdar://problem/16863698> |
| |
| Reviewed by Per Arne Vollan. |
| |
| Because the Plugin process is driven by NSApplication's run loop, we aren't |
| setting the 'don't connect to the dock' setting early enough. |
| |
| This patch sets the flag in XPCServiceMain for those services that |
| are linked to AppKit. |
| |
| * PluginProcess/mac/PluginProcessMac.mm: |
| (WebKit::PluginProcess::platformInitializeProcess): Remove unneeded code. |
| * Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.mm: |
| (main): |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::platformInitializeWebProcess): Remove unneeded code. |
| |
| 2018-04-17 Saam Barati <sbarati@apple.com> |
| |
| Add system trace points for process launch and for initializeWebProcess |
| https://bugs.webkit.org/show_bug.cgi?id=184669 |
| |
| Reviewed by Simon Fraser. |
| |
| * UIProcess/Launcher/ProcessLauncher.cpp: |
| (WebKit::ProcessLauncher::ProcessLauncher): |
| (WebKit::ProcessLauncher::didFinishLaunchingProcess): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeWebProcess): |
| |
| 2018-04-16 Timothy Hatcher <timothy@apple.com> |
| |
| Unreviewed 32-bit build fix for r230673. |
| |
| https://bugs.webkit.org/show_bug.cgi?id=184657 |
| rdar://problem/39463307 |
| |
| * Configurations/PluginProcessShim.xcconfig: Use the correct names. |
| |
| 2018-04-16 Andy Estes <aestes@apple.com> |
| |
| [iOS] Enable WKPDFView by default |
| https://bugs.webkit.org/show_bug.cgi?id=184675 |
| <rdar://problem/27885452> |
| |
| Reviewed by Darin Adler. |
| |
| * UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm: |
| (-[WKWebViewContentProviderRegistry init]): |
| |
| 2018-04-16 Brent Fulgham <bfulgham@apple.com> |
| |
| [macOS] Don't establish unneeded Dock connections |
| https://bugs.webkit.org/show_bug.cgi?id=184664 |
| <rdar://problem/16863698> |
| |
| Reviewed by Simon Fraser. |
| |
| There is no reason for the WebContent or Plugin processes to interact with |
| the Dock. We should tell AppKit that we don't want this connection, and to |
| avoid creating such connections. |
| |
| * PluginProcess/mac/PluginProcessMac.mm: |
| (WebKit::PluginProcess::platformInitializeProcess): Tell NSApplication to |
| not create a Dock connection. |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::platformInitializeWebProcess): Ditto. |
| |
| 2018-04-16 Megan Gardner <megan_gardner@apple.com> |
| |
| Switch to UIWKTextInteractionAssistant for non-editable text |
| https://bugs.webkit.org/show_bug.cgi?id=182834 |
| |
| Reviewed by Beth Dakin. |
| |
| Switch to only using one assistant for text selection. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView useSelectionAssistantWithGranularity:]): |
| |
| 2018-04-16 Youenn Fablet <youenn@apple.com> |
| |
| Use NetworkLoadChecker to handle synchronous HTTP loads |
| https://bugs.webkit.org/show_bug.cgi?id=184240 |
| |
| Reviewed by Chris Dumez. |
| |
| For every NetworkResourceLoader synchronous load, we create a NetworkLoadChecker. |
| NetworkLoadChecker handles all security checks in that case. |
| This allows supporting cross-origin loads for synchronous XHR. |
| |
| Updated NetworkCORSPreflightChecker to return the result as a ResourceError. |
| This is used to convey any error message from NetworkProcess to the JS console. |
| Ensure NetworkCORSPreflightChecker computes correctly Access-Control-Request-Headers value |
| by providing the headers set by the application plus Referrer/Origin. |
| |
| * NetworkProcess/NetworkCORSPreflightChecker.cpp: |
| (WebKit::NetworkCORSPreflightChecker::~NetworkCORSPreflightChecker): |
| (WebKit::NetworkCORSPreflightChecker::willPerformHTTPRedirection): |
| (WebKit::NetworkCORSPreflightChecker::didReceiveChallenge): |
| (WebKit::NetworkCORSPreflightChecker::didCompleteWithError): |
| (WebKit::NetworkCORSPreflightChecker::wasBlocked): |
| (WebKit::NetworkCORSPreflightChecker::cannotShowURL): |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::checkCORSRequestWithPreflight): |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::NetworkResourceLoader): |
| (WebKit::NetworkResourceLoader::retrieveCacheEntry): |
| (WebKit::NetworkResourceLoader::didReceiveResponse): |
| (WebKit::NetworkResourceLoader::willSendRedirectedRequest): |
| (WebKit::NetworkResourceLoader::continueWillSendRequest): |
| (WebKit::NetworkResourceLoader::didRetrieveCacheEntry): |
| (WebKit::NetworkResourceLoader::validateCacheEntry): |
| * NetworkProcess/NetworkResourceLoader.h: |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::loadResourceSynchronously): |
| * WebProcess/Network/WebLoaderStrategy.h: |
| |
| 2018-04-16 Brian Burg <bburg@apple.com> |
| |
| [Cocoa] Web Automation: add SPI to terminate automation session and disconnect the remote end |
| https://bugs.webkit.org/show_bug.cgi?id=184523 |
| <rdar://problem/39368599> |
| |
| Reviewed by Simon Fraser. |
| |
| When a user breaks the automation glass pane and chooses "Stop Session", there is no way |
| for Safari to actually disconnect the remote connection using automation-related ObjC SPI. |
| This can lead to sessions getting stuck and safaridriver is unable to request a new session. |
| |
| Expose the -terminate method as SPI. This disconnects the remote connection and then notifies |
| the session delegate that the remote disconnected. At that point, Safari can uninstall |
| the session from the process pool and tear down other session state. |
| |
| * UIProcess/API/Cocoa/_WKAutomationSession.h: |
| * UIProcess/API/Cocoa/_WKAutomationSession.mm: |
| (-[_WKAutomationSession terminate]): |
| |
| 2018-04-16 Timothy Hatcher <timothy@apple.com> |
| |
| Clean up OTHER_LDFLAGS for WebKit processes |
| https://bugs.webkit.org/show_bug.cgi?id=184657 |
| |
| Reviewed by Jer Noble. |
| |
| * Configurations/PluginProcessShim.xcconfig: |
| * Configurations/PluginService.32.xcconfig: |
| * Configurations/PluginService.64.xcconfig: |
| * Configurations/WebContentService.xcconfig: |
| |
| 2018-04-15 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [WPE] Install files needed for WebKitWebExtensions |
| https://bugs.webkit.org/show_bug.cgi?id=179915 |
| |
| Reviewed by Žan Doberšek. |
| |
| * PlatformWPE.cmake: Install pkg-config file, injected bundle, and API headers. |
| * UIProcess/API/glib/WebKitWebContext.cpp: Load the injected bundle when installed. |
| * wpe/wpe-web-extension.pc.in: Added. |
| |
| 2018-04-14 Carlos Eduardo Ramalho <cadubentzen@gmail.com> |
| |
| [GTK][WPE] Build is broken after r230640 |
| https://bugs.webkit.org/show_bug.cgi?id=184623 |
| |
| Reviewed by Žan Doberšek. |
| |
| UIProcess/SuspendedPageProxy.cpp was not included to CMake build in r230640. |
| |
| * CMakeLists.txt: Added UIProcess/SuspendedPageProxy.cpp to WebKit_SOURCES. |
| |
| 2018-04-13 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r230447. |
| |
| Caused flaky selection test failures on iOS |
| |
| Reverted changeset: |
| |
| "Switch to UIWKTextInteractionAssistant for non-editable text" |
| https://bugs.webkit.org/show_bug.cgi?id=182834 |
| https://trac.webkit.org/changeset/230447 |
| |
| 2018-04-13 Chris Dumez <cdumez@apple.com> |
| |
| Split WindowProxy handling out of ScriptController and into a new class owned by AbstractFrame |
| https://bugs.webkit.org/show_bug.cgi?id=184591 |
| |
| Reviewed by Sam Weinig. |
| |
| Split WindowProxy handling out of ScriptController and into a new class owned by AbstractFrame. |
| RemoteFrames do not need a ScriptController but do need to maintain WindowProxies. |
| This is work towards fixing Bug 184515. |
| |
| * WebProcess/Plugins/PluginView.cpp: |
| (WebKit::PluginView::windowScriptNPObject): |
| |
| 2018-04-13 Brady Eidson <beidson@apple.com> |
| |
| Introduce SuspendedPageProxy to keep old web processes around after their WebPageProxy has been swapped to a new one. |
| https://bugs.webkit.org/show_bug.cgi?id=184559 |
| |
| Reviewed by Alex Christensen. |
| |
| Before this patch, when a WebPageProxy navigates and is swapped to a new process, the old process almost always goes away. |
| |
| This is not desirable for a few reasons: |
| 1 - We can't keep the PageCache working for back/forward scenarios |
| 2 - We throw away a "foo.com" web process, meaning the next time we need to host a "foo.com" web page we have to launch |
| and initialize a new web process. |
| |
| This patch adds a SuspendedPageProxy object to keep around the old web process and to manage communication with it. |
| |
| For now, a WebPageProxy keeps exactly one "suspended page" representing the most recently visited page and its process. |
| Additionally, that process is never reused. |
| |
| So no benefit is achieved with this patch, but it enables future benefits. |
| |
| * Platform/Logging.h: |
| |
| * Shared/WebBackForwardListItem.cpp: |
| (WebKit::WebBackForwardListItem::setSuspendedPage): |
| * Shared/WebBackForwardListItem.h: |
| |
| New object to represent the state of a WebPageProxy in an old web process that is not currently hosting the view. |
| * UIProcess/SuspendedPageProxy.cpp: Added. |
| (WebKit::SuspendedPageProxy::SuspendedPageProxy): |
| (WebKit::SuspendedPageProxy::~SuspendedPageProxy): |
| (WebKit::SuspendedPageProxy::webProcessDidClose): |
| (WebKit::SuspendedPageProxy::didFinishLoad): |
| (WebKit::SuspendedPageProxy::didReceiveMessage): |
| (WebKit::SuspendedPageProxy::loggingString const): |
| * UIProcess/SuspendedPageProxy.h: Copied from Source/WebKit/Platform/Logging.h. |
| (WebKit::SuspendedPageProxy::create): |
| (WebKit::SuspendedPageProxy::page const): |
| (WebKit::SuspendedPageProxy::process const): |
| (WebKit::SuspendedPageProxy::item const): |
| (WebKit::SuspendedPageProxy::finishedSuspending const): |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::reattachToWebProcess): |
| (WebKit::WebPageProxy::attachToProcessForNavigation): |
| (WebKit::WebPageProxy::maybeCreateSuspendedPage): |
| (WebKit::WebPageProxy::suspendedPageProcessClosed): |
| (WebKit::WebPageProxy::receivedPolicyDecision): |
| (WebKit::WebPageProxy::didFinishLoadForFrame): |
| * UIProcess/WebPageProxy.h: |
| |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::suspendWebPageProxy): |
| (WebKit::WebProcessProxy::suspendedPageWasDestroyed): |
| (WebKit::WebProcessProxy::removeWebPage): |
| (WebKit::WebProcessProxy::didReceiveMessage): Optionally pass WebPageProxy messages along to SuspendedPageProxy objects. |
| (WebKit::WebProcessProxy::didClose): |
| (WebKit::WebProcessProxy::maybeShutDown): |
| (WebKit::WebProcessProxy::canTerminateChildProcess): Don't terminate child processes if they still have suspended pages. |
| * UIProcess/WebProcessProxy.h: |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::setIsSuspended): |
| * WebProcess/WebPage/WebPage.h: |
| (WebKit::WebPage::isSuspended const): For now, used only by WebProcess::updateActivePages. Will have more uses soon. |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| * WebProcess/WebProcess.messages.in: |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::updateActivePages): Allow the UIProcess to request an update of the web processes user visible name. |
| |
| 2018-04-13 Daniel Bates <dabates@apple.com> |
| |
| Inline NetworkLoad::sharedWillSendRedirectedRequest() into NetworkLoad::willPerformHTTPRedirection() |
| https://bugs.webkit.org/show_bug.cgi?id=184593 |
| |
| Reviewed by Alex Christensen. |
| |
| Following the removal of the pre-Network Session code in r227364, NetworkLoad::sharedWillSendRedirectedRequest() |
| is only referenced from NetworkLoad::willPerformHTTPRedirection(). We should inline its |
| implementation into the NetworkLoad::willPerformHTTPRedirection(), remove a function call, |
| and the cognitive load to follow such a function call when reading the code. |
| |
| No functionality changed. So, no new tests. |
| |
| * NetworkProcess/NetworkLoad.cpp: |
| (WebKit::NetworkLoad::willPerformHTTPRedirection): Moved the implementation of NetworkLoad::sharedWillSendRedirectedRequest() |
| into this function. |
| (WebKit::NetworkLoad::sharedWillSendRedirectedRequest): Deleted. Moved its implementation |
| into NetworkLoad::willPerformHTTPRedirection(). |
| * NetworkProcess/NetworkLoad.h: |
| |
| 2018-04-13 Daniel Bates <dabates@apple.com> |
| |
| Inline NetworkLoad::sharedDidReceiveResponse() into NetworkLoad::notifyDidReceiveResponse() |
| https://bugs.webkit.org/show_bug.cgi?id=184592 |
| |
| Reviewed by Alex Christensen. |
| |
| Following the removal of the pre-Network Session code in r227364, NetworkLoad::sharedDidReceiveResponse() |
| is only referenced from NetworkLoad::notifyDidReceiveResponse(). We should inline its |
| implementation into the NetworkLoad::notifyDidReceiveResponse(), remove a function |
| call, and the cognitive load to follow such a function call when reading the code. |
| |
| No functionality changed. So, no new tests. |
| |
| * NetworkProcess/NetworkLoad.cpp: |
| (WebKit::NetworkLoad::notifyDidReceiveResponse): Moved the implementation of NetworkLoad::sharedDidReceiveResponse() |
| into this function. |
| (WebKit::NetworkLoad::sharedDidReceiveResponse): Deleted. Moved its implementation into |
| NetworkLoad::notifyDidReceiveResponse(). |
| * NetworkProcess/NetworkLoad.h: |
| |
| 2018-04-13 Brent Fulgham <bfulgham@apple.com> |
| |
| REGRESSION(r230468): Improper assertion firing under STP |
| <rdar://problem/39411676> |
| |
| Unreviewed, rolling out an improper assertion. |
| |
| I added an assertion in Bug 184322 that should not have been added. I did not notice that this |
| call stack was always used in builds where NSApp is still active. Builds where we stop relying |
| on AppKit runloops uses a different code path to shut down. |
| |
| * Shared/mac/ChildProcessMac.mm: |
| (WebKit::ChildProcess::stopNSAppRunLoop): |
| |
| 2018-04-12 Antoine Quint <graouts@apple.com> |
| |
| [Web Animations] Turn CSS Animations and CSS Transitions as Web Animations on by default |
| https://bugs.webkit.org/show_bug.cgi?id=184569 |
| <rdar://problem/38671301> |
| |
| Reviewed by Jon Lee. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-04-13 Xabier Rodriguez Calvar <calvaris@igalia.com> |
| |
| [GStreamer] Convert GStreamerUtilities in GStreamerCommon and include the GStreamer smart pointer traits |
| https://bugs.webkit.org/show_bug.cgi?id=184533 |
| |
| Reviewed by Philippe Normand. |
| |
| Renamed GStreamerUtilities* files into GStreamerCommon* and |
| modified files including them accordingly. Include |
| GRefPtrGStreamer.h and GUniquePtrGStreamer.h in GStreamerCommon.h |
| to avoid problems destroying objects when those files are |
| forgotten to be included. |
| |
| * UIProcess/gtk/WebProcessPoolGtk.cpp: |
| * UIProcess/wpe/WebProcessPoolWPE.cpp: |
| * WebProcess/soup/WebProcessSoup.cpp: |
| |
| 2018-04-12 Beth Dakin <bdakin@apple.com> |
| |
| Fix the MOBILE_WIFI build |
| https://bugs.webkit.org/show_bug.cgi?id=184571 |
| -and corresponding- |
| <rdar://problem/39398181> |
| |
| Reviewed by Jer Noble. |
| |
| * config.h: |
| |
| 2018-04-12 Beth Dakin <bdakin@apple.com> |
| |
| Use -iframework to ensure that frameworks from user paths and system paths are |
| ordered appropriately |
| https://bugs.webkit.org/show_bug.cgi?id=184557 |
| -and corresponding- |
| rdar://problem/39386359 |
| |
| Reviewed by Dean Jackson. |
| |
| * Configurations/WebKit.xcconfig: |
| |
| 2018-04-12 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Suppress UI for inputs of type file in extra zoom mode |
| https://bugs.webkit.org/show_bug.cgi?id=184556 |
| <rdar://problem/39062239> |
| |
| Reviewed by Andy Estes. |
| |
| When running in this mode, we don't have the facilities to present document picker UI. For now, just make this |
| feature fail gracefully. |
| |
| * UIProcess/ios/forms/WKFileUploadPanel.mm: |
| (-[WKFileUploadPanel presentWithParameters:resultListener:]): |
| (-[WKFileUploadPanel platformSupportsPickerViewController]): |
| |
| 2018-04-12 Megan Gardner <megan_gardner@apple.com> |
| |
| Remove block selection code |
| https://bugs.webkit.org/show_bug.cgi?id=184470 |
| |
| Reviewed by Timothy Hatcher. |
| |
| Remove block selection code that isn't run and is currently not even used. |
| Had to put this back in for a bug in the mid-year release, but we're past that |
| so it's time for this to go away. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/PageClient.h: |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::stopAssistingNode): |
| (WebKit::PageClientImpl::didUpdateBlockSelectionWithTouch): Deleted. |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (toSelectionHandlePosition): Deleted. |
| (-[WKContentView _didUpdateBlockSelectionWithTouch:withFlags:growThreshold:shrinkThreshold:]): Deleted. |
| (-[WKContentView changeSelectionWithTouchAt:withSelectionTouch:baseIsStart:]): Deleted. |
| (-[WKContentView changeBlockSelectionWithTouchAt:withSelectionTouch:forHandle:]): Deleted. |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::saveImageToLibrary): |
| (WebKit::WebPageProxy::updateBlockSelectionWithTouch): Deleted. |
| (WebKit::WebPageProxy::didUpdateBlockSelectionWithTouch): Deleted. |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::rangeAtWordBoundaryForPosition): |
| (WebKit::distanceBetweenRectsForPosition): Deleted. |
| (WebKit::rectsEssentiallyTheSame): Deleted. |
| (WebKit::unionDOMRanges): Deleted. |
| (WebKit::computeEdgeCenter): Deleted. |
| (WebKit::WebPage::expandedRangeFromHandle): Deleted. |
| (WebKit::WebPage::contractedRangeFromHandle): Deleted. |
| (WebKit::WebPage::computeExpandAndShrinkThresholdsForHandle): Deleted. |
| (WebKit::WebPage::rangeForBlockAtPoint): Deleted. |
| (WebKit::shouldExpand): Deleted. |
| (WebKit::WebPage::changeBlockSelection): Deleted. |
| (WebKit::WebPage::updateBlockSelectionWithTouch): Deleted. |
| |
| 2018-04-12 Megan Gardner <megan_gardner@apple.com> |
| |
| Don't have selections get stuck in editable elements |
| https://bugs.webkit.org/show_bug.cgi?id=184483 |
| |
| Reviewed by Timothy Hatcher. |
| |
| When selecting in editable elements, if the keyboard does not come up, which is not required, |
| then the selections are stuck in that element. If you try and select something in web content, |
| it will only select in the editable element. By clearing the assisted node when clearing a selection, |
| it no longer sticks. Also, textSelectionAssistant should not be used as if we are currently editing. |
| Change it to the function we created for that purpose in a pervious patch. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView clearSelection]): |
| (-[WKContentView _isInteractingWithAssistedNode]): |
| |
| 2018-04-12 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [WPE] Move libWPEWebInspectorResources.so to pkglibdir |
| https://bugs.webkit.org/show_bug.cgi?id=184379 |
| |
| Reviewed by Žan Doberšek. |
| |
| This is important to allow parallel installation. |
| |
| * PlatformWPE.cmake: |
| |
| 2018-04-12 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [WPE] Improve include hierarchy |
| https://bugs.webkit.org/show_bug.cgi?id=184376 |
| |
| Reviewed by Žan Doberšek. |
| |
| Install our headers under /usr/include/wpe-webkit-0.1/wpe instead of |
| /usr/include/wpe-0.1/WPE/wpe. Too much WPE, not enough WebKit! |
| |
| * PlatformWPE.cmake: |
| * wpe/wpe-webkit.pc.in: |
| |
| 2018-04-11 Andy Estes <aestes@apple.com> |
| |
| [iOS] Add a mechanism for holding Wi-Fi assertions |
| https://bugs.webkit.org/show_bug.cgi?id=184520 |
| <rdar://problem/39025726> |
| |
| Reviewed by Sam Weinig. |
| |
| Add plumbing for holding a Wi-Fi assertion on iOS as long as there are active |
| network data tasks. This functionality is turned off by default right now. |
| |
| * Configurations/Network-iOS.entitlements: |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.h: |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): |
| * NetworkProcess/cocoa/WiFiAssertionHolder.cpp: Added. |
| (WebKit::ensureWiFiManagerClient): Create a global WiFiManagerClient when needed. |
| (WebKit::WiFiAssertionHolder::WiFiAssertionHolder): If this is the first active |
| Wi-Fi assertion holder, set the client's type to kWiFiClientTypeBackground. |
| (WebKit::WiFiAssertionHolder::~WiFiAssertionHolder): If the last active Wi-Fi |
| assertion holder is being destroyed, set the client's type back to |
| kWiFiClientTypeNormal. |
| * NetworkProcess/cocoa/WiFiAssertionHolder.h: Added. |
| * Platform/Logging.h: Added a logging channel for Wi-Fi assertions. |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-04-12 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Switch to use always complex text code path |
| https://bugs.webkit.org/show_bug.cgi?id=183285 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Now that we have branched for 2.20, it's a good time to try using complex text path always. We can simply force |
| it for GTK+ port and see how it works for the whole release cycle and if we don't notice any issues or |
| performance regressions we release 2.22 with complex text path forced. A debug env variable is added to switch |
| back to auto without having to recompile. After 2.22 is released we can make a final decision and remove the env |
| variable. |
| |
| * UIProcess/gtk/WebProcessPoolGtk.cpp: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): Force complex text code path unless |
| WEBKIT_FORCE_COMPLEX_TEXT is present and set to 0. |
| |
| 2018-04-11 Zan Dobersek <zdobersek@igalia.com> |
| |
| [WPE] Make WebKitWebViewBackend object mandatory for webkit_web_view_new*() constructors |
| https://bugs.webkit.org/show_bug.cgi?id=184513 |
| |
| Reviewed by Michael Catanzaro. |
| |
| webkit_web_view_new*() constructors should always expect a non-null |
| WebKitWebViewBackend object, forcing the user to specify how the |
| wpe_view_backend object is managed for the WebKitWebView that's being |
| created. |
| |
| webkitWebViewBackendCreateDefault() and the default |
| _WebKitWebViewBackend() constructor are removed. WPE-specific |
| webkit_web_view_new*() entrypoints are updated to bail if the passed-in |
| WebKitWebViewBackend object is null. Documentation is updated |
| accordingly. |
| |
| * UIProcess/API/glib/WebKitWebView.cpp: |
| (webkitWebViewConstructed): |
| * UIProcess/API/wpe/WebKitWebViewBackend.cpp: |
| (webkitWebViewBackendCreateDefault): Deleted. |
| * UIProcess/API/wpe/WebKitWebViewBackendPrivate.h: |
| * UIProcess/API/wpe/WebKitWebViewWPE.cpp: |
| (webkit_web_view_new): |
| (webkit_web_view_new_with_context): |
| (webkit_web_view_new_with_related_view): |
| (webkit_web_view_new_with_settings): |
| (webkit_web_view_new_with_user_content_manager): |
| |
| 2018-04-11 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [curl][WebKit] Implement NetworkDataTaskCurl |
| https://bugs.webkit.org/show_bug.cgi?id=184488 |
| |
| Reviewed by Alex Christensen. |
| |
| * NetworkProcess/NetworkDataTask.cpp: |
| (WebKit::NetworkDataTask::create): |
| * NetworkProcess/curl/NetworkDataTaskCurl.cpp: Added. |
| (WebKit::NetworkDataTaskCurl::NetworkDataTaskCurl): |
| (WebKit::NetworkDataTaskCurl::~NetworkDataTaskCurl): |
| (WebKit::NetworkDataTaskCurl::resume): |
| (WebKit::NetworkDataTaskCurl::suspend): |
| (WebKit::NetworkDataTaskCurl::cancel): |
| (WebKit::NetworkDataTaskCurl::invalidateAndCancel): |
| (WebKit::NetworkDataTaskCurl::state const): |
| (WebKit::NetworkDataTaskCurl::createCurlRequest): |
| (WebKit::NetworkDataTaskCurl::curlDidSendData): |
| (WebKit::NetworkDataTaskCurl::curlDidReceiveResponse): |
| (WebKit::NetworkDataTaskCurl::curlDidReceiveBuffer): |
| (WebKit::NetworkDataTaskCurl::curlDidComplete): |
| (WebKit::NetworkDataTaskCurl::curlDidFailWithError): |
| (WebKit::NetworkDataTaskCurl::shouldRedirectAsGET): |
| (WebKit::NetworkDataTaskCurl::willPerformHTTPRedirection): |
| (WebKit::NetworkDataTaskCurl::tryHttpAuthentication): |
| (WebKit::NetworkDataTaskCurl::restartWithCredential): |
| (WebKit::NetworkDataTaskCurl::appendCookieHeader): |
| (WebKit::NetworkDataTaskCurl::handleCookieHeaders): |
| * NetworkProcess/curl/NetworkDataTaskCurl.h: Added. |
| * PlatformWin.cmake: |
| |
| 2018-04-11 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Support pushing input view controllers onto the navigation stack |
| https://bugs.webkit.org/show_bug.cgi?id=184397 |
| <rdar://problem/39265294> |
| |
| Reviewed by Timothy Hatcher. |
| |
| Currently, all input view controllers in extra zoom mode are presented modally. However, the latest iteration of |
| the HI specification depicts most of these view controllers (with the exception of time pickers) being presented |
| and dismissed via navigation stack. Since WebKit's iOS API surface doesn't force clients to embed WKWebViews |
| within a view controller with a corresponding UINavigationController, we cannot always guarantee that UI |
| presented when focusing form controls in a web view will be pushed onto the navigation stack; as such, the |
| approach taken in this patch will automatically allow WKWebView clients that already embed WKWebViews within a |
| UINavigationController to hook into this behavior, with modal presentation as a fallback. |
| |
| At a high level, this patch makes the following tweaks to implement this behavior: |
| |
| 1. Store the currently presented view controller using a single member variable |
| (_presentedFullScreenInputViewController) instead of having one for each type. This makes bookkeepping around |
| which view controller to present or dismiss much more straightforward. |
| |
| 2. Replace WKFocusedFormControlViewController with just WKFocusedFormControlView. This addresses problems with |
| pushing an input view controller onto the navigation stack after presenting the focused form control view |
| controller modally. Now, we'll only need to present or push one view controller on the navigation stack. |
| |
| 3. Remove -handleWheelEvent: forwarding to date and time pickers. Pushing date picker view controllers onto the |
| navigation stack rather than presenting them modally means that we end up in a state where neither the |
| WKContentView nor WKTimePickerViewController are first responder, which renders time pickers unusable. |
| Instead, have the WKTimePickerViewController actually become first responder when presenting. |
| |
| 4. Lastly, and most importantly: change -presentViewControllerForCurrentAssistedNode and |
| -dismissAllInputViewControllers to try and push onto a navigation stack if possible, and fall back to modal |
| presentation. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| |
| Remove the separate member variables for each type of input view controller, and instead have one to keep track |
| of the current (and only) presented input view controller. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _willStartScrollingOrZooming]): |
| (-[WKContentView _didEndScrollingOrZooming]): |
| (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]): |
| (-[WKContentView _stopAssistingNode]): |
| |
| Boilerplate renaming of _focusedFormControlViewController => _focusedFormControlView. |
| |
| (-[WKContentView reloadContextViewForPresentedListViewController]): |
| |
| Adjust for consolidation of the different input view controller member variables to a single member (see changes |
| in WKContentViewInteraction.h). |
| |
| (-[WKContentView addFocusedFormControlOverlay]): |
| (-[WKContentView removeFocusedFormControlOverlay]): |
| (-[WKContentView presentViewControllerForCurrentAssistedNode]): |
| (-[WKContentView dismissAllInputViewControllers:]): |
| |
| Add an `animated` argument. In the case where a different view controller was presented after presenting the |
| input view controller, this allows us to dismiss the other view controller with animation, and directly reveal |
| the web view or focus overlay underneath. |
| |
| (-[WKContentView focusedFormControlViewDidSubmit:]): |
| (-[WKContentView focusedFormControlViewDidCancel:]): |
| (-[WKContentView focusedFormControlViewDidBeginEditing:]): |
| (-[WKContentView rectForFocusedFormControlView:]): |
| (-[WKContentView nextRectForFocusedFormControlView:]): |
| (-[WKContentView previousRectForFocusedFormControlView:]): |
| (-[WKContentView scrollViewForFocusedFormControlView:]): |
| (-[WKContentView actionNameForFocusedFormControlView:]): |
| (-[WKContentView focusedFormControlViewDidRequestNextNode:]): |
| (-[WKContentView focusedFormControlViewDidRequestPreviousNode:]): |
| (-[WKContentView hasNextNodeForFocusedFormControlView:]): |
| (-[WKContentView hasPreviousNodeForFocusedFormControlView:]): |
| (-[WKContentView focusedFormControllerDidUpdateSuggestions:]): |
| |
| Boilerplate renaming of focus overlay delegate methods. |
| |
| (-[WKContentView _wheelChangedWithEvent:]): |
| |
| Remove event forwarding hacks for date and time inputs, now that they directly become first responder. |
| |
| (-[WKContentView presentFocusedFormControlViewController:]): Deleted. |
| (-[WKContentView dismissFocusedFormControlViewController:]): Deleted. |
| |
| Renamed to -addFocusedFormControlOverlay and -removeFocusedFormControlOverlay. |
| |
| (-[WKContentView dismissAllInputViewControllers]): Deleted. |
| (-[WKContentView focusedFormControlControllerDidSubmit:]): Deleted. |
| (-[WKContentView focusedFormControlControllerDidCancel:]): Deleted. |
| (-[WKContentView focusedFormControlControllerDidBeginEditing:]): Deleted. |
| (-[WKContentView rectForFocusedFormControlController:inCoordinateSpace:]): Deleted. |
| (-[WKContentView nextRectForFocusedFormControlController:inCoordinateSpace:]): Deleted. |
| (-[WKContentView previousRectForFocusedFormControlController:inCoordinateSpace:]): Deleted. |
| (-[WKContentView scrollViewForFocusedFormControlController:]): Deleted. |
| (-[WKContentView actionNameForFocusedFormControlController:]): Deleted. |
| (-[WKContentView focusedFormControlControllerDidRequestNextNode:]): Deleted. |
| (-[WKContentView focusedFormControlControllerDidRequestPreviousNode:]): Deleted. |
| (-[WKContentView hasNextNodeForFocusedFormControlController:]): Deleted. |
| (-[WKContentView hasPreviousNodeForFocusedFormControlController:]): Deleted. |
| * UIProcess/ios/forms/WKFocusedFormControlViewController.h: Removed. |
| * UIProcess/ios/forms/WKFocusedFormControlViewController.mm: Removed. |
| |
| Completely remove WKFocusedFormControlViewController; instead, just directly place the focused form overlay in |
| the WKWebView's hierarchy. In the case where we have a navigation stack to push to, we can no longer modally |
| present the focused form overlay as a separate view controller using the UINavigationController, and then |
| immediately push the input view controller on top of the navigation stack, since the navigation stack isn't |
| updated until after the animation of the focused form overlay presentation is complete. Rather than hack around |
| this limitation by dispatch_after-ing after presenting the overlay's view controller, we should just make the |
| overlay a view. This also fixes the case where a client embedding a WKWebView that is smaller than the bounds of |
| the screen will no longer see the entire screen dim when focusing an input, but instead, just the web content. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-04-11 Youenn Fablet <youenn@apple.com> |
| |
| Pass FetchOptions and SecurityOrigin as load parameters from WebProcess to NetworkProcess |
| https://bugs.webkit.org/show_bug.cgi?id=184374 |
| |
| Reviewed by Chris Dumez. |
| |
| Pass full FetchOptions parameters as part of NetworkResourceLoadParameters. |
| This will allow handling redirection mode as well as credentials in case of cross origin redirections. |
| In case of SameOrigin credentials and there is a redirection from same-origin to cross-origin, |
| we will be able to stop using credentials without going to WebProcess. |
| |
| To handle properly cross-origin checks, we have to be able to use SecurityOrigin as in WebProcess. |
| We make WebProcess sends Origin Access White list information to NetworkProcess. |
| This allows supporting the white list when doing loading in NetworkProcess. |
| This only works consistently if all WebProcesses share the same whitelist. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::loadPing): |
| (WebKit::NetworkConnectionToWebProcess::addOriginAccessWhitelistEntry): |
| (WebKit::NetworkConnectionToWebProcess::removeOriginAccessWhitelistEntry): |
| (WebKit::NetworkConnectionToWebProcess::resetOriginAccessWhitelists): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::NetworkLoadChecker): |
| (WebKit::NetworkLoadChecker::checkRedirection): |
| (WebKit::NetworkLoadChecker::continueCheckingRequest): |
| (WebKit::NetworkLoadChecker::checkCORSRequest): |
| (WebKit::NetworkLoadChecker::checkCORSRedirectedRequest): |
| (WebKit::NetworkLoadChecker::checkCORSRequestWithPreflight): |
| (WebKit::NetworkLoadChecker::doesNotNeedCORSCheck const): |
| * NetworkProcess/NetworkLoadChecker.h: |
| (WebKit::NetworkLoadChecker::create): |
| * NetworkProcess/NetworkResourceLoadParameters.cpp: |
| (WebKit::NetworkResourceLoadParameters::encode const): |
| (WebKit::NetworkResourceLoadParameters::decode): |
| * NetworkProcess/NetworkResourceLoadParameters.h: |
| * NetworkProcess/PingLoad.cpp: |
| (WebKit::PingLoad::PingLoad): |
| (WebKit::PingLoad::willPerformHTTPRedirection): |
| * NetworkProcess/PingLoad.h: |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::addOriginAccessWhitelistEntry): |
| (WebKit::InjectedBundle::removeOriginAccessWhitelistEntry): |
| (WebKit::InjectedBundle::resetOriginAccessWhitelists): |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::startPingLoad): |
| |
| 2018-04-11 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [GTK] WaylandCompositorDisplay leaks its wl_display |
| https://bugs.webkit.org/show_bug.cgi?id=184406 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Since we allocate our own wl_display here, need to chain up to the parent constructor |
| passing NativeDisplayOwned::Yes, or it won't ever be released. Move the initialize call to |
| the create function to ensure it's called after the constructor completes. |
| |
| * WebProcess/gtk/WaylandCompositorDisplay.cpp: |
| (WebKit::WaylandCompositorDisplay::create): Fix a log message (drive-by). |
| (WebKit::WaylandCompositorDisplay::WaylandCompositorDisplay): |
| |
| 2018-04-11 Youenn Fablet <youenn@apple.com> |
| |
| Use more r-values in NetworkResourceLoader |
| https://bugs.webkit.org/show_bug.cgi?id=184478 |
| |
| Reviewed by Chris Dumez. |
| |
| Pass load parameters as r-values to remove some unneeded copies. |
| Ditto for ResourceRequest inside NetworkResourceLoader. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::scheduleResourceLoad): |
| (WebKit::NetworkConnectionToWebProcess::performSynchronousLoad): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::NetworkResourceLoader): |
| (WebKit::NetworkResourceLoader::start): |
| (WebKit::NetworkResourceLoader::retrieveCacheEntry): |
| (WebKit::NetworkResourceLoader::startNetworkLoad): |
| (WebKit::NetworkResourceLoader::continueWillSendRequest): |
| (WebKit::NetworkResourceLoader::validateCacheEntry): |
| * NetworkProcess/NetworkResourceLoader.h: |
| |
| 2018-04-11 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Missing label when focusing a <select> with a title attribute but no associated <label> |
| https://bugs.webkit.org/show_bug.cgi?id=184352 |
| <rdar://problem/39237683> |
| |
| Reviewed by Andy Estes. |
| |
| Currently, AssistedNodeInformation only sends the `title` of input elements to the UI process. This means that |
| any information requested in the UI process that is dependent on the `title` of the focused element is broken |
| in the case of select elements. An existing example of this is the title of the table view controller used to |
| present select menus on iPad. |
| |
| To fix this, we simply send the `title` of the focused element across, as long as the focused element is an |
| HTMLElement. This ensures that there's label text when focusing unlabeled select elements with titles in extra |
| zoom mode, and also fixes a currenly broken codepath where we show the title of the select in the presented view |
| controller's title. |
| |
| Test: fast/forms/ios/ipad/select-with-title.html |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView selectFormPopoverTitle]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| |
| Add new testing SPI to fetch the title of the UITableViewController presented for the currently focused select |
| element. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView selectFormPopoverTitle]): |
| * UIProcess/ios/forms/WKFormSelectControl.h: |
| * UIProcess/ios/forms/WKFormSelectControl.mm: |
| (-[WKFormSelectControl selectFormPopoverTitle]): |
| * UIProcess/ios/forms/WKFormSelectPopover.h: |
| * UIProcess/ios/forms/WKFormSelectPopover.mm: |
| (-[WKSelectPopover initWithView:hasGroups:]): |
| (-[WKSelectPopover tableViewController]): |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| |
| Always send the title across if the focused node is an HTMLElement. |
| |
| (WebKit::WebPage::getAssistedNodeInformation): |
| |
| 2018-04-11 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r230508. |
| |
| Breaks internal builds. |
| |
| Reverted changeset: |
| |
| "Remove block selection code" |
| https://bugs.webkit.org/show_bug.cgi?id=184470 |
| https://trac.webkit.org/changeset/230508 |
| |
| 2018-04-11 Antoine Quint <graouts@apple.com> |
| |
| [Web Animations] Turn Web Animations on by default |
| https://bugs.webkit.org/show_bug.cgi?id=184491 |
| |
| Reviewed by Simon Fraser. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-04-10 Brent Fulgham <bfulgham@apple.com> |
| |
| Unreviewed test fix after r230468 |
| |
| Roll out an assertion added in r230468 that should not be present |
| until https://bugs.webkit.org/show_bug.cgi?id=184451 is landed. |
| |
| * Shared/mac/HangDetectionDisablerMac.mm: |
| (WebKit::setClientsMayIgnoreEvents): |
| |
| 2018-04-10 Brent Fulgham <bfulgham@apple.com> |
| |
| Unreviewed follow-up to r230468. |
| |
| Switch some RELEASE_ASSERTs in hot codepaths to normal DEBUG asserts. |
| |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::isViewWindowActive): |
| (WebKit::PageClientImpl::setCursor): |
| |
| 2018-04-10 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [Win] Add UserAgentWin.cpp |
| https://bugs.webkit.org/show_bug.cgi?id=184438 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * WebProcess/WebPage/win/WebPageWin.cpp: |
| (WebKit::WebPage::platformUserAgent const): |
| Use WebCore::standardUserAgentForURL. |
| |
| 2018-04-10 Megan Gardner <megan_gardner@apple.com> |
| |
| Remove block selection code |
| https://bugs.webkit.org/show_bug.cgi?id=184470 |
| |
| Reviewed by Timothy Hatcher. |
| |
| Remove block selection code that isn't run and is currently not even used. |
| Had to put this back in for a bug in the mid-year release, but we're past that |
| so it's time for this to go away. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/PageClient.h: |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::stopAssistingNode): |
| (WebKit::PageClientImpl::didUpdateBlockSelectionWithTouch): Deleted. |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (toSelectionHandlePosition): Deleted. |
| (-[WKContentView _didUpdateBlockSelectionWithTouch:withFlags:growThreshold:shrinkThreshold:]): Deleted. |
| (-[WKContentView changeSelectionWithTouchAt:withSelectionTouch:baseIsStart:]): Deleted. |
| (-[WKContentView changeBlockSelectionWithTouchAt:withSelectionTouch:forHandle:]): Deleted. |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::saveImageToLibrary): |
| (WebKit::WebPageProxy::updateBlockSelectionWithTouch): Deleted. |
| (WebKit::WebPageProxy::didUpdateBlockSelectionWithTouch): Deleted. |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::rangeAtWordBoundaryForPosition): |
| (WebKit::distanceBetweenRectsForPosition): Deleted. |
| (WebKit::rectsEssentiallyTheSame): Deleted. |
| (WebKit::unionDOMRanges): Deleted. |
| (WebKit::computeEdgeCenter): Deleted. |
| (WebKit::WebPage::expandedRangeFromHandle): Deleted. |
| (WebKit::WebPage::contractedRangeFromHandle): Deleted. |
| (WebKit::WebPage::computeExpandAndShrinkThresholdsForHandle): Deleted. |
| (WebKit::WebPage::rangeForBlockAtPoint): Deleted. |
| (WebKit::shouldExpand): Deleted. |
| (WebKit::WebPage::changeBlockSelection): Deleted. |
| (WebKit::WebPage::updateBlockSelectionWithTouch): Deleted. |
| |
| 2018-04-10 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Add a mechanism to zoom to fixed scales when double tapping in extra zoom mode |
| https://bugs.webkit.org/show_bug.cgi?id=184435 |
| <rdar://problem/38726260> |
| |
| Reviewed by Dean Jackson. |
| |
| Adds support for an alternate codepath when computing a zoom rect when double tapping that doesn't take the hit- |
| tested node into account, and instead cycles the zoom scale between 2 fixed values (in addition to the initial |
| scale). In the next patch, these fixed scales will be determined by computing zoom scales needed to make most of |
| the text on the page legible (i.e. the first text legibility zoom scale), and another to make all of the text on |
| the page legible, with the exception of outliers (this is the second text legibility zoom scale). |
| |
| See comments below for more detail. |
| |
| * UIProcess/Cocoa/ViewGestureController.h: |
| * UIProcess/Cocoa/ViewGestureController.messages.in: |
| * UIProcess/ios/SmartMagnificationController.h: |
| * UIProcess/ios/SmartMagnificationController.messages.in: |
| * UIProcess/ios/SmartMagnificationController.mm: |
| (WebKit::SmartMagnificationController::didCollectGeometryForSmartMagnificationGesture): |
| * UIProcess/mac/ViewGestureControllerMac.mm: |
| (WebKit::ViewGestureController::didCollectGeometryForSmartMagnificationGesture): |
| * WebProcess/WebPage/ViewGestureGeometryCollector.cpp: |
| (WebKit::ViewGestureGeometryCollector::dispatchDidCollectGeometryForSmartMagnificationGesture): |
| |
| Rename the boolean `isReplacedElement` argument to `fitEntireRect` instead. The UI process only uses this on iOS |
| to determine whether or not to fit the entire element rect to the viewport and add padding. This patch renames |
| this variable because we are not zooming to a replaced element in the case where text legibility on the page |
| (rather than element geometry) is being used to figure out the zoom scale, but we still want to fit the entire |
| target rect to the viewport. |
| |
| (WebKit::ViewGestureGeometryCollector::collectGeometryForSmartMagnificationGesture): |
| |
| If text legiblity zoom scaling is preferred, then compute first and second-level text legibility zoom scales to |
| zoom to upon double tap (where the second zoom scale is greater than the first). To choose a target zoom |
| scale, choose the lowest target zoom scale that is at least a small amount less than the current scale. If |
| neither of the two scales fulfill this description, then zoom back out to the initial scale. This has the effect |
| of consistently cycling between all three zoom scales as the user double taps. |
| |
| (WebKit::ViewGestureGeometryCollector::computeTextLegibilityScales): |
| |
| Introduce a new helper method that computes and caches target scales to zoom to when double tapping to zoom. If |
| a cached pair of target scales is already present, it skips this computation and immediately returns it. |
| |
| (WebKit::ViewGestureGeometryCollector::computeZoomInformationForNode): |
| (WebKit::ViewGestureGeometryCollector::computeMinimumAndMaximumViewportScales const): |
| |
| Factor out logic to compute min and max zoom scales into a separate helper, and call it from both |
| computeZoomInformationForNode and computeTextLegibilityScales. |
| |
| (WebKit::ViewGestureGeometryCollector::mainFrameDidLayout): |
| |
| Invalidate cached text legibility scales when layout is triggered. |
| |
| * WebProcess/WebPage/ViewGestureGeometryCollector.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::mainFrameDidLayout): |
| * WebProcess/WebPage/WebPage.h: |
| (WebKit::WebPage::viewportConfiguration const): |
| |
| Expose WebPage's ViewportConfiguration as a const reference. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::platformPrefersTextLegibilityBasedZoomScaling const): |
| |
| Adds a platform hook for opting into text-legibility-based zoom scaling instead of regular hit-testing-based |
| zoom scaling heuristics. |
| |
| 2018-04-10 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Fix availability annotations for _WKAttachment SPI |
| https://bugs.webkit.org/show_bug.cgi?id=184473 |
| <rdar://problem/39319732> |
| |
| Reviewed by Dan Bernstein. |
| |
| _WKAttachmentInfo is available in WK_MAC_TBA and WK_IOS_TBA, but the SPI method -[_WKAttachment requestInfo:] |
| is currently available in macOS 10.13.4 and iOS 11.3. Instead, the availability of this SPI should match the |
| availability of the SPI object it depends on. |
| |
| * UIProcess/API/Cocoa/_WKAttachment.h: |
| |
| 2018-04-10 Chris Dumez <cdumez@apple.com> |
| |
| Avoid constructing a service worker RegistrationStore for private sessions |
| https://bugs.webkit.org/show_bug.cgi?id=184463 |
| <rdar://problem/36613948> |
| |
| Reviewed by Youenn Fablet. |
| |
| Avoid constructing a service worker RegistrationStore for private sessions since there |
| is no need for persistence and the registrationDatabaseDirectory is the empty string in |
| such cases. |
| |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::initializeWebsiteDataStore): |
| |
| 2018-04-10 Andy Estes <aestes@apple.com> |
| |
| [iOS] Navigate to URL and page number annotations in WKPDFView |
| https://bugs.webkit.org/show_bug.cgi?id=184410 |
| |
| Reviewed by Timothy Hatcher. |
| |
| Implemented navigation to URL and page number (same-document) link annotations in PDFs. |
| |
| * UIProcess/ios/WKPDFView.mm: |
| (-[WKPDFView _scrollToURLFragment:]): |
| (-[WKPDFView web_didSameDocumentNavigation:]): |
| (-[WKPDFView pdfHostViewController:updatePageCount:]): |
| (-[WKPDFView pdfHostViewController:goToURL:]): |
| (-[WKPDFView pdfHostViewController:goToPageIndex:withViewFrustum:]): |
| |
| 2018-04-10 Andy Estes <aestes@apple.com> |
| |
| [iOS] WKPDFView should conform to _WKWebViewPrintProvider |
| https://bugs.webkit.org/show_bug.cgi?id=184471 |
| |
| Reviewed by Dan Bernstein. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _printProvider]): |
| |
| The print provider will always be either _contentView or _customContentView, but |
| might not be _currentContentView. |
| |
| * UIProcess/ios/WKPDFView.mm: |
| (-[WKPDFView _wk_pageCountForPrintFormatter:]): |
| |
| Asked _hostViewController for the page count, clamped to 1 if |
| -[_WKWebViewPrintFormatter snapshotFirstPage] is YES. |
| |
| (-[WKPDFView _wk_printedDocument]): |
| |
| Created a CGPDFDocumentRef from _data and returned it. |
| |
| 2018-04-10 Youenn Fablet <youenn@apple.com> |
| |
| Beacon redirect responses should be CORS validated |
| https://bugs.webkit.org/show_bug.cgi?id=184378 |
| |
| Reviewed by Chris Dumez. |
| |
| Add CORS checks to any redirection response if mode is CORS. |
| Update response tainting and redirected accordingly. |
| |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::checkRedirection): |
| (WebKit::NetworkLoadChecker::validateResponse): |
| * NetworkProcess/NetworkLoadChecker.h: |
| * NetworkProcess/PingLoad.cpp: |
| (WebKit::PingLoad::willPerformHTTPRedirection): |
| |
| 2018-04-10 Sihui Liu <sihui_liu@apple.com> |
| |
| Loading of multipart response was cancelled because of content policy set in WebFrameLoaderClient::dispatchDecidePolicyForResponse |
| https://bugs.webkit.org/show_bug.cgi?id=184268 |
| <rdar://problem/39144446> |
| |
| Reviewed by Chris Dumez. |
| |
| Webpage for multipart stream responses failed to refresh because content policy was set to |
| be ignore when provisonalDocumentLoader was null and navigation ID could not be retrieved. |
| As loading should not stop in this case, we set navigation ID 0 and still ask for content |
| policy. |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse): |
| |
| 2018-04-10 Andy Estes <aestes@apple.com> |
| |
| [iOS] Use PDFKit to render PDFs in WKWebView |
| https://bugs.webkit.org/show_bug.cgi?id=184387 |
| |
| Reviewed by Beth Dakin. |
| |
| Adopted PDFHostViewController for rendering PDFs in WKWebView. |
| |
| This patch implements rendering the PDF document and page number indicator. Link |
| navigation, find-in-page, and printing will be implemented in follow-up patches. |
| |
| WKLegacyPDFView is still the default PDF view. |
| |
| * Configurations/WebKit.xcconfig: |
| |
| Linked WebKit with PDFKit on iOS. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _currentContentView]): |
| (-[WKWebView viewForZoomingInScrollView:]): |
| |
| When WKPDFView loads a PDF document, it replaces itself with a view vended by |
| PDFHostViewController as the WKScrollView's content view. Abstracted WKWebView's |
| concept of the "current content view" to be either the WKContentView or a view of |
| the custom content view's choosing (-web_contentView). |
| |
| (-[WKWebView scrollViewWillBeginZooming:withView:]): |
| (-[WKWebView scrollViewDidZoom:]): |
| (-[WKWebView scrollViewDidEndZooming:withView:atScale:]): |
| |
| Forwarded these calls to _customContentView if it responds to the equivalent |
| WKWebViewContentProvider selectors. |
| |
| * UIProcess/Cocoa/WKWebViewContentProvider.h: |
| |
| Defined new protocol selectors. |
| |
| * UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm: |
| (-[WKWebViewContentProviderRegistry init]): |
| * UIProcess/ios/WKLegacyPDFView.h: |
| * UIProcess/ios/WKLegacyPDFView.mm: |
| |
| Changed ENABLE(WKPDFVIEW) to ENABLE(WKLEGACYPDFVIEW). |
| |
| (-[WKLegacyPDFView web_contentView]): |
| |
| Added. Returns self as the content view. |
| |
| * UIProcess/ios/WKPDFView.h: Added. |
| * UIProcess/ios/WKPDFView.mm: Added. |
| (-[WKPDFView dealloc]): |
| |
| Removed the host view and page number indicator from their superviews. |
| |
| (-[WKPDFView gestureRecognizerShouldBegin:]): |
| |
| Forwarded to _hostViewController. |
| |
| (-[WKPDFView web_initWithFrame:webView:]): |
| |
| Set ours and the scroll view's background color to UIColor.grayColor to match |
| WKLegacyPDFView. |
| |
| (-[WKPDFView web_setContentProviderData:suggestedFilename:]): |
| |
| Created a PDFHostViewController and set its root view as the scroll view's content |
| view after removing the WKPDFView itself. This allows WKPDFView to act as a |
| placeholder content view until the PDF is loaded. Added the host view controller's |
| page number indicator to the fixed overlay view. Finally, loaded the PDF document |
| by calling -[PDFHostViewController setDocumentData:withScrollView:]. |
| |
| (-[WKPDFView _offsetForPageNumberIndicator]): |
| |
| Computed an offset for the page number indicator like WKLegacyPDFView did, taking |
| into account the overlaid accessory views inset, computed unobscured safe area |
| inset, and computed obscured inset. |
| |
| (-[WKPDFView _movePageNumberIndicatorToPoint:animated:]): |
| |
| Moved the page number indicator using the margin and animation duration from |
| WKLegacyPDFView. |
| |
| (-[WKPDFView _updateLayoutAnimated:]): |
| |
| Added a convenience method to update the PDF view layout and position the page |
| number indicator. |
| |
| (-[WKPDFView web_setMinimumSize:]): |
| |
| Updated our own frame in case we are still the placeholder content view. |
| Called -_updateLayoutAnimated:. |
| |
| (-[WKPDFView web_setOverlaidAccessoryViewsInset:]): |
| |
| Stored the inset and called -_updateLayoutAnimated:. |
| |
| (-[WKPDFView web_computedContentInsetDidChange]): |
| |
| Called -_updateLayoutAnimated:. |
| |
| (-[WKPDFView web_setFixedOverlayView:]): |
| |
| Stored the fixed overlay view. |
| |
| (-[WKPDFView web_didSameDocumentNavigation:]): |
| (-[WKPDFView web_countStringMatches:options:maxCount:]): |
| (-[WKPDFView web_findString:options:maxCount:]): |
| (-[WKPDFView web_hideFindUI]): |
| |
| Added FIXMEs. |
| |
| (-[WKPDFView web_contentView]): |
| |
| If there is a host view controller, return its root view. Otherwise, return self. |
| |
| (-[WKPDFView web_scrollViewDidScroll:]): |
| (-[WKPDFView web_scrollViewWillBeginZooming:withView:]): |
| (-[WKPDFView web_scrollViewDidEndZooming:withView:atScale:]): |
| (-[WKPDFView web_scrollViewDidZoom:]): |
| |
| Called -[PDFHostViewController updatePDFViewLayout]. |
| |
| (-[WKPDFView web_dataRepresentation]): |
| |
| Returned _data. |
| |
| (-[WKPDFView web_suggestedFilename]): |
| |
| Returned _suggestedFilename. |
| |
| (-[WKPDFView web_isBackground]): |
| |
| Returned self.isBackground. |
| |
| * UIProcess/ios/WKSystemPreviewView.mm: |
| (-[WKSystemPreviewView web_contentView]): |
| |
| Added. Returns self as the content view. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-04-10 Miguel Gomez <magomez@igalia.com> |
| |
| [GTK][WPE] Race condition when destroying webprocesses |
| https://bugs.webkit.org/show_bug.cgi?id=184445 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Ensure that the WebProcess is properly closing its pages when it's exiting because |
| the UIProcess has invalidated the IPC connection. |
| |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::didClose): |
| |
| 2018-04-09 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Add missing availability macros after r230462 |
| https://bugs.webkit.org/show_bug.cgi?id=184426 |
| |
| Reviewed by Timothy Hatcher. |
| |
| Annotate new SPI added in r230462 with the appropriate availability macros. |
| |
| * UIProcess/API/Cocoa/WKViewPrivate.h: |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| |
| 2018-04-09 Brent Fulgham <bfulgham@apple.com> |
| |
| Add ProcessPrivilege assertions to places that access NSApp |
| https://bugs.webkit.org/show_bug.cgi?id=184322 |
| <rdar://problem/39194560> |
| |
| Reviewed by Per Arne Vollan. |
| |
| Add ProcessPrivilege assertions to places where we interact with NSApp so |
| that we can prevent accidentally using them in the WebContent process. |
| |
| * Shared/mac/ChildProcessMac.mm: |
| (WebKit::ChildProcess::stopNSAppRunLoop): |
| * Shared/mac/HangDetectionDisablerMac.mm: |
| (WebKit::setClientsMayIgnoreEvents): |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::WebViewImpl): |
| (WebKit::WebViewImpl::becomeFirstResponder): |
| (WebKit::WebViewImpl::pluginFocusOrWindowFocusChanged): |
| (WebKit::WebViewImpl::validateUserInterfaceItem): |
| (WebKit::WebViewImpl::startSpeaking): |
| (WebKit::WebViewImpl::stopSpeaking): |
| (WebKit::applicationFlagsForDrag): |
| (WebKit::WebViewImpl::doneWithKeyEvent): |
| * UIProcess/Gamepad/mac/UIGamepadProviderMac.mm: |
| (WebKit::UIGamepadProvider::platformWebPageProxyForGamepadInput): |
| * UIProcess/Plugins/mac/PluginProcessProxyMac.mm: |
| (WebKit::PluginProcessProxy::enterFullscreen): |
| (WebKit::PluginProcessProxy::beginModal): |
| (WebKit::PluginProcessProxy::endModal): |
| * UIProcess/mac/DisplayLink.cpp: |
| (WebKit::DisplayLink::DisplayLink): |
| (WebKit::DisplayLink::~DisplayLink): |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::isViewWindowActive): |
| (WebKit::PageClientImpl::setCursor): |
| * UIProcess/mac/WebPageProxyMac.mm: |
| (WebKit::WebPageProxy::getIsSpeaking): |
| (WebKit::WebPageProxy::speak): |
| (WebKit::WebPageProxy::stopSpeaking): |
| (WebKit::WebPageProxy::startDisplayLink): |
| * UIProcess/mac/WebPopupMenuProxyMac.mm: |
| (WebKit::WebPopupMenuProxyMac::showPopupMenu): |
| |
| 2018-04-09 John Wilander <wilander@apple.com> |
| |
| Refactor Ignore HSTS code |
| https://bugs.webkit.org/show_bug.cgi?id=184433 |
| <rdar://problem/39298238> |
| |
| Reviewed by Darin Adler. |
| |
| This patch refactors our ignore HSTS code. The convenience functions are moved |
| out of CFNetwork SPI in PAL, and into where they are used. It also switches |
| from performSelector: calls to straight function calls, after checking that |
| there is a responder. |
| |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (schemeWasUpgradedDueToDynamicHSTS): |
| (setIgnoreHSTS): |
| (ignoreHSTS): |
| Add convenience functions here since they were moved out of |
| CFNetworkSPI.h. |
| |
| 2018-04-09 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Rename UNUSED to BUNUSED |
| https://bugs.webkit.org/show_bug.cgi?id=184093 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _getApplicationManifestWithCompletionHandler:]): |
| |
| 2018-04-09 Timothy Hatcher <timothy@apple.com> |
| |
| Add support for setting a background color on WKWebView and WKView |
| https://bugs.webkit.org/show_bug.cgi?id=184426 |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/API/Cocoa/WKViewPrivate.h: Added _backgroundColor property. |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _backgroundColor]): Added. Call through to WebViewImpl. |
| (-[WKWebView _setBackgroundColor:]): Added. Call through to WebViewImpl. |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: Added _backgroundColor property. |
| * UIProcess/API/mac/WKView.mm: |
| (-[WKView _backgroundColor]): Added. Call through to WebViewImpl. |
| (-[WKView _setBackgroundColor:]): Added. Call through to WebViewImpl. |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::setBackgroundColor): Added. |
| (WebKit::WebViewImpl::backgroundColor const): Added. |
| (WebKit::WebViewImpl::updateLayer): Use m_backgroundColor when set. |
| |
| 2018-04-09 Yousuke Kimoto <yousuke.kimoto@sony.com> and Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [WinCairo] Add WebKit Shared/win event files for wincairo webkit |
| https://bugs.webkit.org/show_bug.cgi?id=183043 |
| |
| Reviewed by Brent Fulgham. |
| |
| * Shared/NativeWebKeyboardEvent.h: |
| (WebKit::NativeWebKeyboardEvent::nativeEvent const): |
| * Shared/NativeWebMouseEvent.h: |
| (WebKit::NativeWebMouseEvent::nativeEvent const): |
| * Shared/NativeWebTouchEvent.h: |
| * Shared/NativeWebWheelEvent.h: |
| (WebKit::NativeWebWheelEvent::nativeEvent const): |
| * Shared/win/NativeWebKeyboardEventWin.cpp: Copied from Source/WebKit/Shared/NativeWebMouseEvent.h. |
| (WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent): |
| * Shared/win/NativeWebMouseEventWin.cpp: Copied from Source/WebKit/Shared/NativeWebMouseEvent.h. |
| (WebKit::NativeWebMouseEvent::NativeWebMouseEvent): |
| * Shared/win/NativeWebTouchEventWin.cpp: Copied from Source/WebKit/Shared/NativeWebTouchEvent.h. |
| (WebKit::NativeWebTouchEvent::NativeWebTouchEvent): |
| * Shared/win/NativeWebWheelEventWin.cpp: Copied from Source/WebKit/Shared/NativeWebMouseEvent.h. |
| (WebKit::NativeWebWheelEvent::NativeWebWheelEvent): |
| * Shared/win/WebEventFactory.cpp: Added. |
| (WebKit::relativeCursorPosition): |
| (WebKit::point): |
| (WebKit::horizontalScrollChars): |
| (WebKit::verticalScrollLines): |
| (WebKit::clickCount): |
| (WebKit::IsKeyInDownState): |
| (WebKit::modifiersForEvent): |
| (WebKit::modifiersForCurrentKeyState): |
| (WebKit::keyboardEventTypeForEvent): |
| (WebKit::isSystemKeyEvent): |
| (WebKit::isKeypadEvent): |
| (WebKit::textFromEvent): |
| (WebKit::unmodifiedTextFromEvent): |
| (WebKit::keyIdentifierFromEvent): |
| (WebKit::WebEventFactory::createWebMouseEvent): |
| (WebKit::WebEventFactory::createWebWheelEvent): |
| (WebKit::WebEventFactory::createWebKeyboardEvent): |
| (WebKit::WebEventFactory::createWebTouchEvent): |
| * Shared/win/WebEventFactory.h: Copied from Source/WebKit/Shared/NativeWebMouseEvent.h. |
| (WebKit::createNativeEvent): |
| |
| 2018-04-09 Brent Fulgham <bfulgham@apple.com> |
| |
| WebCore::EventHandler::targetPositionInWindowForSelectionAutoscroll is directly accessing NSScreen |
| https://bugs.webkit.org/show_bug.cgi?id=184344 |
| <rdar://problem/39224969> |
| |
| Reviewed by Per Arne Vollan. |
| |
| The implementation of targetPositionInWindowForSelectionAutoscroll uses the display ID to get the |
| screen boundaries of the current display. This causes a bunch of interaction with NSScreen that |
| we do not want to allow in the WebContent process. |
| |
| Instead, we should just use the cached screen information the WebContent process already possesses. |
| |
| This patch makes the following changes: |
| 1. We now retrieve the screen rect of the page's display from the cache, rather than interacting with |
| the WindowServer directly. |
| 2. Add a new 'toUserSpaceForPrimaryScreen' so we don't have to deal with a nil NSWindow when computing |
| the user space version of the coordinates. A nil Window just means we want to get coordinates in |
| terms of the primary display. |
| 3. Keep track of the primary display so we can refer to it later. |
| 4. Modify the IPC messages to include the primary display's ID so we can easily access it later. |
| 5. Modify the PlatformScreen methods to actually use the primary display when appropriate, rather |
| than whichever screen happened to hash to the lowest value. |
| |
| Reviewed by Per Arne Vollan. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::displayReconfigurationCallBack): Update for new getScreenProperties implementation. |
| (WebKit::WebProcessPool::initializeNewWebProcess): Ditto. |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::setScreenProperties): Ditto. |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: Ditto. |
| |
| 2018-04-09 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [WPE] Add API version to library soname and pkg-config files |
| https://bugs.webkit.org/show_bug.cgi?id=180608 |
| |
| Reviewed by Žan Doberšek. |
| |
| * PlatformWPE.cmake: |
| * wpe/wpe-webkit.pc.in: |
| |
| 2018-04-09 Jer Noble <jer.noble@apple.com> |
| |
| Fix the selection assistant selectionView build |
| https://bugs.webkit.org/show_bug.cgi?id=184423 |
| <rdar://problem/39288235> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/ios/WKContentView.mm: |
| (-[WKContentView _didExitStableState]): |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _updateChangedSelection:]): |
| |
| 2018-04-09 Megan Gardner <megan_gardner@apple.com> |
| |
| Switch to UIWKTextInteractionAssistant for non-editable text |
| https://bugs.webkit.org/show_bug.cgi?id=182834 |
| |
| Switch to only using one assistant for text selection. |
| |
| Reviewed by Timothy Hatcher and Andy Estes. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView useSelectionAssistantWithGranularity:]): |
| |
| 2018-04-09 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, move 'using namespace' back to the right place after r230429 |
| |
| * Shared/glib/ProcessExecutablePathGLib.cpp: |
| |
| 2018-04-09 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, rolling out r230390. |
| |
| Broke accelerated compositing |
| |
| Reverted changeset: |
| |
| "[GTK] WaylandCompositorDisplay leaks its wl_display" |
| https://bugs.webkit.org/show_bug.cgi?id=184406 |
| https://trac.webkit.org/changeset/230390 |
| |
| 2018-04-09 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Disable fast clicking by default in extra zoom mode |
| https://bugs.webkit.org/show_bug.cgi?id=184411 |
| <rdar://problem/38726867> |
| |
| Reviewed by Andy Estes. |
| |
| As it turns out, existing fast-clicking heuristics don't work so well in extra zoom mode. Even at device-width, |
| since the page is scaled to fit within the viewport, having single taps take precedence over double taps leads |
| to a confusing experience when trying to double tap to zoom further on content that contains links and other |
| click targets. Revert to legacy behavior here by disabling these heuristics. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| |
| 2018-04-06 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Add an SPI hook for clients to opt in to focus overlay UI |
| https://bugs.webkit.org/show_bug.cgi?id=184370 |
| <rdar://problem/39250494> |
| |
| Reviewed by Timothy Hatcher and Andy Estes. |
| |
| Add a new SPI hook for internal clients to opt in to showing the focused form control overlay. By default, the |
| overlay is not shown. |
| |
| * UIProcess/API/Cocoa/_WKInputDelegate.h: |
| |
| 2018-04-09 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [WPE] Use GNU install directories |
| https://bugs.webkit.org/show_bug.cgi?id=184377 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Merge ProcessExecutablePathGtk and ProcessExecutablePathWPE into ProcessExecutablePathGLib. |
| WPE will now load its secondary processes from PKGLIBEXECDIR, like WebKitGTK+. |
| |
| * PlatformWPE.cmake: |
| * Shared/glib/ProcessExecutablePathGLib.cpp: Renamed from Source/WebKit/Shared/gtk/ProcessExecutablePathGtk.cpp. |
| (WebKit::getExecutablePath): |
| (WebKit::findWebKitProcess): |
| (WebKit::executablePathOfWebProcess): |
| (WebKit::executablePathOfPluginProcess): |
| (WebKit::executablePathOfNetworkProcess): |
| (WebKit::executablePathOfStorageProcess): |
| * Shared/wpe/ProcessExecutablePathWPE.cpp: Removed. |
| * SourcesGTK.txt: |
| * SourcesWPE.txt: |
| |
| 2018-04-09 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [GTK] WaylandCompositorDisplay leaks its wl_display |
| https://bugs.webkit.org/show_bug.cgi?id=184406 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * WebProcess/gtk/WaylandCompositorDisplay.cpp: |
| (WebKit::WaylandCompositorDisplay::create): Fix a log message (drive-by). |
| (WebKit::WaylandCompositorDisplay::WaylandCompositorDisplay): Fix the leak. |
| |
| 2018-04-08 Zan Dobersek <zdobersek@igalia.com> |
| |
| Non-Cocoa ports use default directory for ServiceWorker data during testing |
| https://bugs.webkit.org/show_bug.cgi?id=183784 |
| |
| Reviewed by Youenn Fablet. |
| |
| Add API to WKWebsiteDataStore that enables setting and retrieving the |
| service worker registration directory for a given data store object. |
| This enables setting the temporary directory for testing purposes in |
| WebKitTestRunner. |
| |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreCopyServiceWorkerRegistrationDirectory): |
| (WKWebsiteDataStoreSetServiceWorkerRegistrationDirectory): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| |
| 2018-04-08 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [CMake] WebKit should link to WebCore as a PRIVATE library if WebCore is a static library |
| https://bugs.webkit.org/show_bug.cgi?id=184127 |
| |
| Reviewed by Konstantin Tokarev. |
| |
| * CMakeLists.txt: Link with WebCore as private, |
| WebCoreHeaderInterface as public to WebKit if WebCore is a static |
| library. |
| * CMakeLists.txt: |
| * PlatformGTK.cmake: Added PRIVATE keyword for WebKit_LIBRARIES. |
| * PlatformWPE.cmake: Ditto. |
| * PlatformWin.cmake: Ditto. |
| |
| 2018-04-08 Andy Estes <aestes@apple.com> |
| |
| [iOS] WKContentView and WKLegacyPDFView should share application state tracking logic |
| https://bugs.webkit.org/show_bug.cgi?id=184402 |
| |
| Reviewed by Dan Bernstein. |
| |
| WKContentView and WKLegacyPDFView have nearly identical logic for tracking |
| application foreground state. Let's share it so we can more easily create new |
| content views with proper application state tracking. |
| |
| * UIProcess/ios/WKApplicationStateTrackingView.h: Added. |
| * UIProcess/ios/WKApplicationStateTrackingView.mm: Added. |
| (-[WKApplicationStateTrackingView initWithFrame:webView:]): |
| (-[WKApplicationStateTrackingView willMoveToWindow:]): |
| (-[WKApplicationStateTrackingView didMoveToWindow]): |
| (-[WKApplicationStateTrackingView _applicationDidEnterBackground]): |
| (-[WKApplicationStateTrackingView _applicationDidCreateWindowContext]): |
| (-[WKApplicationStateTrackingView _applicationDidFinishSnapshottingAfterEnteringBackground]): |
| (-[WKApplicationStateTrackingView _applicationWillEnterForeground]): |
| (-[WKApplicationStateTrackingView isBackground]): |
| |
| Moved common logic from WKContentView and WKLegacyPDFView into |
| WKApplicationStateTrackingView. |
| |
| * UIProcess/ios/WKContentView.h: |
| * UIProcess/ios/WKContentView.mm: |
| (-[WKContentView initWithFrame:processPool:configuration:webView:]): |
| (-[WKContentView willMoveToWindow:]): |
| (-[WKContentView _applicationDidCreateWindowContext]): |
| (-[WKContentView didMoveToWindow]): Deleted. |
| (-[WKContentView isBackground]): Deleted. |
| (-[WKContentView _applicationDidEnterBackground]): Deleted. |
| (-[WKContentView _applicationDidFinishSnapshottingAfterEnteringBackground]): Deleted. |
| (-[WKContentView _applicationWillEnterForeground]): Deleted. |
| |
| Made WKContentView a subclass of WKApplicationStateTrackingView. |
| |
| * UIProcess/ios/WKLegacyPDFView.h: |
| * UIProcess/ios/WKLegacyPDFView.mm: |
| (-[WKLegacyPDFView web_initWithFrame:webView:]): |
| (-[WKLegacyPDFView web_isBackground]): |
| (-[WKLegacyPDFView _applicationWillEnterForeground]): |
| (-[WKLegacyPDFView willMoveToWindow:]): Deleted. |
| (-[WKLegacyPDFView didMoveToWindow]): Deleted. |
| (-[WKLegacyPDFView _applicationDidEnterBackground]): Deleted. |
| (-[WKLegacyPDFView _applicationDidCreateWindowContext]): Deleted. |
| (-[WKLegacyPDFView _applicationDidFinishSnapshottingAfterEnteringBackground]): Deleted. |
| |
| Made WKLegacyPDFView a subclass of WKApplicationStateTrackingView. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-04-08 Dan Bernstein <mitz@apple.com> |
| |
| [Cocoa] Keep library validation disabled for WebContent.Development |
| https://bugs.webkit.org/show_bug.cgi?id=184393 |
| |
| Reviewed by Anders Carlsson. |
| |
| * Configurations/WebContent.Development.entitlements: Added. Includes the |
| com.apple.security.cs.disable-library-validation entitlement set to true. |
| * Configurations/WebContentService.Development.xcconfig: Set CODE_SIGN_ENTITLEMENTS to the |
| above. |
| * WebKit.xcodeproj/project.pbxproj: Added reference to new file. |
| |
| 2018-04-06 Brian Burg <bburg@apple.com> |
| |
| REGRESSION(r228371): WebAutomationSession::deleteAllCookies doesn't delete some cookies |
| https://bugs.webkit.org/show_bug.cgi?id=184334 |
| <rdar://problem/39212863> |
| |
| Reviewed by Timothy Hatcher. |
| |
| When WebDriver adds a cookie for 'localhost', it actually uses the domain '.localhost' per RFC. |
| When deleting cookies, we first fetch all cookies matching the document's hostname, and |
| then delete them one by one. However, this code path does not add the dot prefix. This causes |
| no cookies to match the requested domain, and thus none of them are deleted. |
| |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::domainByAddingDotPrefixIfNeeded): Extract this helper method. |
| (WebKit::WebAutomationSession::addSingleCookie): Use helper method. |
| (WebKit::WebAutomationSession::deleteAllCookies): Add a dot prefix when |
| requesting to delete all cookies for a hostname. |
| |
| 2018-04-06 Youenn Fablet <youenn@apple.com> |
| |
| Response headers should be filtered when sent from NetworkProcess to WebProcess |
| https://bugs.webkit.org/show_bug.cgi?id=184310 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Pass destination parameter to NetworkResourceLoader. |
| Use new sanitization routine to filter response headers as needed: |
| - Cross-origin routines are filtered by removing any non CORS allowed headers. |
| - Same-origin responses are filtered by removing non used headers, except when filtering would be visible by JS (XHR, fetch). |
| In all cases, Set-Cookie/Set-Cookie2 headers are filtered out. |
| |
| * NetworkProcess/NetworkResourceLoadParameters.cpp: |
| (WebKit::NetworkResourceLoadParameters::encode const): |
| (WebKit::NetworkResourceLoadParameters::decode): |
| * NetworkProcess/NetworkResourceLoadParameters.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::didReceiveResponse): |
| (WebKit::NetworkResourceLoader::willSendRedirectedRequest): |
| (WebKit::NetworkResourceLoader::sanitizeResponseIfPossible): |
| (WebKit::NetworkResourceLoader::didRetrieveCacheEntry): |
| (WebKit::NetworkResourceLoader::dispatchWillSendRequestForCacheEntry): |
| * NetworkProcess/NetworkResourceLoader.h: |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess): |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::updatePreferencesStore): |
| |
| 2018-04-05 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Make all sync IPCs during ScriptDisallowedScope set DoNotProcessIncomingMessagesWhenWaitingForSyncReply |
| https://bugs.webkit.org/show_bug.cgi?id=182449 |
| <rdar://problem/39222541> |
| |
| Reviewed by Chris Dumez. |
| |
| Release assert that a sync IPC inside ScriptDisallowedScope sets DoNotProcessIncomingMessagesWhenWaitingForSyncReply |
| to avoid executing arbitrary scripts as a result of processing incoming sync IPCs. |
| |
| * Platform/IPC/Connection.h: |
| (IPC::Connection::sendSync): Added the release assertion. |
| |
| 2018-04-05 Youenn Fablet <youenn@apple.com> |
| |
| REGRESSION (r230223): LayoutTest http/tests/contentextensions/css-display-none-overflows-rule-data-1.html is crashing |
| https://bugs.webkit.org/show_bug.cgi?id=184306 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * NetworkProcess/NetworkContentRuleListManager.cpp: |
| (WebKit::NetworkContentRuleListManager::addContentRuleLists): |
| |
| 2018-04-05 Brent Fulgham <bfulgham@apple.com> |
| |
| WebContent process is calling CGDisplayUsesInvertedPolarity |
| https://bugs.webkit.org/show_bug.cgi?id=184337 |
| <rdar://problem/39215702> |
| |
| Reviewed by Zalan Bujtas. |
| |
| The PlatformScreenMac code is still calling display-related routines directly, specifically |
| CGDisplayUsesInvertedPolarity and CGDisplayUsesForceToGray. These should be brokered from |
| the UIProcess. |
| |
| There's also no reason to avoid the brokering behavior on current WebKit builds. Remove |
| the compile guards so all macOS builds use this behavior. |
| |
| Finally, add some ProcessPrivilege assertions to guard against accidentally calling these |
| routines in the future. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::initializeNewWebProcess): Activate screen brokering code for all builds. |
| * WebProcess/WebProcess.cpp: Ditto. |
| * WebProcess/WebProcess.h: Ditto. |
| * WebProcess/WebProcess.messages.in: Ditto. |
| |
| 2018-04-05 Brady Eidson <beidson@apple.com> |
| |
| Process Swap on Navigation causes many webpages to hang due to attempted process swap for iframe navigations. |
| <rdar://problem/39162236> and https://bugs.webkit.org/show_bug.cgi?id=184318 |
| |
| Reviewed by Andy Estes. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::receivedPolicyDecision): Don't consider a swap if the navigation is not in the main frame. |
| |
| 2018-04-05 Ryosuke Niwa <rniwa@webkit.org> |
| |
| WebContent process sometimes hangs in WebProcess::ensureNetworkProcessConnection |
| https://bugs.webkit.org/show_bug.cgi?id=184326 |
| |
| Reviewed by Chris Dumez. |
| |
| The hang was caused by UI process never sending the reply back to GetNetworkProcessConnection |
| due to m_pendingOutgoingMachMessage being set and the event handler for DISPATCH_MACH_SEND_POSSIBLE |
| never getting called. This is because the event handler registration happens asynchronously, |
| and may not have completed by the time we send the first IPC to the web content process |
| in which case it can timeout and we may never get the callback. |
| |
| Fixed the hang by waiting for the event handler registration to be completed using |
| dispatch_source_set_registration_handler. To do this, this patch adds a new boolean instance variable, |
| m_isInitializingSendSource, to Connection which is set to true between the time mach port is created |
| and until the event handler registration has been completed. platformCanSendOutgoingMessages returns |
| false while m_isInitializingSendSource is set to prevent the attempt to send messages like we do when |
| m_pendingOutgoingMachMessage is set to true. |
| |
| * Platform/IPC/Connection.h: |
| (IPC::Connection::m_isInitializingSendSource): Added. |
| * Platform/IPC/mac/ConnectionMac.mm: |
| (IPC::Connection::platformInvalidate): Set m_isInitializingSendSource to false. |
| (IPC::Connection::sendMessage): Assert that m_isInitializingSendSource is false. |
| (IPC::Connection::platformCanSendOutgoingMessages const): Return false if m_isInitializingSendSource |
| is set to true. |
| (IPC::Connection::sendOutgoingMessage): Assert that m_isInitializingSendSource is false. |
| (IPC::Connection::initializeSendSource): Set m_isInitializingSendSource to true temporarily until |
| dispatch_source_set_registration_handler's callback is called. Resume and send any pending outgoing |
| messages. |
| (IPC::Connection::resumeSendSource): Extracted from initializeSendSource. |
| |
| 2018-04-05 Youenn Fablet <youenn@apple.com> |
| |
| WebRTC data channel only applications require capture permissions for direct connections |
| https://bugs.webkit.org/show_bug.cgi?id=174500 |
| <rdar://problem/34134281> |
| |
| Unreviewed. |
| Changed the code to suppress: "error: unused variable 'error' [-Werror,-Wunused-variable]" |
| Added some logging to this error case as a side bonus. |
| |
| * NetworkProcess/webrtc/NetworkMDNSRegister.cpp: |
| (WebKit::NetworkMDNSRegister::registerMDNSName): |
| |
| 2018-04-05 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| REGRESSION(r229831): Test WebKit2.ProvisionalURLAfterWillSendRequestCallback times out since r229831 |
| https://bugs.webkit.org/show_bug.cgi?id=184293 |
| |
| Reviewed by Alex Christensen. |
| |
| The problem is that after willSendRequest callback changes the request, the load is cancelled while |
| transitioning to committed state. This happens because the load is not waiting for the response policy check, so |
| it continues and when transitioning to committed, FrameLoader::closeURL() invalidates the current policy check |
| that causes a load failure. The new request returned by the API doesn't have any requester, so it's no longer |
| considered a main resource load. In the network process the resource load task doesn't wait for the response |
| policy and continues the load, sending the data to the web process. Once the first data is received, the load |
| transitions to commit, but the response policy check is still ongoing. This can only happen when using the C API |
| (I don't know about the Cocoa API), but not with the GLib API because it doesn't allow to create a new request, |
| only to modify the passed in one. With the C API we loss other internal things of the request like the priority, |
| but I guess the most important one is the requester. |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchWillSendRequest): |
| |
| 2018-04-04 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r230283. |
| |
| Caused webkitpy test failures. |
| |
| Reverted changeset: |
| |
| "Use CompletionHandlers for DelayedReplies" |
| https://bugs.webkit.org/show_bug.cgi?id=182269 |
| https://trac.webkit.org/changeset/230283 |
| |
| 2018-04-04 Youenn Fablet <youenn@apple.com> |
| |
| webrtc/video-update-often.html is flakily crashing on iOS simulator Debug |
| https://bugs.webkit.org/show_bug.cgi?id=184022 |
| |
| Reviewed by Jer Noble. |
| |
| Remove client context once the new context identifier is set. |
| Covered by test no longer crashing locally. |
| |
| * WebProcess/cocoa/PlaybackSessionManager.mm: |
| (WebKit::PlaybackSessionManager::setUpPlaybackControlsManager): |
| |
| 2018-04-04 Youenn Fablet <youenn@apple.com> |
| |
| WebRTC data channel only applications require capture permissions for direct connections |
| https://bugs.webkit.org/show_bug.cgi?id=174500 |
| <rdar://problem/34134281> |
| |
| Reviewed by Eric Carlson. |
| |
| Add support for MDNS registration and resolution by NetworkProcess. |
| WebProcess gives instruction to do the actual registrations/resolutions. |
| |
| * CMakeLists.txt: |
| * DerivedSources.make: |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess): |
| (WebKit::NetworkConnectionToWebProcess::didReceiveMessage): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| (WebKit::NetworkConnectionToWebProcess::mdnsRegister): |
| * NetworkProcess/webrtc/NetworkMDNSRegister.cpp: Added. |
| (WebKit::NetworkMDNSRegister::NetworkMDNSRegister): |
| (WebKit::NetworkMDNSRegister::~NetworkMDNSRegister): |
| (WebKit::NetworkMDNSRegister::unregisterMDNSNames): |
| (WebKit::PendingRegistrationRequest::PendingRegistrationRequest): |
| (WebKit::registerMDNSNameCallback): |
| (WebKit::NetworkMDNSRegister::registerMDNSName): |
| (WebKit::PendingResolutionRequest::PendingResolutionRequest): |
| (WebKit::PendingResolutionRequest::~PendingResolutionRequest): |
| (WebKit::PendingResolutionRequest::timeout): |
| (WebKit::resolveMDNSNameCallback): |
| (WebKit::NetworkMDNSRegister::resolveMDNSName): |
| * NetworkProcess/webrtc/NetworkMDNSRegister.h: Added. |
| * NetworkProcess/webrtc/NetworkMDNSRegister.messages.in: Added. |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetWebRTCMDNSICECandidatesEnabled): |
| (WKPreferencesGetWebRTCMDNSICECandidatesEnabled): |
| * UIProcess/API/C/WKPreferencesRef.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): |
| * WebProcess/Network/NetworkProcessConnection.cpp: |
| (WebKit::NetworkProcessConnection::didReceiveMessage): |
| * WebProcess/Network/webrtc/LibWebRTCNetwork.h: |
| (WebKit::LibWebRTCNetwork::mdnsRegister): |
| * WebProcess/Network/webrtc/LibWebRTCProvider.cpp: |
| (WebKit::LibWebRTCProvider::unregisterMDNSNames): |
| (WebKit::LibWebRTCProvider::registerMDNSName): |
| (WebKit::LibWebRTCProvider::resolveMDNSName): |
| * WebProcess/Network/webrtc/LibWebRTCProvider.h: |
| * WebProcess/Network/webrtc/WebMDNSRegister.cpp: Added. |
| (WebKit::WebMDNSRegister::finishedRegisteringMDNSName): |
| (WebKit::WebMDNSRegister::finishedResolvingMDNSName): |
| (WebKit::WebMDNSRegister::unregisterMDNSNames): |
| (WebKit::WebMDNSRegister::registerMDNSName): |
| (WebKit::WebMDNSRegister::resolveMDNSName): |
| * WebProcess/Network/webrtc/WebMDNSRegister.h: Added. |
| * WebProcess/Network/webrtc/WebMDNSRegister.messages.in: Added. |
| |
| 2018-04-04 Alex Christensen <achristensen@webkit.org> |
| |
| Use CompletionHandlers for DelayedReplies |
| https://bugs.webkit.org/show_bug.cgi?id=182269 |
| |
| Reviewed by Youenn Fablet. |
| |
| DelayedReplies should be a noncopyable, non-refcountable type. They should be |
| called once and only once. This is what CompletionHandlers are for. |
| |
| No change in behavior. Just cleaner code. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::performSynchronousLoad): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::SynchronousLoadData::SynchronousLoadData): |
| (WebKit::sendReplyToSynchronousRequest): |
| (WebKit::NetworkResourceLoader::NetworkResourceLoader): |
| * NetworkProcess/NetworkResourceLoader.h: |
| * Platform/IPC/Connection.h: |
| * Platform/IPC/HandleMessage.h: |
| (IPC::callMemberFunctionImpl): |
| (IPC::callMemberFunction): |
| (IPC::handleMessageDelayed): |
| * PluginProcess/PluginControllerProxy.cpp: |
| (WebKit::PluginControllerProxy::setInitializationReply): |
| (WebKit::PluginControllerProxy::takeInitializationReply): |
| * PluginProcess/PluginControllerProxy.h: |
| * PluginProcess/WebProcessConnection.cpp: |
| (WebKit::WebProcessConnection::destroyPlugin): |
| (WebKit::WebProcessConnection::createPlugin): |
| (WebKit::WebProcessConnection::createPluginAsynchronously): |
| * PluginProcess/WebProcessConnection.h: |
| * Scripts/webkit/messages.py: |
| (message_to_struct_declaration): |
| (generate_message_handler): |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::getNetworkProcessConnection): |
| (WebKit::NetworkProcessProxy::networkProcessCrashed): |
| (WebKit::NetworkProcessProxy::networkProcessFailedToLaunch): |
| (WebKit::NetworkProcessProxy::didCreateNetworkConnectionToWebProcess): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Plugins/PluginProcessManager.cpp: |
| (WebKit::PluginProcessManager::getPluginProcessConnection): |
| * UIProcess/Plugins/PluginProcessManager.h: |
| * UIProcess/Plugins/PluginProcessProxy.cpp: |
| (WebKit::PluginProcessProxy::getPluginProcessConnection): |
| (WebKit::PluginProcessProxy::pluginProcessCrashedOrFailedToLaunch): |
| (WebKit::PluginProcessProxy::didCreateWebProcessConnection): |
| * UIProcess/Plugins/PluginProcessProxy.h: |
| * UIProcess/Storage/StorageProcessProxy.cpp: |
| (WebKit::StorageProcessProxy::getStorageProcessConnection): |
| (WebKit::StorageProcessProxy::didClose): |
| (WebKit::StorageProcessProxy::didCreateStorageToWebProcessConnection): |
| * UIProcess/Storage/StorageProcessProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::ExceededDatabaseQuotaRecords::createRecord): |
| (WebKit::WebPageProxy::createNewPage): |
| (WebKit::WebPageProxy::runJavaScriptAlert): |
| (WebKit::WebPageProxy::runJavaScriptConfirm): |
| (WebKit::WebPageProxy::runJavaScriptPrompt): |
| (WebKit::WebPageProxy::webGLPolicyForURL): |
| (WebKit::WebPageProxy::resolveWebGLPolicyForURL): |
| (WebKit::WebPageProxy::getToolbarsAreVisible): |
| (WebKit::WebPageProxy::getMenuBarIsVisible): |
| (WebKit::WebPageProxy::getStatusBarIsVisible): |
| (WebKit::WebPageProxy::getWindowFrame): |
| (WebKit::WebPageProxy::screenToRootView): |
| (WebKit::WebPageProxy::rootViewToScreen): |
| (WebKit::WebPageProxy::runBeforeUnloadConfirmPanel): |
| (WebKit::WebPageProxy::exceededDatabaseQuota): |
| (WebKit::WebPageProxy::reachedApplicationCacheOriginQuota): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::networkProcessCrashed): |
| (WebKit::WebProcessPool::getNetworkProcessConnection): |
| (WebKit::WebProcessPool::getStorageProcessConnection): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::getPluginProcessConnection): |
| (WebKit::WebProcessProxy::getNetworkProcessConnection): |
| (WebKit::WebProcessProxy::getStorageProcessConnection): |
| * UIProcess/WebProcessProxy.h: |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::syncTerminateWorker): |
| * WebProcess/Storage/WebSWContextManagerConnection.h: |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::computePagesForPrintingAndDrawToPDF): |
| |
| 2018-04-04 Alex Christensen <achristensen@webkit.org> |
| |
| Remove legacyCustomProtocolManager from NetworkSessionCreationParameters |
| https://bugs.webkit.org/show_bug.cgi?id=182178 |
| |
| Reviewed by Youenn Fablet. |
| |
| Now that we only make NetworkSessions in the NetworkProcess, we don't need to pass this parameter around. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| * NetworkProcess/NetworkSessionCreationParameters.h: |
| (WebKit::NetworkSessionCreationParameters::decode): |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| * NetworkProcess/mac/RemoteNetworkingContext.mm: |
| (WebKit::RemoteNetworkingContext::ensureWebsiteDataStoreSession): |
| * Shared/WebsiteDataStoreParameters.cpp: |
| (WebKit::WebsiteDataStoreParameters::privateSessionParameters): |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| |
| 2018-04-04 Alex Christensen <achristensen@webkit.org> |
| |
| Move PingHandle to WebKitLegacy |
| https://bugs.webkit.org/show_bug.cgi?id=184145 |
| |
| Reviewed by Youenn Fablet. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| |
| 2018-04-04 Brent Fulgham <bfulgham@apple.com> |
| |
| Failures from mach port reference handling should be fatal |
| https://bugs.webkit.org/show_bug.cgi?id=184202 |
| <rdar://problem/37771114> |
| |
| Reviewed by Anders Carlsson. |
| |
| Update for new location of MachSendRight.h. Switch to |
| #pragma once in a few places. |
| |
| * Platform/IPC/mac/ConnectionMac.mm: |
| (IPC::Connection::platformInvalidate): Adopt new 'safe mach_port_t deallocation' function. |
| (IPC::Connection::initializeSendSource): Ditto. |
| (IPC::Connection::receiveSourceEventHandler): Ditto. |
| * Platform/SharedMemory.h: |
| * Platform/cocoa/SharedMemoryCocoa.cpp: |
| (WebKit::SharedMemory::Handle::clear): Ditto. |
| (WebKit::makeMemoryEntry): Ditto. |
| (WebKit::SharedMemory::createSendRight const): Ditto. |
| * Platform/mac/LayerHostingContext.h: |
| * Platform/mac/LayerHostingContext.mm: |
| * PluginProcess/PluginControllerProxy.h: |
| * PluginProcess/PluginProcess.h: |
| (WebKit::PluginProcess::compositingRenderServerPort const): |
| * Scripts/messages.py: |
| (headers_for_type): Update for new location of MachSendRight. |
| * Shared/Plugins/PluginProcessCreationParameters.h: |
| * Shared/RemoteLayerTree/RemoteLayerBackingStore.h: |
| * Shared/RemoteLayerTree/RemoteLayerBackingStore.mm: |
| (WebKit::RemoteLayerBackingStore::encode const): |
| * Shared/WebCoreArgumentCoders.h: |
| * Shared/WebProcessCreationParameters.h: |
| * Shared/mac/WebCoreArgumentCodersMac.mm: |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.mm: |
| * UIProcess/DrawingAreaProxy.cpp: |
| * UIProcess/DrawingAreaProxy.h: |
| * UIProcess/Launcher/mac/ProcessLauncherMac.mm: |
| (WebKit::ProcessLauncher::launchProcess): Ditto. Remove uneeded mach_port_dealloc called after |
| xpc_dictionary_set_mach_send. While '..._set_mach_send' retains the send right, it gets automatically |
| released when the message is handled. We only want to manually deallocate the send right if |
| the message failed to send. |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm: |
| * UIProcess/WebPageProxy.cpp: |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h: |
| * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm: |
| * UIProcess/mac/WKViewLayoutStrategy.mm: |
| * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp: |
| * WebProcess/Plugins/Netscape/NetscapePlugin.h: |
| * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm: |
| * WebProcess/Plugins/PluginController.h: |
| * WebProcess/Plugins/PluginView.h: |
| * WebProcess/WebPage/DrawingArea.h: |
| (WebKit::DrawingArea::addFence): |
| (WebKit::DrawingArea::updateGeometry): |
| * WebProcess/WebPage/DrawingArea.messages.in: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm: |
| (WebKit::RemoteLayerTreeDrawingArea::updateGeometry): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::setTopContentInsetFenced): |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h: |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: |
| (WebKit::TiledCoreAnimationDrawingArea::updateGeometry): |
| * WebProcess/WebProcess.h: |
| (WebKit::WebProcess::compositingRenderServerPort const): |
| * WebProcess/cocoa/VideoFullscreenManager.mm: |
| (WebKit::VideoFullscreenManager::setVideoLayerFrameFenced): |
| |
| 2018-04-04 Beth Dakin <bdakin@apple.com> |
| |
| Fix the print formatter build |
| https://bugs.webkit.org/show_bug.cgi?id=184289 |
| -and corresponding- |
| rdar://problem/39164641 |
| |
| Reviewed by Dan Bernstein. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _webViewPrintFormatter]): |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| * UIProcess/_WKWebViewPrintFormatter.h: |
| * UIProcess/_WKWebViewPrintFormatter.mm: |
| * UIProcess/_WKWebViewPrintFormatterInternal.h: |
| * UIProcess/ios/WKContentView.mm: |
| * UIProcess/ios/WKPDFView.mm: |
| |
| 2018-04-04 Andy Estes <aestes@apple.com> |
| |
| [iOS] Rename WKPDFView to WKLegacyPDFView |
| https://bugs.webkit.org/show_bug.cgi?id=184286 |
| |
| Rubber-stamped by Wenson Hsieh. |
| |
| A series of upcoming patches will implement a new WKPDFView based on PDFKit. |
| |
| * UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm: |
| (-[WKWebViewContentProviderRegistry init]): |
| * UIProcess/ios/WKLegacyPDFView.h: Renamed from Source/WebKit/UIProcess/ios/WKPDFView.h. |
| * UIProcess/ios/WKLegacyPDFView.mm: Renamed from Source/WebKit/UIProcess/ios/WKPDFView.mm. |
| (-[WKLegacyPDFView _computeMatchesForString:options:maxCount:completionHandler:]): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-04-04 Yousuke Kimoto <yousuke.kimoto@sony.com> and Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [WinCairo] Add WebKit Shared/win files for wincairo webkit |
| https://bugs.webkit.org/show_bug.cgi?id=183044 |
| |
| Reviewed by Alex Christensen. |
| |
| * Shared/win/ChildProcessMainWin.cpp: Added. |
| |
| 2018-04-04 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Remove effective font size constraints when determining focus zoom scale |
| https://bugs.webkit.org/show_bug.cgi?id=184287 |
| <rdar://problem/39063886> |
| |
| Reviewed by Timothy Hatcher. |
| |
| As it turns out, form controls on some important websites can be very wide, with a small font size, which |
| renders the approach taken in <https://trac.webkit.org/r230171> moot, since we'll just end up zooming to a scale |
| that is too large anyways. To mitigate this for now, remove the minimum font scaling threshold while we think of |
| more clever ways to account for this scenario. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _zoomToFocusRect:selectionRect:insideFixed:fontSize:minimumScale:maximumScale:allowScaling:forceScroll:]): |
| |
| 2018-04-04 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [Win] WebFrameLoaderClient: 'getpid': identifier not found |
| https://bugs.webkit.org/show_bug.cgi?id=184291 |
| |
| Reviewed by Konstantin Tokarev. |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad): |
| Use WTF::getCurrentProcessID() instead of getpid(). |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): Ditto. |
| |
| 2018-04-03 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| ASSERTION FAILED: !m_mainFrame->coreFrame()->loader().frameHasLoaded() || !m_pendingNavigationID when reloading page while a page is loading |
| https://bugs.webkit.org/show_bug.cgi?id=153210 |
| |
| Reviewed by Alex Christensen. |
| |
| The assert happens when WebPage::reload() is called twice and the first time the reload is ignored by |
| FrameLoader because the document URL is empty. In that case the pending navigation is not reset, because |
| FrameLoader::reload() returns before creating the document loader. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::reload): Check if the pending navigation has been reset after calling FrameLoader::reload() |
| and reset it otherwise. |
| |
| 2018-04-03 Youenn Fablet <youenn@apple.com> |
| |
| Make NetworkProcess get ContentBlocker information from UIProcess |
| https://bugs.webkit.org/show_bug.cgi?id=184205 |
| <rdar://problem/39146551> |
| |
| Unreviewed. |
| Updated decode/encode methods to not hit null identifier assertion. |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageGroupData.cpp: |
| (WebKit::WebPageGroupData::encode const): |
| (WebKit::WebPageGroupData::decode): |
| |
| 2018-04-03 Andy Estes <aestes@apple.com> |
| |
| [iOS] WKWebView shouldn't know about WKPDFView |
| https://bugs.webkit.org/show_bug.cgi?id=184283 |
| |
| Reviewed by Timothy Hatcher. |
| |
| WKWebView shouldn't be checking if _customContentView is a particular kind of |
| class (e.g., WKPDFView). Instead, it should interact with the _customContentView |
| using the WKWebViewContentProvider protocol. |
| |
| Reimplement -_isBackground, -_isDisplayingPDF, -_dataForDisplayedPDF, and |
| -_suggestedFilenameForDisplayedPDF using new WKWebViewContentProvider protocol |
| methods that WKPDFView implements. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _isBackground]): |
| (-[WKWebView _isDisplayingPDF]): |
| (-[WKWebView _dataForDisplayedPDF]): |
| (-[WKWebView _suggestedFilenameForDisplayedPDF]): |
| * UIProcess/Cocoa/WKWebViewContentProvider.h: |
| * UIProcess/ios/WKPDFView.h: |
| * UIProcess/ios/WKPDFView.mm: |
| (-[WKPDFView web_dataRepresentation]): |
| (-[WKPDFView web_suggestedFilename]): |
| (-[WKPDFView web_isBackground]): |
| (-[WKPDFView suggestedFilename]): Deleted. |
| (-[WKPDFView pdfDocument]): Deleted. |
| (-[WKPDFView isBackground]): Deleted. |
| |
| 2018-04-03 Brent Fulgham <bfulgham@apple.com> |
| |
| Guard against keychain/certificate access outside the network process |
| https://bugs.webkit.org/show_bug.cgi?id=184214 |
| <rdar://problem/38734795> |
| |
| Reviewed by Youenn Fablet. |
| |
| Use the ProcessPrivilege assertions to guard against accessing the Keychain from |
| a non-Networking process. |
| |
| * Shared/cf/ArgumentCodersCF.cpp: |
| (IPC::encode): Assert if we access the keychain from a proces other than the Network or UI process. |
| (IPC::decode): Ditto. |
| |
| 2018-04-03 Youenn Fablet <youenn@apple.com> |
| |
| NetworkResourceLoader does not need to expose all redirect response headers |
| https://bugs.webkit.org/show_bug.cgi?id=184114 |
| <rdar://problem/39010557> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| WebProcess instructs NetworkProcess whether to sanitize response headers based on a runtime flag. |
| We sanitize redirection response headers in case this is not related to a navigation load. |
| Navigation loads may currently require the full response for content blockers. |
| |
| * NetworkProcess/NetworkResourceLoadParameters.cpp: |
| (WebKit::NetworkResourceLoadParameters::encode const): |
| (WebKit::NetworkResourceLoadParameters::decode): |
| * NetworkProcess/NetworkResourceLoadParameters.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::willSendRedirectedRequest): |
| (WebKit::NetworkResourceLoader::sanitizeRedirectResponseIfPossible): |
| (WebKit::NetworkResourceLoader::dispatchWillSendRequestForCacheEntry): |
| * NetworkProcess/NetworkResourceLoader.h: |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetRestrictedHTTPResponseAccess): |
| (WKPreferencesGetRestrictedHTTPResponseAccess): |
| * UIProcess/API/C/WKPreferencesRef.h: |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess): |
| (WebKit::WebLoaderStrategy::loadResourceSynchronously): |
| (WebKit::WebLoaderStrategy::startPingLoad): |
| (WebKit::WebLoaderStrategy::preconnectTo): |
| |
| 2018-04-03 Youenn Fablet <youenn@apple.com> |
| |
| Make NetworkProcess get ContentBlocker information from UIProcess |
| https://bugs.webkit.org/show_bug.cgi?id=184205 |
| |
| Reviewed by Alex Christensen. |
| |
| Make NetworkProcess get content blockers from UIProcess directly. |
| Before that patch, WebProcess sent content blockers to NetworkProcess for each PingLoad. |
| Instead, WebProcess sends the content blocker identifier for each PingLoad and NetworkProcess fetches the content blocker once. |
| |
| This is both more efficient than passing them for each PingLoad and safer in the sense |
| that a compromised WebProcess will not be able to bypass any of these. |
| In the future, NetworkProcess should get the content blocker identifier directly from the WebPageID attached to the request. |
| |
| Covered by existing beacon+content blocker tests. |
| |
| Did some refactoring to add a typed content blocker identifier. |
| Once NetworkProcess fetches a given content blocker, the content blocker will send any modification to NetworkProcess. |
| Introduced NetworkContentRuleListManager to handle the content blockers in NetworkProcess. |
| |
| * CMakeLists.txt: |
| * DerivedSources.make: |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::checkRequest): |
| (WebKit::NetworkLoadChecker::continueCheckingRequest): |
| (WebKit::NetworkLoadChecker::processContentExtensionRulesForLoad): |
| * NetworkProcess/NetworkLoadChecker.h: |
| (WebKit::NetworkLoadChecker::setContentExtensionController): |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::didReceiveMessage): |
| * NetworkProcess/NetworkProcess.h: |
| (WebKit::NetworkProcess::networkUserContentController): |
| * NetworkProcess/NetworkResourceLoadParameters.cpp: |
| (WebKit::NetworkResourceLoadParameters::encode const): |
| (WebKit::NetworkResourceLoadParameters::decode): |
| * NetworkProcess/NetworkResourceLoadParameters.h: |
| * NetworkProcess/NetworkContentRuleListManager.cpp: Added. |
| (WebKit::NetworkContentRuleListManager::contentExtensionsBackend): |
| (WebKit::NetworkContentRuleListManager::addContentRuleLists): |
| (WebKit::NetworkContentRuleListManager::removeContentRuleList): |
| (WebKit::NetworkContentRuleListManager::removeAllContentRuleLists): |
| (WebKit::NetworkContentRuleListManager::remove): |
| * NetworkProcess/NetworkContentRuleListManager.h: Added. |
| * NetworkProcess/NetworkContentRuleListManager.messages.in: Added. |
| * NetworkProcess/PingLoad.cpp: |
| * Scripts/webkit/messages.py: |
| * Shared/UserContentControllerIdentifier.h: Added. |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| * Shared/WebPageGroupData.cpp: |
| (WebKit::WebPageGroupData::decode): |
| * Shared/WebPageGroupData.h: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::~NetworkProcessProxy): |
| (WebKit::NetworkProcessProxy::contentExtensionRules): |
| (WebKit::NetworkProcessProxy::didDestroyWebUserContentControllerProxy): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| * UIProcess/UserContent/WebUserContentControllerProxy.cpp: |
| (WebKit::WebUserContentControllerProxy::get): |
| (WebKit::WebUserContentControllerProxy::WebUserContentControllerProxy): |
| (WebKit::WebUserContentControllerProxy::~WebUserContentControllerProxy): |
| (WebKit::WebUserContentControllerProxy::addProcess): |
| (WebKit::WebUserContentControllerProxy::removeProcess): |
| (WebKit::WebUserContentControllerProxy::addUserContentWorldUse): |
| (WebKit::WebUserContentControllerProxy::removeUserContentWorldUses): |
| (WebKit::WebUserContentControllerProxy::addUserScript): |
| (WebKit::WebUserContentControllerProxy::removeUserScript): |
| (WebKit::WebUserContentControllerProxy::removeAllUserScripts): |
| (WebKit::WebUserContentControllerProxy::addUserStyleSheet): |
| (WebKit::WebUserContentControllerProxy::removeUserStyleSheet): |
| (WebKit::WebUserContentControllerProxy::removeAllUserStyleSheets): |
| (WebKit::WebUserContentControllerProxy::addUserScriptMessageHandler): |
| (WebKit::WebUserContentControllerProxy::removeUserMessageHandlerForName): |
| (WebKit::WebUserContentControllerProxy::removeAllUserMessageHandlers): |
| (WebKit::WebUserContentControllerProxy::addContentRuleList): |
| (WebKit::WebUserContentControllerProxy::removeContentRuleList): |
| (WebKit::WebUserContentControllerProxy::removeAllContentRuleLists): |
| * UIProcess/UserContent/WebUserContentControllerProxy.h: |
| (WebKit::WebUserContentControllerProxy::create): |
| (WebKit::WebUserContentControllerProxy::addNetworkProcess): |
| (WebKit::WebUserContentControllerProxy::removeNetworkProcess): |
| (WebKit::WebUserContentControllerProxy::contentExtensionRules): |
| (WebKit::WebUserContentControllerProxy::identifier const): |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::startPingLoad): |
| * WebProcess/UserContent/WebUserContentController.cpp: |
| (WebKit::WebUserContentController::getOrCreate): |
| (WebKit::WebUserContentController::WebUserContentController): |
| (WebKit::WebUserContentController::~WebUserContentController): |
| * WebProcess/UserContent/WebUserContentController.h: |
| * WebProcess/WebPage/WebPage.h: |
| (WebKit::WebPage::userContentControllerIdentifier const): |
| |
| 2018-04-03 Andy Estes <aestes@apple.com> |
| |
| [Mac] Prioritize file promises over filenames during drag and drop |
| https://bugs.webkit.org/show_bug.cgi?id=184237 |
| <rdar://problem/38278076> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::performDragOperation): |
| |
| 2018-04-03 Brady Eidson <beidson@apple.com> |
| |
| Make SessionStorage work with process swapping. |
| https://bugs.webkit.org/show_bug.cgi?id=184270 |
| |
| Reviewed by Andy Estes. |
| |
| Due to a minor process accounting error, WebPageProxys weren't always being reconnected with their |
| WebsiteDataStore's StorageManager when doing process swaps. |
| |
| Fix that error, and SessionStorage "just works." |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::webProcessWillShutDown): |
| (WebKit::WebPageProxy::processDidTerminate): For NavigationSwap termination, make sure to tell the |
| process lifetime tracker that this page was removed. |
| |
| * UIProcess/WebProcessLifetimeObserver.h: |
| (WebKit::WebProcessLifetimeObserver::webPageWasInvalidated): Renamed from "webPageWasRemoved" |
| (WebKit::WebProcessLifetimeObserver::webPageWasRemoved): Deleted. |
| |
| * UIProcess/WebProcessLifetimeTracker.cpp: |
| (WebKit::WebProcessLifetimeTracker::webPageLeavingWebProcess): Renamed from "webProcessWillShutDown" |
| (WebKit::WebProcessLifetimeTracker::pageWasInvalidated): |
| (WebKit::WebProcessLifetimeTracker::webProcessWillShutDown): Deleted. |
| * UIProcess/WebProcessLifetimeTracker.h: |
| |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::webPageWasInvalidated): |
| (WebKit::WebsiteDataStore::webPageWasRemoved): Deleted. |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| |
| 2018-04-03 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r230210. |
| https://bugs.webkit.org/show_bug.cgi?id=184277 |
| |
| it is breaking internal bots (Requested by youenn on #webkit). |
| |
| Reverted changeset: |
| |
| "Make NetworkProcess get ContentBlocker information from |
| UIProcess" |
| https://bugs.webkit.org/show_bug.cgi?id=184205 |
| https://trac.webkit.org/changeset/230210 |
| |
| 2018-04-03 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Update time picker to use platform view controller |
| https://bugs.webkit.org/show_bug.cgi?id=184252 |
| <rdar://problem/38804795> |
| |
| Reviewed by Andy Estes. |
| |
| Adjust for some small WKTimePickerViewController changes, and remove some files that we no longer need. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView presentViewControllerForCurrentAssistedNode]): |
| (-[WKContentView textInputController:didCommitText:]): Deleted. |
| (-[WKContentView textInputController:didCommitText:withSuggestion:]): Deleted. |
| (-[WKContentView textInputControllerDidRequestDismissal:]): Deleted. |
| * UIProcess/ios/forms/WKTextFormControlViewController.h: Removed. |
| * UIProcess/ios/forms/WKTextFormControlViewController.mm: Removed. |
| * UIProcess/ios/forms/WKTextSuggestionButton.h: Removed. |
| * UIProcess/ios/forms/WKTextSuggestionButton.mm: Removed. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-04-03 Ross Kirsling <ross.kirsling@sony.com> |
| |
| Xcode prepends line comments from WTF/Compiler.h to *.sb files |
| https://bugs.webkit.org/show_bug.cgi?id=184166 |
| |
| Reviewed by Brent Fulgham. |
| |
| * DerivedSources.make: |
| Strip ;-comments from *.sb.in files before preprocessing so we can stop treating Platform.h/Compiler.h as C89. |
| |
| 2018-04-03 Chris Dumez <cdumez@apple.com> |
| |
| Drop MainFrame class |
| https://bugs.webkit.org/show_bug.cgi?id=184191 |
| |
| Reviewed by Darin Adler. |
| |
| Drop MainFrame class and move contents into Page / Frame since there is a 1:1 |
| relationship between the Page and the MainFrame. |
| |
| This is ground work for introducing LocalFrame / RemoteFrame concepts. |
| |
| * Shared/WebRenderLayer.cpp: |
| * Shared/WebRenderObject.cpp: |
| * WebProcess/ApplePay/WebPaymentCoordinator.cpp: |
| (WebKit::WebPaymentCoordinator::paymentCoordinator): |
| * WebProcess/Automation/WebAutomationSessionProxy.cpp: |
| * WebProcess/FullScreen/WebFullScreenManager.cpp: |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: |
| (WKBundlePageInstallPageOverlay): |
| (WKBundlePageUninstallPageOverlay): |
| (WKBundlePageInstallPageOverlayWithAnimation): |
| (WKBundlePageUninstallPageOverlayWithAnimation): |
| * WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp: |
| * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm: |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| * WebProcess/Plugins/PDF/PDFPlugin.mm: |
| * WebProcess/Plugins/PluginView.cpp: |
| * WebProcess/Plugins/WebPluginInfoProvider.cpp: |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| * WebProcess/WebCoreSupport/WebContextMenuClient.cpp: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| * WebProcess/WebCoreSupport/WebInspectorClient.cpp: |
| (WebKit::WebInspectorClient::~WebInspectorClient): |
| (WebKit::WebInspectorClient::highlight): |
| (WebKit::WebInspectorClient::hideHighlight): |
| (WebKit::WebInspectorClient::showPaintRect): |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: |
| * WebProcess/WebCoreSupport/WebProgressTrackerClient.cpp: |
| * WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm: |
| * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm: |
| * WebProcess/WebPage/AcceleratedDrawingArea.cpp: |
| * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp: |
| * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp: |
| * WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp: |
| * WebProcess/WebPage/FindController.cpp: |
| (WebKit::FindController::updateFindUIAfterPageScroll): |
| (WebKit::FindController::hideFindUI): |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.mm: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm: |
| (WebKit::RemoteLayerTreeDrawingArea::updatePreferences): |
| * WebProcess/WebPage/WKAccessibilityWebPageObjectIOS.mm: |
| * WebProcess/WebPage/WebBackForwardListProxy.cpp: |
| * WebProcess/WebPage/WebFrame.cpp: |
| * WebProcess/WebPage/WebInspector.cpp: |
| * WebProcess/WebPage/WebInspectorFrontendAPIDispatcher.cpp: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::mainFrame const): |
| (WebKit::WebPage::determinePrimarySnapshottedPlugIn): |
| (WebKit::WebPage::plugInIntersectsSearchRect): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/atk/WebPageAccessibilityObjectAtk.cpp: |
| * WebProcess/WebPage/ios/FindControllerIOS.mm: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: |
| (WebKit::TiledCoreAnimationDrawingArea::updatePreferences): |
| * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm: |
| * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm: |
| (-[WKAccessibilityWebPageObject accessibilityParameterizedAttributeNames]): |
| (-[WKAccessibilityWebPageObject accessibilityAttributeValue:forParameter:]): |
| * WebProcess/WebPage/mac/WebPageMac.mm: |
| (WebKit::WebPage::performImmediateActionHitTestAtLocation): |
| (WebKit::WebPage::dataDetectorsDidPresentUI): |
| (WebKit::WebPage::dataDetectorsDidChangeUI): |
| (WebKit::WebPage::dataDetectorsDidHideUI): |
| * WebProcess/WebProcess.cpp: |
| * WebProcess/WebStorage/StorageAreaMap.cpp: |
| |
| 2018-04-03 Youenn Fablet <youenn@apple.com> |
| |
| Make NetworkProcess get ContentBlocker information from UIProcess |
| https://bugs.webkit.org/show_bug.cgi?id=184205 |
| |
| Reviewed by Alex Christensen. |
| |
| Make NetworkProcess get content blockers from UIProcess directly. |
| Before that patch, WebProcess sent content blockers to NetworkProcess for each PingLoad. |
| Instead, WebProcess sends the content blocker identifier for each PingLoad and NetworkProcess fetches the content blocker once. |
| |
| This is both more efficient than passing them for each PingLoad and safer in the sense |
| that a compromised WebProcess will not be able to bypass any of these. |
| In the future, NetworkProcess should get the content blocker identifier directly from the WebPageID attached to the request. |
| |
| Covered by existing beacon+content blocker tests. |
| |
| Did some refactoring to add a typed content blocker identifier. |
| Once NetworkProcess fetches a given content blocker, the content blocker will send any modification to NetworkProcess. |
| Introduced NetworkContentRuleListManager to handle the content blockers in NetworkProcess. |
| |
| * CMakeLists.txt: |
| * DerivedSources.make: |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::checkRequest): |
| (WebKit::NetworkLoadChecker::continueCheckingRequest): |
| (WebKit::NetworkLoadChecker::processContentExtensionRulesForLoad): |
| * NetworkProcess/NetworkLoadChecker.h: |
| (WebKit::NetworkLoadChecker::setContentExtensionController): |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::didReceiveMessage): |
| * NetworkProcess/NetworkProcess.h: |
| (WebKit::NetworkProcess::networkUserContentController): |
| * NetworkProcess/NetworkResourceLoadParameters.cpp: |
| (WebKit::NetworkResourceLoadParameters::encode const): |
| (WebKit::NetworkResourceLoadParameters::decode): |
| * NetworkProcess/NetworkResourceLoadParameters.h: |
| * NetworkProcess/NetworkContentRuleListManager.cpp: Added. |
| (WebKit::NetworkContentRuleListManager::contentExtensionsBackend): |
| (WebKit::NetworkContentRuleListManager::addContentRuleLists): |
| (WebKit::NetworkContentRuleListManager::removeContentRuleList): |
| (WebKit::NetworkContentRuleListManager::removeAllContentRuleLists): |
| (WebKit::NetworkContentRuleListManager::remove): |
| * NetworkProcess/NetworkContentRuleListManager.h: Added. |
| * NetworkProcess/NetworkContentRuleListManager.messages.in: Added. |
| * NetworkProcess/PingLoad.cpp: |
| * Scripts/webkit/messages.py: |
| * Shared/UserContentControllerIdentifier.h: Added. |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| * Shared/WebPageGroupData.cpp: |
| (WebKit::WebPageGroupData::decode): |
| * Shared/WebPageGroupData.h: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::~NetworkProcessProxy): |
| (WebKit::NetworkProcessProxy::contentExtensionRules): |
| (WebKit::NetworkProcessProxy::didDestroyWebUserContentControllerProxy): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| * UIProcess/UserContent/WebUserContentControllerProxy.cpp: |
| (WebKit::WebUserContentControllerProxy::get): |
| (WebKit::WebUserContentControllerProxy::WebUserContentControllerProxy): |
| (WebKit::WebUserContentControllerProxy::~WebUserContentControllerProxy): |
| (WebKit::WebUserContentControllerProxy::addProcess): |
| (WebKit::WebUserContentControllerProxy::removeProcess): |
| (WebKit::WebUserContentControllerProxy::addUserContentWorldUse): |
| (WebKit::WebUserContentControllerProxy::removeUserContentWorldUses): |
| (WebKit::WebUserContentControllerProxy::addUserScript): |
| (WebKit::WebUserContentControllerProxy::removeUserScript): |
| (WebKit::WebUserContentControllerProxy::removeAllUserScripts): |
| (WebKit::WebUserContentControllerProxy::addUserStyleSheet): |
| (WebKit::WebUserContentControllerProxy::removeUserStyleSheet): |
| (WebKit::WebUserContentControllerProxy::removeAllUserStyleSheets): |
| (WebKit::WebUserContentControllerProxy::addUserScriptMessageHandler): |
| (WebKit::WebUserContentControllerProxy::removeUserMessageHandlerForName): |
| (WebKit::WebUserContentControllerProxy::removeAllUserMessageHandlers): |
| (WebKit::WebUserContentControllerProxy::addContentRuleList): |
| (WebKit::WebUserContentControllerProxy::removeContentRuleList): |
| (WebKit::WebUserContentControllerProxy::removeAllContentRuleLists): |
| * UIProcess/UserContent/WebUserContentControllerProxy.h: |
| (WebKit::WebUserContentControllerProxy::create): |
| (WebKit::WebUserContentControllerProxy::addNetworkProcess): |
| (WebKit::WebUserContentControllerProxy::removeNetworkProcess): |
| (WebKit::WebUserContentControllerProxy::contentExtensionRules): |
| (WebKit::WebUserContentControllerProxy::identifier const): |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::startPingLoad): |
| * WebProcess/UserContent/WebUserContentController.cpp: |
| (WebKit::WebUserContentController::getOrCreate): |
| (WebKit::WebUserContentController::WebUserContentController): |
| (WebKit::WebUserContentController::~WebUserContentController): |
| * WebProcess/UserContent/WebUserContentController.h: |
| * WebProcess/WebPage/WebPage.h: |
| (WebKit::WebPage::userContentControllerIdentifier const): |
| |
| 2018-04-02 Beth Dakin <bdakin@apple.com> |
| |
| Fix the managed configurations build |
| https://bugs.webkit.org/show_bug.cgi?id=184253 |
| -and corresponding- |
| rdar://problem/39078586 |
| |
| Reviewed by Dan Bernstein. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView canPerformActionForWebView:withSender:]): |
| (-[WKContentView _defineForWebView:]): |
| |
| 2018-04-02 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [Enchant] Clean up TextCheckerEnchant |
| https://bugs.webkit.org/show_bug.cgi?id=184233 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Use TextCheckerEnchant as a singleton now, instead of implementing the singleton here. |
| |
| * UIProcess/gtk/TextCheckerGtk.cpp: |
| (WebKit::TextChecker::checkSpellingOfString): |
| (WebKit::TextChecker::getGuessesForWord): |
| (WebKit::TextChecker::learnWord): |
| (WebKit::TextChecker::ignoreWord): |
| (WebKit::TextChecker::setSpellCheckingLanguages): |
| (WebKit::TextChecker::loadedSpellCheckingLanguages): |
| (WebKit::enchantTextChecker): Deleted. |
| |
| 2018-04-03 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] NetworkProcess from WebKitGtk+ 2.19.9x SIGSEVs in NetworkStorageSession (secret search callback) |
| https://bugs.webkit.org/show_bug.cgi?id=183346 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Pass the request cancellable to NetworkStorageSession::getCredentialFromPersistentStorage(). |
| |
| * NetworkProcess/soup/NetworkDataTaskSoup.cpp: |
| (WebKit::NetworkDataTaskSoup::authenticate): |
| |
| 2018-04-02 Brady Eidson <beidson@apple.com> |
| |
| Process swapping on navigation needs to handle server redirects. |
| <rdar://problem/38690465> and https://bugs.webkit.org/show_bug.cgi?id=184142 |
| |
| Reviewed by Alex Christensen. |
| |
| The same rules we apply to process swapping for basic navigations need to apply |
| to server redirects as well. |
| |
| There's three interesting cases we need to support that are covered by new API tests: |
| 1 - The initial load in a WKWebView redirects cross-origin. |
| 2 - A WKWebView is showing content from a.com, we start a load to b.com, and that redirects to c.com |
| 3 - A WKWebView is showing content from a.com, we start a load to a.com, that that redirects to b.com. |
| |
| Supporting all 3 of these brought their own little challenges. |
| |
| By teaching Navigation objects more about redirects I was able to support all 3 cases. |
| |
| * UIProcess/API/APINavigation.cpp: |
| (API::Navigation::Navigation): |
| (API::Navigation::setCurrentRequest): |
| (API::Navigation::appendRedirectionURL): |
| (API::Navigation::loggingString const): |
| (API::Navigation::loggingURL const): Deleted. |
| * UIProcess/API/APINavigation.h: |
| (API::Navigation::originalRequest const): |
| (API::Navigation::currentRequest const): |
| (API::Navigation::currentRequestProcessIdentifier const): |
| (API::Navigation::setCurrentRequestIsRedirect): |
| (API::Navigation::currentRequestIsRedirect const): |
| (API::Navigation::request const): Deleted. |
| |
| * UIProcess/API/Cocoa/WKNavigation.mm: |
| (-[WKNavigation _request]): |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::receivedPolicyDecision): |
| (WebKit::WebPageProxy::continueNavigationInNewProcess): If this continued navigation is currently in a server |
| redirect, save off a lambda to synthesize a "did receive server redirect" callback once the new WebProcess is running. |
| (WebKit::WebPageProxy::didCreateMainFrame): |
| (WebKit::WebPageProxy::didStartProvisionalLoadForFrame): Possibly ignore this notification if it is really a |
| cross-origin redirect that is just starting back up in a new WebProcess. |
| (WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame): |
| (WebKit::WebPageProxy::didCommitLoadForFrame): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::resetStateAfterProcessExited): Do not clear pageLoadState if the process is exitting for |
| a navigation swap, as we will need to pick up where we left off when the load continues in a new WebProcess. |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigation): If a process has never committed any provisional load, it can always |
| be used to continue a navigation. |
| * UIProcess/WebProcessPool.h: |
| |
| * UIProcess/WebProcessProxy.h: |
| (WebKit::WebProcessProxy::didCommitProvisionalLoad): |
| (WebKit::WebProcessProxy::hasCommittedAnyProvisionalLoads const): |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad): |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| |
| 2018-04-02 Eric Carlson <eric.carlson@apple.com> |
| |
| [Extra zoom mode] Replace video with a placeholder image during fullscreen transition |
| https://bugs.webkit.org/show_bug.cgi?id=184188 |
| <rdar://problem/38940307> |
| |
| Reviewed by Youenn Fablet. |
| |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.h: |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.messages.in: |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.mm: |
| (WebKit::VideoFullscreenModelContext::willExitFullscreen): |
| (WebKit::VideoFullscreenManagerProxy::preparedToExitFullscreen): |
| (WebKit::VideoFullscreenManagerProxy::willExitFullscreen): |
| * WebProcess/cocoa/VideoFullscreenManager.h: |
| * WebProcess/cocoa/VideoFullscreenManager.messages.in: |
| * WebProcess/cocoa/VideoFullscreenManager.mm: |
| (WebKit::VideoFullscreenManager::willExitFullscreen): |
| |
| 2018-04-02 Brian Burg <bburg@apple.com> |
| |
| [Cocoa] Fix some internal builds that consume WebDriver atoms |
| https://bugs.webkit.org/show_bug.cgi?id=184197 |
| |
| Reviewed by Dan Bernstein. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| Use a Run Script phase to copy WebDriver atoms to WebKit.framework |
| private headers during the installhdrs phase. |
| |
| 2018-04-02 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r230174. |
| |
| Caused LayoutTests to exit early with assertion failures. |
| |
| Reverted changeset: |
| |
| "Process swapping on navigation needs to handle server |
| redirects." |
| https://bugs.webkit.org/show_bug.cgi?id=184142 |
| https://trac.webkit.org/changeset/230174 |
| |
| 2018-04-02 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Update date picker UI to latest specifications |
| https://bugs.webkit.org/show_bug.cgi?id=184234 |
| <rdar://problem/38804760> |
| |
| Reviewed by Timothy Hatcher. |
| |
| Rename WKTextFormControlListViewControllerDelegate to WKTextInputListViewControllerDelegate and adjust for the |
| new initializer of WKDatePickerViewController. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView presentViewControllerForCurrentAssistedNode]): |
| |
| 2018-04-02 Brady Eidson <beidson@apple.com> |
| |
| Process swapping on navigation needs to handle server redirects. |
| <rdar://problem/38690465> and https://bugs.webkit.org/show_bug.cgi?id=184142 |
| |
| Reviewed by Alex Christensen. |
| |
| The same rules we apply to process swapping for basic navigations need to apply |
| to server redirects as well. |
| |
| There's three interesting cases we need to support that are covered by new API tests: |
| 1 - The initial load in a WKWebView redirects cross-origin. |
| 2 - A WKWebView is showing content from a.com, we start a load to b.com, and that redirects to c.com |
| 3 - A WKWebView is showing content from a.com, we start a load to a.com, that that redirects to b.com. |
| |
| Supporting all 3 of these brought their own little challenges. |
| |
| By teaching Navigation objects more about redirects I was able to support all 3 cases. |
| |
| * UIProcess/API/APINavigation.cpp: |
| (API::Navigation::Navigation): |
| (API::Navigation::setCurrentRequest): |
| (API::Navigation::appendRedirectionURL): |
| (API::Navigation::loggingString const): |
| (API::Navigation::loggingURL const): Deleted. |
| * UIProcess/API/APINavigation.h: |
| (API::Navigation::originalRequest const): |
| (API::Navigation::currentRequest const): |
| (API::Navigation::currentRequestProcessIdentifier const): |
| (API::Navigation::setCurrentRequestIsRedirect): |
| (API::Navigation::currentRequestIsRedirect const): |
| (API::Navigation::request const): Deleted. |
| |
| * UIProcess/API/Cocoa/WKNavigation.mm: |
| (-[WKNavigation _request]): |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::receivedPolicyDecision): |
| (WebKit::WebPageProxy::continueNavigationInNewProcess): If this continued navigation is currently in a server |
| redirect, save off a lambda to synthesize a "did receive server redirect" callback once the new WebProcess is running. |
| (WebKit::WebPageProxy::didCreateMainFrame): |
| (WebKit::WebPageProxy::didStartProvisionalLoadForFrame): Possibly ignore this notification if it is really a |
| cross-origin redirect that is just starting back up in a new WebProcess. |
| (WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame): |
| (WebKit::WebPageProxy::didCommitLoadForFrame): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::resetStateAfterProcessExited): Do not clear pageLoadState if the process is exitting for |
| a navigation swap, as we will need to pick up where we left off when the load continues in a new WebProcess. |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigation): If a process has never committed any provisional load, it can always |
| be used to continue a navigation. |
| * UIProcess/WebProcessPool.h: |
| |
| * UIProcess/WebProcessProxy.h: |
| (WebKit::WebProcessProxy::didCommitProvisionalLoad): |
| (WebKit::WebProcessProxy::hasCommittedAnyProvisionalLoads const): |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad): |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| |
| 2018-04-02 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Zoom level is sometimes excessive when zooming to focused form controls |
| https://bugs.webkit.org/show_bug.cgi?id=184222 |
| <rdar://problem/39063886> |
| |
| Reviewed by Timothy Hatcher. |
| |
| Upon interactively focusing an element, we zoom and scroll to reveal that element. The heuristics introduced in |
| <https://trac.webkit.org/r168744> work by computing a target scale, and then a point to zoom to given that |
| scale. Currently, this scale is dependent on the computed font size of the form control, such that the form |
| control would be scaled to have an effective font size of 16. |
| |
| However, in extra zoom mode, applying these same heuristics (ironically) results in excessive zoom levels, since |
| scaling the font up to 16 would cause most form controls to zoom so far in that we lose context of surrounding |
| elements such as labels and other form controls; the fact that the element is highlighted by the focused form |
| control overlay makes this even more confusing, since part of the focus overlay highlight rect often ends up |
| outside the viewport. |
| |
| To fix this, we make a couple of tweaks to focus rect zooming in extra zoom mode. (1) Instead of computing |
| target zoom level based on font size, try to zoom such that the focused element rect fills up most of the |
| viewport (similar to double-tap zooming). This ensures that the focused form control overlay's highlight rect |
| makes sense in most cases, with few exceptions (e.g. the element frame is larger than the viewport). (2) |
| Introduce a minimum legible font size of 11, and compute the minimium scale needed such that the form control |
| font would appear to be at least this legible font size. Then, clamp the target scale chosen by (1) to this |
| minimum scale. |
| |
| One additional consideration for (1) is that naively scaling to fit the element rect to the viewport (with some |
| fixed margins) would cause the viewport scale to always change when moving focus between form controls of |
| different dimensions, even if the current scale is more or less appropriate for all the focusable elements. To |
| address this, instead of computing a single target zoom scale for an element rect, compute a range of possible |
| target zoom scales (where the minimum and maximum values depend on the margin we add around the element rect). |
| If the current scale already falls within this target scale range, then we won't bother adjusting the scale at |
| all (unless the font size is too small — see (2)). If the current scale falls outside the target scale range, we |
| then make the minimal adjustment needed to ensure that the element rect fits well within the viewport without |
| being too small. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _zoomToFocusRect:selectionRect:insideFixed:fontSize:minimumScale:maximumScale:allowScaling:forceScroll:]): |
| |
| Move some logic around so that the target scale is computed after computing the visible size. Also renames some |
| constants local to this function (WKWebViewStandardFontSize, kMinimumHeightToShowContentAboveKeyboard, |
| UIWebFormAnimationDuration, CaretOffsetFromWindowEdge) such that they now share a consistent naming style. |
| |
| 2018-04-02 Jer Noble <jer.noble@apple.com> |
| |
| Enable Legacy EME for all WebKit & WebKitLegacy clients |
| https://bugs.webkit.org/show_bug.cgi?id=184018 |
| <rdar://problem/34887387> |
| |
| Reviewed by Eric Carlson. |
| |
| * Shared/WebPreferences.yaml: |
| * Shared/WebPreferencesDefaultValues.h: |
| |
| 2018-04-02 Jer Noble <jer.noble@apple.com> |
| |
| REGRESSION (229680): Fullscreen video does not work (youtube, netflix) |
| https://bugs.webkit.org/show_bug.cgi?id=184235 |
| |
| Reviewed by Eric Carlson. |
| |
| Enable the Fullscreen API by default. |
| |
| * Shared/WebPreferences.yaml: |
| * Shared/WebPreferencesDefaultValues.h: |
| |
| 2018-04-02 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [Win] MSVC can't compile WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent |
| https://bugs.webkit.org/show_bug.cgi?id=184120 |
| |
| Reviewed by Alex Christensen. |
| |
| It seems that MSVC can't compile the code using `this` in a |
| generalized lambda capture in another lambda. |
| |
| In this case, there is no need to copy `protectedThis` for the |
| inner lambda. Move `protectedThis` of the outer lambda to the |
| inner as well as `callback`. |
| |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent): |
| Moved `protectedThis` from the outer lambda to the inner. |
| |
| 2018-04-02 Dan Bernstein <mitz@apple.com> |
| |
| Build fix after r230121 |
| |
| * Configurations/WebKit.xcconfig: Disabled framework header postprocessing when building for |
| iOS 11.* |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: Reverted r230159. |
| |
| 2018-04-02 Dan Bernstein <mitz@apple.com> |
| |
| Fixed the build when BOOL is not bool. |
| <rdar://problem/39094484> |
| |
| Reviewed by Jer Noble. |
| |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.mm: |
| (-[WKFullScreenViewController videoControlsManagerDidChange]): Removed the write-only ivar |
| _hasControlsManager, the assignment to which was causing the compiler error. |
| |
| 2018-04-02 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed build fix. |
| |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: Update availability annotation. |
| |
| 2018-04-02 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [GTK] DragAndDropHandler.cpp should include GUniquePtrGtk.h |
| https://bugs.webkit.org/show_bug.cgi?id=184119 |
| |
| Reviewed by Daniel Bates. |
| |
| * UIProcess/gtk/DragAndDropHandler.cpp: |
| |
| 2018-04-02 Frederic Wang <fwang@igalia.com> |
| |
| Fix warnings for unused lambda captures in Source/WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=173555 |
| |
| Reviewed by Konstantin Tokarev. |
| |
| When release logs are disabled, several lambda captures are unused, causing compilation |
| failures with -Wunused-lambda-capture. This patch marks the corresponding variables as unused |
| in order to fix these warnings. |
| |
| Based on initial patch by: Konstantin Tokarev <annulen@yandex.ru> |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::retrieveCacheEntry): |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::fetchWebsiteData): |
| (WebKit::NetworkProcessProxy::deleteWebsiteData): |
| (WebKit::NetworkProcessProxy::deleteWebsiteDataForOrigins): |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::fetchWebsiteData): |
| (WebKit::WebProcessProxy::deleteWebsiteData): |
| (WebKit::WebProcessProxy::deleteWebsiteDataForOrigins): |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView dragInteraction:willAnimateLiftWithAnimator:session:]): |
| |
| 2018-04-02 Alejandro G. Castro <alex@igalia.com> |
| |
| [GTK] Make libwebrtc backend buildable for GTK port |
| https://bugs.webkit.org/show_bug.cgi?id=178860 |
| |
| Reviewed by Youenn Fablet. |
| |
| * CMakeLists.txt: Add RTC network classes to the compilation and |
| the libwebrtc includes. |
| * PlatformGTK.cmake: Add the libwebrtc directory. |
| * SourcesGTK.txt: Add RTC files to the compilation. |
| |
| 2018-03-30 Chris Dumez <cdumez@apple.com> |
| |
| REGRESSION (r229828): Facebook login popup is blank |
| https://bugs.webkit.org/show_bug.cgi?id=184206 |
| <rdar://problem/39057006> |
| |
| Reviewed by Wenson Hsieh. |
| |
| Add assertion to make sure we never try to do a policy check to |
| a resource response while a policy check for a navigation is |
| pending. This assertion was being hit by several of our redirection |
| tests without my fix. |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse): |
| |
| 2018-03-30 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r230125. |
| |
| Build fix broke more builds. |
| |
| Reverted changeset: |
| |
| "Unreviewed build fix, remove unused lambda capture." |
| https://trac.webkit.org/changeset/230125 |
| |
| 2018-03-30 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed build fix, remove unused lambda capture. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::retrieveCacheEntry): |
| |
| 2018-03-30 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Adopt list view controller UI for numeric input types |
| https://bugs.webkit.org/show_bug.cgi?id=184184 |
| <rdar://problem/37238916> |
| |
| Reviewed by Timothy Hatcher. |
| |
| Remove existing logic for presenting a number pad view controller, since number pads will now be handled as a |
| special case of general text form controls in extra zoom mode. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView presentViewControllerForCurrentAssistedNode]): |
| (-[WKContentView dismissAllInputViewControllers]): |
| (-[WKContentView _wheelChangedWithEvent:]): |
| |
| 2018-03-30 Dan Bernstein <mitz@apple.com> |
| |
| Update availability annotations to match the macOS 10.13.4 and iOS 11.3 GM SDKs |
| https://bugs.webkit.org/show_bug.cgi?id=184173 |
| |
| Reviewed by Alex Christensen. |
| |
| Changed WK_MAC_TBA and WK_IOS_TBA to 10.13.4 and 11.3, respectively, in all declarations that |
| appear in the GM SDKs. |
| |
| * Shared/API/Cocoa/_WKNSWindowExtras.h: |
| * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: |
| * UIProcess/API/Cocoa/WKOpenPanelParameters.h: |
| * UIProcess/API/Cocoa/WKOpenPanelParametersPrivate.h: |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: |
| * UIProcess/API/Cocoa/WKViewPrivate.h: |
| * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/API/Cocoa/WKWebsiteDataRecord.h: |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| * UIProcess/API/Cocoa/_WKApplicationManifest.h: |
| * UIProcess/API/Cocoa/_WKAttachment.h: |
| * UIProcess/API/Cocoa/_WKAutomationSession.h: |
| * UIProcess/API/Cocoa/_WKAutomationSessionConfiguration.h: |
| * UIProcess/API/Cocoa/_WKDownload.h: |
| * UIProcess/API/Cocoa/_WKDownloadDelegate.h: |
| * UIProcess/API/Cocoa/_WKFocusedElementInfo.h: |
| * UIProcess/API/Cocoa/_WKFullscreenDelegate.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.h: |
| * UIProcess/API/Cocoa/_WKVisitedLinkStore.h: |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h: |
| * UIProcess/API/Cocoa/_WKWebsitePolicies.h: |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandlePrivate.h: |
| * WebProcess/InjectedBundle/API/mac/WKDOMDocument.h: |
| |
| 2018-03-30 Youenn Fablet <youenn@apple.com> |
| |
| NetworkLoadChecker should upgrade redirects if needed |
| https://bugs.webkit.org/show_bug.cgi?id=184098 |
| |
| Reviewed by Chris Dumez. |
| |
| In case of redirections, upgrade URL according CSP. |
| |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::checkRequest): |
| (WebKit::NetworkLoadChecker::contentSecurityPolicy const): |
| |
| 2018-03-30 JF Bastien <jfbastien@apple.com> |
| |
| Update messages.py codegen for String, fix tests |
| https://bugs.webkit.org/show_bug.cgi?id=184179 |
| <rdar://problem/39041352> |
| |
| Reviewed by Mark Lam. |
| |
| I updated some of the code in |
| https://trac.webkit.org/changeset/230097 and auto-magically used a |
| script to update copyright headers... and that broke the tests |
| which checked for a particular date. Update all of the headers. |
| |
| Part of this change updates the code generated by messages.py |
| |
| * Scripts/webkit/LegacyMessageReceiver-expected.cpp: |
| * Scripts/webkit/MessageReceiver-expected.cpp: |
| * Scripts/webkit/MessageReceiverSuperclass-expected.cpp: |
| * Scripts/webkit/MessagesSuperclass-expected.h: |
| * Scripts/webkit/messages.py: |
| * Scripts/webkit/messages_unittest.py: |
| (GeneratedFileContentsTest.assertGeneratedFileContentsEqual): |
| generate a better error message |
| |
| 2018-03-29 JF Bastien <jfbastien@apple.com> |
| |
| Use Forward.h instead of forward-declaring WTF::String |
| https://bugs.webkit.org/show_bug.cgi?id=184172 |
| <rdar://problem/39026146> |
| |
| Reviewed by Yusuke Suzuki. |
| |
| As part of #184164 I'm changing WTF::String, and the forward |
| declarations are just wrong because I'm making it templated. We |
| should use Forward.h anyways, so do that instead. |
| |
| * Scripts/webkit/LegacyMessages-expected.h: |
| * Scripts/webkit/Messages-expected.h: |
| * Scripts/webkit/MessagesSuperclass-expected.h: |
| * UIProcess/WebOpenPanelResultListenerProxy.h: |
| |
| 2018-03-29 Brian Burg <bburg@apple.com> |
| |
| Web Automation: clipToViewport is ignored for element screenshots |
| https://bugs.webkit.org/show_bug.cgi?id=184158 |
| <rdar://problem/39014307> |
| |
| Reviewed by Timothy Hatcher. |
| |
| In §19.2 Take Element Screenshot, step 5.2 says that we should clip |
| the element screenshot rect with the visible viewport rect. We don't |
| do that right now even though we pass over clipToViewport. |
| |
| * WebProcess/Automation/WebAutomationSessionProxy.cpp: |
| (WebKit::snapshotRectForScreenshot): |
| Clip the rect to viewport if needed. |
| |
| (WebKit::WebAutomationSessionProxy::takeScreenshot): |
| This scrollIntoView is misplaced; by this point we have already done |
| the math to figure out the screenshot rect. Move it before computing the rect. |
| |
| 2018-03-29 Brent Fulgham <bfulgham@apple.com> |
| |
| REGRESSION(r230035): ASSERT(MACH_PORT_VALID(m_sendPort)) hit in IPC::Connection::initializeSendSource() |
| https://bugs.webkit.org/show_bug.cgi?id=184122 |
| <rdar://problem/39003606> |
| |
| Reviewed by Chris Dumez. |
| |
| One of the new assertions added in r230035 begin firing while running tests locally. This was happening |
| because the WebInspector was attempting to open a new connection to a web process that had already |
| terminated its mach port connection (a dead port). |
| |
| We should avoid opening new connections when the port we were given is already dead. |
| |
| * Platform/IPC/Connection.h: |
| (IPC::Connection::identifierIsValid): Added. |
| * Platform/IPC/mac/ConnectionMac.mm: |
| (IPC::Connection::platformInitialize): Do not perform initialization on a dead (or null) port. |
| (IPC::Connection::open): Add some assertions that ports are in a valid state. |
| (IPC::Connection::sendOutgoingMessage): Assert that the send port is not dead. |
| (IPC::Connection::receiveSourceEventHandler): Assert that the receive port is valid. |
| * UIProcess/ChildProcessProxy.cpp: |
| (WebKit::ChildProcessProxy::didFinishLaunching): Treat a dead port as a signal that the |
| child process failed to launch. |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::didFinishLaunching): Ditto. |
| * UIProcess/Plugins/PluginProcessProxy.cpp: |
| (WebKit::PluginProcessProxy::didFinishLaunching): Ditto. |
| * UIProcess/Storage/StorageProcessProxy.cpp: |
| (WebKit::StorageProcessProxy::didFinishLaunching): Ditto. |
| * WebProcess/Plugins/PluginProcessConnectionManager.cpp: |
| (WebKit::PluginProcessConnectionManager::getPluginProcessConnection): Ditto. |
| * WebProcess/WebPage/WebInspectorUI.cpp: |
| (WebKit::WebInspectorUI::establishConnection): Ditto. |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::ensureNetworkProcessConnection): Ditto. |
| (WebKit::WebProcess::ensureWebToStorageProcessConnection): Ditto. |
| |
| 2018-03-29 Youenn Fablet <youenn@apple.com> |
| |
| Synchronize SecurityOrigin related scheme registries with NetworkProcess |
| https://bugs.webkit.org/show_bug.cgi?id=184140 |
| |
| Reviewed by Chris Dumez. |
| |
| Add syncing of scheme registries that are used by SecurityOrigin and ContentSecurityPolicy |
| so that we can properly use them in NetworkProcess as we do in WebProcess. |
| The registries that are not synced are: |
| - URLSchemeAsEmptyDocument |
| - URLSchemeDomainRelaxationForbidden |
| - URLSchemeAsCachePartitioned |
| - URLSchemeAsCanDisplayOnlyIfCanRequest |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| (WebKit::NetworkProcess::registerURLSchemeAsSecure const): |
| (WebKit::NetworkProcess::registerURLSchemeAsBypassingContentSecurityPolicy const): |
| (WebKit::NetworkProcess::registerURLSchemeAsLocal const): |
| (WebKit::NetworkProcess::registerURLSchemeAsNoAccess const): |
| (WebKit::NetworkProcess::registerURLSchemeAsDisplayIsolated const): |
| (WebKit::NetworkProcess::registerURLSchemeAsCORSEnabled const): |
| (WebKit::NetworkProcess::registerURLSchemeAsCanDisplayOnlyIfCanRequest const): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| (WebKit::WebProcessPool::registerURLSchemeAsSecure): |
| (WebKit::WebProcessPool::registerURLSchemeAsBypassingContentSecurityPolicy): |
| (WebKit::WebProcessPool::registerURLSchemeAsLocal): |
| (WebKit::WebProcessPool::registerURLSchemeAsNoAccess): |
| (WebKit::WebProcessPool::registerURLSchemeAsDisplayIsolated): |
| (WebKit::WebProcessPool::registerURLSchemeAsCORSEnabled): |
| (WebKit::WebProcessPool::registerURLSchemeAsCanDisplayOnlyIfCanRequest): |
| |
| 2018-03-29 Brent Fulgham <bfulgham@apple.com> |
| |
| REGRESSION(r229480): ERROR: Unhandled web process message 'WebCookieManager:SetHTTPCookieAcceptPolicy' |
| https://bugs.webkit.org/show_bug.cgi?id=184124 |
| <rdar://problem/38998971> |
| |
| Reviewed by Chris Dumez. |
| |
| Cookie accept policy messages were still being sent to the WebContent process after |
| I removed cookie access in r229480. The WebContent process no longer recognizes these |
| messages, and generates logging to that effect. |
| |
| This patch stops sending these unnecessary messages to the WebContent process. Only the |
| Network process needs to receive this information. |
| |
| * UIProcess/WebCookieManagerProxy.cpp: |
| (WebKit::WebCookieManagerProxy::setHTTPCookieAcceptPolicy): |
| |
| 2018-03-29 Carlos Eduardo Ramalho <cadubentzen@gmail.com> |
| |
| [WPE] Floating point exception in WebEventFactory::createWebWheelEvent |
| https://bugs.webkit.org/show_bug.cgi?id=184037 |
| |
| Reviewed by Žan Doberšek. |
| |
| * Shared/wpe/WebEventFactory.cpp: |
| (WebKit::WebEventFactory::createWebWheelEvent): Use std::copysign() to avoid division by 0. |
| |
| 2018-03-28 Zalan Bujtas <zalan@apple.com> |
| |
| Make it possible to override the screen size |
| https://bugs.webkit.org/show_bug.cgi?id=184111 |
| <rdar://problem/38972181> |
| |
| Reviewed by Tim Horton. |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::creationParameters): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::overrideScreenSize): |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::overrideScreenSize const): |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::overrideScreenSize const): |
| |
| 2018-03-28 Chris Dumez <cdumez@apple.com> |
| |
| Do process swap when opening a cross-origin URL via window.open(url, '_blank', 'noopener') |
| https://bugs.webkit.org/show_bug.cgi?id=183962 |
| <rdar://problem/38817833> |
| |
| Reviewed by Brady Eidson. |
| |
| Swap WebProcess on for the initial navigation in a new Window that was opened |
| via window.open(), when the new URL is cross-origin compared to the opener's |
| origin. For now, we only swap process if 'noopener' property is set when calling |
| window.open(). This is because we do not support the remote DOMWindows yet. |
| |
| * Shared/NavigationActionData.cpp: |
| (WebKit::NavigationActionData::encode const): |
| (WebKit::NavigationActionData::decode): |
| * Shared/NavigationActionData.h: |
| * UIProcess/API/APINavigation.h: |
| (API::Navigation::setIsCrossOriginWindowOpenNavigation): |
| (API::Navigation::isCrossOriginWindowOpenNavigation const): |
| (API::Navigation::setOpener): |
| (API::Navigation::opener const): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::receivedPolicyDecision): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigation): |
| * UIProcess/WebProcessPool.h: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| |
| 2018-03-28 Per Arne Vollan <pvollan@apple.com> |
| |
| Adopt WEBPROCESS_WINDOWSERVER_BLOCKING compiler guard in WebProcess. |
| https://bugs.webkit.org/show_bug.cgi?id=183959 |
| <rdar://problem/38965719> |
| |
| Reviewed by Brent Fulgham. |
| |
| Use the compile guard to guard the call to CGSSetDenyWindowServerConnections. |
| |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeProcess): |
| |
| 2018-03-28 Brent Fulgham <bfulgham@apple.com> |
| |
| Unreviewed build fix after r230045. |
| |
| * UIProcess/Launcher/mac/ProcessLauncherMac.mm: Add missing include (breaks iOS). |
| |
| 2018-03-28 Brent Fulgham <bfulgham@apple.com> |
| |
| Protect against invalid mach ports returned by mach_port_request_notification |
| https://bugs.webkit.org/show_bug.cgi?id=184106 |
| <rdar://problem/37865316> |
| |
| Reviewed by Chris Dumez. |
| |
| * Platform/IPC/Connection.h: |
| (IPC::Connection::Identifier::Identifier): Use default initializer syntax. |
| * Platform/IPC/mac/ConnectionMac.mm: |
| (IPC::Connection::open): Drive-by-fix: Include formatted mach error message in logging. |
| (IPC::Connection::receiveSourceEventHandler): Check return value from 'mach_port_request_notification' |
| and clean up if it experienced an error. |
| * UIProcess/Launcher/mac/ProcessLauncherMac.mm: |
| (WebKit::ProcessLauncher::launchProcess): Ditto. |
| |
| 2018-03-28 Dean Jackson <dino@apple.com> |
| |
| WKWebViewContentProvider shouldn't be a UIScrollViewDelegate |
| https://bugs.webkit.org/show_bug.cgi?id=184107 |
| <rdar://problem/38967492> |
| |
| Reviewed by Tim Horton. |
| |
| There is no need for this class to be a UIScrollViewDelegate. Instead |
| the protocol should have an optional method that is effectively |
| scrollViewDidScroll. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView scrollViewDidScroll:]): Call web_scrollViewDidScroll |
| if it exists. |
| * UIProcess/Cocoa/WKWebViewContentProvider.h: Remove UIScrollViewDelegate |
| and add an optional web_scrollViewDidScroll. |
| * UIProcess/ios/WKPDFView.mm: |
| (-[WKPDFView web_scrollViewDidScroll:]): Renamed from scrollViewDidScroll. |
| (-[WKPDFView scrollViewDidScroll:]): Deleted. |
| * UIProcess/ios/WKSystemPreviewView.mm: |
| (-[WKSystemPreviewView scrollViewDidScroll:]): Deleted. |
| |
| 2018-03-28 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Make boosted text autosizing values switchable at runtime |
| https://bugs.webkit.org/show_bug.cgi?id=184092 |
| <rdar://problem/38939917> |
| |
| Reviewed by Tim Horton. |
| |
| Add a private web view preference to switch between normal and boosted text autosizing mode. By default, we use |
| normal text autosizing values. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences _setShouldEnableTextAutosizingBoost:]): |
| (-[WKPreferences _shouldEnableTextAutosizingBoost]): |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: |
| |
| 2018-03-28 Brent Fulgham <bfulgham@apple.com> |
| |
| Avoid uninitialized mach ports |
| https://bugs.webkit.org/show_bug.cgi?id=184090 |
| <rdar://problem/37261129> |
| |
| Reviewed by Chris Dumez. |
| |
| It is possible for mach_port_allocate to return an error, but we rarely check its return value. The value |
| of the argument passed to mach_port_allocate is not guaranteed to be valid when it returns an error, so |
| there is a potential for us to try to use invalid ports. |
| |
| We should always check return values, and ensure that the mach port variables we seek to initialize are |
| kept in a valid state. |
| |
| Reviewed by Chris Dumez. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::createNetworkConnectionToWebProcess): Initialize new port to a safe default and |
| check the return state of the allocation function. |
| * Platform/IPC/Connection.h: |
| * Platform/IPC/mac/ConnectionMac.mm: |
| (IPC::Connection::open): Ditto. |
| (IPC::Connection::initializeSendSource): Ditto. |
| (IPC::readFromMachPort): Ditto. |
| (IPC::Connection::receiveSourceEventHandler): Ditto. |
| * Platform/SharedMemory.h: |
| * Platform/cocoa/SharedMemoryCocoa.cpp: |
| (WebKit::makeMemoryEntry): Ditto. |
| * Platform/mac/MachUtilities.cpp: |
| (setMachPortQueueLength): Ditto. |
| (setMachExceptionPort): Ditto. |
| * PluginProcess/PluginProcess.cpp: |
| (WebKit::PluginProcess::createWebProcessConnection): Ditto. |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::createStorageToWebProcessConnection): Ditto. |
| * UIProcess/Launcher/mac/ProcessLauncherMac.mm: |
| (WebKit::ProcessLauncher::launchProcess): Ditto. |
| * WebProcess/WebPage/WebInspector.cpp: |
| (WebKit::WebInspector::openFrontendConnection): Ditto. |
| |
| 2018-03-28 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Fails to build webkitgtk+ after git-svn-id: http://svn.webkit.org/repository/webkit/trunk@229877 268f45cc-cd09-0410-ab3c-d52691b4dbfc |
| https://bugs.webkit.org/show_bug.cgi?id=184081 |
| |
| Unreviewed, switch to use UNUSED_PARAM() |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| |
| 2018-03-28 Tim Horton <timothy_horton@apple.com> |
| |
| Make use of HAVE(CORE_ANIMATION_RENDER_SERVER) in more places |
| https://bugs.webkit.org/show_bug.cgi?id=184072 |
| <rdar://problem/38946530> |
| |
| Reviewed by Dan Bernstein. |
| |
| * Platform/mac/LayerHostingContext.mm: |
| (WebKit::LayerHostingContext::createForExternalHostingProcess): |
| * UIProcess/mac/ViewSnapshotStore.h: |
| * UIProcess/mac/ViewSnapshotStore.mm: |
| (WebKit::ViewSnapshot::clearImage): |
| |
| 2018-03-28 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Revert an unnecessary workaround when zooming focused form controls |
| https://bugs.webkit.org/show_bug.cgi?id=184067 |
| <rdar://problem/38805254> |
| |
| Reviewed by Tim Horton. |
| |
| Reverts an unintended change introduced in r227984. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _displayFormNodeInputView]): |
| |
| 2018-03-28 Miguel Gomez <magomez@igalia.com> |
| |
| [GTK][WPE] Remove UpdateAtlas |
| https://bugs.webkit.org/show_bug.cgi?id=184042 |
| |
| Reviewed by Žan Doberšek. |
| |
| Remove all the code related to UpdateAtlas handling. |
| |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: |
| (WebKit::CoordinatedGraphicsScene::updateTilesIfNeeded): |
| (WebKit::CoordinatedGraphicsScene::commitSceneState): |
| (WebKit::CoordinatedGraphicsScene::purgeGLResources): |
| (WebKit::CoordinatedGraphicsScene::syncUpdateAtlases): Deleted. |
| (WebKit::CoordinatedGraphicsScene::createUpdateAtlas): Deleted. |
| (WebKit::CoordinatedGraphicsScene::removeUpdateAtlas): Deleted. |
| (WebKit::CoordinatedGraphicsScene::releaseUpdateAtlases): Deleted. |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h: |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: |
| (WebKit::ThreadedCompositor::renderLayerTree): |
| (WebKit::ThreadedCompositor::releaseUpdateAtlases): Deleted. |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h: |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::delegatedScrollRequested): |
| (WebKit::WebChromeClient::resetUpdateAtlasForTesting): Deleted. |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| * WebProcess/WebPage/AcceleratedDrawingArea.cpp: |
| (WebKit::AcceleratedDrawingArea::resetUpdateAtlasForTesting): Deleted. |
| * WebProcess/WebPage/AcceleratedDrawingArea.h: |
| * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp: |
| (WebKit::CompositingCoordinator::CompositingCoordinator): |
| (WebKit::CompositingCoordinator::flushPendingLayerChanges): |
| (WebKit::CompositingCoordinator::clearPendingStateChanges): |
| (WebKit::CompositingCoordinator::renderNextFrame): |
| (WebKit::CompositingCoordinator::purgeBackingStores): |
| (WebKit::CompositingCoordinator::createUpdateAtlas): Deleted. |
| (WebKit::CompositingCoordinator::removeUpdateAtlas): Deleted. |
| (WebKit::CompositingCoordinator::getCoordinatedBuffer): Deleted. |
| (): Deleted. |
| (WebKit::CompositingCoordinator::scheduleReleaseInactiveAtlases): Deleted. |
| (WebKit::CompositingCoordinator::releaseInactiveAtlasesTimerFired): Deleted. |
| (WebKit::CompositingCoordinator::releaseAtlases): Deleted. |
| (WebKit::CompositingCoordinator::clearUpdateAtlases): Deleted. |
| * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h: |
| * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp: |
| (WebKit::CoordinatedLayerTreeHost::clearUpdateAtlases): Deleted. |
| * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h: |
| * WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp: |
| (WebKit::ThreadedCoordinatedLayerTreeHost::releaseUpdateAtlases): Deleted. |
| * WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h: |
| * WebProcess/WebPage/DrawingArea.h: |
| * WebProcess/WebPage/LayerTreeHost.h: |
| (WebKit::LayerTreeHost::setIsDiscardable): |
| |
| 2018-03-28 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| REGRESSION(r229998): WebDriver: MiniBrowser is crashing in a lot of tests after r229998 |
| https://bugs.webkit.org/show_bug.cgi?id=184075 |
| |
| Reviewed by Žan Doberšek. |
| |
| This is because we are using a value after it has been moved. |
| |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::setWindowFrameOfBrowsingContext): Save a reference to page in a local variable |
| before using it when it's also going to be moved in the lambda capture. |
| |
| 2018-03-27 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, fix typo in variable name |
| |
| * UIProcess/API/gtk/WebKitWebViewBase.cpp: |
| (webkitWebViewBaseCrossingNotifyEvent): |
| |
| 2018-03-27 Per Arne Vollan <pvollan@apple.com> |
| |
| The layout test fast/canvas/webgl/read-pixels-test.html is timing out. |
| https://bugs.webkit.org/show_bug.cgi?id=183923 |
| <rdar://problem/38756869> |
| |
| Reviewed by Brent Fulgham. |
| |
| Send OpenGL display mask to the WebContent process when the display ID is changing. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::windowScreenDidChange): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/mac/WebPageMac.mm: |
| (WebKit::WebPage::openGLDisplayMaskChanged): |
| |
| 2018-03-27 Youenn Fablet <youenn@apple.com> |
| |
| Move request checking out of PingLoad for future reuse in NetworkLoad |
| https://bugs.webkit.org/show_bug.cgi?id=183865 |
| |
| Reviewed by Chris Dumez. |
| |
| Introduce NetworkLoadChecker as a way to validate requests before sending them in the network process. |
| Validation encompasses: CORS checks, CSP and Content Extensions on both main request and redirected requests if any. |
| |
| Make PingLoad use NetworkLoadChecker. Future patch should make NetworkLoad to use it as well whenever needed. |
| |
| Make NetworkCORSPreflightChecker takes a CompletionHandler instead of a Function. |
| Ensure this callback is called even if preflight is not completed by returning a Canceled error. |
| |
| * NetworkProcess/NetworkCORSPreflightChecker.cpp: |
| (WebKit::NetworkCORSPreflightChecker::~NetworkCORSPreflightChecker): |
| (WebKit::NetworkCORSPreflightChecker::returnResult): |
| (WebKit::NetworkCORSPreflightChecker::willPerformHTTPRedirection): |
| (WebKit::NetworkCORSPreflightChecker::didReceiveChallenge): |
| (WebKit::NetworkCORSPreflightChecker::didCompleteWithError): |
| * NetworkProcess/NetworkCORSPreflightChecker.h: |
| * NetworkProcess/NetworkLoadChecker.cpp: Added. |
| (WebKit::NetworkLoadChecker::NetworkLoadChecker): |
| (WebKit::NetworkLoadChecker::check): |
| (WebKit::NetworkLoadChecker::checkRedirection): |
| (WebKit::NetworkLoadChecker::returnError): |
| (WebKit::NetworkLoadChecker::checkRequest): |
| (WebKit::NetworkLoadChecker::checkCORSRequest): |
| (WebKit::NetworkLoadChecker::checkCORSRedirectedRequest): |
| (WebKit::NetworkLoadChecker::checkCORSRequestWithPreflight): |
| (WebKit::NetworkLoadChecker::doesNotNeedCORSCheck const): |
| (WebKit::NetworkLoadChecker::contentSecurityPolicy const): |
| (WebKit::NetworkLoadChecker::contentExtensionsBackend): |
| (WebKit::NetworkLoadChecker::processContentExtensionRulesForLoad): |
| * NetworkProcess/NetworkLoadChecker.h: Added. |
| (WebKit::NetworkLoadChecker::setCSPResponseHeaders): |
| (WebKit::NetworkLoadChecker::setContentExtensionRuleLists): |
| (WebKit::NetworkLoadChecker::url const): |
| (WebKit::NetworkLoadChecker::storedCredentialsPolicy const): |
| (WebKit::NetworkLoadChecker::isChecking const): |
| (WebKit::NetworkLoadChecker::isRedirected const): |
| * NetworkProcess/PingLoad.cpp: |
| (WebKit::PingLoad::PingLoad): |
| (WebKit::PingLoad::~PingLoad): |
| (WebKit::PingLoad::willPerformHTTPRedirection): |
| (WebKit::PingLoad::didReceiveChallenge): |
| (WebKit::PingLoad::wasBlocked): |
| (WebKit::PingLoad::cannotShowURL): |
| (WebKit::PingLoad::timeoutTimerFired): |
| (WebKit::PingLoad::currentURL const): |
| * NetworkProcess/PingLoad.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-03-27 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthN] Implement authenticatorGetAssertion |
| https://bugs.webkit.org/show_bug.cgi?id=183881 |
| <rdar://problem/37258628> |
| |
| Reviewed by Brent Fulgham. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.cpp: |
| (WebKit::WebCredentialsMessengerProxy::makeCredential): |
| (WebKit::WebCredentialsMessengerProxy::getAssertion): |
| (WebKit::WebCredentialsMessengerProxy::getAssertionReply): |
| * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.h: |
| * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.messages.in: |
| * WebProcess/CredentialManagement/WebCredentialsMessenger.cpp: |
| (WebKit::WebCredentialsMessenger::getAssertion): |
| (WebKit::WebCredentialsMessenger::getAssertionReply): |
| * WebProcess/CredentialManagement/WebCredentialsMessenger.messages.in: |
| |
| 2018-03-27 Chris Dumez <cdumez@apple.com> |
| |
| Avoid constructing SecurityOrigin objects from non-main threads |
| https://bugs.webkit.org/show_bug.cgi?id=184024 |
| |
| Reviewed by Youenn Fablet. |
| |
| Avoid constructing SecurityOrigin objects from non-main threads as much as possible. |
| |
| * WebProcess/Storage/WebSWClientConnection.cpp: |
| (WebKit::WebSWClientConnection::mayHaveServiceWorkerRegisteredForOrigin const): |
| (WebKit::WebSWClientConnection::matchRegistration): |
| (WebKit::WebSWClientConnection::getRegistrations): |
| * WebProcess/Storage/WebSWClientConnection.h: |
| * WebProcess/Storage/WebSWOriginTable.cpp: |
| (WebKit::WebSWOriginTable::contains const): |
| * WebProcess/Storage/WebSWOriginTable.h: |
| |
| 2018-03-27 Chris Dumez <cdumez@apple.com> |
| |
| Move online state detection from the WebProcess to the NetworkProcess |
| https://bugs.webkit.org/show_bug.cgi?id=183989 |
| <rdar://problem/37093299> |
| |
| Reviewed by Youenn Fablet. |
| |
| Move online state detection from the WebProcess to the NetworkProcess. This avoid executing the same (expensive) code in |
| EACH web process whenever a network interface's state changes. Now, the Network Process monitors network interfaces |
| and determines the online state whenever an interface's state changes. If the onLine state changes, it notifies all |
| its connected WebProcesses via IPC. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::setOnLineState): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::NetworkProcess): |
| (WebKit::NetworkProcess::createNetworkConnectionToWebProcess): |
| * WebProcess/Network/NetworkProcessConnection.cpp: |
| (WebKit::NetworkProcessConnection::setOnLineState): |
| * WebProcess/Network/NetworkProcessConnection.h: |
| * WebProcess/Network/NetworkProcessConnection.messages.in: |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::isOnLine const): |
| (WebKit::WebLoaderStrategy::addOnlineStateChangeListener): |
| (WebKit::WebLoaderStrategy::setOnLineState): |
| * WebProcess/Network/WebLoaderStrategy.h: |
| |
| 2018-03-27 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Add support for new focused form control overlay behaviors |
| https://bugs.webkit.org/show_bug.cgi?id=184043 |
| <rdar://problem/38758727> |
| |
| Reviewed by Tim Horton. |
| |
| See below for more details. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _willStartScrollingOrZooming]): |
| (-[WKContentView _didEndScrollingOrZooming]): |
| |
| Suppress focused form control navigation while the scroll view is undergoing a scroll or zoom animation (e.g., |
| when moving from one focused form control to another). |
| |
| (-[WKContentView textInputController:didCommitText:withSuggestion:]): |
| |
| When dismissing an input view controller, allow focused form control navigation only after updating assisted |
| node information to ensure that focus rects aren't stale as the user begins to navigate between forms. |
| |
| (-[WKContentView rectForFocusedFormControlController:inCoordinateSpace:]): |
| (-[WKContentView nextRectForFocusedFormControlController:inCoordinateSpace:]): |
| (-[WKContentView previousRectForFocusedFormControlController:inCoordinateSpace:]): |
| (-[WKContentView scrollViewForFocusedFormControlController:]): |
| (-[WKContentView highlightedRectForFocusedFormControlController:inCoordinateSpace:]): Deleted. |
| |
| Implement some new focused form overlay delegate hooks to vend the scroll view, as well as the rects of next and |
| previous focusable form controls. |
| |
| 2018-03-27 Brent Fulgham <bfulgham@apple.com> |
| |
| Further refine cookie read/write logging |
| https://bugs.webkit.org/show_bug.cgi?id=184044 |
| <rdar://problem/38915610> |
| |
| Reviewed by Chris Dumez. |
| |
| Cookie logging was passing the partition, rather than the first party, when logging, which |
| prevented logging in cases where partitioning or blocking was active. This patch corrects |
| these calls so that logging is generated in these cases, too. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::cookiesForDOM): Call log routines if needed. |
| (WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM): Ditto. |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::escapeIDForJSON): Make available to use in multiple functions. |
| (WebKit::NetworkResourceLoader::logCookieInformation const): Revise to use shared |
| convenience functions. |
| (WebKit::logBlockedCookieInformation): Added. |
| (WebKit::logCookieInformationInternal): Added. |
| (WebKit::NetworkResourceLoader::logCookieInformation): Revise to use shared |
| convenience functions. |
| * NetworkProcess/NetworkResourceLoader.h: |
| |
| 2018-03-27 Brian Burg <bburg@apple.com> |
| |
| Web Automation: support enter/exit fullscreen and hide/restore window operations |
| https://bugs.webkit.org/show_bug.cgi?id=182837 |
| <rdar://problem/37580732> |
| |
| Reviewed by Tim Horton. |
| |
| The W3C specification is more explicit about when to exit fullscreen and |
| restore the window for a browsing context. So, WebKit needs to have support |
| for performing these operations on behalf of a driver. |
| |
| Based on prototyping, it is sufficient to use a JavaScript atom to enter |
| fullscreen mode. This is included in the patch as EnterFullscreen.js and |
| can be used to implement the §10.7.5 Fullscreen Window command. |
| |
| Other window operations cannot be peformed from JavaScript, so we need to |
| delegate these operations to the session client (i.e., Safari). |
| This patch adds session client callouts for restoring, minimizing, and |
| switching to a browsing context. |
| |
| Exiting fullscreen happens implicitly (per specification) when setting a |
| window frame without an actual frame, or when switching/restoring/minimizing a window. |
| If needed, a driver can call Set Window Rect in this way to unfullscreen a context. |
| Similarly, a driver can restore a minimized window using Set Window Rect. |
| |
| * UIProcess/API/APIAutomationSessionClient.h: |
| (API::AutomationSessionClient::requestHideWindowOfPage): |
| (API::AutomationSessionClient::requestRestoreWindowOfPage): |
| (API::AutomationSessionClient::requestSwitchToPage): |
| Add new API client methods. |
| |
| * UIProcess/API/Cocoa/_WKAutomationSessionDelegate.h: |
| Add new Cocoa API delegate methods. |
| |
| * UIProcess/Automation/Automation.json: |
| Make the switch to browsing context command asynchronous, since this functionality |
| is not always synchronous, and we prefer to use completion handlers in the delegates. |
| |
| Add new protocol method for hiding the window of a browsing context. |
| This is expected to minimize/miniaturize a window for desktop window managers. |
| |
| * UIProcess/Automation/WebAutomationSession.h: |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::switchToBrowsingContext): |
| Make this function asynchronous. Call out to the session client. |
| |
| (WebKit::WebAutomationSession::setWindowFrameOfBrowsingContext): |
| Follow the steps in the specification to restore window and exit fullscreen. |
| |
| (WebKit::WebAutomationSession::hideWindowOfBrowsingContext): |
| Exit fullscreen and call out to the session client. |
| |
| (WebKit::WebAutomationSession::exitFullscreenWindowForPage): |
| This is a little strange. Because there is no async API for exiting fullscreen |
| from C++ code, we hook into willEnterFullScreen and didExitFullScreen and send |
| out the response if the page exited fullscreen after we requested it to do so. |
| Because the W3C specification mandates that drivers only process one command at |
| a time, there will only ever be one callback installed by this method at a time. |
| |
| (WebKit::WebAutomationSession::restoreWindowForPage): |
| (WebKit::WebAutomationSession::hideWindowForPage): |
| Call out to the session client. |
| |
| (WebKit::WebAutomationSession::didEnterFullScreenForPage): |
| (WebKit::WebAutomationSession::didExitFullScreenForPage): |
| Add methods to be called by instrumentation hooks in WebFullScreenManagerProxy. |
| |
| * UIProcess/Automation/atoms/EnterFullscreen.js: Added. |
| (enterFullscreen): |
| |
| * UIProcess/Cocoa/AutomationSessionClient.h: |
| * UIProcess/Cocoa/AutomationSessionClient.mm: |
| (WebKit::AutomationSessionClient::AutomationSessionClient): |
| (WebKit::AutomationSessionClient::requestSwitchToPage): |
| (WebKit::AutomationSessionClient::requestHideWindowOfPage): |
| (WebKit::AutomationSessionClient::requestRestoreWindowOfPage): |
| (WebKit::AutomationSessionClient::isShowingJavaScriptDialogOnPage): |
| Add boilerplate to convert C++ API client to Objective-C delegate methods. |
| |
| * UIProcess/WebFullScreenManagerProxy.cpp: |
| (WebKit::WebFullScreenManagerProxy::didEnterFullScreen): |
| (WebKit::WebFullScreenManagerProxy::didExitFullScreen): |
| Notify the automation session if the page is under automation and |
| enters or exits fullscreen. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| Add EnterFullscreen.js to the list of WebDriver atoms. These are copied |
| as WebKit2 private headers and used by driver implementations. |
| |
| 2018-03-27 Eric Carlson <eric.carlson@apple.com> |
| |
| Make AVFoundationEnabled preference available on iOS |
| https://bugs.webkit.org/show_bug.cgi?id=183876 |
| <rdar://problem/38726459> |
| |
| Reviewed by Youenn Fablet. |
| |
| * Shared/WebPreferences.yaml: Set AVFoundationEnabled with DEFAULT_AVFOUNDATION_ENABLED. |
| * Shared/WebPreferencesDefaultValues.h: |
| |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences _setAVFoundationEnabled:]): Enable for iOS. |
| (-[WKPreferences _avFoundationEnabled]): Ditto. |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: |
| |
| 2018-03-26 Tim Horton <timothy_horton@apple.com> |
| |
| Adopt WK_ALTERNATE_FRAMEWORKS_DIR in WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=184030 |
| <rdar://problem/38895281> |
| |
| Reviewed by Dan Bernstein. |
| |
| * Configurations/Base.xcconfig: |
| * Configurations/BaseTarget.xcconfig: |
| * Configurations/WebKit.xcconfig: |
| |
| 2018-03-26 Tim Horton <timothy_horton@apple.com> |
| |
| Add and adopt HAVE(CORE_ANIMATION_RENDER_SERVER) |
| https://bugs.webkit.org/show_bug.cgi?id=184026 |
| <rdar://problem/38883321> |
| |
| Reviewed by Sam Weinig. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _takeViewSnapshot]): |
| (-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]): |
| |
| 2018-03-26 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Refactor input view controller presentation and dismissal helpers |
| https://bugs.webkit.org/show_bug.cgi?id=184020 |
| Work towards <rdar://problem/38758727> |
| |
| Reviewed by Tim Horton. |
| |
| We currently have separate presentation and dismissal helpers for each type of view controller corresponding to |
| a focused element type. This is excessive, considering that all of these helpers are only invoked from one place |
| (either -presentViewControllerForCurrentAssistedNode or -dismissAllInputViewControllers), with the exception of |
| the focused form control overlay. |
| |
| This refactoring allows us to then adjust the timing of first responder restoration logic, such that the focused |
| form control view controller can receive forwarded events from the web view. See below for more detail. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView presentFocusedFormControlViewController:]): |
| (-[WKContentView dismissFocusedFormControlViewController:]): |
| |
| Remove logic to restore the web view as first responder. |
| |
| (-[WKContentView presentViewControllerForCurrentAssistedNode]): |
| (-[WKContentView dismissAllInputViewControllers]): |
| |
| Restore first responder after dismissing a view controller that was presented when focusing a form control, only |
| if the web view was first responder before presentation. |
| |
| (-[WKContentView presentDatePickerViewController:]): Deleted. |
| (-[WKContentView dismissDatePickerViewController:]): Deleted. |
| (-[WKContentView presentTimePickerViewController:]): Deleted. |
| (-[WKContentView dismissTimePickerViewController:]): Deleted. |
| (-[WKContentView presentSelectMenuViewController:]): Deleted. |
| (-[WKContentView dismissSelectMenuViewController:]): Deleted. |
| (-[WKContentView dismissNumberPadViewController:]): Deleted. |
| (-[WKContentView presentNumberPadViewController:]): Deleted. |
| (-[WKContentView presentTextInputViewController:]): Deleted. |
| (-[WKContentView dismissTextInputViewController:]): Deleted. |
| |
| 2018-03-06 Brian Burg <bburg@apple.com> |
| |
| Web Automation: provide a way to ask clients for a new tab or window |
| https://bugs.webkit.org/show_bug.cgi?id=183381 |
| <rdar://problem/38167301> |
| |
| Reviewed by Timothy Hatcher. |
| |
| Add support for specifying browsing context options when requesting |
| a new browsing context from the automation session client/delegate. |
| This is currently just used for specifying tab vs window, but could |
| also be used for things like toggling certain browser chrome or features. |
| |
| There is no guarantee that the client has a notion of tabs vs windows, |
| so this option is purely advisory and should not cause the command to |
| fail if it cannot be honored. |
| |
| This behavior caused by specifying this option is client-specific, so no |
| new tests are included in WebKit for this change. |
| |
| * UIProcess/API/APIAutomationSessionClient.h: |
| (API::AutomationSessionClient::didRequestNewPageWithOptions): |
| (API::AutomationSessionClient::didRequestNewWindow): Deleted. |
| Add options parameter. |
| |
| * UIProcess/API/glib/WebKitAutomationSession.cpp: |
| Adjust to new signature. More work is needed to plumb this information |
| to the public API for GTK/WPE and support it in WebKitGTK driver. |
| |
| * UIProcess/Automation/Automation.json: Add new optional parameter. |
| |
| * UIProcess/Automation/WebAutomationSession.h: |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::createBrowsingContext): |
| Convert the protocol option to an API option. |
| |
| * UIProcess/Cocoa/AutomationSessionClient.h: |
| * UIProcess/Cocoa/AutomationSessionClient.mm: |
| (WebKit::AutomationSessionClient::AutomationSessionClient): |
| (WebKit::toAPI): |
| (WebKit::AutomationSessionClient::didRequestNewPageWithOptions): |
| (WebKit::AutomationSessionClient::didRequestNewWindow): Deleted. |
| Convert the internal option to a Cocoa SPI option and pass it along. |
| |
| * UIProcess/API/Cocoa/_WKAutomationSessionDelegate.h: |
| Adjust delegate methods to include options. Clients need to adopt the new signature(s). |
| |
| 2018-03-26 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Add plumbing for next and previous focusable element rects |
| https://bugs.webkit.org/show_bug.cgi?id=184016 |
| Work towards <rdar://problem/38758727> |
| |
| Reviewed by Tim Horton. |
| |
| When building up AssistedNodeInformation, we currently compute the element rect of the current focused element, |
| as well as flags indicating whether or not there are next or previous focusable elements. For |
| <rdar://problem/38758727>, we additionally send the rects of the next or previous focusable elements as well. |
| |
| * Shared/AssistedNodeInformation.cpp: |
| (WebKit::AssistedNodeInformation::encode const): |
| (WebKit::AssistedNodeInformation::decode): |
| |
| IPC support for nextNodeRect and previousNodeRect. |
| |
| * Shared/AssistedNodeInformation.h: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::elementRectInRootViewCoordinates): |
| |
| Add a helper to compute an element's rect in root view coordinates. We use this to compute the rects of the |
| current focused element as well as those of the next and previous elements, if any. |
| |
| (WebKit::WebPage::getAssistedNodeInformation): |
| (WebKit::hasAssistableElement): Deleted. |
| |
| Since we need the next or previous focusable element to get its rect, we don't need this helper anymore. |
| |
| 2018-03-26 Chris Dumez <cdumez@apple.com> |
| |
| Use SecurityOriginData more consistently in Service Worker code |
| https://bugs.webkit.org/show_bug.cgi?id=183969 |
| |
| Reviewed by Darin Adler. |
| |
| Use SecurityOriginData more consistently in Service Worker code to avoid constructing |
| SecurityOrigin objects unnecessarily. |
| |
| * NetworkProcess/NetworkResourceLoadParameters.cpp: |
| (WebKit::NetworkResourceLoadParameters::encode const): |
| * Shared/API/c/WKSecurityOriginRef.cpp: |
| (WKSecurityOriginCopyDatabaseIdentifier): |
| * StorageProcess/ServiceWorker/WebSWOriginStore.cpp: |
| (WebKit::WebSWOriginStore::addToStore): |
| (WebKit::WebSWOriginStore::removeFromStore): |
| * StorageProcess/ServiceWorker/WebSWOriginStore.h: |
| * StorageProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::scheduleJobInServer): |
| (WebKit::WebSWServerConnection::registerServiceWorkerClient): |
| * StorageProcess/ServiceWorker/WebSWServerToContextConnection.cpp: |
| (WebKit::WebSWServerToContextConnection::WebSWServerToContextConnection): |
| * StorageProcess/ServiceWorker/WebSWServerToContextConnection.h: |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::connectionToContextProcessWasClosed): |
| (WebKit::StorageProcess::needsServerToContextConnectionForOrigin const): |
| (WebKit::StorageProcess::createStorageToWebProcessConnection): |
| (WebKit::StorageProcess::deleteWebsiteDataForOrigins): |
| (WebKit::StorageProcess::serverToContextConnectionForOrigin): |
| (WebKit::StorageProcess::createServerToContextConnection): |
| (WebKit::StorageProcess::swContextConnectionMayNoLongerBeNeeded): |
| * StorageProcess/StorageProcess.h: |
| * UIProcess/API/APIFrameInfo.cpp: |
| (API::FrameInfo::create): |
| * UIProcess/API/C/WKApplicationCacheManager.cpp: |
| (WKApplicationCacheManagerDeleteEntriesForOrigin): |
| * UIProcess/API/C/WKKeyValueStorageManager.cpp: |
| (WKKeyValueStorageManagerDeleteEntriesForOrigin): |
| * UIProcess/API/C/WKResourceCacheManager.cpp: |
| (WKResourceCacheManagerClearCacheForOrigin): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreRemoveFetchCacheForOrigin): |
| (WKWebsiteDataStoreGetFetchCacheSizeForOrigin): |
| * UIProcess/ServiceWorkerProcessProxy.cpp: |
| (WebKit::ServiceWorkerProcessProxy::create): |
| (WebKit::ServiceWorkerProcessProxy::ServiceWorkerProcessProxy): |
| (WebKit::ServiceWorkerProcessProxy::getLaunchOptions): |
| * UIProcess/ServiceWorkerProcessProxy.h: |
| * UIProcess/Storage/StorageProcessProxy.cpp: |
| (WebKit::StorageProcessProxy::getStorageProcessConnection): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::establishWorkerContextConnectionToStorageProcess): |
| (WebKit::WebProcessPool::disconnectProcess): |
| (WebKit::WebProcessPool::updateProcessAssertions): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::fetchDataAndApply): |
| * WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp: |
| (WebKit::GeolocationPermissionRequestManager::startRequestForGeolocation): |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: |
| (WKBundlePageCopyOriginsWithApplicationCache): |
| * WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp: |
| (WebKit::UserMediaPermissionRequestManager::sendUserMediaRequest): |
| (WebKit::UserMediaPermissionRequestManager::enumerateMediaDevices): |
| * WebProcess/Storage/WebSWClientConnection.cpp: |
| (WebKit::WebSWClientConnection::registerServiceWorkerClient): |
| (WebKit::WebSWClientConnection::matchRegistration): |
| (WebKit::WebSWClientConnection::whenRegistrationReady): |
| (WebKit::WebSWClientConnection::getRegistrations): |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::exceededDatabaseQuota): |
| (WebKit::WebChromeClient::reachedApplicationCacheOriginQuota): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::fetchWebsiteData): |
| * WebProcess/WebStorage/StorageAreaImpl.cpp: |
| (WebKit::StorageAreaImpl::securityOrigin const): |
| * WebProcess/WebStorage/StorageAreaImpl.h: |
| * WebProcess/WebStorage/StorageAreaMap.cpp: |
| (WebKit::StorageAreaMap::StorageAreaMap): |
| (WebKit::StorageAreaMap::dispatchSessionStorageEvent): |
| (WebKit::StorageAreaMap::dispatchLocalStorageEvent): |
| * WebProcess/WebStorage/StorageNamespaceImpl.cpp: |
| (WebKit::StorageNamespaceImpl::didDestroyStorageAreaMap): |
| |
| 2018-03-26 Brent Fulgham <bfulgham@apple.com> |
| |
| Warn against cookie access in the WebContent process using ProcessPrivilege assertions |
| https://bugs.webkit.org/show_bug.cgi?id=183911 |
| <rdar://problem/38762306> |
| |
| Reviewed by Youenn Fablet. |
| |
| Add a set of ProcessPrivilege assertions to enforce the rule that the WebContent process |
| should never call Cookie API directly. That should only happen in the Networking or |
| UIProcess. |
| |
| * NetworkProcess/Cookies/mac/WebCookieManagerMac.mm: |
| (WebKit::WebCookieManager::platformSetHTTPCookieAcceptPolicy): |
| (WebKit::WebCookieManager::platformGetHTTPCookieAcceptPolicy): |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::applyCookieBlockingPolicy): |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::setSharedHTTPCookieStorage): |
| (WebKit::NetworkProcess::syncAllCookies): |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| * NetworkProcess/mac/RemoteNetworkingContext.mm: |
| (WebKit::RemoteNetworkingContext::ensureWebsiteDataStoreSession): |
| * PluginProcess/PluginProcess.cpp: |
| (WebKit::PluginProcess::initializeProcess): |
| * Shared/cf/CookieStorageUtilsCF.mm: |
| (WebKit::cookieStorageFromIdentifyingData): |
| (WebKit::identifyingDataFromCookieStorage): |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): |
| (WebKit::WebProcessPool::platformInitializeNetworkProcess): |
| (WebKit::privateBrowsingSession): |
| * UIProcess/WebProcessPool.cpp: |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| * UIProcess/mac/WebCookieManagerProxyMac.mm: |
| (WebKit::WebCookieManagerProxy::persistHTTPCookieAcceptPolicy): |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::setPrivateBrowsingEnabled): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::createNetworkingContext): |
| * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm: |
| (WebKit::WebFrameNetworkingContext::ensureWebsiteDataStoreSession): |
| (WebKit::WebFrameNetworkingContext::storageSession const): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeProcess): |
| |
| 2018-03-26 Alex Christensen <achristensen@webkit.org> |
| |
| Merge ResourceHandleClient::willCacheResponseAsync with ResourceHandleClient::willCacheResponse |
| https://bugs.webkit.org/show_bug.cgi?id=183965 |
| |
| Reviewed by Chris Dumez. |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::willCacheResponse const): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: |
| |
| 2018-03-25 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK][WPE] Add API to convert between DOM and JSCValue |
| https://bugs.webkit.org/show_bug.cgi?id=183448 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Add methods to get a JSCValue for a WebKitDOMObject and to create a WebKitDOMNode from a JSCValue. Deprecate |
| most of the GTK+ DOM bindings API and move the non-deprecated parts to glib dir to be exposed by WPE too. |
| |
| * PlatformGTK.cmake: |
| * PlatformWPE.cmake: |
| * SourcesGTK.txt: |
| * SourcesWPE.txt: |
| * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: |
| * WebProcess/InjectedBundle/API/glib/DOM/DOMObjectCache.cpp: Renamed from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/DOMObjectCache.cpp. |
| * WebProcess/InjectedBundle/API/glib/DOM/DOMObjectCache.h: Copied from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/DOMObjectCache.h. |
| * WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMDocument.cpp: Added. |
| (WebKit::kit): |
| (WebKit::core): |
| (WebKit::wrapDocument): |
| (webkit_dom_document_class_init): |
| (webkit_dom_document_init): |
| * WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMDocumentPrivate.h: Copied from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentPrivate.h. |
| * WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMElement.cpp: Added. |
| (WebKit::kit): |
| (WebKit::core): |
| (WebKit::wrapElement): |
| (webkit_dom_element_class_init): |
| (webkit_dom_element_init): |
| (webkit_dom_element_html_input_element_is_user_edited): |
| (webkit_dom_element_html_input_element_get_auto_filled): |
| (webkit_dom_element_html_input_element_set_auto_filled): |
| (webkit_dom_element_html_input_element_set_editing_value): |
| * WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMElementPrivate.h: Renamed from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElementPrivate.h. |
| * WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMNode.cpp: Added. |
| (_WebKitDOMNodePrivate::~_WebKitDOMNodePrivate): |
| (WebKit::kit): |
| (WebKit::core): |
| (WebKit::wrapNode): |
| (webkitDOMNodeConstructor): |
| (webkitDOMNodeFinalize): |
| (webkit_dom_node_init): |
| (webkit_dom_node_class_init): |
| (webkitDOMNodeSetCoreObject): |
| (webkitDOMNodeGetCoreObject): |
| (webkit_dom_node_for_js_value): |
| * WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMNodePrivate.h: Copied from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodePrivate.h. |
| * WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMObject.cpp: Renamed from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMObject.cpp. |
| (webkitDOMObjectSetProperty): |
| (webkit_dom_object_class_init): |
| * WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMPrivate.cpp: Added. |
| (WebKit::wrap): |
| * WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMPrivate.h: Renamed from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/DOMObjectCache.h. |
| * WebProcess/InjectedBundle/API/glib/WebKitFrame.cpp: |
| (webkit_frame_get_js_value_for_dom_object): |
| (webkit_frame_get_js_value_for_dom_object_in_script_world): |
| * WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp: |
| (webkit_web_page_class_init): |
| (webkitWebPageCreate): |
| (webkit_web_page_get_dom_document): |
| * WebProcess/InjectedBundle/API/gtk/DOM/GObjectEventListener.cpp: |
| (WebKit::GObjectEventListener::handleEvent): |
| * WebProcess/InjectedBundle/API/gtk/DOM/GObjectNodeFilterCondition.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/GObjectXPathNSResolver.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMAttr.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMAttr.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMBlob.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMBlob.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCDATASection.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCDATASection.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRule.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRule.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRuleList.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRuleList.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleDeclaration.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleDeclaration.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleSheet.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleSheet.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSValue.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSValue.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCharacterData.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCharacterData.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRect.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRect.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRectList.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRectList.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMComment.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMComment.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMImplementation.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMImplementation.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMSelection.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMSelection.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMTokenList.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMTokenList.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDeprecated.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocument.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentFragment.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentFragment.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentGtk.cpp: Renamed from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocument.cpp. |
| (webkitDOMDocumentDOMEventTargetInit): |
| (webkitDOMDocumentInstallProperties): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentType.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentType.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElementGtk.cpp: Renamed from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElement.cpp. |
| (webkitDOMElementDOMEventTargetInit): |
| (webkitDOMElementInstallProperties): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEvent.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEvent.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEventTarget.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEventTarget.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFile.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFile.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFileList.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFileList.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAnchorElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAnchorElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAppletElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAppletElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAreaElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAreaElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBRElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBRElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBaseElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBaseElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBodyElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBodyElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLButtonElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLButtonElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCanvasElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCanvasElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCollection.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCollection.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDListElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDListElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDirectoryElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDirectoryElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDivElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDivElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDocument.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDocument.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLEmbedElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLEmbedElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFieldSetElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFieldSetElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFontElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFontElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFormElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFormElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameSetElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameSetElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHRElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHRElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadingElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadingElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHtmlElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHtmlElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLIFrameElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLIFrameElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLImageElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLImageElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLIElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLIElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLabelElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLabelElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLegendElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLegendElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLinkElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLinkElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMapElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMapElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMarqueeElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMarqueeElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMenuElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMenuElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMetaElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMetaElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLModElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLModElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOListElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOListElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLObjectElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLObjectElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptGroupElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptGroupElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionsCollection.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionsCollection.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParagraphElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParagraphElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParamElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParamElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPreElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPreElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPrivate.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLQuoteElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLQuoteElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLScriptElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLScriptElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLSelectElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLSelectElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLStyleElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLStyleElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCaptionElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCaptionElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCellElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCellElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableColElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableColElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableRowElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableRowElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableSectionElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableSectionElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTextAreaElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTextAreaElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTitleElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTitleElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLUListElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLUListElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMKeyboardEvent.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMKeyboardEvent.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaList.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaList.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMouseEvent.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMouseEvent.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNamedNodeMap.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNamedNodeMap.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNode.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeFilter.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeFilter.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeGtk.cpp: Renamed from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNode.cpp. |
| (webkitDOMNodeDOMEventTargetInit): |
| (webkitDOMNodeInstallProperties): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeIterator.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeIterator.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeList.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeList.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMObject.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMPrivateGtk.cpp: Renamed from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMPrivate.cpp. |
| (WebKit::wrapNodeGtk): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMPrivateGtk.h: Renamed from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMPrivate.h. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMProcessingInstruction.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMProcessingInstruction.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMRange.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMRange.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheet.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheet.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheetList.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheetList.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMText.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMText.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTreeWalker.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTreeWalker.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMUIEvent.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMUIEvent.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMWheelEvent.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMWheelEvent.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathExpression.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathExpression.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathNSResolver.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathNSResolver.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathResult.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathResult.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/docs/webkitdomgtk-4.0-sections.txt: |
| * WebProcess/InjectedBundle/API/gtk/WebKitFrame.h: |
| * WebProcess/InjectedBundle/API/wpe/DOM/WebKitDOMDefines.h: Renamed from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentPrivate.h. |
| * WebProcess/InjectedBundle/API/wpe/DOM/WebKitDOMDocument.h: Added. |
| * WebProcess/InjectedBundle/API/wpe/DOM/WebKitDOMElement.h: Added. |
| * WebProcess/InjectedBundle/API/wpe/DOM/WebKitDOMNode.h: Added. |
| * WebProcess/InjectedBundle/API/wpe/DOM/WebKitDOMObject.h: Copied from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMObject.h. |
| * WebProcess/InjectedBundle/API/wpe/DOM/webkitdom.h: Renamed from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodePrivate.h. |
| * WebProcess/InjectedBundle/API/wpe/WebKitFrame.h: |
| * WebProcess/InjectedBundle/API/wpe/WebKitWebHitTestResult.h: Added. |
| * WebProcess/InjectedBundle/API/wpe/WebKitWebPage.h: |
| * WebProcess/InjectedBundle/API/wpe/WebKitWebProcessEnumTypes.cpp.template: Added. |
| * WebProcess/InjectedBundle/API/wpe/WebKitWebProcessEnumTypes.h.template: Copied from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMObjectPrivate.h. |
| * WebProcess/InjectedBundle/API/wpe/webkit-web-extension.h: |
| |
| 2018-03-26 Zan Dobersek <zdobersek@igalia.com> |
| |
| [CoordGraphics] Clean up CoordinatedGraphicsScene construct-time initializations |
| https://bugs.webkit.org/show_bug.cgi?id=184002 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Move the CoordinatedGraphicsScene constant-expression initializations |
| from constructor to the point of declaration. |
| |
| Default the CoordinatedGraphicsScene destructor. |
| |
| The m_scrollPosition member variable is unused in this class, while the |
| similarly-named m_renderedContentsScrollPosition tracks scroll position |
| of the scene. Remove the latter and use m_scrollPosition in its place. |
| |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: |
| (WebKit::CoordinatedGraphicsScene::CoordinatedGraphicsScene): |
| (WebKit::CoordinatedGraphicsScene::adjustPositionForFixedLayers): |
| (WebKit::CoordinatedGraphicsScene::commitSceneState): |
| (WebKit::CoordinatedGraphicsScene::~CoordinatedGraphicsScene): Deleted. |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h: |
| |
| 2018-03-25 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [GTK] WebKitWebProcessEnumTypes.h missing from webkit-web-extension.h |
| https://bugs.webkit.org/show_bug.cgi?id=183998 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * WebProcess/InjectedBundle/API/gtk/webkit-web-extension.h: |
| |
| 2018-03-25 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Unresolved type warnings when generating gir |
| https://bugs.webkit.org/show_bug.cgi?id=183926 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Skip deprecated functions using JSC C API from introspection. |
| |
| * UIProcess/API/glib/WebKitJavascriptResult.cpp: |
| * UIProcess/API/glib/WebKitWebView.cpp: |
| * WebProcess/InjectedBundle/API/glib/WebKitFrame.cpp: |
| |
| 2018-03-25 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r229954. |
| https://bugs.webkit.org/show_bug.cgi?id=184000 |
| |
| Caused many layout tests to crash on Apple High Sierra, |
| Sierra, iOS Simulator and GTK Linux Debug test bots (Requested |
| by dydz on #webkit). |
| |
| Reverted changeset: |
| |
| "Use SecurityOriginData more consistently in Service Worker |
| code" |
| https://bugs.webkit.org/show_bug.cgi?id=183969 |
| https://trac.webkit.org/changeset/229954 |
| |
| 2018-03-23 Brian Burg <bburg@apple.com> |
| |
| Web Automation: remove unnecessary member variable WebAutomationSession |
| https://bugs.webkit.org/show_bug.cgi?id=183971 |
| |
| Reviewed by Timothy Hatcher. |
| |
| The concept of the "active" browsing context is something in the WebDriver |
| specification, but we were a bit too literal when first implementing this. |
| There's no actual need for this on the browser side since most commands |
| require implicitly switching to the target window passed in with the |
| Automation command. The driver, however, still needs to track the current |
| browsing context and current top-level browsing context. |
| |
| For returning whether a browsing context is active, we can just look at |
| the page's activity state to know whether the page is active or not. For |
| a normal browser, only one page is going to be visible and focused at a time. |
| |
| * UIProcess/Automation/WebAutomationSession.h: |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::buildBrowsingContextForPage): |
| Consult the page's activity state to determine whether it's active. |
| |
| (WebKit::WebAutomationSession::createBrowsingContext): |
| (WebKit::WebAutomationSession::closeBrowsingContext): |
| (WebKit::WebAutomationSession::switchToBrowsingContext): |
| (WebKit::WebAutomationSession::handleRunOpenPanel): |
| Stop reading and writing the current browsing context handle. |
| |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::isViewFocused const): |
| (WebKit::WebPageProxy::isViewWindowActive const): |
| Add new accessor. |
| |
| 2018-03-25 Tim Horton <timothy_horton@apple.com> |
| |
| Add and adopt ENABLE(AIRPLAY_PICKER) |
| https://bugs.webkit.org/show_bug.cgi?id=183992 |
| |
| Reviewed by Daniel Bates. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _showPlaybackTargetPicker:fromRect:]): |
| * UIProcess/ios/forms/WKAirPlayRoutePicker.h: |
| * UIProcess/ios/forms/WKAirPlayRoutePicker.mm: |
| |
| 2018-03-25 Tim Horton <timothy_horton@apple.com> |
| |
| Move WKAnimationDelegate to its own header |
| https://bugs.webkit.org/show_bug.cgi?id=183976 |
| <rdar://problem/38822299> |
| |
| Reviewed by Dan Bernstein. |
| |
| * Shared/RemoteLayerTree/WKAnimationDelegate.h: Added. |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm: |
| RemoteLayerTreeHost uses a forward declaration of WKAnimationDelegate, |
| so we're just getting lucky that an -invalidate method exists on |
| some other object. Instead, move WKAnimationDelegate to its own |
| header, and include it in the places we use it. |
| |
| 2018-03-24 Tim Horton <timothy_horton@apple.com> |
| |
| Adopt WK_PLATFORM_NAME in WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=183978 |
| |
| Reviewed by Dan Bernstein. |
| |
| * Configurations/WebKit.xcconfig: |
| * WebKit.xcodeproj/project.pbxproj: |
| * mac/MigrateHeadersFromWebKitLegacy.make: |
| * mac/postprocess-framework-headers.sh: |
| |
| 2018-03-24 Tim Horton <timothy_horton@apple.com> |
| |
| Ignore sandbox_init_with_parameters deprecation warnings |
| https://bugs.webkit.org/show_bug.cgi?id=183979 |
| |
| Reviewed by Dan Bernstein. |
| |
| * Shared/ios/ChildProcessIOS.mm: |
| (WebKit::ChildProcess::initializeSandbox): |
| |
| 2018-03-24 Chris Dumez <cdumez@apple.com> |
| |
| Use SecurityOriginData more consistently in Service Worker code |
| https://bugs.webkit.org/show_bug.cgi?id=183969 |
| |
| Reviewed by Darin Adler. |
| |
| Use SecurityOriginData more consistently in Service Worker code to avoid constructing |
| SecurityOrigin objects unnecessarily. |
| |
| * NetworkProcess/NetworkResourceLoadParameters.cpp: |
| (WebKit::NetworkResourceLoadParameters::encode const): |
| * Shared/API/c/WKSecurityOriginRef.cpp: |
| (WKSecurityOriginCopyDatabaseIdentifier): |
| * StorageProcess/ServiceWorker/WebSWOriginStore.cpp: |
| (WebKit::WebSWOriginStore::addToStore): |
| (WebKit::WebSWOriginStore::removeFromStore): |
| * StorageProcess/ServiceWorker/WebSWOriginStore.h: |
| * StorageProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::scheduleJobInServer): |
| (WebKit::WebSWServerConnection::registerServiceWorkerClient): |
| * StorageProcess/ServiceWorker/WebSWServerToContextConnection.cpp: |
| (WebKit::WebSWServerToContextConnection::WebSWServerToContextConnection): |
| * StorageProcess/ServiceWorker/WebSWServerToContextConnection.h: |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::connectionToContextProcessWasClosed): |
| (WebKit::StorageProcess::needsServerToContextConnectionForOrigin const): |
| (WebKit::StorageProcess::createStorageToWebProcessConnection): |
| (WebKit::StorageProcess::deleteWebsiteDataForOrigins): |
| (WebKit::StorageProcess::serverToContextConnectionForOrigin): |
| (WebKit::StorageProcess::createServerToContextConnection): |
| (WebKit::StorageProcess::swContextConnectionMayNoLongerBeNeeded): |
| * StorageProcess/StorageProcess.h: |
| * UIProcess/API/APIFrameInfo.cpp: |
| (API::FrameInfo::create): |
| * UIProcess/API/C/WKApplicationCacheManager.cpp: |
| (WKApplicationCacheManagerDeleteEntriesForOrigin): |
| * UIProcess/API/C/WKKeyValueStorageManager.cpp: |
| (WKKeyValueStorageManagerDeleteEntriesForOrigin): |
| * UIProcess/API/C/WKResourceCacheManager.cpp: |
| (WKResourceCacheManagerClearCacheForOrigin): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreRemoveFetchCacheForOrigin): |
| (WKWebsiteDataStoreGetFetchCacheSizeForOrigin): |
| * UIProcess/ServiceWorkerProcessProxy.cpp: |
| (WebKit::ServiceWorkerProcessProxy::create): |
| (WebKit::ServiceWorkerProcessProxy::ServiceWorkerProcessProxy): |
| (WebKit::ServiceWorkerProcessProxy::getLaunchOptions): |
| * UIProcess/ServiceWorkerProcessProxy.h: |
| * UIProcess/Storage/StorageProcessProxy.cpp: |
| (WebKit::StorageProcessProxy::getStorageProcessConnection): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::establishWorkerContextConnectionToStorageProcess): |
| (WebKit::WebProcessPool::disconnectProcess): |
| (WebKit::WebProcessPool::updateProcessAssertions): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::fetchDataAndApply): |
| * WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp: |
| (WebKit::GeolocationPermissionRequestManager::startRequestForGeolocation): |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: |
| (WKBundlePageCopyOriginsWithApplicationCache): |
| * WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp: |
| (WebKit::UserMediaPermissionRequestManager::sendUserMediaRequest): |
| (WebKit::UserMediaPermissionRequestManager::enumerateMediaDevices): |
| * WebProcess/Storage/WebSWClientConnection.cpp: |
| (WebKit::WebSWClientConnection::registerServiceWorkerClient): |
| (WebKit::WebSWClientConnection::matchRegistration): |
| (WebKit::WebSWClientConnection::whenRegistrationReady): |
| (WebKit::WebSWClientConnection::getRegistrations): |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::exceededDatabaseQuota): |
| (WebKit::WebChromeClient::reachedApplicationCacheOriginQuota): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::fetchWebsiteData): |
| * WebProcess/WebStorage/StorageAreaImpl.cpp: |
| (WebKit::StorageAreaImpl::securityOrigin const): |
| * WebProcess/WebStorage/StorageAreaImpl.h: |
| * WebProcess/WebStorage/StorageAreaMap.cpp: |
| (WebKit::StorageAreaMap::StorageAreaMap): |
| (WebKit::StorageAreaMap::dispatchSessionStorageEvent): |
| (WebKit::StorageAreaMap::dispatchLocalStorageEvent): |
| * WebProcess/WebStorage/StorageNamespaceImpl.cpp: |
| (WebKit::StorageNamespaceImpl::didDestroyStorageAreaMap): |
| |
| 2018-03-24 Tim Horton <timothy_horton@apple.com> |
| |
| Fix the !ENABLE(MEDIA_STREAM) build |
| https://bugs.webkit.org/show_bug.cgi?id=183977 |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/Cocoa/UIDelegate.mm: |
| (WebKit::UIDelegate::UIClient::decidePolicyForUserMediaPermissionRequest): |
| * UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in: |
| * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: |
| * WebProcess/cocoa/UserMediaCaptureManager.messages.in: |
| |
| 2018-03-24 Tim Horton <timothy_horton@apple.com> |
| |
| WKFileUploadPanel shouldn't depend on WebKitLegacy |
| https://bugs.webkit.org/show_bug.cgi?id=183981 |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/ios/forms/WKFileUploadPanel.mm: |
| (-[WKFileUploadPanel _uploadItemForImageData:imageName:successBlock:failureBlock:]): |
| Just use the underlying WebCore function instead of the |
| unnecessary NSFileManager category method. |
| |
| 2018-03-23 Tim Horton <timothy_horton@apple.com> |
| |
| Fix the build with no pasteboard |
| https://bugs.webkit.org/show_bug.cgi?id=183973 |
| |
| Reviewed by Dan Bernstein. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2018-03-23 Megan Gardner <megan_gardner@apple.com> |
| |
| Enable unified text selection in select cases for gradual testing |
| https://bugs.webkit.org/show_bug.cgi?id=183967 |
| <rdar://problem/38815328> |
| |
| Reviewed by Tim Horton. |
| |
| Enable in select places for a more gradual switch, as this is a big change and we want to make sure |
| it works before switching completely. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView useSelectionAssistantWithGranularity:]): |
| |
| 2018-03-23 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Pick up ITP debug mode flag from defaults |
| https://bugs.webkit.org/show_bug.cgi?id=183956 |
| <rdar://problem/38559574> |
| |
| Reviewed by Brent Fulgham. |
| |
| * UIProcess/Cocoa/WebResourceLoadStatisticsStoreCocoa.mm: |
| (WebKit::WebResourceLoadStatisticsStore::registerUserDefaultsIfNeeded): |
| |
| 2018-03-23 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Adopt list view controller UI for select menus |
| https://bugs.webkit.org/show_bug.cgi?id=183944 |
| <rdar://problem/38799062> |
| |
| Reviewed by Tim Horton. |
| |
| Move UIProcess/WKSelectMenuListViewController.* to UIProcess/ios/forms, where it was intended to go. |
| |
| * UIProcess/ios/forms/WKSelectMenuListViewController.h: Renamed from Source/WebKit/UIProcess/WKSelectMenuListViewController.h. |
| * UIProcess/ios/forms/WKSelectMenuListViewController.mm: Renamed from Source/WebKit/UIProcess/WKSelectMenuListViewController.mm. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-03-23 Chris Dumez <cdumez@apple.com> |
| |
| Promptly terminate service worker processes when they are no longer needed |
| https://bugs.webkit.org/show_bug.cgi?id=183873 |
| <rdar://problem/38676995> |
| |
| Reviewed by Youenn Fablet. |
| |
| The StorageProcess now keeps track of service worker clients for each security |
| origin. When there is no longer any clients for a given security origin, the |
| StorageProcess asks the service worker process for the given origin to terminate |
| and severs its connection to it. |
| |
| * Shared/Storage/StorageProcessCreationParameters.h: |
| * StorageProcess/ServiceWorker/WebSWServerToContextConnection.cpp: |
| (WebKit::WebSWServerToContextConnection::connectionMayNoLongerBeNeeded): |
| (WebKit::WebSWServerToContextConnection::terminate): |
| * StorageProcess/ServiceWorker/WebSWServerToContextConnection.h: |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::connectionToContextProcessWasClosed): |
| (WebKit::StorageProcess::needsServerToContextConnectionForOrigin const): |
| (WebKit::StorageProcess::initializeWebsiteDataStore): |
| (WebKit::StorageProcess::swServerForSession): |
| (WebKit::StorageProcess::swContextConnectionMayNoLongerBeNeeded): |
| (WebKit::StorageProcess::disableServiceWorkerProcessTerminationDelay): |
| * StorageProcess/StorageProcess.h: |
| * StorageProcess/StorageProcess.messages.in: |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _disableServiceWorkerProcessTerminationDelay]): |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureStorageProcessAndWebsiteDataStore): |
| (WebKit::WebProcessPool::disableServiceWorkerProcessTerminationDelay): |
| * UIProcess/WebProcessPool.h: |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::terminateProcess): |
| * WebProcess/Storage/WebSWContextManagerConnection.h: |
| * WebProcess/Storage/WebSWContextManagerConnection.messages.in: |
| |
| 2018-03-23 Brady Eidson <beidson@apple.com> |
| |
| Go to back/forward list items after a process-swapped navigation. |
| <rdar://problem/38690544> and https://bugs.webkit.org/show_bug.cgi?id=183920 |
| |
| Reviewed by Andy Estes. |
| |
| This takes the initial work of "process swap a normal navigation" and extends it to |
| process swapping for back/forward item navigations. |
| |
| * Scripts/webkit/messages.py: |
| |
| Make sure state objects are serialized to the UI Process back/forward list items, as otherwise |
| they will be lost in process-swap scenarios: |
| * Shared/SessionState.cpp: |
| (WebKit::PageState::encode const): |
| (WebKit::PageState::decode): |
| * Shared/SessionState.h: |
| |
| Make a new variant of APINavigation specifically for back/forward list items. |
| * UIProcess/API/APINavigation.cpp: |
| (API::Navigation::Navigation): |
| (API::Navigation::loggingURL const): |
| * UIProcess/API/APINavigation.h: |
| (API::Navigation::create): |
| (API::Navigation::backForwardListItem): |
| (API::Navigation::backForwardFrameLoadType const): |
| |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageGoToBackForwardListItem): |
| |
| * UIProcess/API/Cocoa/WKBrowsingContextController.mm: |
| (-[WKBrowsingContextController goToBackForwardListItem:]): |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView goToBackForwardListItem:]): |
| |
| * UIProcess/WebNavigationState.cpp: |
| (WebKit::WebNavigationState::createLoadRequestNavigation): |
| (WebKit::WebNavigationState::createBackForwardNavigation): |
| * UIProcess/WebNavigationState.h: |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::reattachToWebProcessForReload): |
| (WebKit::WebPageProxy::reattachToWebProcessWithItem): |
| (WebKit::WebPageProxy::goForward): |
| (WebKit::WebPageProxy::goBack): |
| (WebKit::WebPageProxy::goToBackForwardItem): |
| (WebKit::WebPageProxy::receivedPolicyDecision): |
| (WebKit::WebPageProxy::continueNavigationInNewProcess): Handle back/forward navigations differently than others. |
| (WebKit::WebPageProxy::restoreFromSessionState): |
| * UIProcess/WebPageProxy.h: |
| |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::addOrUpdateBackForwardItem): Renamed from "addBackForwardItem" for clarity |
| (WebKit::WebProcessProxy::addBackForwardItem): Deleted. |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebProcessProxy.messages.in: |
| |
| * UIProcess/ios/ViewGestureControllerIOS.mm: |
| (WebKit::ViewGestureController::endSwipeGesture): |
| |
| * UIProcess/mac/ViewGestureControllerMac.mm: |
| (WebKit::ViewGestureController::endSwipeGesture): |
| |
| * WebProcess/WebCoreSupport/SessionStateConversion.cpp: |
| (WebKit::toPageState): |
| (WebKit::toHistoryItem): |
| |
| * WebProcess/WebPage/WebBackForwardListProxy.cpp: |
| (WebKit::updateBackForwardItem): |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::goToBackForwardItem): Combined "goBack" and "goForward" with this method, |
| passing the appropriate FrameLoadType around as needed to remember the specific type. |
| (WebKit::WebPage::goForward): Deleted. |
| (WebKit::WebPage::goBack): Deleted. |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2018-03-23 Megan Gardner <megan_gardner@apple.com> |
| |
| Don't use the presence of a textSelectionAssistant as a proxy for if we are in content editable. |
| https://bugs.webkit.org/show_bug.cgi?id=183804 |
| |
| Reviewed by Tim Horton. |
| |
| We need to stop using the presence of a textSelectionAssistant as a proxy for if we are selecting in a content editable |
| or not. As we are planning on switching to only using a textSelectionAssistant for selection, these checks need to |
| be more direct in checking what we actually need to know i.e. are we selecting in a content editable. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (hasAssistedNode): |
| (-[WKContentView inputView]): |
| (-[WKContentView _selectionClipRect]): |
| (-[WKContentView gestureRecognizer:canBePreventedByGestureRecognizer:]): |
| (-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]): |
| (-[WKContentView gestureRecognizerShouldBegin:]): |
| (-[WKContentView textInteractionGesture:shouldBeginAtPoint:]): |
| (-[WKContentView webSelectionRects]): |
| (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]): |
| (-[WKContentView _autofillContext]): |
| |
| 2018-03-23 Youenn Fablet <youenn@apple.com> |
| |
| WebProcessPool should not ask to register all clients for each service worker process creation |
| https://bugs.webkit.org/show_bug.cgi?id=183941 |
| |
| Reviewed by Chris Dumez. |
| |
| Call registerServiceWorkerClients when there is no service worker process. |
| Update service worker clients to register all of them no matter the session ID. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::establishWorkerContextConnectionToStorageProcess): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::registerServiceWorkerClients): |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| |
| 2018-03-23 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Adopt list view controller UI for select menus |
| https://bugs.webkit.org/show_bug.cgi?id=183944 |
| <rdar://problem/38799062> |
| |
| Reviewed by Andy Estes. |
| |
| Rename WKSelectMenuViewController to WKSelectMenuListViewController, and also rename the relevant |
| WebKitAdditions harness files. See corresponding changes for more details. |
| |
| * UIProcess/WKSelectMenuListViewController.h: Renamed from Source/WebKit/UIProcess/ios/forms/WKSelectMenuViewController.h. |
| * UIProcess/WKSelectMenuListViewController.mm: Renamed from Source/WebKit/UIProcess/ios/forms/WKSelectMenuViewController.mm. |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView presentSelectMenuViewController:]): |
| (-[WKContentView dismissSelectMenuViewController:]): |
| (-[WKContentView selectMenu:didSelectItemAtIndex:]): |
| (-[WKContentView numberOfItemsInSelectMenu:]): |
| (-[WKContentView selectMenu:displayTextForItemAtIndex:]): |
| (-[WKContentView selectMenu:didCheckItemAtIndex:checked:]): |
| (-[WKContentView selectMenuUsesMultipleSelection:]): |
| (-[WKContentView selectMenu:hasSelectedOptionAtIndex:]): |
| (-[WKContentView _wheelChangedWithEvent:]): |
| |
| Overriding wheel events and re-dispatching them is no longer needed after r229437, so we can just remove special |
| handling for select menus here. |
| |
| (-[WKContentView didCancelSelectionInSelectMenu:]): Deleted. |
| (-[WKContentView selectMenuSupportsMultipleSelection:]): Deleted. |
| (-[WKContentView selectMenu:hasCheckedOptionAtIndex:]): Deleted. |
| (-[WKContentView startingIndexForSelectMenu:]): Deleted. |
| |
| The starting index for a select menu is no longer relevant when using list view controllers for input, so we can |
| just remove this delegate hook altogether. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-03-23 Youenn Fablet <youenn@apple.com> |
| |
| CacheStorage::Caches should clear m_caches when clearing its representation even though it is not yet initialized |
| https://bugs.webkit.org/show_bug.cgi?id=183945 |
| |
| Reviewed by Chris Dumez. |
| |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::Caches::clearMemoryRepresentation): |
| In case we clear Caches in the middle of the initialization, m_caches might not be empty |
| but m_isInitialized is not yet set to true since we are computing the Caches size. |
| Update the assertion and clear m_caches in that case. |
| |
| 2018-03-23 David Kilzer <ddkilzer@apple.com> |
| |
| Stop using dispatch_set_target_queue() |
| <https://webkit.org/b/183908> |
| <rdar://problem/33553533> |
| |
| Reviewed by Daniel Bates. |
| |
| * NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm: |
| (WebKit::NetworkCache::IOChannel::IOChannel): Remove the call to |
| dispatch_set_target_queue() since this is handled in the |
| dispatch_io_create() call above. |
| |
| 2018-03-23 Youenn Fablet <youenn@apple.com> |
| |
| CacheStorage::Engine should not ref itself when hopping to a background thread |
| https://bugs.webkit.org/show_bug.cgi?id=183925 |
| <rdar://problem/38580483> |
| |
| Reviewed by Chris Dumez. |
| |
| Add support for weak pointers to CacheStorage Engine. |
| Use weak pointer when hopping to background threads. |
| Store callbacks in CacheStorage::Engine maps to keep them being destroyed in the main thread only. |
| Made some callbacks CompletionHandler as a bonus. |
| |
| Made sure to use just one Engine for all private sessions. |
| |
| * NetworkProcess/cache/CacheStorageEngine.cpp: |
| (WebKit::CacheStorage::Engine::~Engine): |
| (WebKit::CacheStorage::Engine::from): |
| (WebKit::CacheStorage::Engine::initialize): |
| (WebKit::CacheStorage::Engine::writeFile): |
| (WebKit::CacheStorage::Engine::readFile): |
| * NetworkProcess/cache/CacheStorageEngine.h: |
| (WebKit::CacheStorage::Engine::weakPtrFactory): |
| |
| 2018-03-23 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed build fix. |
| |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| |
| 2018-03-23 Miguel Gomez <magomez@igalia.com> |
| |
| [GTK][WPE] Avoid software color conversion inside BitmapTextureGL |
| https://bugs.webkit.org/show_bug.cgi?id=183892 |
| |
| Remove the UpdateContentsFlag parameter when calling BitmapTexture::updateContents(). |
| |
| Reviewed by Žan Doberšek. |
| |
| * Shared/CoordinatedGraphics/CoordinatedBackingStore.cpp: |
| (WebKit::CoordinatedBackingStoreTile::swapBuffers): |
| |
| 2018-03-23 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [WPE][GTK] Fix -Wswitch warnings after r229778 |
| https://bugs.webkit.org/show_bug.cgi?id=183927 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * NetworkProcess/soup/NetworkDataTaskSoup.cpp: |
| (WebKit::NetworkDataTaskSoup::dispatchDidReceiveResponse): Log a warning if Suspend is |
| received as a PolicyAction |
| * UIProcess/API/glib/WebKitNavigationClient.cpp: Ignore the ProcessSwap termination reason, |
| which should be invisible to WebKit clients |
| |
| 2018-03-22 Chris Dumez <cdumez@apple.com> |
| |
| Include security origin in the service worker process name |
| https://bugs.webkit.org/show_bug.cgi?id=183913 |
| |
| Reviewed by Youenn Fablet. |
| |
| Include security origin in the service worker process name to facilitate debugging. This way, we |
| can differentiate which service worker process is used for which origin in activity monitor. |
| |
| * Shared/ChildProcess.h: |
| * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.mm: |
| (WebKit::XPCServiceInitializerDelegate::getExtraInitializationData): |
| * UIProcess/ServiceWorkerProcessProxy.cpp: |
| (WebKit::ServiceWorkerProcessProxy::getLaunchOptions): |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::initializeProcessName): |
| |
| 2018-03-22 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, silence unused variable warning |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| |
| 2018-03-22 Dan Bernstein <mitz@apple.com> |
| |
| WKWebView doesn’t expose its spellCheckerDocumentTag |
| https://bugs.webkit.org/show_bug.cgi?id=183797 |
| <rdar://problem/38678089> |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _spellCheckerDocumentTag]): Added this getter which calls through to the WebViewImpl. |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: Declared _spellCheckerDocumentTag property. |
| |
| 2018-03-22 Chris Dumez <cdumez@apple.com> |
| |
| Use the same SWServer for all ephemeral sessions |
| https://bugs.webkit.org/show_bug.cgi?id=183921 |
| <rdar://problem/36873075> |
| |
| Reviewed by Youenn Fablet. |
| |
| Use the same SWServer for all ephemeral sessions. SWServers never go away and we create |
| one per sessionID. When browsing doing private browsing in Safari (and other fetching |
| favorite icons), the sessionID is ephemeral and keeps changing. This means that we kept |
| constructing new SWServers that would never go away. Each SWServer has a thread so we |
| would eventually hit the thread limit for the storage process. |
| |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::swServerForSession): |
| |
| 2018-03-22 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, fix format string warnings in service worker code |
| |
| On Linux x86_64, uint64_t is unsigned long, not unsigned long long. |
| |
| * StorageProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::startFetch): |
| (WebKit::WebSWServerConnection::didFinishFetch): |
| (WebKit::WebSWServerConnection::didFailFetch): |
| (WebKit::WebSWServerConnection::didNotHandleFetch): |
| |
| 2018-03-22 Daniel Bates <dabates@apple.com> |
| |
| Expose SchemeRegistry::registerAsCanDisplayOnlyIfCanRequest() as WebKit SPI |
| https://bugs.webkit.org/show_bug.cgi?id=183907 |
| <rdar://problem/38759127> |
| |
| Reviewed by Alex Christensen. |
| |
| Adds both modern Objective-C SPI and C SPI to allow an embedding client to register a scheme |
| whose content should be displayed/loaded if and only if it can be requested. Disregarding an |
| app that enables universal access, by using this SPI WebKit will refuse to display cross-origin |
| content for the registered schemes. |
| |
| We need to add C SPI for embedding clients that have not transitioned to the modern Objective- |
| C API/SPI. |
| |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::encode const): |
| (WebKit::WebProcessCreationParameters::decode): |
| * Shared/WebProcessCreationParameters.h: |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextRegisterURLSchemeAsCanDisplayOnlyIfCanRequest): |
| * UIProcess/API/C/WKContextPrivate.h: |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _registerURLSchemeAsCanDisplayOnlyIfCanRequest:]): |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::initializeNewWebProcess): |
| (WebKit::WebProcessPool::registerURLSchemeAsCanDisplayOnlyIfCanRequest): |
| * UIProcess/WebProcessPool.h: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeWebProcess): |
| (WebKit::WebProcess::registerURLSchemeAsCanDisplayOnlyIfCanRequest const): |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| |
| 2018-03-22 Tim Horton <timothy_horton@apple.com> |
| |
| Improve readability of WebCore's OTHER_LDFLAGS |
| https://bugs.webkit.org/show_bug.cgi?id=183909 |
| <rdar://problem/38760992> |
| |
| Reviewed by Dan Bernstein. |
| |
| * Configurations/Base.xcconfig: |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2018-03-22 Zan Dobersek <zdobersek@igalia.com> |
| |
| [TexMap] Make TextureMapperContextAttributes thread-specific |
| https://bugs.webkit.org/show_bug.cgi?id=183895 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| CoordinatedGraphicsScene, as an implementor of the |
| TextureMapperPlatformLayerProxy::Compositor interface, doesn't have to |
| implement the texmapGL() method anymore. |
| |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: |
| (WebKit::CoordinatedGraphicsScene::onNewBufferAvailable): |
| (WebKit::CoordinatedGraphicsScene::texmapGL): Deleted. |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h: |
| |
| 2018-03-21 Frederic Wang <fwang@igalia.com> |
| |
| Unreviewed, update comment added in r229801. |
| |
| * WebProcess/WebPage/ios/FindControllerIOS.mm: |
| (WebKit::FindController::didFindString): Remove "On Mobile" and mention bug 183889. |
| |
| 2018-03-21 Chris Dumez <cdumez@apple.com> |
| |
| Regression(r229831): ProcessSwap.Basic API test is crashing |
| https://bugs.webkit.org/show_bug.cgi?id=183884 |
| |
| Reviewed by Brady Eidson. |
| |
| This code should only be called for navigation policy decisions. |
| It used to work without this check because of an early return, which |
| was dropped in r229831. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::receivedPolicyDecision): |
| |
| 2018-03-21 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Add new SPI hooks for clients to vend an input session context view |
| https://bugs.webkit.org/show_bug.cgi?id=183866 |
| <rdar://problem/38692256> |
| |
| Reviewed by Tim Horton. |
| |
| Add new SPI hooks to _WKInputDelegate allowing internal clients to provide a view that gives additional context |
| when editing form controls, on top of the default label or placeholder text displayed by WebKit. The height |
| delegate is invoked first, giving the client an opportunity to lay out the context view to fit the given size; |
| the actual view is then queried. |
| |
| If the view changes, clients may tell WebKit to reload the context view via SPI on WKFormInputSession; this call |
| to reload is plumbed through to the currently presented list view controller (at the moment, this is only the |
| text input list view controller). |
| |
| * UIProcess/API/Cocoa/_WKFormInputSession.h: |
| * UIProcess/API/Cocoa/_WKInputDelegate.h: |
| |
| Add the new SPI hooks, described above. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKFormInputSession reloadFocusedElementContextView]): |
| |
| Plumb the context view reload hook through WKContentView to WKTextInputListViewController. |
| |
| (-[WKContentView setupInteraction]): |
| (-[WKContentView _stopAssistingNode]): |
| (-[WKContentView reloadContextViewForPresentedListViewController]): |
| (-[WKContentView focusedFormControllerDidUpdateSuggestions:]): |
| |
| Slight tweak to only reload text suggestions if we are not blurring the focused element. Without this extra |
| condition, the list view controller's inner table view would get reloaded when the form input session's text |
| suggestions are set to nil when the list view controller is dismissed, causing a visible stutter in the |
| dismissal animation of view controller. |
| |
| 2018-03-21 Chris Dumez <cdumez@apple.com> |
| |
| WebKitTestRunner crashed in com.apple.WebKit: WebKit::WebProcessPool::terminateServiceWorkerProcesses |
| https://bugs.webkit.org/show_bug.cgi?id=183875 |
| |
| Reviewed by Brent Fulgham. |
| |
| Protect |this| while we're iterating over m_serviceWorkerProcesses and terminating |
| each service worker process. It is possible for the WebProcess pool to get destroyed |
| as a result of terminating a service worker process. |
| |
| This change is covered by layout tests that are currently crashing on the ASAN bots. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::terminateServiceWorkerProcesses): |
| |
| 2018-03-21 Eric Carlson <eric.carlson@apple.com> |
| |
| Fix typo in inactive media stream timeout default value |
| https://bugs.webkit.org/show_bug.cgi?id=183872 |
| <rdar://problem/38723903> |
| |
| Reviewed by Jer Noble. |
| |
| * Shared/WebPreferences.yaml: Fix typo. |
| * Shared/WebPreferencesDefaultValues.h: Ditto. |
| |
| 2018-03-21 Chris Dumez <cdumez@apple.com> |
| |
| Make policy decisions asynchronous |
| https://bugs.webkit.org/show_bug.cgi?id=180568 |
| <rdar://problem/37131297> |
| |
| Reviewed by Alex Christensen. |
| |
| Get rid of synchronous IPC and synchronous code paths for policy delegates. |
| Policy decisions are now all made asynchronously and rely on asynchronous |
| IPC. |
| |
| This code change is based on work by Alex Christensen. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::receivedPolicyDecision): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::decidePolicyForResponse): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse): |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| |
| 2018-03-21 Chris Dumez <cdumez@apple.com> |
| |
| ScrollViewInsetTests.RestoreInitialContentOffsetAfterCrash API test is failing with async delegates |
| https://bugs.webkit.org/show_bug.cgi?id=183787 |
| |
| Reviewed by Wenson Hsieh. |
| |
| Without asynchronous policy delegates, when the client requests a navigation, we would: |
| 1. Do a synchronous navigation policy check |
| 2. If the client allows the navigation, start the provisional load |
| |
| Starting the provisional load would freeze the layer tree until first meaningful |
| layout via WebFrameLoaderClient::provisionalLoadStarted() -> WebPage::didStartPageTransition(). |
| |
| When constructing a WebView and then requesting a load right away. This would make sure |
| we do not commit a layer tree for the initial about:blank page because the layer tree |
| would be frozen until we have something meaningful to show for the following load. |
| |
| However, with asynchronous policy delegates, we are able to do a layer tree commit |
| during the asynchronous navigation policy check because the layer tree is not frozen |
| yet (provisional load has not started) and the process is not stuck on synchronous |
| IPC. When constructing a WebView and then requesting a load right away, this would |
| allow a layer tree commit for about:blank to happen before we've even started the |
| load. This would cause some API tests to fail on iOS. |
| |
| To address the issue, we try and maintain pre-existing behavior by freezing the |
| layer tree during navigation policy decision. |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| (WebKit::WebFrameLoaderClient::didDecidePolicyForNavigationAction): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::didStartNavigationPolicyCheck): |
| (WebKit::WebPage::didCompleteNavigationPolicyCheck): |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2018-03-21 Brent Fulgham <bfulgham@apple.com> |
| |
| Allow the WebContent process to read ViewBridge preferences |
| https://bugs.webkit.org/show_bug.cgi?id=183862 |
| <rdar://problem/38459456> |
| |
| Reviewed by Eric Carlson. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-03-21 Frederic Wang <fwang@igalia.com> |
| |
| [iOS] Text highlighted by the Find UI overlaps with NBC news header on google.com |
| https://bugs.webkit.org/show_bug.cgi?id=183658 |
| |
| Reviewed by Tim Horton. |
| |
| On Mobile, many sites have overlay headers or footers that may overlap with the highlighted |
| text inside a scrollable overflow node. To workaround that issue, this commit changes the |
| behavior so that the text is revealed at the center of the overflow node. |
| |
| * WebProcess/WebPage/ios/FindControllerIOS.mm: |
| (WebKit::FindController::didFindString): Use alignCenterAlways instead of alignToEdgeIfNeeded. |
| |
| 2018-03-21 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK][WPE] JSC bindings not introspectable |
| https://bugs.webkit.org/show_bug.cgi?id=136989 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Deprecate the functions that are not introspectable due to JSC C API in GTK+ port and remove them in WPE |
| port. Add alternative functions using the new JSC GLib API. We no longer need to keep a global context attached |
| to every view. We can simply create a temporary global context on demand and release it after 1 second. This |
| also allows us to remove WebPageProxy::javascriptGlobalContext() and all the related code. |
| |
| * PlatformGTK.cmake: |
| * PlatformWPE.cmake: |
| * UIProcess/API/glib/WebKitJavascriptResult.cpp: |
| (_WebKitJavascriptResult::_WebKitJavascriptResult): |
| (webkitJavascriptResultCreate): |
| (webkit_javascript_result_get_global_context): |
| (webkit_javascript_result_get_value): |
| (webkit_javascript_result_get_js_value): |
| * UIProcess/API/glib/WebKitJavascriptResultPrivate.h: |
| (SharedJavascriptContext::singleton): |
| (SharedJavascriptContext::SharedJavascriptContext): |
| (SharedJavascriptContext::getOrCreateContext): |
| (SharedJavascriptContext::releaseContext): |
| * UIProcess/API/glib/WebKitUserContentManager.cpp: |
| * UIProcess/API/glib/WebKitWebView.cpp: |
| (webkit_web_view_get_javascript_global_context): |
| (webkitWebViewRunJavaScriptCallback): |
| * UIProcess/API/gtk/PageClientImpl.cpp: |
| * UIProcess/API/gtk/PageClientImpl.h: |
| * UIProcess/API/gtk/WebKitJavascriptResult.h: |
| * UIProcess/API/gtk/WebKitWebView.h: |
| * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: |
| * UIProcess/API/wpe/APIViewClient.h: |
| (API::ViewClient::handleDownloadRequest): |
| * UIProcess/API/wpe/PageClientImpl.cpp: |
| * UIProcess/API/wpe/PageClientImpl.h: |
| * UIProcess/API/wpe/WPEView.cpp: |
| * UIProcess/API/wpe/WPEView.h: |
| * UIProcess/API/wpe/WebKitJavascriptResult.h: |
| * UIProcess/API/wpe/WebKitWebView.h: |
| * UIProcess/PageClient.h: |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/gtk/WebPageProxyGtk.cpp: |
| * UIProcess/wpe/WebPageProxyWPE.cpp: |
| * WebProcess/InjectedBundle/API/glib/WebKitFrame.cpp: |
| (webkit_frame_get_js_context): |
| (webkit_frame_get_js_context_for_script_world): |
| * WebProcess/InjectedBundle/API/gtk/WebKitFrame.h: |
| * WebProcess/InjectedBundle/API/wpe/WebKitFrame.h: |
| |
| 2018-03-21 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK][WPE] Initial implementation of JavaScriptCore glib bindings |
| https://bugs.webkit.org/show_bug.cgi?id=164061 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Set decorator and deprecation_guard options in API docs config files, since they are no longer common to all |
| libraries. |
| |
| * PlatformGTK.cmake: |
| |
| 2018-03-21 Zan Dobersek <zdobersek@igalia.com> |
| |
| [CoordGraphics] Simplify CoordinatedGraphicsScene activation |
| https://bugs.webkit.org/show_bug.cgi?id=183772 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Simplify CoordinatedGraphicsScene::setActive() into a simple setter of |
| the m_isActive member variable. We don't have to call renderNextFrame() |
| anymore as that was only necessary to unblock CoordinatedLayerTreeHost, |
| but that can be avoided if m_isWaitingForRenderer in that class is |
| initialized to false. |
| |
| CoordinatedGraphicsSceneClient::renderNextFrame() virtual method and its |
| ThreadedCompositor implementation are removed. renderNextFrame() in the |
| CoordinatedGraphicsScene class can also be removed, along with the |
| unused dispatchOnMainThread() and dispatchOnClientRunLoop() methods and |
| the associated m_clientRunLoop member variable. |
| |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: |
| (WebKit::CoordinatedGraphicsScene::CoordinatedGraphicsScene): |
| (WebKit::CoordinatedGraphicsScene::dispatchOnMainThread): Deleted. |
| (WebKit::CoordinatedGraphicsScene::dispatchOnClientRunLoop): Deleted. |
| (WebKit::CoordinatedGraphicsScene::renderNextFrame): Deleted. |
| (WebKit::CoordinatedGraphicsScene::setActive): Deleted. |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h: |
| (WebKit::CoordinatedGraphicsSceneClient::~CoordinatedGraphicsSceneClient): |
| (WebKit::CoordinatedGraphicsScene::setActive): |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: |
| (WebKit::m_displayRefreshMonitor): |
| (WebKit::ThreadedCompositor::setNativeSurfaceHandleForCompositing): |
| (WebKit::ThreadedCompositor::renderNextFrame): Deleted. |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h: |
| * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h: |
| |
| 2018-03-21 Zan Dobersek <zdobersek@igalia.com> |
| |
| [TexMap] Have TextureMapperLayer::applyAnimationsRecursively() return running animation status |
| https://bugs.webkit.org/show_bug.cgi?id=183771 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| In CoordinatedGraphicsScene::paintToCurrentGLContext(), retrieve |
| information about any running animation in the scene via the |
| TextureMapperLayer::applyAnimationsRecursively() call. Use that boolean |
| value at the end up the method, instead of again traversing the |
| TextureMapperLayer tree to determine whether any running animations are |
| present. |
| |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: |
| (WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext): |
| |
| 2018-03-20 Tim Horton <timothy_horton@apple.com> |
| |
| Enable the minimal simulator feature flag when appropriate |
| https://bugs.webkit.org/show_bug.cgi?id=183807 |
| |
| Reviewed by Dan Bernstein. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2018-03-19 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Expose content attributes on _WKLinkIconParameters |
| https://bugs.webkit.org/show_bug.cgi?id=183768 |
| |
| Reviewed by Alex Christensen. |
| |
| Added _WKLinkIconParameters.attributes to expose content attributes of a link element |
| which defined a favicon, touch icon, or pre-compressed touch icon. |
| |
| * UIProcess/API/Cocoa/_WKLinkIconParameters.h: |
| (_WKLinkIconParameters.attributes): Added. |
| * UIProcess/API/Cocoa/_WKLinkIconParameters.mm: |
| (_WKLinkIconParameters._attributes): Added. |
| (-[_WKLinkIconParameters _initWithLinkIcon:]): Convert the hash map from WebCore to a NSDictionary. |
| (-[_WKLinkIconParameters attributes]): Added. |
| |
| 2018-03-20 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Add AssistedNodeInformation plumbing for form control placeholder text and label text |
| https://bugs.webkit.org/show_bug.cgi?id=183802 |
| <rdar://problem/38686273> |
| |
| Reviewed by Tim Horton. |
| |
| Surfaces some additional information about the currently focused element to the input delegate in the UI process. |
| See comments below for more details. |
| |
| Test: WebKit.FocusedElementInfo |
| |
| * Shared/AssistedNodeInformation.cpp: |
| (WebKit::AssistedNodeInformation::encode const): |
| (WebKit::AssistedNodeInformation::decode): |
| * Shared/AssistedNodeInformation.h: |
| |
| Add `placeholder` and `label` to AssistedNodeInformation, which capture the value of the placeholder attribute |
| and the text of the first associated label element for the focused form control. Also add boilerplate encoder/ |
| decoder support for these members. |
| |
| * UIProcess/API/Cocoa/_WKFocusedElementInfo.h: |
| |
| Augment _WKFocusedElementInfo to include placeholder and label. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKFocusedElementInfo initWithAssistedNodeInformation:isUserInitiated:userObject:]): |
| (-[WKFocusedElementInfo label]): |
| (-[WKFocusedElementInfo placeholder]): |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::getAssistedNodeInformation): |
| |
| For input elements and textareas, set the placeholder to the value of the placeholder attribute. For all |
| elements with associated labels, grab the inner text of the first label that is not empty, ignoring all labels |
| that are `display: none` (i.e. not being rendered). |
| |
| 2018-03-20 Brady Eidson <beidson@apple.com> |
| |
| First piece of process swapping on navigation. |
| https://bugs.webkit.org/show_bug.cgi?id=183665 |
| |
| Reviewed by Andy Estes. |
| |
| This patch adds the first pieces of the following feature: |
| "When a navigation originating inside a WKWebView goes to a different origin, |
| swap to a new WebProcess for that navigation" |
| |
| There are significant bugs to be resolved and significant optimizations to be made. |
| Which is why the feature is disabled by default. |
| |
| Besides the core logic implementing the feature, this patch does a lot of related |
| work such as: |
| - Removing some now-invalid ASSERTs |
| - Adding some ASSERTs |
| - Update various switch states to handle the new "Suspend" policy and "NavigationSwap" |
| process termination reason |
| |
| * NetworkProcess/NetworkDataTaskBlob.cpp: |
| (WebKit::NetworkDataTaskBlob::dispatchDidReceiveResponse): |
| |
| * NetworkProcess/capture/NetworkDataTaskReplay.cpp: |
| (WebKit::NetworkCapture::NetworkDataTaskReplay::didReceiveResponse): |
| |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (toNSURLSessionResponseDisposition): |
| |
| * Platform/Logging.h: |
| |
| * Shared/LoadParameters.cpp: |
| (WebKit::LoadParameters::encode const): |
| (WebKit::LoadParameters::decode): |
| * Shared/LoadParameters.h: |
| |
| * Shared/ProcessTerminationReason.h: Add "NavigationSwap" as a process termination reason. |
| |
| * UIProcess/API/APINavigation.h: |
| |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| (API::ProcessPoolConfiguration::copy): |
| |
| * UIProcess/API/C/WKAPICast.h: |
| (WebKit::toAPI): |
| |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::wkProcessTerminationReason): |
| |
| * UIProcess/WebFramePolicyListenerProxy.cpp: |
| (WebKit::WebFramePolicyListenerProxy::WebFramePolicyListenerProxy): |
| * UIProcess/WebFramePolicyListenerProxy.h: |
| (WebKit::WebFramePolicyListenerProxy::create): |
| (WebKit::WebFramePolicyListenerProxy::policyListenerType const): |
| |
| * UIProcess/WebFrameProxy.cpp: |
| (WebKit::WebFrameProxy::setUpPolicyListenerProxy): |
| (WebKit::WebFrameProxy::activePolicyListenerProxy): |
| * UIProcess/WebFrameProxy.h: |
| |
| * UIProcess/WebNavigationState.cpp: |
| (WebKit::WebNavigationState::navigation): |
| (WebKit::WebNavigationState::takeNavigation): |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::reattachToWebProcess): |
| (WebKit::WebPageProxy::attachToProcessForNavigation): Pretend that the existing process |
| terminated using the new "NavigationSwap" reason, then manually start the next load. |
| (WebKit::WebPageProxy::loadRequest): |
| (WebKit::WebPageProxy::loadRequestWithNavigation): |
| (WebKit::WebPageProxy::receivedPolicyDecision): |
| (WebKit::WebPageProxy::continueNavigationInNewProcess): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::decidePolicyForResponse): |
| (WebKit::WebPageProxy::processDidTerminate): |
| (WebKit::WebPageProxy::resetState): |
| (WebKit::WebPageProxy::resetStateAfterProcessExited): |
| * UIProcess/WebPageProxy.h: |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigation): Determine which process should be used |
| for a proposed navigation, creating a new one if necessary. |
| * UIProcess/WebProcessPool.h: |
| |
| * UIProcess/WebStorage/StorageManager.cpp: |
| (WebKit::StorageManager::SessionStorageNamespace::setAllowedConnection): |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::loadRequest): |
| |
| 2018-03-20 Youenn Fablet <youenn@apple.com> |
| |
| ServiceWorkerClientFetch::didReceiveData should check for m_encodedDataLength |
| https://bugs.webkit.org/show_bug.cgi?id=183668 |
| |
| Reviewed by Chris Dumez. |
| |
| Crash happens when releasing a RefPtr<SharedBuffer> buffer that is null. |
| It happens because ServiceWorkerClientFetch can call m_loader->didReceiveBuffer at two different places. |
| Either when receiving an IPC call or as part of completion handler for the response validation check. |
| At each call site, we release the buffer to pass it to the loader and we set m_encodedLength to zero. |
| The fix is to add the m_encodedLength check like done in the case of response validation check completion handler. |
| |
| * WebProcess/Storage/ServiceWorkerClientFetch.cpp: |
| (WebKit::ServiceWorkerClientFetch::didReceiveData): |
| |
| 2018-03-20 Jeff Miller <jeffm@apple.com> |
| |
| Expose aggressiveTileRetentionEnabled in WKPreferences SPI to match C SPI |
| https://bugs.webkit.org/show_bug.cgi?id=183790 |
| |
| Reviewed by Alex Christensen. |
| |
| Expose this property on macOS only. |
| |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences _setAggressiveTileRetentionEnabled:]): |
| (-[WKPreferences _aggressiveTileRetentionEnabled]): |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: |
| |
| 2018-03-20 Tim Horton <timothy_horton@apple.com> |
| |
| Add and adopt WK_PLATFORM_NAME and adjust default feature defines |
| https://bugs.webkit.org/show_bug.cgi?id=183758 |
| <rdar://problem/38017644> |
| |
| Reviewed by Dan Bernstein. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2018-03-20 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, rolling out r229726 and r229763. |
| |
| Caused some API test failures on iOS |
| |
| Reverted changesets: |
| |
| "Make policy decisions asynchronous" |
| https://bugs.webkit.org/show_bug.cgi?id=180568 |
| https://trac.webkit.org/changeset/229726 |
| |
| "Rebaseline three webarchive tests for WK2 after r229726." |
| https://bugs.webkit.org/show_bug.cgi?id=180568 |
| https://trac.webkit.org/changeset/229763 |
| |
| 2018-03-20 Brent Fulgham <bfulgham@apple.com> |
| |
| [iOS] Grant IOKit preference access for the Home button |
| https://bugs.webkit.org/show_bug.cgi?id=183754 |
| <rdar://problem/38179704> |
| |
| Reviewed by Eric Carlson. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2018-03-20 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Adopt updated input view controller machinery for text input |
| https://bugs.webkit.org/show_bug.cgi?id=183765 |
| <rdar://problem/36926269> |
| |
| Reviewed by Tim Horton. |
| |
| Adopt new classes for extra zoomed text inputs. Massage WKTextInputViewController into WKTextInputListView- |
| Controller and introduce WKFormControlListViewController, the eventual replacement for the base class |
| WKTextFormControlViewController that will act as the base class of all list-view-controller-based input UI in |
| extra zoom mode. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView presentTextInputViewController:]): |
| (-[WKContentView dismissTextInputViewController:]): |
| (-[WKContentView focusedFormControllerDidUpdateSuggestions:]): |
| (-[WKContentView _wheelChangedWithEvent:]): |
| * UIProcess/ios/forms/WKFormControlListViewController.h: Copied from Source/WebKit/UIProcess/ios/forms/WKTextInputViewController.h. |
| * UIProcess/ios/forms/WKFormControlListViewController.mm: Renamed from Source/WebKit/UIProcess/ios/forms/WKTextInputViewController.mm. |
| * UIProcess/ios/forms/WKTextInputListViewController.h: Copied from Source/WebKit/UIProcess/ios/forms/WKTextInputViewController.h. |
| * UIProcess/ios/forms/WKTextInputListViewController.mm: Renamed from Source/WebKit/UIProcess/ios/forms/WKTextInputViewController.h. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-03-19 Megan Gardner <megan_gardner@apple.com> |
| |
| Clear style colors when setting default appearance |
| https://bugs.webkit.org/show_bug.cgi?id=183759 |
| |
| Reviewed by Tim Horton. |
| |
| Colors are cached and need to be cleared and recalculated. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::setDefaultAppearance): |
| |
| 2018-03-19 Chris Dumez <cdumez@apple.com> |
| |
| WKWebView.ClearAppCache is a flaky API test failure on High Sierra. |
| https://bugs.webkit.org/show_bug.cgi?id=181546 |
| <rdar://problem/36444327> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| in LocalStorageDatabaseTracker::deleteDatabasesModifiedSince(), add origin |
| to originIdentifiersToDelete if we cannot determine the last modification |
| time of the database file. This likely means the database file does not |
| exist. However, we still needs to make sure the origin gets removed from |
| the origins database and there may be *.wal / *.shm variants of the database |
| that are still on disk and need to be deleted. |
| |
| * UIProcess/WebStorage/LocalStorageDatabaseTracker.cpp: |
| (WebKit::LocalStorageDatabaseTracker::deleteDatabasesModifiedSince): |
| |
| 2018-03-19 Chris Dumez <cdumez@apple.com> |
| |
| Have one service worker process per security origin |
| https://bugs.webkit.org/show_bug.cgi?id=183600 |
| <rdar://problem/35280128> |
| |
| Reviewed by Brady Eidson. |
| |
| Split service workers from different origins into their own processes |
| for security reasons. |
| |
| * StorageProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::startFetch): |
| (WebKit::WebSWServerConnection::postMessageToServiceWorker): |
| (WebKit::WebSWServerConnection::scheduleJobInServer): |
| * StorageProcess/ServiceWorker/WebSWServerToContextConnection.cpp: |
| (WebKit::WebSWServerToContextConnection::WebSWServerToContextConnection): |
| * StorageProcess/ServiceWorker/WebSWServerToContextConnection.h: |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::connectionToContextProcessFromIPCConnection): |
| (WebKit::StorageProcess::didClose): |
| (WebKit::StorageProcess::connectionToContextProcessWasClosed): |
| (WebKit::StorageProcess::needsServerToContextConnectionForOrigin const): |
| (WebKit::StorageProcess::didReceiveMessage): |
| (WebKit::StorageProcess::createStorageToWebProcessConnection): |
| (WebKit::StorageProcess::serverToContextConnectionForOrigin): |
| (WebKit::StorageProcess::createServerToContextConnection): |
| * StorageProcess/StorageProcess.h: |
| * StorageProcess/StorageProcess.messages.in: |
| * StorageProcess/StorageToWebProcessConnection.cpp: |
| (WebKit::StorageToWebProcessConnection::didReceiveMessage): |
| (WebKit::StorageToWebProcessConnection::didClose): |
| * StorageProcess/StorageToWebProcessConnection.h: |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextTerminateServiceWorkerProcess): |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _terminateServiceWorkerProcesses]): |
| (-[WKProcessPool _webPageContentProcessCount]): |
| (-[WKProcessPool _serviceWorkerProcessCount]): |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::didReceiveAuthenticationChallenge): |
| (WebKit::NetworkProcessProxy::canAuthenticateAgainstProtectionSpace): |
| * UIProcess/ServiceWorkerProcessProxy.cpp: |
| (WebKit::ServiceWorkerProcessProxy::create): |
| (WebKit::ServiceWorkerProcessProxy::ServiceWorkerProcessProxy): |
| * UIProcess/ServiceWorkerProcessProxy.h: |
| (isType): |
| * UIProcess/Storage/StorageProcessProxy.cpp: |
| (WebKit::StorageProcessProxy::getStorageProcessConnection): |
| (WebKit::StorageProcessProxy::didFinishLaunching): |
| (WebKit::StorageProcessProxy::establishWorkerContextConnectionToStorageProcess): |
| (WebKit::StorageProcessProxy::establishWorkerContextConnectionToStorageProcessForExplicitSession): |
| * UIProcess/Storage/StorageProcessProxy.h: |
| * UIProcess/Storage/StorageProcessProxy.messages.in: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::getStorageProcessConnection): |
| (WebKit::WebProcessPool::establishWorkerContextConnectionToStorageProcess): |
| (WebKit::WebProcessPool::createNewWebProcess): |
| (WebKit::WebProcessPool::disconnectProcess): |
| (WebKit::WebProcessPool::createNewWebProcessRespectingProcessCountLimit): |
| (WebKit::WebProcessPool::createWebPage): |
| (WebKit::WebProcessPool::updateServiceWorkerUserAgent): |
| (WebKit::WebProcessPool::mayHaveRegisteredServiceWorkers): |
| (WebKit::WebProcessPool::pageBeginUsingWebsiteDataStore): |
| (WebKit::WebProcessPool::terminateServiceWorkerProcesses): |
| (WebKit::WebProcessPool::updateProcessAssertions): |
| (WebKit::WebProcessPool::serviceWorkerProcessProxyFromPageID const): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::getStorageProcessConnection): |
| |
| 2018-03-19 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Unreviewed, another quick fix for r229699 |
| |
| Restricts ENABLE_WEB_AUTHN to only macOS and iOS. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2018-03-19 Chris Dumez <cdumez@apple.com> |
| |
| Make policy decisions asynchronous |
| https://bugs.webkit.org/show_bug.cgi?id=180568 |
| <rdar://problem/37131297> |
| |
| Reviewed by Alex Christensen. |
| |
| Get rid of synchronous IPC and synchronous code paths for policy delegates. |
| Policy decisions are now all made asynchronously and rely on asynchronous |
| IPC. |
| |
| This code change is based on work by Alex Christensen. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::receivedPolicyDecision): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::decidePolicyForResponse): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse): |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| |
| 2018-03-19 Brian Burg <bburg@apple.com> |
| |
| Web Inspector: clean up WKWebView configuration code |
| https://bugs.webkit.org/show_bug.cgi?id=183747 |
| <rdar://problem/38629343> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UIProcess/mac/WKInspectorViewController.mm: |
| (-[WKInspectorViewController webView]): Always use system |
| appearance for Inspector's web content. |
| |
| 2018-03-19 Eric Carlson <eric.carlson@apple.com> |
| |
| [Extra zoom mode] Require fullscreen for video playback |
| https://bugs.webkit.org/show_bug.cgi?id=183742 |
| <rdar://problem/38235862> |
| |
| Reviewed by Jer Noble. |
| |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.h: |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.mm: |
| (-[WKVideoFullScreenViewController initWithAVPlayerViewController:]): |
| (-[WKVideoFullScreenViewController viewDidLoad]): |
| (-[WKVideoFullScreenViewController prefersStatusBarHidden]): |
| (WebKit::VideoFullscreenModelContext::presentingViewController): |
| (WebKit::VideoFullscreenModelContext::createVideoFullscreenViewController): |
| * WebProcess/cocoa/VideoFullscreenManager.mm: |
| (WebKit::VideoFullscreenManager::didEnterFullscreen): |
| |
| 2018-03-19 Daniel Bates <dabates@apple.com> |
| |
| test-webkitpy no longer runs WebKit2 tests |
| https://bugs.webkit.org/show_bug.cgi?id=183724 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| Fixes an issue where Python emits errors "global name reset_results is not defined" when |
| running tests in messages_unittest.py using test-webkitpy. |
| |
| Currently messages_unittest.py conditionally defines the global variable reset_results |
| when run as the main program (i.e. __name__ == "__main__"). When messages_unittest.py is |
| imported as a module as test-webkitpy does then it is not considered the main program |
| ;=> the top-level script environment is not __main__ ;=> we do not define the global |
| variable reset_results. Instead we should unconditionally define the global variable |
| reset_results. |
| |
| * Scripts/webkit/messages_unittest.py: |
| |
| 2018-03-19 Per Arne Vollan <pvollan@apple.com> |
| |
| When the WebContent process is blocked from accessing the WindowServer, the call CVDisplayLinkCreateWithCGDisplay will fail. |
| https://bugs.webkit.org/show_bug.cgi?id=183604 |
| <rdar://problem/38305109> |
| |
| Reviewed by Brent Fulgham. |
| |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/mac/DisplayLink.cpp: Added. |
| (WebKit::DisplayLink::DisplayLink): |
| (WebKit::DisplayLink::~DisplayLink): |
| (WebKit::DisplayLink::displayLinkCallback): |
| * UIProcess/mac/DisplayLink.h: Added. |
| * UIProcess/mac/WebPageProxyMac.mm: |
| (WebKit::WebPageProxy::startDisplayRefreshMonitor): |
| (WebKit::WebPageProxy::stopDisplayRefreshMonitor): |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebPage/DrawingArea.cpp: |
| (WebKit::DrawingArea::createDisplayRefreshMonitor): |
| * WebProcess/WebPage/DrawingArea.h: |
| * WebProcess/WebPage/DrawingArea.messages.in: |
| * WebProcess/WebPage/mac/DrawingAreaMac.cpp: Added. |
| (WebKit::DisplayRefreshMonitorMac::create): |
| (WebKit::DisplayRefreshMonitorMac::DisplayRefreshMonitorMac): |
| (WebKit::DisplayRefreshMonitorMac::~DisplayRefreshMonitorMac): |
| (WebKit::DisplayRefreshMonitorMac::requestRefreshCallback): |
| (WebKit::DisplayRefreshMonitorMac::displayLinkFired): |
| (WebKit::DrawingArea::screenWasRefreshed): |
| (WebKit::DrawingArea::createDisplayRefreshMonitor): |
| |
| 2018-03-17 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthN] Implement authenticatorMakeCredential |
| https://bugs.webkit.org/show_bug.cgi?id=183527 |
| <rdar://problem/35275886> |
| |
| Reviewed by Brent Fulgham. |
| |
| * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.cpp: |
| (WebKit::WebCredentialsMessengerProxy::WebCredentialsMessengerProxy): |
| (WebKit::WebCredentialsMessengerProxy::makeCredential): |
| (WebKit::WebCredentialsMessengerProxy::getAssertion): |
| (WebKit::WebCredentialsMessengerProxy::isUserVerifyingPlatformAuthenticatorAvailable): |
| (WebKit::WebCredentialsMessengerProxy::exceptionReply): |
| (WebKit::WebCredentialsMessengerProxy::makeCredentialReply): |
| * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.h: |
| * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.messages.in: |
| * UIProcess/CredentialManagement/cocoa/WebCredentialsMessengerProxyCocoa.mm: Removed. |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/CredentialManagement/WebCredentialsMessenger.cpp: |
| (WebKit::WebCredentialsMessenger::makeCredential): |
| (WebKit::WebCredentialsMessenger::makeCredentialReply): |
| * WebProcess/CredentialManagement/WebCredentialsMessenger.h: |
| * WebProcess/CredentialManagement/WebCredentialsMessenger.messages.in: |
| |
| 2018-03-17 Daniel Bates <dabates@apple.com> |
| |
| Tests fail in messages_unittest.py |
| https://bugs.webkit.org/show_bug.cgi?id=183725 |
| |
| Partial revert of r222113. The messages generator machinery does not know when |
| it is sufficient to emit an include for wtf/Forward.h as opposed to a concrete |
| header. |
| |
| * Scripts/webkit/LegacyMessages-expected.h: |
| * Scripts/webkit/Messages-expected.h: |
| |
| 2018-03-16 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Unreviewed, rolling out r229688. |
| |
| There's a solution that doesn't require this SPI. |
| |
| Reverted changeset: |
| |
| "Add SPI to expose width and height anchors for WKWebView's |
| content view" |
| https://bugs.webkit.org/show_bug.cgi?id=183711 |
| https://trac.webkit.org/changeset/229688 |
| |
| 2018-03-16 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Add SPI to expose width and height anchors for WKWebView's content view |
| https://bugs.webkit.org/show_bug.cgi?id=183711 |
| <rdar://problem/38562899> |
| |
| Reviewed by Tim Horton. |
| |
| Add _contentWidthAnchor and _contentHeightAnchor SPI to WKWebView for internal clients to be able to reason |
| about the size of the content view on iOS using autolayout. |
| |
| Test: WebKit.AutoLayoutPositionHeaderAndFooterViewsInScrollView. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _contentWidthAnchor]): |
| (-[WKWebView _contentHeightAnchor]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| |
| 2018-03-16 Megan Gardner <megan_gardner@apple.com> |
| |
| Add _useSystemAppearance to WKView |
| https://bugs.webkit.org/show_bug.cgi?id=183706 |
| <rdar://problem/38516584> |
| |
| Reviewed by Tim Horton. |
| |
| Plumb useSystemAppearance and other supporting functions to WKView |
| |
| * UIProcess/API/Cocoa/WKViewPrivate.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| (-[WKWebView _useSystemAppearance]): |
| (-[WKWebView _setUseSystemAppearance:]): |
| (-[WKWebView effectiveAppearanceDidChange]): |
| * UIProcess/API/mac/WKView.mm: |
| (-[WKView effectiveAppearanceDidChange]): |
| (-[WKView _setUseSystemAppearance:]): |
| (-[WKView _useSystemAppearance]): |
| (-[WKView _setDefaultAppearance:]): |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::setUseSystemAppearance): |
| (WebKit::WebViewImpl::useSystemAppearance): |
| (WebKit::WebViewImpl::setDefaultAppearance): |
| |
| 2018-03-16 Brent Fulgham <bfulgham@apple.com> |
| |
| Set a trap to catch an infrequent form-related nullptr crash |
| https://bugs.webkit.org/show_bug.cgi?id=183704 |
| <rdar://problem/37579354> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Add a RELEASE_ASSERT to see if we ever encounter a nullptr WebCore frame. |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchWillSubmitForm): |
| |
| 2018-03-16 Jer Noble <jer.noble@apple.com> |
| |
| Make Fullscreen API an Experimental Feature |
| https://bugs.webkit.org/show_bug.cgi?id=183662 |
| |
| Reviewed by Jon Lee. |
| |
| Add the ability to have a conditional for whether an Experimental Feature is "visible", separate from |
| whether the preference is available, for definining platform-specific Experimental Features. |
| |
| * Scripts/GeneratePreferences.rb: |
| * Scripts/PreferencesTemplates/WebPreferencesExperimentalFeatures.cpp.erb: |
| * Shared/WebPreferences.yaml: |
| |
| 2018-03-16 Megan Gardner <megan_gardner@apple.com> |
| |
| Ensure that style is updated when the effective appearance changes |
| https://bugs.webkit.org/show_bug.cgi?id=183690 |
| <rdar://problem/38385900> |
| |
| Reviewed by Tim Horton and Wenson Hsieh. |
| |
| Respond to and respect the effective appearance changing. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView effectiveAppearanceDidChange]): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::setDefaultAppearance): |
| |
| 2018-03-16 Chris Dumez <cdumez@apple.com> |
| |
| URLSchemeHandler.Basic API test fails with async policy delegates |
| https://bugs.webkit.org/show_bug.cgi?id=183678 |
| |
| Reviewed by Alex Christensen. |
| |
| The issue is that the client calls _didPerformRedirection / didReceiveResponse / didReceiveData / didFinish |
| on the URLScheme task one after the one, synchronously. However, redirects and responses can be processed |
| asynchronously. To address the issue, we now queue operations requested by the client if we're waiting |
| for an async policy delegate. |
| |
| * WebProcess/WebPage/WebURLSchemeTaskProxy.cpp: |
| (WebKit::WebURLSchemeTaskProxy::didPerformRedirection): |
| (WebKit::WebURLSchemeTaskProxy::didReceiveResponse): |
| (WebKit::WebURLSchemeTaskProxy::didReceiveData): |
| (WebKit::WebURLSchemeTaskProxy::didComplete): |
| (WebKit::WebURLSchemeTaskProxy::processNextPendingTask): |
| * WebProcess/WebPage/WebURLSchemeTaskProxy.h: |
| (WebKit::WebURLSchemeTaskProxy::queueTask): |
| |
| 2018-03-16 Claudio Saavedra <csaavedra@igalia.com> |
| |
| Suppress GCC warnings by using #include instead of #import |
| |
| Unreviewed. |
| * UIProcess/SystemPreviewController.cpp: |
| |
| 2018-03-15 Keith Rollin <krollin@apple.com> |
| |
| Telemetry for stalled webpage loads |
| https://bugs.webkit.org/show_bug.cgi?id=183221 |
| <rdar://problem/36549013> |
| |
| Reviewed by Chris Dumez. |
| |
| Add telemetry for page loads, tracking the pages that succeed, fail, |
| or are canceled. This information will be used to track the overall |
| health of our page loading as time goes on. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::close): |
| (WebKit::WebPageProxy::didStartProvisionalLoadForFrame): |
| (WebKit::WebPageProxy::didFailProvisionalLoadForFrame): |
| (WebKit::WebPageProxy::didFinishLoadForFrame): |
| (WebKit::WebPageProxy::didFailLoadForFrame): |
| (WebKit::WebPageProxy::reportPageLoadResult): |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::reportPageLoadResult): |
| |
| 2018-03-15 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS WK2] Hit-testing fails when specifying a large top content inset |
| https://bugs.webkit.org/show_bug.cgi?id=183648 |
| <rdar://problem/38421894> |
| |
| Reviewed by Tim Horton. |
| |
| Currently, in the process of computing unobscured content rect in the UI process on iOS, we subtract away parts |
| of the view that are obscured by insets (e.g. MobileSafari's chrome). The helper method -[WKWebView |
| _computeContentInset] is intended to compute these obscuring insets around the view, but it takes scroll view |
| insets into account. This means that if WKWebView's inner scroll view has content insets, we'll end up shrinking |
| the unobscured content rect as if the insetted region obscures the viewport; this causes visible content on the |
| page to be uninteractible, since WKWebView erroneously thinks it's obscured. |
| |
| To address this, we rename _computeContentInset to _computeObscuredInset, and make it _not_ affected by the |
| scroll view's content insets. From code inspection and testing, all but one of the former call sites of |
| _computeContentInset really need the obscured inset instead (see below). The one exception, -[WKWebView |
| _adjustedContentOffset:], takes a scroll position from the page and maps it to a content offset in the inner |
| UIScrollView (see below for more details). |
| |
| Tests: ScrollViewInsetTests.InnerHeightWithLargeTopContentInset |
| ScrollViewInsetTests.InnerHeightWithLargeBottomContentInset |
| ScrollViewInsetTests.RestoreInitialContentOffsetAfterCrash |
| ScrollViewInsetTests.RestoreInitialContentOffsetAfterNavigation |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _setHasCustomContentView:loadedMIMEType:]): |
| (-[WKWebView _initialContentOffsetForScrollView]): |
| |
| See -_contentOffsetAdjustedForObscuredInset: below. |
| |
| (-[WKWebView _contentOffsetAdjustedForObscuredInset:]): |
| |
| Formerly -_adjustedContentOffset:. -_contentOffsetAdjustedForObscuredInset: no longer takes scroll view content |
| inset into account, and only cares about insets that obscure the view. This means that the scroll position |
| (0, 0) in the document now maps to the content offset in the inner UIScrollView, such that the top of the page |
| is aligned with the top of the viewport. |
| |
| However, many call sites of -_adjustedContentOffset: were intended to compute the initial, top-left-most content |
| offset in the scroll view to scroll to when resetting the web view (i.e., they pass in CGPointZero for the |
| scroll position). An example of this is the scroll position to jump to after web content process termination, or |
| the scroll position after main frame navigation. In these cases, we actually want to jump to the top of the |
| scroll view, so we do want to use the version of the computed content insets that accounts for scroll view |
| insets. |
| |
| Since these cases are limited to finding the top-left-most scroll position, we pull this out into a separate |
| helper method (-_initialContentOffsetForScrollView) and replace calls to |
| `-[self _adjustedContentOffset:CGPointZero]` with this instead. |
| |
| (-[WKWebView _computedObscuredInset]): |
| |
| A version of -_computeContentInset that doesn't care about scroll view insets. Used whereever we need to account |
| for obscured insets rather than the combination of content insets and unobscured insets (e.g. |
| -_initialContentOffsetForScrollView). |
| |
| (-[WKWebView _processDidExit]): |
| (-[WKWebView _didCommitLayerTree:]): |
| (-[WKWebView _dynamicViewportUpdateChangedTargetToScale:position:nextValidLayerTreeTransactionID:]): |
| (-[WKWebView _scrollToContentScrollPosition:scrollOrigin:]): |
| (-[WKWebView scrollViewWillEndDragging:withVelocity:targetContentOffset:]): |
| (-[WKWebView _updateVisibleContentRects]): |
| (-[WKWebView _navigationGestureDidBegin]): |
| |
| In all these places where we inset the view bounds to compute the unobscured region of the viewport, it doesn't |
| make sense to additionally inset by the scroll view's content insets, since (1) the scroll view's content insets |
| don't obscure the viewport, and (2) it's perfectly valid for the inner scroll view to have arbitrarily large |
| content insets. |
| |
| (-[WKWebView _adjustedContentOffset:]): Deleted. |
| |
| Renamed to -_contentOffsetAdjustedForObscuredInset:. |
| |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| * UIProcess/ios/WKPDFView.mm: |
| (-[WKPDFView _offsetForPageNumberIndicator]): |
| |
| Similar to -_scrollToFragment: (see below). |
| |
| (-[WKPDFView _scrollToFragment:]): |
| |
| This helper figures out which content offset to scroll to, given the y-origin of a page in a PDF document. If |
| insets are added to the scroll view, we end up scrolling to the wrong content offset since we'll add the height |
| of the top content inset (imagine that the top content inset is enormous — then we'll scroll an amount equal to |
| the top content inset _past_ the point where the y-origin of the page is at the top of the viewport). |
| |
| 2018-03-15 Brent Fulgham <bfulgham@apple.com> |
| |
| [macOS] Correct sandbox violations during Flash playback under ToT WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=183672 |
| <rdar://problem/38510839> |
| |
| Reviewed by Eric Carlson. |
| |
| * PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in: |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-03-15 Brent Fulgham <bfulgham@apple.com> |
| |
| REGRESSION(r229484): Plugins often require CGS Connections to draw |
| https://bugs.webkit.org/show_bug.cgi?id=183663 |
| <rdar://problem/38439218> |
| |
| Reviewed by Per Arne Vollan. |
| |
| Flash requires an active CGSConnection to work properly. Since we don't want the WebContent |
| process to have on, create a new plugin process-specific layer host creation method that |
| gives this access. |
| |
| * Platform/mac/LayerHostingContext.h: |
| * Platform/mac/LayerHostingContext.mm: |
| (WebKit::LayerHostingContext::createForExternalPluginHostingProcess): Added. |
| * PluginProcess/mac/PluginControllerProxyMac.mm: |
| (WebKit::PluginControllerProxy::updateLayerHostingContext): Use the new creation |
| method. |
| |
| 2018-03-15 Zan Dobersek <zdobersek@igalia.com> |
| |
| [TexMap] Remove TextureMapperLayer::texture() |
| https://bugs.webkit.org/show_bug.cgi?id=183635 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Remove the CoordinatedBackingStore::texture() override since the virtual |
| method is also being removed. |
| |
| * Shared/CoordinatedGraphics/CoordinatedBackingStore.cpp: |
| (WebKit::CoordinatedBackingStore::texture const): Deleted. |
| * Shared/CoordinatedGraphics/CoordinatedBackingStore.h: |
| |
| 2018-03-14 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Add clearing of storage access to WebResourceLoadStatisticsStore::clearInMemory() |
| https://bugs.webkit.org/show_bug.cgi?id=183641 |
| <rdar://problem/38469497> |
| |
| Reviewed by Brent Fulgham and Chris Dumez. |
| |
| This change is to stabilize existing layout tests by removing |
| all storage access entries on a call to |
| WebResourceLoadStatisticsStore::clearInMemory(). |
| See Ryan Haddad's comment in https://bugs.webkit.org/show_bug.cgi?id=183620. |
| |
| Almost all of the code changes are piping to get this |
| call from the WebResourceLoadStatisticsStore to |
| WebCore::NetworkStorageSession where entries reside. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::removeAllStorageAccess): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::removeAllStorageAccess): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore): |
| (WebKit::WebResourceLoadStatisticsStore::removeAllStorageAccess): |
| (WebKit::WebResourceLoadStatisticsStore::clearInMemory): |
| Now also clears all storage access entries in the network process. |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::removeAllStorageAccessHandler): |
| (WebKit::WebsiteDataStore::enableResourceLoadStatisticsAndSetTestingCallback): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| |
| 2018-03-14 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r229613. |
| |
| Caused API test failures |
| |
| Reverted changeset: |
| |
| "Make policy decisions asynchronous" |
| https://bugs.webkit.org/show_bug.cgi?id=180568 |
| https://trac.webkit.org/changeset/229613 |
| |
| 2018-03-14 Chris Dumez <cdumez@apple.com> |
| |
| Reduce use of SWServerToContextConnection::globalServerToContextConnection() |
| https://bugs.webkit.org/show_bug.cgi?id=183626 |
| |
| Reviewed by Youenn Fablet. |
| |
| Reduce use of SWServerToContextConnection::globalServerToContextConnection() as we are moving |
| towards having multiple context connections. |
| |
| * StorageProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::startFetch): |
| (WebKit::WebSWServerConnection::postMessageToServiceWorker): |
| |
| 2018-03-14 Chris Dumez <cdumez@apple.com> |
| |
| Make policy decisions asynchronous |
| https://bugs.webkit.org/show_bug.cgi?id=180568 |
| <rdar://problem/37131297> |
| |
| Reviewed by Alex Christensen. |
| |
| Get rid of synchronous IPC and synchronous code paths for policy delegates. |
| Policy decisions are now all made asynchronously and rely on asynchronous |
| IPC. |
| |
| This code change is based on work by Alex Christensen. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::receivedPolicyDecision): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::decidePolicyForResponse): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse): |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| |
| 2018-03-14 Chris Dumez <cdumez@apple.com> |
| |
| Drop unnecessary StorageToWebProcessConnection::workerContextProcessConnectionCreated() |
| https://bugs.webkit.org/show_bug.cgi?id=183624 |
| |
| Reviewed by Youenn Fablet. |
| |
| Drop unnecessary StorageToWebProcessConnection::workerContextProcessConnectionCreated() |
| since it was going through all SWServers. Calling workerContextProcessConnectionCreated() |
| on every StorageToWebProcessConnection was thus doing redundant work. |
| |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::createStorageToWebProcessConnection): |
| * StorageProcess/StorageToWebProcessConnection.cpp: |
| (WebKit::StorageToWebProcessConnection::establishSWServerConnection): |
| (WebKit::StorageToWebProcessConnection::workerContextProcessConnectionCreated): Deleted. |
| * StorageProcess/StorageToWebProcessConnection.h: |
| |
| 2018-03-14 Tim Horton <timothy_horton@apple.com> |
| |
| Fix the build after r229567 |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2018-03-13 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Immediately forward cookie access for domains with previous user interaction when there's an opener document |
| https://bugs.webkit.org/show_bug.cgi?id=183620 |
| <rdar://problem/38431469> |
| |
| Reviewed by Brent Fulgham. |
| |
| It turns out the fix in https://bugs.webkit.org/show_bug.cgi?id=183577 |
| wasn't enough to address the compatibility issues with popups. Some of |
| them just detect their unpartitioned cookies, auto-dismiss themselves, |
| and expect their unpartitioned cookies to be available under the opener |
| afterwards. We should grant them access if the popup's domain has had |
| user interaction _previously_. |
| |
| Note that we still need https://bugs.webkit.org/show_bug.cgi?id=183577 |
| because if the popup's domain has not received user interaction |
| previously, we will not grant it storage access on just the window open. |
| |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::requestStorageAccessUnderOpener): |
| (WebKit::WebResourceLoadStatisticsStore::grantStorageAccessUnderOpener): Deleted. |
| Renamed WebResourceLoadStatisticsStore::grantStorageAccessUnderOpener() |
| to WebResourceLoadStatisticsStore::requestStorageAccessUnderOpener() |
| since there is now a case where access will not be granted, i.e. when |
| the popup domain has not had user interaction previously. |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| * UIProcess/WebResourceLoadStatisticsStore.messages.in: |
| Similar renaming. |
| * WebProcess/WebProcess.cpp: |
| (WebProcess::WebProcess): |
| Similar renaming. |
| |
| 2018-03-13 Jer Noble <jer.noble@apple.com> |
| |
| Add missing artwork for fullscreen mode. |
| https://bugs.webkit.org/show_bug.cgi?id=183618 |
| |
| Reviewed by Jon Lee. |
| |
| * Resources/ios/iOS.xcassets/Done.imageset/Contents.json: Added. |
| * Resources/ios/iOS.xcassets/Done.imageset/Done.pdf: Added. |
| * Resources/ios/iOS.xcassets/StartPictureInPictureButton.imageset/Contents.json: Added. |
| * Resources/ios/iOS.xcassets/StartPictureInPictureButton.imageset/StartPictureInPictureButton@1x.png: Added. |
| * Resources/ios/iOS.xcassets/StartPictureInPictureButton.imageset/StartPictureInPictureButton@2x.png: Added. |
| * Resources/ios/iOS.xcassets/StartPictureInPictureButton.imageset/StartPictureInPictureButton@3x.png: Added. |
| * Resources/ios/iOS.xcassets/StopPictureInPictureButton.imageset/Contents.json: Added. |
| * Resources/ios/iOS.xcassets/StopPictureInPictureButton.imageset/StopPictureInPictureButton@1x.png: Added. |
| * Resources/ios/iOS.xcassets/StopPictureInPictureButton.imageset/StopPictureInPictureButton@2x.png: Added. |
| * Resources/ios/iOS.xcassets/StopPictureInPictureButton.imageset/StopPictureInPictureButton@3x.png: Added. |
| |
| 2018-03-13 Brian Burg <bburg@apple.com> |
| |
| [WK2] Web Inspector: NavigationAction for opening a link in a new tab should have a UserGestureIndicator |
| https://bugs.webkit.org/show_bug.cgi?id=183612 |
| <rdar://problem/38388641> |
| |
| Reviewed by Timothy Hatcher. |
| |
| The current gesture token will be attached to the NavigationAction at construction time, |
| so set up a UserGestureIndicator when creating the action and sending it out. |
| |
| * WebProcess/WebPage/WebInspector.cpp: |
| (WebKit::WebInspector::openInNewTab): |
| |
| 2018-03-13 Dean Jackson <dino@apple.com> |
| |
| WKSystemPreviewView needs to implement some of UIScrollViewDelegate |
| https://bugs.webkit.org/show_bug.cgi?id=183607 |
| <rdar://problem/38427622> |
| |
| Reviewed by Antoine Quint. |
| |
| Add an empty implementation of scrollViewDidScroll. |
| |
| * UIProcess/ios/WKSystemPreviewView.mm: |
| (-[WKSystemPreviewView scrollViewDidScroll:]): |
| |
| 2018-03-13 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Soft-link LocalAuthentication.Framework |
| https://bugs.webkit.org/show_bug.cgi?id=183587 |
| <rdar://problem/38219763> |
| |
| Reviewed by Brian Burg. |
| |
| * UIProcess/CredentialManagement/cocoa/WebCredentialsMessengerProxyCocoa.mm: |
| (WebKit::WebCredentialsMessengerProxy::platformIsUserVerifyingPlatformAuthenticatorAvailable): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-03-12 Dean Jackson <dino@apple.com> |
| |
| Add a WKWebViewContentProvider for system previews |
| https://bugs.webkit.org/show_bug.cgi?id=183582 |
| <rdar://problem/38393569> |
| |
| Reviewed by Tim Horton. |
| |
| Implement WKSystemPreviewView, which conforms to WKWebViewContentProvider, in |
| order to view content as a "system preview". This effectively replaces the |
| SystemPreviewController, which will be removed soon. |
| |
| Some of the required methods of WKWebViewContentProvider are not necessary on |
| this instance, so a follow-up patch will clean the protocol up a bit. |
| |
| * UIProcess/Cocoa/NavigationState.mm: Don't trigger a SystemPreview when downloading. |
| (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationResponse): |
| |
| * UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm: |
| (-[WKWebViewContentProviderRegistry init]): Register the WKSystemPreviewView for |
| MIME types retrieved from WebKitAdditions. |
| |
| * UIProcess/ios/WKSystemPreviewView.h: Added. |
| * UIProcess/ios/WKSystemPreviewView.mm: Added. |
| |
| (-[WKSystemPreviewView web_initWithFrame:webView:]): |
| (-[WKSystemPreviewView web_setContentProviderData:suggestedFilename:]): This is the |
| method that actually creates a QuickLook preview and provides the data. |
| (-[WKSystemPreviewView web_setMinimumSize:]): |
| (-[WKSystemPreviewView web_setOverlaidAccessoryViewsInset:]): |
| (-[WKSystemPreviewView web_computedContentInsetDidChange]): |
| (-[WKSystemPreviewView web_setFixedOverlayView:]): |
| (-[WKSystemPreviewView web_didSameDocumentNavigation:]): |
| (-[WKSystemPreviewView web_countStringMatches:options:maxCount:]): |
| (-[WKSystemPreviewView web_findString:options:maxCount:]): |
| (-[WKSystemPreviewView web_hideFindUI]): |
| |
| (-[WKSystemPreviewView numberOfPreviewItemsInPreviewController:]): QuickLook delegates. |
| (-[WKSystemPreviewView previewController:previewItemAtIndex:]): |
| (-[WKSystemPreviewView provideDataForItem:]): |
| (-[WKSystemPreviewView previewControllerWillDismiss:]): |
| |
| * WebKit.xcodeproj/project.pbxproj: Add new files. |
| |
| 2018-03-12 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Immediately forward cookie access at user interaction when there's an opener document |
| https://bugs.webkit.org/show_bug.cgi?id=183577 |
| <rdar://problem/38266987> |
| |
| Reviewed by Brent Fulgham. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::hasStorageAccessForFrame): |
| Now also checks for general page access. |
| (WebKit::NetworkProcess::grantStorageAccess): |
| Renamed from grantStorageAccessForFrame since the frameID now is optional. |
| (WebKit::NetworkProcess::grantStorageAccessForFrame): Deleted. |
| Renamed since the frameID now is optional. |
| * NetworkProcess/NetworkProcess.h: |
| Renaming since the frameID now is optional. |
| * NetworkProcess/NetworkProcess.messages.in: |
| Renaming since the frameID now is optional. |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::logCookieInformation): |
| Consequence of function renaming. |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::grantStorageAccess): |
| (WebKit::NetworkProcessProxy::grantStorageAccessForFrame): Deleted. |
| Renaming since the frameID now is optional. |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore): |
| Renaming since the frameID now is optional. |
| (WebKit::WebResourceLoadStatisticsStore::requestStorageAccess): |
| Handler renaming since the frameID now is optional. |
| (WebKit::WebResourceLoadStatisticsStore::grantStorageAccessUnderOpener): |
| New function for that grants cookie access under a whole page. |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| Member renaming since the frameID now is optional. |
| * UIProcess/WebResourceLoadStatisticsStore.messages.in: |
| New message received straight from WebCore::ResourceLoadObserver. |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::grantStorageAccessHandler): |
| Renamed and made frameID optional. |
| (WebKit::WebsiteDataStore::enableResourceLoadStatisticsAndSetTestingCallback): |
| Consequence of renaming and making frameID optional. |
| (WebKit::WebsiteDataStore::grantStorageAccessForFrameHandler): Deleted. |
| Renamed and made frameID optional. |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| * WebProcess/WebProcess.cpp: |
| (WebProcess::WebProcess): |
| Now calls setGrantStorageAccessUnderOpenerCallback() on the shared |
| WebCore::ResourceLoadObserver. |
| |
| 2018-03-12 Tim Horton <timothy_horton@apple.com> |
| |
| Stop using SDK conditionals to control feature definitions |
| https://bugs.webkit.org/show_bug.cgi?id=183430 |
| <rdar://problem/38251619> |
| |
| Reviewed by Dan Bernstein. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * Configurations/WebKitTargetConditionals.xcconfig: Renamed. |
| |
| 2018-03-12 Yoav Weiss <yoav@yoav.ws> |
| |
| Runtime flag for link prefetch and remove link subresource. |
| https://bugs.webkit.org/show_bug.cgi?id=183540 |
| |
| Reviewed by Chris Dumez. |
| |
| Remove the LINK_PREFETCH build time flag. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::maximumBufferingTime): |
| |
| 2018-03-12 Chris Dumez <cdumez@apple.com> |
| |
| Load may get committed before receiving policy for the resource response |
| https://bugs.webkit.org/show_bug.cgi?id=183579 |
| <rdar://problem/38268780> |
| |
| Reviewed by Youenn Fablet. |
| |
| r228852 updated WebResourceLoader::didReceiveResponse to only send the |
| ContinueDidReceiveResponse IPC back to the Networkprocess *after* the |
| policy decision for the resource response has been made. This is necessary |
| now that policy decisions can be made asynchronously. |
| |
| However, one of the 2 code paths in NetworkProcess side (code path when |
| the resource is already in the HTTP disk cache) failed to wait for the |
| ContinueDidReceiveResponse IPC before sending over the data to the WebProcess. |
| As a result, the WebProcess could commit the load before even receiving the |
| policy response from the client. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::continueDidReceiveResponse): |
| (WebKit::NetworkResourceLoader::didRetrieveCacheEntry): |
| (WebKit::NetworkResourceLoader::continueProcessingCachedEntryAfterDidReceiveResponse): |
| * NetworkProcess/NetworkResourceLoader.h: |
| Make sure NetworkResourceLoader::didRetrieveCacheEntry() does not start sending the data |
| until the network process gets the ContinueDidReceiveResponse IPC back from the WebProcess. |
| |
| * WebProcess/Network/WebResourceLoader.cpp: |
| (WebKit::WebResourceLoader::didReceiveResponse): |
| (WebKit::WebResourceLoader::didReceiveData): |
| * WebProcess/Network/WebResourceLoader.h: |
| Add assertion to make sure didReceiveData() never gets called before didReceiveResponse's |
| completion handler has been called. If this hits, then the load may get committed even |
| though the client did not reply to the policy for the resource response yet. |
| |
| 2018-03-12 Ali Juma <ajuma@chromium.org> |
| |
| http/tests/workers/service/service-worker-download.https.html times out with async policy delegates |
| https://bugs.webkit.org/show_bug.cgi?id=183479 |
| |
| Reviewed by Youenn Fablet. |
| |
| Ensure that ServiceWorkerFetchClient::m_isCheckingResponse is set before code that depends on it |
| executes. This bit was set by code that's posted to the runloop using 'callOnMainThread' in |
| ServiceWorkerFetchClient::didReceiveResponse. But when didReceiveResponse is executing, tasks for |
| handling didReceiveData, didFail, or didFinish may already have been posted to the runloop, and in |
| that case would execute before m_isCheckingResponse gets set, and then incorrectly fail to |
| early-out. Fix this by directly setting m_isCheckingResponse in didReceiveResponse. |
| |
| * WebProcess/Storage/ServiceWorkerClientFetch.cpp: |
| (WebKit::ServiceWorkerClientFetch::start): |
| (WebKit::ServiceWorkerClientFetch::didReceiveResponse): |
| |
| 2018-03-12 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| REGRESSION(r211643): Dismissing WKActionSheet should not also dismiss its presenting view controller |
| https://bugs.webkit.org/show_bug.cgi?id=183549 |
| <rdar://problem/34960698> |
| |
| Reviewed by Andy Estes. |
| |
| Fixes the bug by dismissing the presented view controller (i.e. the action sheet or the view controller being |
| presented during rotation) rather than the presenting view controller. |
| |
| Test: ActionSheetTests.DismissingActionSheetShouldNotDismissPresentingViewController |
| |
| * UIProcess/ios/WKActionSheet.mm: |
| (-[WKActionSheet doneWithSheet:]): |
| |
| 2018-03-12 Javier Fernandez <jfernandez@igalia.com> |
| |
| Remove GridLayout runtime flag |
| https://bugs.webkit.org/show_bug.cgi?id=183484 |
| |
| Reviewed by Myles C. Maxfield. |
| |
| The Grid Layout feature has been enabled by default for almost a |
| year, so I think it's time to remove the runtime flag and the |
| codepath run when the feature is disabled. |
| |
| * Shared/WebPreferences.yaml: |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): |
| |
| 2018-03-11 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Fix the internal iOS build after r229512 |
| https://bugs.webkit.org/show_bug.cgi?id=183550 |
| |
| Reviewed by Zalan Bujtas. |
| |
| Fixes a typo in a header import, as well as a nullability error. `SecTrustEvaluate()` takes in a nonnull outparam, |
| which was removed in r229512; this adds the outparam back, but does not consult its value when setting the |
| `infoDictionary`. |
| |
| * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm: |
| (-[WKFullScreenWindowController _EVOrganizationName]): |
| |
| 2018-03-10 Jer Noble <jer.noble@apple.com> |
| |
| Improvements to fullscreen; new UI and security features |
| https://bugs.webkit.org/show_bug.cgi?id=183503 |
| |
| Reviewed by Dean Jackson. |
| |
| Now that the iOS Fullscreen code has more than one major class, move it into an ios/ |
| directory. |
| |
| Clean up the WKFullScreenWindowControllerIOS class to more clearly separate external |
| facing API from purely internal functions. |
| |
| Move the WKFullScreenViewController out into its own file. Add support for fullscreen |
| top inset and fullscreen autohide duration CSS constants. |
| |
| Add a heuristic to distinguish between media control related touches and ones that look |
| more keyboard interactions. |
| |
| Add a new UIStackView based control to hold the fullscreen controls. |
| |
| * UIProcess/ios/WKFullScreenWindowControllerIOS.mm: Removed. |
| * UIProcess/ios/fullscreen/FullscreenTouchSecheuristic.cpp: Added. |
| (WebKit::FullscreenTouchSecheuristic::scoreOfNextTouch): |
| (WebKit::FullscreenTouchSecheuristic::reset): |
| (WebKit::FullscreenTouchSecheuristic::distanceScore): |
| (WebKit::FullscreenTouchSecheuristic::attenuationFactor): |
| * UIProcess/ios/fullscreen/FullscreenTouchSecheuristic.h: |
| (WebKit::FullscreenTouchSecheuristic::setRampUpSpeed): |
| (WebKit::FullscreenTouchSecheuristic::setRampDownSpeed): |
| (WebKit::FullscreenTouchSecheuristic::setXWeight): |
| (WebKit::FullscreenTouchSecheuristic::setYWeight): |
| (WebKit::FullscreenTouchSecheuristic::setSize): |
| (WebKit::FullscreenTouchSecheuristic::setGamma): |
| (WebKit::FullscreenTouchSecheuristic::setGammaCutoff): |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.h: |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.mm: Added. |
| (WKFullScreenViewControllerPlaybackSessionModelClient::setParent): |
| (WKFullScreenViewControllerPlaybackSessionModelClient::setInterface): |
| (-[_WKExtrinsicButton setExtrinsicContentSize:]): |
| (-[_WKExtrinsicButton intrinsicContentSize]): |
| (-[WKFullScreenViewController initWithWebView:]): |
| (-[WKFullScreenViewController dealloc]): |
| (-[WKFullScreenViewController showUI]): |
| (-[WKFullScreenViewController hideUI]): |
| (-[WKFullScreenViewController videoControlsManagerDidChange]): |
| (-[WKFullScreenViewController setPrefersStatusBarHidden:]): |
| (-[WKFullScreenViewController setPlaying:]): |
| (-[WKFullScreenViewController setPictureInPictureActive:]): |
| (-[WKFullScreenViewController loadView]): |
| (-[WKFullScreenViewController viewWillAppear:]): |
| (-[WKFullScreenViewController viewDidLayoutSubviews]): |
| (-[WKFullScreenViewController viewWillTransitionToSize:withTransitionCoordinator:]): |
| (-[WKFullScreenViewController preferredStatusBarStyle]): |
| (-[WKFullScreenViewController prefersStatusBarHidden]): |
| (-[WKFullScreenViewController gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]): |
| (-[WKFullScreenViewController gestureRecognizer:shouldReceiveTouch:]): |
| (-[WKFullScreenViewController _manager]): |
| (-[WKFullScreenViewController _effectiveFullscreenInsetTop]): |
| (-[WKFullScreenViewController _cancelAction:]): |
| (-[WKFullScreenViewController _togglePiPAction:]): |
| (-[WKFullScreenViewController _touchDetected:]): |
| (-[WKFullScreenViewController _statusBarFrameDidChange:]): |
| (-[WKFullScreenViewController _updateWebViewFullscreenInsets]): |
| (-[WKFullScreenViewController _showPhishingAlert]): |
| * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.h: Copied from Source/WebKit/UIProcess/ios/WKFullScreenWindowControllerIOS.h. |
| * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm: Added. |
| (WebKit::replaceViewWithView): |
| (WebKit::WKWebViewState::applyTo): |
| (WebKit::WKWebViewState::store): |
| (-[WKFullscreenAnimationController transitionDuration:]): |
| (-[WKFullscreenAnimationController configureInitialAndFinalStatesForTransition:]): |
| (-[WKFullscreenAnimationController animateTransition:]): |
| (-[WKFullscreenAnimationController animationEnded:]): |
| (-[WKFullscreenAnimationController startInteractiveTransition:]): |
| (-[WKFullscreenAnimationController updateWithPercent:]): |
| (-[WKFullscreenAnimationController updateWithPercent:translation:anchor:]): |
| (-[WKFullscreenAnimationController end:]): |
| (-[WKFullScreenInteractiveTransition initWithAnimator:anchor:]): |
| (-[WKFullScreenInteractiveTransition wantsInteractiveStart]): |
| (-[WKFullScreenInteractiveTransition startInteractiveTransition:]): |
| (-[WKFullScreenInteractiveTransition updateInteractiveTransition:withTranslation:]): |
| (-[WKFullScreenInteractiveTransition cancelInteractiveTransition]): |
| (-[WKFullScreenInteractiveTransition finishInteractiveTransition]): |
| (-[WKFullScreenWindowController initWithWebView:]): |
| (-[WKFullScreenWindowController dealloc]): |
| (-[WKFullScreenWindowController isFullScreen]): |
| (-[WKFullScreenWindowController webViewPlaceholder]): |
| (-[WKFullScreenWindowController enterFullScreen]): |
| (-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]): |
| (-[WKFullScreenWindowController requestExitFullScreen]): |
| (-[WKFullScreenWindowController exitFullScreen]): |
| (-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:finalFrame:]): |
| (-[WKFullScreenWindowController _completedExitFullScreen]): |
| (-[WKFullScreenWindowController close]): |
| (-[WKFullScreenWindowController webViewDidRemoveFromSuperviewWhileInFullscreen]): |
| (-[WKFullScreenWindowController videoControlsManagerDidChange]): |
| (-[WKFullScreenWindowController gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]): |
| (-[WKFullScreenWindowController animationControllerForPresentedController:presentingController:sourceController:]): |
| (-[WKFullScreenWindowController animationControllerForDismissedController:]): |
| (-[WKFullScreenWindowController interactionControllerForDismissal:]): |
| (-[WKFullScreenWindowController _exitFullscreenImmediately]): |
| (-[WKFullScreenWindowController _invalidateEVOrganizationName]): |
| (-[WKFullScreenWindowController _isSecure]): |
| (-[WKFullScreenWindowController _serverTrust]): |
| (-[WKFullScreenWindowController _EVOrganizationName]): |
| (-[WKFullScreenWindowController _updateLocationInfo]): |
| (-[WKFullScreenWindowController _manager]): |
| (-[WKFullScreenWindowController _startToDismissFullscreenChanged:]): |
| (-[WKFullScreenWindowController _interactiveDismissChanged:]): |
| * UIProcess/ios/fullscreen/WKFullscreenStackView.h: Renamed from Source/WebKit/UIProcess/ios/WKFullScreenWindowControllerIOS.h. |
| * UIProcess/ios/fullscreen/WKFullscreenStackView.mm: Added. |
| (+[WKFullscreenStackView baseEffects]): |
| (+[WKFullscreenStackView configureView:forTintEffectWithColor:filterType:]): |
| (+[WKFullscreenStackView configureView:withBackgroundFillOfColor:opacity:filter:]): |
| (+[WKFullscreenStackView secondaryMaterialOverlayView]): |
| (+[WKFullscreenStackView applyPrimaryGlyphTintToView:]): |
| (+[WKFullscreenStackView applySecondaryGlyphTintToView:]): |
| (-[WKFullscreenStackView initWithArrangedSubviews:axis:]): |
| (-[WKFullscreenStackView setTargetViewForSecondaryMaterialOverlay:]): |
| (-[WKFullscreenStackView contentView]): |
| (-[WKFullscreenStackView _setArrangedSubviews:axis:]): |
| (-[WKFullscreenStackView setBounds:]): |
| (-[WKFullscreenStackView updateConstraints]): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-03-10 Megan Gardner <megan_gardner@apple.com> |
| |
| Media query for default appearance |
| https://bugs.webkit.org/show_bug.cgi?id=183539 |
| <rdar://problem/38326388> |
| |
| Reviewed by Tim Horton. |
| |
| Write a media query to evaluate appearance. |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| (-[WKWebView _setUseSystemAppearance:]): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::creationParameters): |
| (WebKit::WebPageProxy::setDefaultAppearance): |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::defaultAppearance const): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_credentialsMessenger): |
| (WebKit::WebPage::setDefaultAppearance): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2018-03-09 Jer Noble <jer.noble@apple.com> |
| |
| Unconditionalize more methods in VideoFullscreenInterface (and related classes) |
| https://bugs.webkit.org/show_bug.cgi?id=183501 |
| <rdar://problem/38312038> |
| |
| Unreviewed build fix; add correct pragmas to code referencing m_playbackSessionManager. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::hasActiveVideoForControlsManager const): |
| (WebKit::WebPageProxy::requestControlledElementID const): |
| (WebKit::WebPageProxy::isPlayingVideoInEnhancedFullscreen const): |
| |
| 2018-03-09 Brian Burg <bburg@apple.com> |
| |
| Web Inspector: there should only be one way for async backend commands to send failure |
| https://bugs.webkit.org/show_bug.cgi?id=183524 |
| |
| Reviewed by Timothy Hatcher. |
| |
| Remove useless ErrorString argument from async commands. |
| |
| For Automation protocol, introduce sync and async macros for filling |
| in and sending a failure response. Now that async commands don't have |
| an ErrorString and sync commands don't have a callback, trying to send |
| an error with the wrong macro is a compile-time error. |
| |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::getBrowsingContexts): |
| (WebKit::WebAutomationSession::getBrowsingContext): |
| (WebKit::WebAutomationSession::createBrowsingContext): |
| (WebKit::WebAutomationSession::closeBrowsingContext): |
| (WebKit::WebAutomationSession::switchToBrowsingContext): |
| (WebKit::WebAutomationSession::setWindowFrameOfBrowsingContext): |
| (WebKit::WebAutomationSession::waitForNavigationToComplete): |
| (WebKit::WebAutomationSession::navigateBrowsingContext): |
| (WebKit::WebAutomationSession::goBackInBrowsingContext): |
| (WebKit::WebAutomationSession::goForwardInBrowsingContext): |
| (WebKit::WebAutomationSession::reloadBrowsingContext): |
| (WebKit::WebAutomationSession::evaluateJavaScriptFunction): |
| (WebKit::WebAutomationSession::resolveChildFrameHandle): |
| (WebKit::WebAutomationSession::resolveParentFrameHandle): |
| (WebKit::WebAutomationSession::computeElementLayout): |
| (WebKit::WebAutomationSession::selectOptionElement): |
| (WebKit::WebAutomationSession::isShowingJavaScriptDialog): |
| (WebKit::WebAutomationSession::dismissCurrentJavaScriptDialog): |
| (WebKit::WebAutomationSession::acceptCurrentJavaScriptDialog): |
| (WebKit::WebAutomationSession::messageOfCurrentJavaScriptDialog): |
| (WebKit::WebAutomationSession::setUserInputForCurrentJavaScriptPrompt): |
| (WebKit::WebAutomationSession::setFilesToSelectForFileUpload): |
| (WebKit::WebAutomationSession::getAllCookies): |
| (WebKit::WebAutomationSession::deleteSingleCookie): |
| (WebKit::WebAutomationSession::addSingleCookie): |
| (WebKit::WebAutomationSession::deleteAllCookies): |
| (WebKit::WebAutomationSession::setSessionPermissions): |
| (WebKit::WebAutomationSession::performMouseInteraction): |
| (WebKit::WebAutomationSession::performKeyboardInteractions): |
| (WebKit::WebAutomationSession::takeScreenshot): |
| (WebKit::WebAutomationSession::didTakeScreenshot): |
| * UIProcess/Automation/WebAutomationSession.h: |
| * UIProcess/Automation/WebAutomationSessionMacros.h: |
| * UIProcess/Automation/mac/WebAutomationSessionMac.mm: |
| (WebKit::WebAutomationSession::inspectBrowsingContext): |
| |
| 2018-03-09 Jer Noble <jer.noble@apple.com> |
| |
| Don't pass NULL to the result parameter of SecTrustEvaluate() |
| https://bugs.webkit.org/show_bug.cgi?id=183495 |
| <rdar://problem/38185688> |
| |
| Reviewed by Andy Estes. |
| |
| * UIProcess/ios/WKFullScreenWindowControllerIOS.mm: |
| (-[WKFullScreenWindowController _EVOrganizationName]): |
| |
| 2018-03-09 Dean Jackson <dino@apple.com> |
| |
| Allow NavigationState to intercept requests and send them to SystemPreviewController |
| https://bugs.webkit.org/show_bug.cgi?id=183526 |
| <rdar://problem/37801140> |
| |
| Reviewed by Tim Horton. |
| |
| Implement a bit more of SystemPreviewController, such that it can be used |
| from NavigationState to identify and handle content that can be previewed. |
| |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationResponse): |
| If we'd in a download response policy, then check if SystemPreviewController |
| can show the content. We ignore the download, but pass the original URL onto |
| the preview. Ultimately, we'd want to avoid the navigation |
| but use the download destination URL for preview. |
| |
| * UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: |
| (-[_WKPreviewControllerDataSource initWithURL:]): |
| Move the URL to property, to help use a single datasource object for all previews. |
| (-[_WKPreviewControllerDataSource previewController:previewItemAtIndex:]): |
| (-[_WKPreviewControllerDelegate initWithSystemPreviewController:]): |
| Add a delegate object, so we can detect when the preview is dismissed and return |
| to the previous page. |
| (-[_WKPreviewControllerDelegate previewControllerWillDismiss:]): |
| (WebKit::SystemPreviewController::showPreview): |
| Use single instances of the QLPreviewController, its datasource and delegate. |
| |
| * UIProcess/SystemPreviewController.cpp: |
| Add a helper to navigate back. |
| (WebKit::SystemPreviewController::SystemPreviewController): |
| (WebKit::SystemPreviewController::sendPageBack): |
| * UIProcess/SystemPreviewController.h: |
| |
| 2018-03-09 Jer Noble <jer.noble@apple.com> |
| |
| webkitfullscreenchange event not fired at the same time as :-webkit-full-screen pseudo selector changes; causes glitchiness |
| https://bugs.webkit.org/show_bug.cgi?id=183383 |
| <rdar://problem/38197028> |
| |
| Reviewed by Eric Carlson. |
| |
| Follow-up patch: now that the 'fullscreenchange' event is being fired slightly earlier, the |
| Fullscreen.TopContentInset tests triggers what appears to be an existing behavior: if you |
| exit in the middle of an enter fullscreen animation, the exit never happens, because the |
| NSWindow never starts the exit animation. The solution is to store the exit fullscreen |
| request, and only act upon it when the enter animation completes. |
| |
| * UIProcess/mac/WKFullScreenWindowController.h: |
| * UIProcess/mac/WKFullScreenWindowController.mm: |
| (-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]): |
| (-[WKFullScreenWindowController exitFullScreen]): |
| |
| 2018-03-09 Jer Noble <jer.noble@apple.com> |
| |
| Unconditionalize more methods in VideoFullscreenInterface (and related classes) |
| https://bugs.webkit.org/show_bug.cgi?id=183501 |
| |
| Reviewed by Eric Carlson. |
| |
| No reason for these methods to be PLATFORM(MAC) only. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _videoControlsManagerDidChange]): |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| * UIProcess/Cocoa/PlaybackSessionManagerProxy.mm: |
| (WebKit::PlaybackSessionManagerProxy::setUpPlaybackControlsManagerWithID): |
| (WebKit::PlaybackSessionManagerProxy::clearPlaybackControlsManager): |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.h: |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.mm: |
| * UIProcess/PageClient.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::isPlayingMediaDidChange): |
| (WebKit::WebPageProxy::handleControlledElementIDResponse const): |
| (WebKit::WebPageProxy::isPlayingVideoInEnhancedFullscreen const): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::videoControlsManagerDidChange): |
| * UIProcess/ios/WKFullScreenWindowControllerIOS.h: |
| * UIProcess/ios/WKFullScreenWindowControllerIOS.mm: |
| (-[WKFullScreenWindowController videoControlsManagerDidChange]): |
| * WebProcess/cocoa/PlaybackSessionManager.mm: |
| (WebKit::PlaybackSessionManager::setUpPlaybackControlsManager): |
| |
| 2018-03-09 Per Arne Vollan <pvollan@apple.com> |
| |
| Create CA layer contexts with +remoteContextWithOptions. |
| https://bugs.webkit.org/show_bug.cgi?id=182747 |
| |
| Reviewed by Brent Fulgham. |
| |
| CA layer contexts (CAContext) are currently created with +contextWithCGSConnection, which is |
| using the main WindowServer connection to create the context. Instead, the contexts can be |
| created with +remoteContextWithOptions, which does not use the main WindowServer connection. |
| This is a step towards limiting the access the WebContent process has to the window server. |
| To make the +remoteContextWithOptions call succeed, the sandbox has to be modified to allow |
| access to CARenderServer. Also, access to the WindowServer should be denied by calling |
| CGSSetDenyWindowServerConnections(true) before entering the sandbox. This is planned to do |
| in a follow-up patch. The call to +remoteContextWithOptions will open up WindowServer |
| connections, since the WindowServer is the system default CA render server, but these |
| connections come with limited WindowServer exposure. In addition, we need to open up the |
| sandbox for accessing some IOKit properties. |
| |
| * Platform/mac/LayerHostingContext.mm: |
| (WebKit::LayerHostingContext::createForExternalHostingProcess): |
| * Shared/mac/HangDetectionDisablerMac.mm: |
| (WebKit::setClientsMayIgnoreEvents): |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-03-09 Brent Fulgham <bfulgham@apple.com> |
| |
| Remove cookie API access from WebContent Process |
| https://bugs.webkit.org/show_bug.cgi?id=183519 |
| <rdar://problem/35368802> |
| |
| Reviewed by Alex Christensen. |
| |
| All cookie access is now handled in the Network Process. However, there are vestiges of the original logic that used CFNetwork APIs in the WebContent process. |
| |
| This patch removes CFNetwork calls from the WebProcess code paths, since they serve no purpose in modern WebKit. |
| |
| No tests because this is a code cleanup with no expected change in behavior. |
| |
| * NetworkProcess/Cookies/mac/WebCookieManagerMac.mm: |
| (WebKit::WebCookieManager::platformSetHTTPCookieAcceptPolicy): Moved from WebFrameNetworkingContext. |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::setSharedHTTPCookieStorage): Moved from ChildProcess, since this should only be |
| called in the NetworkProcess. |
| * Shared/ChildProcess.h: |
| * Shared/mac/ChildProcessMac.mm: |
| (WebKit::ChildProcess::setSharedHTTPCookieStorage): Deleted. |
| * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h: |
| * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm: |
| (WebKit::WebFrameNetworkingContext::ensureWebsiteDataStoreSession): Remove CFNetwork code. This version of |
| 'ensureWebsiteDataStoreSession' is needed to maintain a dictionary on the WebProcess side so we can refer to |
| the same network session in both the WebContent and Network processes. |
| (WebKit::WebFrameNetworkingContext::webFrameLoaderClient const): |
| (WebKit::WebFrameNetworkingContext::setCookieAcceptPolicyForAllContexts): Deleted. |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::platformInitializeWebProcess): Remove calls to CFNetwork. |
| |
| 2018-03-09 Youenn Fablet <youenn@apple.com> |
| |
| ServiceWorkerClientFetch should send data to its resource loader once the didReceiveResponse completion handler is called |
| https://bugs.webkit.org/show_bug.cgi?id=183110 |
| |
| Reviewed by Chris Dumez. |
| |
| Buffering data/finish event/fail event until the response completion handler is called. |
| |
| * WebProcess/Storage/ServiceWorkerClientFetch.cpp: |
| (WebKit::ServiceWorkerClientFetch::didReceiveResponse): |
| (WebKit::ServiceWorkerClientFetch::didReceiveData): |
| (WebKit::ServiceWorkerClientFetch::didFinish): |
| (WebKit::ServiceWorkerClientFetch::didFail): |
| (WebKit::ServiceWorkerClientFetch::didNotHandle): |
| (WebKit::ServiceWorkerClientFetch::cancel): |
| (WebKit::ServiceWorkerClientFetch::continueLoadingAfterCheckingResponse): |
| * WebProcess/Storage/ServiceWorkerClientFetch.h: |
| |
| 2018-03-09 Jer Noble <jer.noble@apple.com> |
| |
| Add new CSS env constants for use with fullscreen |
| https://bugs.webkit.org/show_bug.cgi?id=183498 |
| |
| Reviewed by Dean Jackson. |
| |
| Pass the values given to WebFullScreenManagerProxy through the process boundary and |
| into WebCore. |
| |
| * UIProcess/WebFullScreenManagerProxy.cpp: |
| (WebKit::WebFullScreenManagerProxy::setFullscreenInsetTop): |
| (WebKit::WebFullScreenManagerProxy::setFullscreenAutoHideDelay): |
| * UIProcess/WebFullScreenManagerProxy.h: |
| * WebProcess/FullScreen/WebFullScreenManager.cpp: |
| (WebKit::WebFullScreenManager::didExitFullScreen): |
| (WebKit::WebFullScreenManager::setFullscreenInsetTop): |
| (WebKit::WebFullScreenManager::setFullscreenAutoHideDelay): |
| * WebProcess/FullScreen/WebFullScreenManager.h: |
| * WebProcess/FullScreen/WebFullScreenManager.messages.in: |
| |
| 2018-03-09 Jer Noble <jer.noble@apple.com> |
| |
| Add isPictureInPictureActive messaging across WebKit process boundary |
| https://bugs.webkit.org/show_bug.cgi?id=183499 |
| |
| Reviewed by Eric Carlson. |
| |
| * UIProcess/Cocoa/PlaybackSessionManagerProxy.h: |
| * UIProcess/Cocoa/PlaybackSessionManagerProxy.messages.in: |
| * UIProcess/Cocoa/PlaybackSessionManagerProxy.mm: |
| (WebKit::PlaybackSessionModelContext::pictureInPictureActiveChanged): |
| (WebKit::PlaybackSessionManagerProxy::pictureInPictureActiveChanged): |
| |
| 2018-03-09 Stephan Szabo <stephan.szabo@sony.com> |
| |
| Add guard for wtf/glib include |
| https://bugs.webkit.org/show_bug.cgi?id=183521 |
| |
| Reviewed by Alex Christensen. |
| |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.cpp: |
| |
| 2018-03-09 Andy Estes <aestes@apple.com> |
| |
| [Mac] WebKit fails to receive file promises when the embedding app is sandboxed |
| https://bugs.webkit.org/show_bug.cgi?id=183489 |
| <rdar://problem/38267517> |
| |
| WebKit calls -[NSFilePromiseReceiver receivePromisedFilesAtDestination:...] with |
| NSTemporaryDirectory() as the destination for receiving file promise drops. AppKit attempts |
| to issue a sandbox extension for this directory, but for security reasons App Sandbox |
| refuses to do so for NSTemporaryDirectory() itself. As a result, AppKit will call our reader |
| block with a nil error and a valid file URL, but no file will actually exist at that URL. |
| |
| In order for App Sandbox to grant issuing the sandbox extension needed by AppKit, we need to |
| use some other destination directory. This patch uses FileSystem::createTemporaryDirectory() |
| to securely create a unique temporary directory inside NSTemporaryDirectory() for use as the |
| drop destination. |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::performDragOperation): |
| |
| 2018-03-09 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Do not use WebKitDOMHTMLFormElement as argument of signal WebKitWebPage::will-submit-form |
| https://bugs.webkit.org/show_bug.cgi?id=183510 |
| |
| Reviewed by Michael Catanzaro. |
| |
| In 2.22 WebKitDOMHTMLFormElement will be deprecated in GTK+ port and won't still exist in WPE. The new |
| JavaScript GLib API will be used to replace most of the DOM API, but a few classes will remain with a minimal |
| API for things that can't be done with JavaScript. WebKitDOMElement will stay and will be added to WPE as well, |
| so if we change the signal parameter to WebKitDOMElement we will be able to keep using |
| WebKitWebPage::will-submit-form without any changes. WPE will gain this signal and the rest of the API that uses |
| DOM. |
| |
| * WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp: |
| (webkit_web_page_class_init): |
| |
| 2018-03-09 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. [GTK][WPE] Bump Since tags of resource load stats API. |
| |
| The functionality hasn't been properly tested to be released in WebKitGTK+ 2.20. |
| |
| * UIProcess/API/glib/WebKitWebsiteDataManager.cpp: |
| (webkit_website_data_manager_class_init): |
| * UIProcess/API/gtk/WebKitWebsiteData.h: |
| * UIProcess/API/wpe/WebKitWebsiteData.h: |
| |
| 2018-03-08 Zan Dobersek <zdobersek@igalia.com> |
| |
| Unreviewed. Suppress GCC warnings in SystemPreviewController.cpp by |
| using the cross-platform #include directives for header inclusion, |
| instead of #import. |
| |
| * UIProcess/SystemPreviewController.cpp: |
| |
| 2018-03-08 Megan Gardner <megan_gardner@apple.com> |
| |
| Allow WebViews to disable system appearance |
| https://bugs.webkit.org/show_bug.cgi?id=183418 |
| <rdar://problem/36975642> |
| |
| Reviewed by Tim Horton. |
| |
| Allow webviews to choose whether or not to follow the default system appearance. |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _useSystemAppearance]): |
| (-[WKWebView _setUseSystemAppearance:]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::creationParameters): |
| (WebKit::WebPageProxy::setUseSystemAppearance): |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::useSystemAppearance const): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::setUseSystemAppearance): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2018-03-08 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, speculative attempt to fix CMake build after r229426 |
| https://bugs.webkit.org/show_bug.cgi?id=183382 |
| <rdar://problem/38191450> |
| |
| * CMakeLists.txt: |
| |
| 2018-03-08 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Support resigning first responder status when focusing a form control |
| https://bugs.webkit.org/show_bug.cgi?id=183477 |
| <rdar://problem/38225994> |
| |
| Reviewed by Tim Horton. |
| |
| Currently, when presenting an input view controller in extra zoom mode, if the web view loses first responder |
| status, we will blur the focused element, which dismisses all focused form control UI. For certain types of form |
| controls, this prevents the user from using key pieces of functionality. |
| |
| To address this, disconnect the notion of first responder status from DOM element focus while the form control |
| overlay is shown. Later, when the active input session ends, if the web content view was first responder before |
| upon focusing the element, restore first responder status on the web view. This extra tweak is needed to ensure |
| that certain UI affordances which require first responder status on the web view continue to work after |
| interacting with a form control that changes the first responder. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView presentFocusedFormControlViewController:]): |
| (-[WKContentView dismissFocusedFormControlViewController:]): |
| |
| 2018-03-08 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Revert defaults read of zero values |
| https://bugs.webkit.org/show_bug.cgi?id=183476 |
| |
| Unreviewed revert of three small changes landed in r229427. |
| |
| * UIProcess/Cocoa/WebResourceLoadStatisticsStoreCocoa.mm: |
| (WebKit::WebResourceLoadStatisticsStore::registerUserDefaultsIfNeeded): |
| Reverted back to strict check of greater than zero for defaults reads. |
| |
| 2018-03-08 Tim Horton <timothy_horton@apple.com> |
| |
| Don't have SafariServices in minimal simulator build |
| https://bugs.webkit.org/show_bug.cgi?id=183436 |
| <rdar://problem/38254778> |
| |
| Reviewed by Dan Bernstein. |
| |
| * config.h: |
| |
| 2018-03-08 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Make debug mode always partition prevalent resources |
| https://bugs.webkit.org/show_bug.cgi?id=183468 |
| <rdar://problem/38269437> |
| |
| Reviewed by Brent Fulgham. |
| |
| After some testing we decided that a 30 second timeout in ITP debug mode just makes |
| it confusing. We should instead always partition prevalent resources in debug mode |
| to make it easy to understand. The partitioned state is what developers want to test |
| anyway. |
| |
| * UIProcess/Cocoa/WebResourceLoadStatisticsStoreCocoa.mm: |
| (WebKit::WebResourceLoadStatisticsStore::registerUserDefaultsIfNeeded): |
| Minor change to include 0 as valid setting. |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::setResourceLoadStatisticsDebugMode): |
| Now just stores the setting of debug mode instead of changing the timeout. |
| (WebKit::WebResourceLoadStatisticsStore::logUserInteraction): |
| Now does not disable partitioning under debug mode. |
| (WebKit::WebResourceLoadStatisticsStore::shouldPartitionCookies const): |
| Now returns true for prevalent resources with user interaction under debug mode. |
| (WebKit::WebResourceLoadStatisticsStore::updateCookiePartitioning): |
| Removed duplicate debug logging statement. |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| Added member m_debugModeEnabled. |
| |
| 2018-03-08 Brent Fulgham <bfulgham@apple.com> |
| |
| Remove WebCookieManager and messaging from WebContent process. |
| https://bugs.webkit.org/show_bug.cgi?id=183382 |
| <rdar://problem/38191450> |
| |
| Reviewed by Alex Christensen. |
| |
| Networking access was fully removed from the WebContent process in Bug 183192 (and related bugs). The |
| UIProcess no longer needs to ask the WebContent process about networking-related things, and shouldn't |
| waste everyone's time doing so. |
| |
| This bug removes some left-over WebCookieManager API stuff, and is a first step in purging the |
| WebContent Process from accessing cookie data. |
| |
| * NetworkProcess/Cookies: Copied from WebProcess/Cookies. |
| * NetworkProcess/Cookies/WebCookieManager.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/Cookies: Removed. |
| * WebProcess/Cookies/WebCookieManager.cpp: Removed. |
| * WebProcess/Cookies/WebCookieManager.h: Removed. |
| * WebProcess/Cookies/WebCookieManager.messages.in: Removed. |
| * WebProcess/Cookies/curl: Removed. |
| * WebProcess/Cookies/curl/WebCookieManagerCurl.cpp: Removed. |
| * WebProcess/Cookies/mac: Removed. |
| * WebProcess/Cookies/mac/WebCookieManagerMac.mm: Removed. |
| * WebProcess/Cookies/soup: Removed. |
| * WebProcess/Cookies/soup/WebCookieManagerSoup.cpp: Removed. |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: Remove 'WebCookieManager.h" header. |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: Ditto. |
| * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm: Ditto. |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::WebProcess): Remove call to add WebCookieManager as a |
| WebProcessSupplement. |
| * CMakeLists.txt: Revised paths. |
| * DerivedSources.make: Ditto. |
| * PlatformMac.cmake: Ditto. |
| * PlatformWin.cmake: Ditto. |
| * SourcesGTK.txt: Ditto. |
| * SourcesWPE.txt: Ditto. |
| |
| 2018-03-08 Youenn Fablet <youenn@apple.com> |
| |
| libwebrtc update broke internal builds |
| https://bugs.webkit.org/show_bug.cgi?id=183454 |
| |
| Reviewed by Eric Carlson. |
| |
| * Configurations/BaseTarget.xcconfig: |
| |
| 2018-03-08 Youenn Fablet <youenn@apple.com> |
| |
| PluginInfoStore::isSupportedPlugin should check for empty mime type |
| https://bugs.webkit.org/show_bug.cgi?id=183457 |
| <rdar://problem/38159575> |
| |
| Reviewed by Chris Dumez. |
| |
| * UIProcess/Plugins/PluginInfoStore.cpp: |
| (WebKit::PluginInfoStore::isSupportedPlugin): |
| |
| 2018-03-08 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| [JSC][WebCore] Extend jsDynamicCast for WebCore types in WebCore and remove jsDynamicDowncast |
| https://bugs.webkit.org/show_bug.cgi?id=183449 |
| |
| Reviewed by Mark Lam. |
| |
| * WebProcess/Automation/WebAutomationSessionProxy.cpp: |
| (WebKit::WebAutomationSessionProxy::elementForNodeHandle): |
| * WebProcess/WebPage/WebFrame.cpp: |
| (WebKit::WebFrame::frameForContext): |
| |
| 2018-03-08 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| [JSC] Add inherits<T>(VM&) leveraging JSCast fast path |
| https://bugs.webkit.org/show_bug.cgi?id=183429 |
| |
| Reviewed by Mark Lam. |
| |
| * WebProcess/Plugins/Netscape/JSNPMethod.cpp: |
| (WebKit::callMethod): |
| * WebProcess/Plugins/Netscape/JSNPObject.cpp: |
| (WebKit::callNPJSObject): |
| (WebKit::constructWithConstructor): |
| * WebProcess/Plugins/Netscape/NPJSObject.cpp: |
| (WebKit::NPJSObject::create): |
| * WebProcess/WebPage/WebFrame.cpp: |
| (WebKit::WebFrame::counterValue): |
| |
| 2018-03-08 Zan Dobersek <zdobersek@igalia.com> |
| |
| Remove WebCore::TextureMapperAnimation as a special case in WebKit IPC |
| generation. Values of this type aren't being transferred across IPC. |
| |
| Rubber-stamped by Carlos Garcia Campos. |
| |
| * Scripts/webkit/messages.py: |
| |
| 2018-03-08 Tim Horton <timothy_horton@apple.com> |
| |
| Stop linking ApplicationServices directly |
| https://bugs.webkit.org/show_bug.cgi?id=182867 |
| <rdar://problem/38252142> |
| |
| Reviewed by Alex Christensen. |
| |
| The frameworks that we use that live inside ApplicationServices |
| have mostly moved out, so import them directly. |
| |
| * Configurations/WebKit.xcconfig: |
| |
| 2018-03-08 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Specify password mode as needed when inputting text |
| https://bugs.webkit.org/show_bug.cgi?id=183428 |
| <rdar://problem/37609386> |
| |
| Reviewed by Tim Horton. |
| |
| If the focused element is a password field, or the input delegate has forced secure text entry, set a flag on |
| the text input view controller to opt in to password text input mode. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView presentTextInputViewController:]): |
| |
| 2018-03-07 Tim Horton <timothy_horton@apple.com> |
| |
| Sort and separate FeatureDefines.xcconfig |
| https://bugs.webkit.org/show_bug.cgi?id=183427 |
| |
| Reviewed by Dan Bernstein. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| Sort and split FeatureDefines into paragraphs |
| (to make it easier to sort later). |
| |
| 2018-03-07 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| REGRESSION(r218089): [GTK] webkit_web_view_get_inspector() needs to be called, otherwise inspector does not close |
| https://bugs.webkit.org/show_bug.cgi?id=181126 |
| |
| Reviewed by Carlos Alberto Lopez Perez. |
| |
| Fix the condition to decide whether to detach the inspector view ourselves. |
| |
| * UIProcess/gtk/WebInspectorProxyGtk.cpp: |
| (WebKit::WebInspectorProxy::platformDetach): Remove the inspector view from its parent if we don't have a client |
| or the client didn't detach it. |
| |
| 2018-03-07 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK][WPE] Leak checker is not working in WebKitGLib web process tests |
| https://bugs.webkit.org/show_bug.cgi?id=183404 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Add private helper for testing to do a garbage collection when the page is closing. |
| |
| * WebProcess/InjectedBundle/API/glib/WebKitWebExtension.cpp: |
| (webkitWebExtensionSetGarbageCollectOnPageDestroy): |
| * WebProcess/InjectedBundle/API/glib/WebKitWebExtensionPrivate.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRectList.h: Fix annotation of |
| webkit_dom_client_rect_list_item(), it should be transfer full. |
| |
| 2018-03-07 Youenn Fablet <youenn@apple.com> |
| |
| Match unsupported plugins based on domains and not origin |
| https://bugs.webkit.org/show_bug.cgi?id=183384 |
| |
| Reviewed by Chris Dumez. |
| |
| Moved from a HashMap of plugins to a Vector of plugins since we cannot match exactly based on the origin. |
| |
| * Scripts/webkit/messages.py: |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextAddSupportedPlugin): |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _addSupportedPlugin:named:withMimeTypes:withExtensions:]): |
| * UIProcess/Plugins/PluginInfoStore.cpp: |
| (WebKit::PluginInfoStore::isSupportedPlugin): |
| (WebKit::PluginInfoStore::supportedPluginNames): |
| (WebKit::PluginInfoStore::addSupportedPlugin): |
| * UIProcess/Plugins/PluginInfoStore.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::addSupportedPlugin): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::getPlugins): |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebProcessProxy.messages.in: |
| * WebProcess/Plugins/WebPluginInfoProvider.cpp: |
| (WebKit::WebPluginInfoProvider::getPluginInfo): |
| (WebKit::WebPluginInfoProvider::getWebVisiblePluginInfo): |
| * WebProcess/Plugins/WebPluginInfoProvider.h: |
| |
| 2018-03-07 Brent Fulgham <bfulgham@apple.com> |
| |
| REGRESSION (r229093): Media playback on Facebook and Hulu require mDNSResponder access |
| https://bugs.webkit.org/show_bug.cgi?id=183421 |
| <rdar://problem/38191574> |
| |
| Reviewed by Dean Jackson. |
| |
| CoreMedia fails to properly play back media on Facebook and Hulu if access to the |
| mDNSResponder is blocked by the sandbox. This Bug unblocks that access while we |
| investigate the underlying issue. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-03-07 Dean Jackson <dino@apple.com> |
| |
| Try to fix build for watchOS and tvOS. |
| |
| * UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: |
| * UIProcess/SystemPreviewController.cpp: |
| |
| 2018-03-07 Dean Jackson <dino@apple.com> |
| |
| Add SystemPreviewController for showing system-level views of special file types |
| https://bugs.webkit.org/show_bug.cgi?id=183413 |
| <rdar://problem/37800834> |
| |
| Reviewed by Tim Horton. |
| |
| Add a new controller class that hangs off WebPageProxy, with the goal |
| of providing system-level viewing of some some file types. Specifically |
| those that can't be shown by WebKit. |
| |
| This is the initial implementation which is quite simple. The controller |
| can be queried about whether it supports a MIME type, then it can be |
| asked to show a URL. |
| |
| * UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: Added. |
| (-[_WKPreviewControllerDataSource initWithURL:]): |
| (-[_WKPreviewControllerDataSource numberOfPreviewItemsInPreviewController:]): |
| (-[_WKPreviewControllerDataSource previewController:previewItemAtIndex:]): |
| (WebKit::SystemPreviewController::canPreview const): |
| (WebKit::SystemPreviewController::showPreview): |
| * UIProcess/SystemPreviewController.cpp: Added. |
| (WebKit::SystemPreviewController::SystemPreviewController): |
| (WebKit::SystemPreviewController::canPreview const): |
| (WebKit::SystemPreviewController::showPreview): |
| * UIProcess/SystemPreviewController.h: Added. |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::m_configurationPreferenceValues): |
| (WebKit::WebPageProxy::reattachToWebProcess): |
| (WebKit::WebPageProxy::resetState): |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::systemPreviewController): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-03-07 Alejandro G. Castro <alex@igalia.com> |
| |
| Make NetworkRTCResolver port agnostic |
| https://bugs.webkit.org/show_bug.cgi?id=178855 |
| |
| Reviewed by Youenn Fablet. |
| |
| Create a specific Cocoa class to isolate the generic code in the base class, make the base implementation port |
| agnostic and dependent on DNS API in the platform directory which encapsulates the platform specific details. |
| |
| * NetworkProcess/webrtc/NetworkRTCProvider.cpp: Create an alias class name defined per platform to instantiate the resolver. |
| (WebKit::NetworkRTCProvider::createResolver): Used the alias class name and receive a new IPAddress class that is not |
| dependent on rtc libwebrtc library. |
| * NetworkProcess/webrtc/NetworkRTCResolver.cpp: Remove the platform specific code. Use the DNS API to implement the |
| platform specific code in the default start and stop methods. Add the identifier of the resolve operation to the class. |
| (WebKit::NetworkRTCResolver::NetworkRTCResolver): Add the identifier in the initialization. |
| (WebKit::NetworkRTCResolver::~NetworkRTCResolver): Remove the platform specific code. |
| (WebKit::NetworkRTCResolver::completed): Ditto. |
| (WebKit::NetworkRTCResolver::start): Add a new implementation using the DNS API. |
| (WebKit::NetworkRTCResolver::stop): Ditto |
| * NetworkProcess/webrtc/NetworkRTCResolver.h: Remove the platform specific code and use the DNSResolveQueue for a general |
| solution to implement the platform specific code. Avoid using the IPAddress class that depends on libwertc classes to make |
| it more general regarding DNS name resolution. |
| (WebKit::NetworkRTCResolver::start): Make this class virtual. |
| (WebKit::NetworkRTCResolver::stop): Ditto. |
| * NetworkProcess/webrtc/NetworkRTCResolverCocoa.cpp: Copied Cocoa code from Source/WebKit/NetworkProcess/webrtc/NetworkRTCResolver.cpp. |
| Now this class overrides the start and stop methods that use DNS, cocoa implementation should use the DNS methods in the future and |
| remove this class, making sure all the platform specific class is in the platform directory. |
| * NetworkProcess/webrtc/NetworkRTCResolverCocoa.h: Copied Cocoa code from Source/WebKit/NetworkProcess/webrtc/NetworkRTCResolver.h. |
| * PlatformGTK.cmake: Add NetworkRTCResolver compilation for GTK. |
| * WebKit.xcodeproj/project.pbxproj: Add the NetworkRTCResolverCocoa class to the compilation. |
| |
| 2018-03-06 Brent Fulgham <bfulgham@apple.com> |
| |
| NetworkDataTask should enable logging for automation clients |
| https://bugs.webkit.org/show_bug.cgi?id=183378 |
| <rdar://problem/38189556> |
| |
| Reviewed by Brian Burg. |
| |
| The NetworkDataTaskCocoa class was only logging if the SessionID object allowed logging. |
| It should also be considering whether the current session is working on behalf of an |
| automation client. If so, it should allow logging. |
| |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.h: |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): |
| (WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection): |
| (WebKit::NetworkDataTaskCocoa::isAlwaysOnLoggingAllowed const): |
| |
| 2018-03-06 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed build fix. |
| |
| * UIProcess/ios/WKFullScreenWindowControllerIOS.mm: |
| (-[WKFullScreenWindowController _EVOrganizationName]): |
| |
| 2018-03-06 Antoine Quint <graouts@apple.com> |
| |
| [Web Animations] Add a new runtime flag to control whether CSS Animations and CSS Transitions should run using the Web Animations timeline |
| https://bugs.webkit.org/show_bug.cgi?id=183370 |
| <rdar://problem/38180729> |
| |
| Reviewed by Dean Jackson. |
| |
| Before we start creating WebAnimation objects to perform CSS Animations and CSS Transitions, which will replace the existing codepath |
| involving CSSAnimationController and CompositeAnimation, we need a runtime flag that will allow all the new code to be turned off by |
| default while we bring this feature up. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled): |
| (WKPreferencesGetCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled): |
| * UIProcess/API/C/WKPreferencesRefPrivate.h: |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences _setCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled:]): |
| (-[WKPreferences _cssAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled]): |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): |
| (WebKit::InjectedBundle::setCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled): |
| * WebProcess/InjectedBundle/InjectedBundle.h: |
| |
| 2018-03-06 Ms2ger <Ms2ger@igalia.com> |
| |
| [GLib] Implement WebsiteDataStore::defaultServiceWorkerRegistrationDirectory(). |
| https://bugs.webkit.org/show_bug.cgi?id=183364 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * UIProcess/API/glib/APIWebsiteDataStoreGLib.cpp: |
| (API::WebsiteDataStore::defaultServiceWorkerRegistrationDirectory): implement. |
| |
| 2018-03-06 Zan Dobersek <zdobersek@igalia.com> |
| |
| Unreviewed. Addressing further review feedback for patch landed in r229315. |
| |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: |
| (WebKit::CoordinatedGraphicsScene::commitSceneState): There's no need for |
| explicit calls of the clear() method on both containers in the CommitScope |
| objects, the destructors invoked for these objects from the CommitScope |
| destructor will have the same effect. |
| |
| 2018-03-06 Zan Dobersek <zdobersek@igalia.com> |
| |
| [CoordGraphics] Remove unused scrolling-related code in TextureMapperLayer, CoordinatedGraphics stack |
| https://bugs.webkit.org/show_bug.cgi?id=183340 |
| |
| Reviewed by Michael Catanzaro. |
| |
| With most of the scrolling-related code in TextureMapperLayer on the |
| chopping block, we can now drop the ScrollingClient inheritance and the |
| commitScrollOffset() virtual method implementation. This enables |
| removing the whole commitScrollOffset() call chain that ran from |
| CoordinatedGraphicsScene through CoordinatedLayerTreeHost and |
| CompositingCoordinator to the affected CoordinatedGraphicsLayer object. |
| |
| The CoordinatedGraphicsScene::findScrollableContentsLayerAt() method is |
| also unused and can be deleted. |
| |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: |
| (WebKit::CoordinatedGraphicsScene::setLayerState): |
| (WebKit::CoordinatedGraphicsScene::createLayer): |
| (WebKit::CoordinatedGraphicsScene::commitScrollOffset): Deleted. |
| (WebKit::CoordinatedGraphicsScene::findScrollableContentsLayerAt): Deleted. |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h: |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: |
| (WebKit::ThreadedCompositor::commitScrollOffset): Deleted. |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h: |
| * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp: |
| (WebKit::CompositingCoordinator::commitScrollOffset): Deleted. |
| * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h: |
| * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp: |
| (WebKit::CoordinatedLayerTreeHost::commitScrollOffset): Deleted. |
| * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h: |
| * WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h: |
| |
| 2018-03-06 Zan Dobersek <zdobersek@igalia.com> |
| |
| [CoordGraphics] Apply TextureMapperLayer animations with a single MonotonicTime value |
| https://bugs.webkit.org/show_bug.cgi?id=183360 |
| |
| Reviewed by Sergio Villar Senin. |
| |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: |
| (WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext): |
| Pass the monotic time value, as returned by MonotonicTime::now(), to the |
| TextureMapperLayer::applyAnimationsRecursively() call. |
| |
| 2018-03-06 Zan Dobersek <zdobersek@igalia.com> |
| |
| [CoordGraphics] Clean up CoordinatedImageBacking |
| https://bugs.webkit.org/show_bug.cgi?id=183332 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp: |
| (WebKit::CompositingCoordinator::createImageBackingIfNeeded): |
| Adjust call to CoordinatedImageBacking::getCoordinatedImageBackingID(). |
| |
| 2018-03-06 Zan Dobersek <zdobersek@igalia.com> |
| |
| CoordinatedGraphicsScene: properly limit data specific to state commit operation |
| https://bugs.webkit.org/show_bug.cgi?id=183326 |
| |
| Reviewed by Sergio Villar Senin. |
| |
| In the process of state commit in CoordinatedGraphicsScene, the released |
| image backings and backing stores with pending updates are stored in |
| Vector and HashSet objects, respectively. Instead of these two objects |
| being member variables on the CoordinatedGraphicsScene class, keep them |
| in the CommitScope structure that's limited to the operations done in |
| the commitSceneState() method. |
| |
| The two member variables are dropped, and the CommitScope object is |
| passed by reference to any helper method that needs to append either |
| kind of object to the respective container. At the end of the state |
| commit, backing stores with pending updates have those updates applied, |
| and the two containers are cleared out as the CommitScope object is |
| destroyed. |
| |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: |
| (WebKit::CoordinatedGraphicsScene::setLayerState): |
| (WebKit::CoordinatedGraphicsScene::prepareContentBackingStore): |
| (WebKit::CoordinatedGraphicsScene::resetBackingStoreSizeToLayerSize): |
| (WebKit::CoordinatedGraphicsScene::removeTilesIfNeeded): |
| (WebKit::CoordinatedGraphicsScene::updateTilesIfNeeded): |
| (WebKit::CoordinatedGraphicsScene::syncImageBackings): |
| (WebKit::CoordinatedGraphicsScene::updateImageBacking): |
| (WebKit::CoordinatedGraphicsScene::clearImageBackingContents): |
| (WebKit::CoordinatedGraphicsScene::removeImageBacking): |
| (WebKit::CoordinatedGraphicsScene::commitSceneState): |
| (WebKit::CoordinatedGraphicsScene::purgeGLResources): |
| (WebKit::CoordinatedGraphicsScene::removeReleasedImageBackingsIfNeeded): Deleted. |
| (WebKit::CoordinatedGraphicsScene::commitPendingBackingStoreOperations): Deleted. |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h: |
| |
| 2018-03-05 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| Fix std::make_unique / new[] using system malloc |
| https://bugs.webkit.org/show_bug.cgi?id=182975 |
| |
| Reviewed by JF Bastien. |
| |
| Use Vector instead. |
| |
| * NetworkProcess/win/SystemProxyWin.cpp: |
| (WindowsSystemProxy::getSystemHttpProxy): |
| * Platform/IPC/unix/ConnectionUnix.cpp: |
| (IPC::Connection::processMessage): |
| (IPC::Connection::sendOutputMessage): |
| * Platform/win/LoggingWin.cpp: |
| (WebKit::logLevelString): |
| * Shared/SandboxExtension.h: |
| * Shared/mac/SandboxExtensionMac.mm: |
| (WebKit::SandboxExtension::HandleArray::allocate): |
| (WebKit::SandboxExtension::HandleArray::operator[]): |
| (WebKit::SandboxExtension::HandleArray::operator[] const): |
| (WebKit::SandboxExtension::HandleArray::size const): |
| (WebKit::SandboxExtension::HandleArray::encode const): |
| |
| 2018-03-05 Andy Estes <aestes@apple.com> |
| |
| [Mac] Teach WebCore::Pasteboard about file promise drags |
| https://bugs.webkit.org/show_bug.cgi?id=183314 |
| <rdar://problem/38105493> |
| |
| Reviewed by Darin Adler. |
| |
| Added a FIXME comment. |
| |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::performDragOperation): |
| |
| 2018-03-05 Jeff Miller <jeffm@apple.com> |
| |
| Expose still more WKPreferences SPI to match C SPI |
| https://bugs.webkit.org/show_bug.cgi?id=183045 |
| |
| Reviewed by Alex Christensen. |
| |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences _setAllowsInlineMediaPlayback:]): |
| (-[WKPreferences _allowsInlineMediaPlayback]): |
| (-[WKPreferences _setApplePayEnabled:]): |
| (-[WKPreferences _applePayEnabled]): |
| (-[WKPreferences _setDNSPrefetchingEnabled:]): |
| (-[WKPreferences _dnsPrefetchingEnabled]): |
| (-[WKPreferences _setInlineMediaPlaybackRequiresPlaysInlineAttribute:]): |
| (-[WKPreferences _inlineMediaPlaybackRequiresPlaysInlineAttribute]): |
| (-[WKPreferences _setInvisibleMediaAutoplayNotPermitted:]): |
| (-[WKPreferences _invisibleMediaAutoplayNotPermitted]): |
| (-[WKPreferences _setLegacyEncryptedMediaAPIEnabled:]): |
| (-[WKPreferences _legacyEncryptedMediaAPIEnabled]): |
| (-[WKPreferences _setMainContentUserGestureOverrideEnabled:]): |
| (-[WKPreferences _mainContentUserGestureOverrideEnabled]): |
| (-[WKPreferences _setMediaStreamEnabled:]): |
| (-[WKPreferences _mediaStreamEnabled]): |
| (-[WKPreferences _setNeedsStorageAccessFromFileURLsQuirk:]): |
| (-[WKPreferences _needsStorageAccessFromFileURLsQuirk]): |
| (-[WKPreferences _setPDFPluginEnabled:]): |
| (-[WKPreferences _pdfPluginEnabled]): |
| (-[WKPreferences _setRequiresUserGestureForAudioPlayback:]): |
| (-[WKPreferences _requiresUserGestureForAudioPlayback]): |
| (-[WKPreferences _setRequiresUserGestureForVideoPlayback:]): |
| (-[WKPreferences _requiresUserGestureForVideoPlayback]): |
| (-[WKPreferences _setServiceControlsEnabled:]): |
| (-[WKPreferences _serviceControlsEnabled]): |
| (-[WKPreferences _setShowsToolTipOverTruncatedText:]): |
| (-[WKPreferences _showsToolTipOverTruncatedText]): |
| (-[WKPreferences _setTextAreasAreResizable:]): |
| (-[WKPreferences _textAreasAreResizable]): |
| (-[WKPreferences _setUseGiantTiles:]): |
| (-[WKPreferences _useGiantTiles]): |
| (-[WKPreferences _setWantsBalancedSetDefersLoadingBehavior:]): |
| (-[WKPreferences _wantsBalancedSetDefersLoadingBehavior]): |
| (-[WKPreferences _setWebAudioEnabled:]): |
| (-[WKPreferences _webAudioEnabled]): |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: |
| |
| 2018-03-05 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Automation: clicking on a disabled option element shouldn't produce an error |
| https://bugs.webkit.org/show_bug.cgi?id=183284 |
| |
| Reviewed by Brian Burg. |
| |
| This was expected by selenium, but the WebDriver spec says we should simply do nothing in those cases. |
| |
| 14.1 Element Click. |
| https://w3c.github.io/webdriver/webdriver-spec.html#element-click |
| |
| Fixes: imported/w3c/webdriver/tests/element_click/select.py::test_option_disabled |
| |
| * WebProcess/Automation/WebAutomationSessionProxy.cpp: |
| (WebKit::WebAutomationSessionProxy::selectOptionElement): |
| |
| 2018-03-05 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Automation: stale elements not detected when removed from the DOM |
| https://bugs.webkit.org/show_bug.cgi?id=183278 |
| |
| Reviewed by Brian Burg. |
| |
| We detect stale elements when the page is reloaded because the maps are recreated, but if an element is removed |
| from the DOM for the same document we keep the nodes in the maps. We should clear stale elements before |
| accessing the maps. |
| |
| Fixes: imported/selenium/py/test/selenium/webdriver/common/webdriverwait_tests.py::testExpectedConditionStalenessOf |
| |
| * WebProcess/Automation/WebAutomationSessionProxy.js: |
| (let.AutomationSessionProxy.prototype.evaluateJavaScriptFunction): Call _clearStaleNodes() |
| (let.AutomationSessionProxy.prototype.nodeForIdentifier): Ditto. |
| (let.AutomationSessionProxy.prototype._clearStaleNodes): Check if cached nodes are still in document and remove them |
| from the maps if they aren't. |
| |
| 2018-03-04 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| [WTF] Move currentCPUTime and sleep(Seconds) to CPUTime.h and Seconds.h respectively |
| https://bugs.webkit.org/show_bug.cgi?id=183312 |
| |
| Reviewed by Mark Lam. |
| |
| Remove wtf/CurrentTime.h include pragma. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| * NetworkProcess/cache/CacheStorageEngineCache.cpp: |
| * NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp: |
| * Platform/IPC/Connection.cpp: |
| * Platform/unix/SharedMemoryUnix.cpp: |
| * PluginProcess/WebProcessConnection.cpp: |
| * Shared/ios/NativeWebTouchEventIOS.mm: |
| * UIProcess/DrawingAreaProxyImpl.cpp: |
| * UIProcess/ios/WKContentView.mm: |
| * UIProcess/linux/MemoryPressureMonitor.cpp: |
| * WebProcess/Gamepad/WebGamepad.cpp: |
| * WebProcess/Plugins/PDF/PDFPlugin.mm: |
| * WebProcess/WebCoreSupport/WebInspectorClient.cpp: |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm: |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.mm: |
| * WebProcess/WebPage/WebURLSchemeTaskProxy.cpp: |
| * WebProcess/WebProcess.cpp: |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| * WebProcess/gtk/WebProcessMainGtk.cpp: |
| * WebProcess/win/WebProcessMainWin.cpp: |
| * WebProcess/wpe/WebProcessMainWPE.cpp: |
| |
| 2018-03-02 Brian Burg <bburg@apple.com> |
| |
| Web Automation: script evaluations via WebDriver should have a user gesture indicator |
| https://bugs.webkit.org/show_bug.cgi?id=183230 |
| <rdar://problem/37959739> |
| |
| Reviewed by Andy Estes. |
| |
| APIs that normally require a user gesture should just work when using via WebDriver. |
| To support cases where tests need to simulate user actions with JavaScript, use a |
| fake user gesture, similar to how -[WKWebView evaluateJavaScript:] forces a user |
| gesture when clients evaluate JavaScript in their web view. |
| |
| No new tests, this is covered by W3C tests that use the Fullscreen API. |
| This API does nothing if there is no user gesture; with this patch, it just works. |
| |
| * WebProcess/Automation/WebAutomationSessionProxy.cpp: |
| (WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction): |
| |
| 2018-03-04 Tim Horton <timothy_horton@apple.com> |
| |
| Make !ENABLE(DATA_DETECTION) iOS build actually succeed |
| https://bugs.webkit.org/show_bug.cgi?id=183283 |
| <rdar://problem/38062148> |
| |
| Reviewed by Sam Weinig. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _interactionShouldBeginFromPreviewItemController:forPosition:]): |
| (-[WKContentView _dataForPreviewItemController:atPosition:type:]): |
| Guard some more code with ENABLE(DATA_DETECTION). |
| |
| 2018-03-04 Dan Bernstein <mitz@apple.com> |
| |
| Building with ONLY_ACTIVE_ARCH=NO and ARCHS=x86_64 fails |
| https://bugs.webkit.org/show_bug.cgi?id=183320 |
| |
| Reviewed by Tim Horton. |
| |
| * Configurations/PluginService.32.xcconfig: If the Apple build tool specifies |
| RC_ARCHS=x86_64, then let the service build for x86_64, but don’t install it. |
| |
| 2018-03-03 Brent Fulgham <bfulgham@apple.com> |
| |
| Notify the NetworkProcess when a session is servicing an automation client |
| https://bugs.webkit.org/show_bug.cgi?id=183306 |
| <rdar://problem/37835783> |
| |
| Reviewed by Brian Burg. |
| |
| Network loads servicing WebDriver are done through an ephemeral session. While this is great |
| for protecting a developer's machine from sharing state with test runs, it has the unintended |
| effect of blocking certain logging operations. |
| |
| We do not log content in ephemeral sessions to protect user privacy. However, ephemeral sessions |
| generated by WebDriver should participate in logging so that proper testing (with logging) can |
| be done. |
| |
| This patch signals the NetworkProcess when an ephemeral session (created for automation purposes) |
| is created, so that it can allow logging. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::destroySession): Remove controlled-by-automation entry. |
| (WebKit::NetworkProcess::sessionIsControlledByAutomation const): Added. |
| (WebKit::NetworkProcess::setSessionIsControlledByAutomation): Added. |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::isAlwaysOnLoggingAllowed const): Checks if the relevant session |
| is servicing an automation client, and returns true if it is. |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::WebPageProxy): Signal the network process if this page is being created |
| for an automation client. |
| |
| 2018-03-02 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| [WTF] Remove RunLoop and RunLoop::Timer's interface using double as seconds |
| https://bugs.webkit.org/show_bug.cgi?id=183293 |
| |
| Reviewed by Alex Christensen. |
| |
| * Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp: |
| (WebKit::CompositingRunLoop::scheduleUpdate): |
| (WebKit::CompositingRunLoop::compositionCompleted): |
| (WebKit::CompositingRunLoop::updateCompleted): |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.cpp: |
| (WebKit::ThreadedDisplayRefreshMonitor::dispatchDisplayRefreshCallback): |
| |
| 2018-03-02 Don Olmstead <don.olmstead@sony.com> |
| |
| Share common WebError implementation |
| https://bugs.webkit.org/show_bug.cgi?id=183303 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * Shared/WebErrors.cpp: |
| (WebKit::cancelledError): |
| (WebKit::fileDoesNotExistError): |
| * Shared/glib/WebErrorsGlib.cpp: Removed. |
| * SourcesGTK.txt: |
| * SourcesWPE.txt: |
| |
| 2018-03-02 Youenn Fablet <youenn@apple.com> |
| |
| LayoutTest imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event-within-sw.https.html is a flaky failure |
| https://bugs.webkit.org/show_bug.cgi?id=179248 |
| <rdar://problem/35377756> |
| |
| Reviewed by Chris Dumez. |
| |
| In case we go up to the initializeSize step and Caches was cleared |
| between the time we stated to initialize and the time we got there, |
| we need to make as if Caches was not initialized, |
| thus keeping m_isInitialized to false and m_storage to nullptr. |
| |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::Caches::initializeSize): |
| |
| 2018-03-02 Youenn Fablet <youenn@apple.com> |
| |
| Clients should register to StorageProcess with their service worker registration identifier |
| https://bugs.webkit.org/show_bug.cgi?id=182313 |
| <rdar://problem/38044403> |
| |
| Reviewed by Chris Dumez. |
| |
| Relanding. |
| |
| * StorageProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::registerServiceWorkerClient): |
| * StorageProcess/ServiceWorker/WebSWServerConnection.h: |
| * StorageProcess/ServiceWorker/WebSWServerConnection.messages.in: |
| * WebProcess/Storage/WebSWClientConnection.cpp: |
| (WebKit::WebSWClientConnection::registerServiceWorkerClient): |
| * WebProcess/Storage/WebSWClientConnection.h: |
| |
| 2018-03-02 Tim Horton <timothy_horton@apple.com> |
| |
| Make it possible to disable WKPDFView |
| https://bugs.webkit.org/show_bug.cgi?id=183281 |
| <rdar://problem/38060815> |
| |
| Reviewed by Dan Bates. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _isBackground]): |
| (-[WKWebView _isDisplayingPDF]): |
| (-[WKWebView _dataForDisplayedPDF]): |
| (-[WKWebView _suggestedFilenameForDisplayedPDF]): |
| * UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm: |
| (-[WKWebViewContentProviderRegistry init]): |
| * UIProcess/ios/WKPDFView.h: |
| * UIProcess/ios/WKPDFView.mm: |
| |
| 2018-03-02 Youenn Fablet <youenn@apple.com> |
| |
| WebProcessProxy should handle its completion handler at destruction time |
| https://bugs.webkit.org/show_bug.cgi?id=183224 |
| |
| Reviewed by Brady Eidson. |
| |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::~WebProcessProxy): |
| * UIProcess/WebProcessProxy.h: |
| |
| 2018-03-02 Brent Fulgham <bfulgham@apple.com> |
| |
| Update WebContent process sandbox IOKit properties |
| https://bugs.webkit.org/show_bug.cgi?id=183269 |
| <rdar://problem/37853282> |
| |
| Reviewed by Eric Carlson. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-03-01 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| Remove monotonicallyIncreasingTime |
| https://bugs.webkit.org/show_bug.cgi?id=182911 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * NetworkProcess/cache/CacheStorageEngineCache.cpp: |
| (WebKit::CacheStorage::Cache::toRecordInformation): |
| * Platform/IPC/ArgumentCoders.cpp: |
| (IPC::ArgumentCoder<Seconds>::encode): |
| (IPC::ArgumentCoder<Seconds>::decode): |
| (IPC::ArgumentCoder<MonotonicTime>::encode): |
| (IPC::ArgumentCoder<MonotonicTime>::decode): |
| * Platform/IPC/ArgumentCoders.h: |
| * Shared/Gamepad/GamepadData.cpp: |
| (WebKit::GamepadData::GamepadData): |
| * Shared/Gamepad/GamepadData.h: |
| (WebKit::GamepadData::lastUpdateTime const): |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<MonotonicTime>::encode): Deleted. |
| (IPC::ArgumentCoder<MonotonicTime>::decode): Deleted. |
| (IPC::ArgumentCoder<Seconds>::encode): Deleted. |
| (IPC::ArgumentCoder<Seconds>::decode): Deleted. |
| ArgumentCoders for MonotonicTime and Seconds are now used internally. |
| Move them to Platform/IPC/ArgumentCoders.h. |
| |
| * Shared/WebCoreArgumentCoders.h: |
| * UIProcess/API/glib/IconDatabase.cpp: |
| (WebKit::IconDatabase::iconDatabaseSyncThread): |
| * UIProcess/DrawingAreaProxyImpl.cpp: |
| (WebKit::DrawingAreaProxyImpl::DrawingMonitor::start): |
| (WebKit::DrawingAreaProxyImpl::DrawingMonitor::stop): |
| (WebKit::DrawingAreaProxyImpl::DrawingMonitor::didDraw): |
| * UIProcess/DrawingAreaProxyImpl.h: |
| * UIProcess/Gamepad/UIGamepad.h: |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h: |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm: |
| (WebKit::RemoteLayerTreeDrawingAreaProxy::acceleratedAnimationDidStart): |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeHost.h: |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm: |
| (WebKit::RemoteLayerTreeHost::animationDidStart): |
| * WebProcess/WebPage/DrawingArea.h: |
| (WebKit::DrawingArea::acceleratedAnimationDidStart): |
| * WebProcess/WebPage/DrawingArea.messages.in: |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.h: |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm: |
| (mediaTimeToCurrentTime): |
| (-[WKAnimationDelegate animationDidStart:]): |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp: |
| (WebKit::PlatformCALayerRemote::animationStarted): |
| This argument `beginTime` is not CFTimeInverval actually. We add currentTimeToMediaTime |
| conversion here to fix this issue. |
| |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.h: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.h: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.mm: |
| (WebKit::RemoteLayerTreeContext::animationDidStart): |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm: |
| (WebKit::RemoteLayerTreeDrawingArea::acceleratedAnimationDidStart): |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::destroyRenderingResources): |
| |
| 2018-03-02 Brent Fulgham <bfulgham@apple.com> |
| |
| [iOS] whitelist missing AppleJPEG logging feature |
| https://bugs.webkit.org/show_bug.cgi?id=183270 |
| <rdar://problem/37808612> |
| |
| Reviewed by Alex Christensen. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2018-03-02 Youenn Fablet <youenn@apple.com> |
| |
| IOChannel::read and IOChannel::write can destroy the completion handler in the thread used to manipulate thread |
| https://bugs.webkit.org/show_bug.cgi?id=183261 |
| |
| Reviewed by Antti Koivisto. |
| |
| Moving the completion handler when being called so that it gets desttroyed in the thread it is called. |
| |
| * NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm: |
| (WebKit::NetworkCache::IOChannel::read): |
| (WebKit::NetworkCache::IOChannel::write): |
| |
| 2018-03-02 Dan Bernstein <mitz@apple.com> |
| |
| Safari uses WebContent.Development when loading injected bundle embedded in its app bundle |
| https://bugs.webkit.org/show_bug.cgi?id=183275 |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/mac/WebProcessProxyMac.mm: |
| (WebKit::WebProcessProxy::shouldAllowNonValidInjectedCode const): Return false if this is |
| a platform binary. We can also return false unconditionally when building for any shipping |
| major macOS release. |
| |
| 2018-03-01 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r229153. |
| https://bugs.webkit.org/show_bug.cgi?id=183274 |
| |
| it is breaking imported/w3c/web-platform-tests/service-workers |
| /service-worker/clients-matchall-exact-controller.https.html |
| (Requested by youenn on #webkit). |
| |
| Reverted changeset: |
| |
| "Clients should register to StorageProcess with their service |
| worker registration identifier" |
| https://bugs.webkit.org/show_bug.cgi?id=182313 |
| https://trac.webkit.org/changeset/229153 |
| |
| 2018-03-01 Brent Fulgham <bfulgham@apple.com> |
| |
| Add the "com.apple.security.cs.disable-library-validation” entitlement to the Plugin Process |
| https://bugs.webkit.org/show_bug.cgi?id=183252 |
| <rdar://problem/37887136> |
| |
| Reviewed by David Kilzer. |
| |
| * Configurations/PluginService.entitlements: |
| |
| 2018-03-01 Youenn Fablet <youenn@apple.com> |
| |
| Clients should register to StorageProcess with their service worker registration identifier |
| https://bugs.webkit.org/show_bug.cgi?id=182313 |
| |
| Reviewed by Chris Dumez. |
| |
| * StorageProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::registerServiceWorkerClient): |
| * StorageProcess/ServiceWorker/WebSWServerConnection.h: |
| * StorageProcess/ServiceWorker/WebSWServerConnection.messages.in: |
| * WebProcess/Storage/WebSWClientConnection.cpp: |
| (WebKit::WebSWClientConnection::registerServiceWorkerClient): |
| * WebProcess/Storage/WebSWClientConnection.h: |
| |
| 2018-03-01 Youenn Fablet <youenn@apple.com> |
| |
| LayoutTest imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event-within-sw.https.html is a flaky failure |
| https://bugs.webkit.org/show_bug.cgi?id=179248 |
| <rdar://problem/35377756> |
| |
| Reviewed by Chris Dumez. |
| |
| WebKitTestRunner is clearing caches for every test but there might still be some on-going cache activity due to a previous test. |
| In that case, the activity might try to open the Caches object at the same time the files are deleted by the clearing task. |
| If the new test is trying to open the same caches, it will also receive the same error, hence the console log message. |
| |
| To fix that issue, we clear the initialization pending callbacks when clearing the caches. |
| This prevents the new test to receive the error since the new test should only start some cache activity after the cache clear task is done. |
| Made refactoring to append the first callback into the list of pending callbacks. |
| |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::Caches::initialize): |
| (WebKit::CacheStorage::Caches::initializeSize): |
| (WebKit::CacheStorage::Caches::clear): |
| * NetworkProcess/cache/CacheStorageEngineCaches.h: |
| |
| 2018-03-01 Youenn Fablet <youenn@apple.com> |
| |
| Add API test to validate setting of service worker and cache storage directories |
| https://bugs.webkit.org/show_bug.cgi?id=182543 |
| |
| Reviewed by Chris Dumez. |
| |
| Add cache engine directory path to its representation dump. |
| This is used in API tests to check that the path is correctly set. |
| |
| Add a way for to know whether a service worker was registered from a WKWebsiteDataStore. |
| This is used in API tests to check that the path is correctly set. |
| |
| * NetworkProcess/cache/CacheStorageEngine.cpp: |
| (WebKit::CacheStorage::Engine::representation): |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _hasRegisteredServiceWorker]): |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| |
| 2018-03-01 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Fix some errors due to some mach port APIs being unavailable on watchOS |
| https://bugs.webkit.org/show_bug.cgi?id=183262 |
| <rdar://problem/38028521> |
| |
| Reviewed by Tim Horton. |
| |
| Minor build fix; mach_port_guard and mach_port_unguard are not available on this platform. |
| |
| * Platform/IPC/mac/ConnectionMac.mm: |
| (IPC::Connection::platformInvalidate): |
| (IPC::Connection::platformInitialize): |
| (IPC::Connection::open): |
| |
| 2018-03-01 Per Arne Vollan <pvollan@apple.com> |
| |
| Unreviewed build fix after r229140. |
| |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| |
| 2018-03-01 Per Arne Vollan <pvollan@apple.com> |
| |
| Scrollbar preferences are ignored when the WebContent process doesn't have access to the WindowServer. |
| https://bugs.webkit.org/show_bug.cgi?id=183231 |
| <rdar://problem/37793457> |
| |
| Reviewed by Brent Fulgham. |
| |
| When the WebContent process doesn't have access to the WindowServer, the scrollbars are always of the overlay type. |
| The notification about scrollbar preferences is never received by the WebContent process when there is no |
| WindowServer access. This can be fixed by adding an observer of scrollbar preferences in the UI process, and |
| notifying the WebProcess about this by sending it a message. This message should also contain the preferred |
| scrollbar type, since the call '[NSScroller preferredScrollerStyle]' will always return the overlay style when |
| there is no WindowServer access. |
| |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::registerNotificationObservers): |
| (WebKit::WebProcessPool::unregisterNotificationObservers): |
| * UIProcess/WebProcessPool.h: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeProcess): |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::scrollerStylePreferenceChanged): |
| |
| 2018-03-01 Antti Koivisto <antti@apple.com> |
| |
| Crash when updating cache entry after validation in apps that uses class A file protection |
| https://bugs.webkit.org/show_bug.cgi?id=183242 |
| <rdar://problem/33289058> |
| |
| Reviewed by Chris Dumez. |
| |
| When validating a cache entry, we keep it alive until we get a network response. With 304 response |
| we then update the headers of this existing entry. This accesses the body data of the entry which |
| may be backed by a mapped file. If the app uses class A protection, user might have locked |
| the device and the entry might have become inaccessible, leading to a crash. |
| |
| * NetworkProcess/cache/NetworkCacheEntry.cpp: |
| (WebKit::NetworkCache::Entry::setNeedsValidation): |
| |
| In case of class A protection, pull the data to a memory buffer immediately before starting a revalidation request. |
| This makes the window where the file could become inaccessible much shorter (since it no longer depends on network). |
| |
| 2018-03-01 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| REGRESSION(r221514): [GTK] UI process crash in WebKit::WaylandCompositor::Surface::flushPendingFrameCallbacks |
| https://bugs.webkit.org/show_bug.cgi?id=183091 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Invalidate the surface in the page map when the backing store is destroyed. |
| |
| * UIProcess/gtk/WaylandCompositor.cpp: |
| (WebKit::WaylandCompositor::willDestroySurface): |
| * UIProcess/gtk/WaylandCompositor.h: |
| |
| 2018-02-28 Brian Burg <bburg@apple.com> |
| |
| [Cocoa] Web Automation: provide a way to ask clients the type of a JavaScript dialog |
| https://bugs.webkit.org/show_bug.cgi?id=182660 |
| <rdar://problem/37408183> |
| |
| Reviewed by Tim Horton and Carlos Garcia Campos. |
| |
| Add another delegate method to ask what type of dialog is being shown. |
| This is used to implement §18.4 Step 5, where sending text to a dialog |
| without a prompt will return several different kinds of errors. |
| |
| No new tests, covered by web platform tests once Safari side has landed. |
| |
| * UIProcess/API/Cocoa/_WKAutomationSessionDelegate.h: Update FIXME radar numbers. |
| * UIProcess/Cocoa/AutomationSessionClient.h: |
| * UIProcess/Cocoa/AutomationSessionClient.mm: |
| (WebKit::AutomationSessionClient::AutomationSessionClient): |
| (WebKit::toImpl): |
| (WebKit::AutomationSessionClient::typeOfCurrentJavaScriptDialogOnPage): |
| If there is no current dialog to be checked, the client can return the 'None' |
| type. This gets converted into a std::nullopt and causes a command error later. |
| |
| 2018-02-28 John Wilander <wilander@apple.com> |
| |
| Remove assertion from ResourceLoadStatisticsClassifier::calculateResourcePrevalence() which causes crashes when domains are explicitly set as prevalent without the associated statistics |
| https://bugs.webkit.org/show_bug.cgi?id=183233 |
| |
| Unreviewed removal of an assertion that's causing layout test crashes. |
| |
| * Platform/classifier/ResourceLoadStatisticsClassifier.cpp: |
| (WebKit::ResourceLoadStatisticsClassifier::calculateResourcePrevalence): |
| Removed ASSERT(currentPrevalence == Low). |
| |
| 2018-02-28 John Wilander <wilander@apple.com> |
| |
| Add a second tier of prevalence to facilitate telemetry on very prevalent domains |
| https://bugs.webkit.org/show_bug.cgi?id=183218 |
| <rdar://problem/37992388> |
| |
| Reviewed by Brent Fulgham. |
| |
| * Platform/classifier/ResourceLoadStatisticsClassifier.cpp: |
| (WebKit::vectorLength): |
| New convenience function. |
| (WebKit::ResourceLoadStatisticsClassifier::calculateResourcePrevalence): |
| Renamed from ResourceLoadStatisticsClassifier::hasPrevalentResourceCharacteristics(). |
| Now returns a value from the enum ResourceLoadPrevalence. |
| (WebKit::ResourceLoadStatisticsClassifier::classifyWithVectorThreshold): |
| Now uses the new vectorLength() convenience function. |
| (WebKit::ResourceLoadStatisticsClassifier::hasPrevalentResourceCharacteristics): Deleted. |
| Renamed to ResourceLoadStatisticsClassifier::calculateResourcePrevalence(). |
| * Platform/classifier/ResourceLoadStatisticsClassifier.h: |
| Added enum ResourceLoadPrevalence. |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<ResourceLoadStatistics>::encode): |
| (IPC::ArgumentCoder<ResourceLoadStatistics>::decode): |
| Handling of the new boolean field isVeryPrevalentResource. |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreSetStatisticsVeryPrevalentResource): |
| (WKWebsiteDataStoreIsStatisticsVeryPrevalentResource): |
| Test infrastructure. |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::processStatisticsAndDataRecords): |
| (WebKit::WebResourceLoadStatisticsStore::setPrevalentResource): |
| (WebKit::WebResourceLoadStatisticsStore::setVeryPrevalentResource): |
| (WebKit::WebResourceLoadStatisticsStore::isVeryPrevalentResource): |
| (WebKit::WebResourceLoadStatisticsStore::clearPrevalentResource): |
| All of these are for handling of the two-tier classification. |
| Also bumped the statisticsModelVersion to 12. |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| |
| 2018-02-28 Alex Christensen <achristensen@webkit.org> |
| |
| Reduce use of NetworkingContext in WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=183213 |
| |
| Reviewed by Brady Eidson. |
| |
| * NetworkProcess/RemoteNetworkingContext.h: |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::loadResourceSynchronously): |
| (WebKit::WebLoaderStrategy::preconnectTo): |
| * WebProcess/Network/WebLoaderStrategy.h: |
| * WebProcess/Plugins/PluginView.cpp: |
| (WebKit::PluginView::proxiesForURL): |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: |
| * WebProcess/WebPage/WebFrame.cpp: |
| |
| 2018-02-28 Brent Fulgham <bfulgham@apple.com> |
| |
| Remove network access from the WebContent process sandbox |
| https://bugs.webkit.org/show_bug.cgi?id=183192 |
| <rdar://problem/35369115> |
| |
| Reviewed by Alex Christensen. |
| |
| Remove the 'system-network', 'allow-network-common', and 'network-client' access from the WebContent process. |
| That's why we have a Network Process! |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-02-27 Tim Horton <timothy_horton@apple.com> |
| |
| Ensure target triple is propagated correctly to DerivedSources.make |
| https://bugs.webkit.org/show_bug.cgi?id=183189 |
| <rdar://problem/37959694> |
| |
| Reviewed by Dan Bernstein. |
| |
| * Configurations/Base.xcconfig: |
| * DerivedSources.make: |
| Ditto the WebCore ChangeLog. |
| |
| 2018-02-27 Yongjun Zhang <yongjun_zhang@apple.com> |
| |
| Make it possible to set suggestions in extra zoom mode. |
| https://bugs.webkit.org/show_bug.cgi?id=183154 |
| <rdar://problem/35227450> |
| |
| Reviewed by Tim Horton. |
| |
| In extra zoom mode, when presenting WKFocusedFormControlViewController, make it the inputDelegate for |
| WKContentView. This is needed to ensure we can capture/cache the suggestions when _WKInputSession's |
| suggestions is updated. Later, when we present WKTextInputViewController, we can pass the cached |
| suggestions. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView presentFocusedFormControlViewController:]): Set _focusedFormControlViewController as |
| the inputDelegate for WKContentView. |
| (-[WKContentView dismissFocusedFormControlViewController:]): Null the inputDelegate on dismissal. |
| (-[WKContentView presentTextInputViewController:]): Pass the suggestions from WKFocusedFormControlViewController to |
| WKTextInputViewController when the latter is presented. |
| (-[WKContentView textInputController:didCommitText:]): Call the new delegate method textInputController:didCommitText:withSuggestion:. |
| (-[WKContentView textInputController:didCommitText:withSuggestion:]): When a suggestions is selected, insert the |
| suggestion which will notify the client. |
| (-[WKContentView focusedFormControllerDidUpdateSuggestions:]): Called when the suggestion is updated after the input |
| view controller is presented. |
| |
| 2018-02-27 Tim Horton <timothy_horton@apple.com> |
| |
| Stop using deprecated CADisplay SPI |
| https://bugs.webkit.org/show_bug.cgi?id=183150 |
| <rdar://problem/37918297> |
| |
| Reviewed by Simon Fraser. |
| |
| * Platform/spi/ios/FrontBoardServicesSPI.h: Added. |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]): |
| * WebKit.xcodeproj/project.pbxproj: |
| Switch to the more modern way of getting the display name. |
| |
| 2018-02-27 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r229055. |
| |
| Breaks internal builds. |
| |
| Reverted changeset: |
| |
| "Stop using deprecated CADisplay SPI" |
| https://bugs.webkit.org/show_bug.cgi?id=183150 |
| https://trac.webkit.org/changeset/229055 |
| |
| 2018-02-27 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Implement additional SPI for adjusting viewport shrink-to-fit behavior |
| https://bugs.webkit.org/show_bug.cgi?id=183100 |
| <rdar://problem/37840987> |
| |
| Reviewed by Tim Horton. |
| |
| Add new SPI hooks to provide finer control over certain aspects of the shrink-to-fit viewport heuristic. |
| Currently, in certain cases of iPad multitasking, Safari allows shrinking content to fit by default. This means |
| that even when "width=device-width" is used, if the contents of the page are too wide to fit within the |
| viewport's width, we'll adjust the initial scale such that the viewport can fit all of the content. |
| |
| However, in certain viewport dimensions, this heuristic is insufficient to ensure that pages are laid out and |
| displayed properly within the viewport. Namely, one could imagine that an element with a hard-coded width that |
| is larger than the real viewport width would cause all other elements with dimensions relative to the body to be |
| excessively shrunk down once shrink-to-fit is applied, so the page would still look broken even if the contents |
| of the page all fit within the viewport. |
| |
| To mitigate this, we decouple the notions of minimum layout size from the size of the actual viewport (which we |
| simply refer to as "view size"). This allows us to introduce a mechanism where we lay out the page at a given |
| minimum layout size that is larger than the size of the view; later, when we determine the initial scale, we |
| then apply shrink-to-fit scaling using the view size rather than the minimum layout size. This grants us the |
| ability to lay out content as if our view were large, but still ensure that the contents of the page fit within |
| the actual view. |
| |
| * Shared/VisibleContentRectUpdateInfo.cpp: |
| (WebKit::VisibleContentRectUpdateInfo::encode const): |
| (WebKit::VisibleContentRectUpdateInfo::decode): |
| (WebKit::operator<<): |
| * Shared/VisibleContentRectUpdateInfo.h: |
| (WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo): |
| (WebKit::VisibleContentRectUpdateInfo::forceHorizontalShrinkToFit const): |
| (WebKit::operator==): |
| |
| Plumb the forceHorizontalShrinkToFit flag through VisibleContentRectUpdateInfo. |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| |
| Plumb viewSize through IPC to WebPage. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| |
| Start off WKWebView flags at their initial values. |
| |
| (-[WKWebView _minimumAllowedLayoutWidth]): |
| (-[WKWebView _setMinimumAllowedLayoutWidth:]): |
| |
| This provides the minimum width at which the page will lay out, such that if the view width dips below this |
| value, we'll use this minimum allowed layout width instead. 0 by default. |
| |
| (-[WKWebView activeMinimumLayoutSizes:]): |
| |
| Refactor this from a static function to a helper method on WKWebView that computes both the minimum layout size |
| (which takes minimum allowed layout width into account) as well as the real view size. Refactor all call sites |
| to use this new method, and also propagate the view size down via IPC, alongside the minimum layout size. |
| |
| (-[WKWebView _dispatchSetMinimumLayoutSize:viewSize:]): |
| (-[WKWebView _frameOrBoundsChanged]): |
| (-[WKWebView _setMinimumLayoutSizeOverride:]): |
| (-[WKWebView _setForceHorizontalViewportShrinkToFit:]): |
| (-[WKWebView _forceHorizontalViewportShrinkToFit]): |
| |
| Setting this flag to YES forces us to always shrink-to-fit in the horizontal axis. NO by default. |
| |
| (-[WKWebView _beginAnimatedResizeWithUpdates:]): |
| (-[WKWebView _endAnimatedResize]): |
| (activeMinimumLayoutSize): Deleted. |
| |
| More refactoring to replace activeMinimumLayoutSize() with -activeMinimumLayoutSizes:. |
| |
| (-[WKWebView _dispatchSetMinimumLayoutSize:]): Deleted. |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::creationParameters): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/ios/WKContentView.mm: |
| (-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:obscuredInsets:unobscuredSafeAreaInsets:inputViewBounds:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollableAncestorView:]): |
| |
| Pass _forceHorizontalViewportShrinkToFit into the visible content rect update. |
| |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::dynamicViewportSizeUpdate): |
| (WebKit::WebPageProxy::setViewportConfigurationMinimumLayoutSize): |
| |
| Plumb viewSize alongside the existing minimumLayoutSize. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_credentialsMessenger): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::setViewportConfigurationMinimumLayoutSize): |
| (WebKit::WebPage::dynamicViewportSizeUpdate): |
| (WebKit::WebPage::updateVisibleContentRects): |
| |
| Set forceHorizontalShrinkToFit on the viewport configuration here. |
| |
| 2018-02-27 Tim Horton <timothy_horton@apple.com> |
| |
| Stop using deprecated CADisplay SPI |
| https://bugs.webkit.org/show_bug.cgi?id=183150 |
| <rdar://problem/37918297> |
| |
| Reviewed by Simon Fraser. |
| |
| * Platform/spi/ios/FrontBoardServicesSPI.h: Added. |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]): |
| * WebKit.xcodeproj/project.pbxproj: |
| Switch to the more modern way of getting the display name. |
| |
| 2018-02-26 Youenn Fablet <youenn@apple.com> |
| |
| Caches::m_storage should be set to null in case of error at initialization time |
| https://bugs.webkit.org/show_bug.cgi?id=183068 |
| |
| Reviewed by Chris Dumez. |
| |
| In case of error, we need to set m_storage back to nullptr so that |
| next tries to initialize it will restart from scratch. |
| If we do not set it to nullptr, we end up storing the initialize |
| callback in a queue and the callback will never be called. |
| |
| This is difficult to test as we need the following conditions: |
| - we need to have an error case, like a disk writing error |
| - we need the web app to open a cache in two different pages/frames at about the same time. |
| |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::Caches::initialize): |
| |
| 2018-02-26 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r226330. |
| https://bugs.webkit.org/show_bug.cgi?id=183152 |
| |
| incorrectly assumes enumeration callback happens once |
| (Requested by alexchristensen on #webkit). |
| |
| Reverted changeset: |
| |
| "Use BlockPtrs and lambdas instead of new/delete to pass |
| parameters to blocks in WebViewImpl::performDragOperation" |
| https://bugs.webkit.org/show_bug.cgi?id=180795 |
| https://trac.webkit.org/changeset/226330 |
| |
| 2018-02-26 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Release assertion in WebPage::updatePreferences |
| https://bugs.webkit.org/show_bug.cgi?id=183075 |
| |
| Reviewed by Youenn Fablet and Chris Dumez. |
| |
| Replaced the release assertion added in r228589 with a more graceful disabling of the feature when the entitlement is missing. |
| |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::didReceiveMessage): Added an early exit with an entitlement check to disable the feature. |
| (WebKit::StorageProcess::initializeWebsiteDataStore): Ditto. |
| (WebKit::StorageProcess::createStorageToWebProcessConnection): Replaced the release assertion with a debug assertion. |
| (WebKit::StorageProcess::swServerForSession): Removed the assertion. This code can be reached when the service worker is disabled. |
| (WebKit::StorageProcess::registerSWServerConnection): Replaced the release assertion with a debug assertion. |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::updatePreferences): Disable the feature instead of crashing when the entitlement is missing. |
| |
| 2018-02-26 Chris Dumez <cdumez@apple.com> |
| |
| Regression(r223431): Crash under didReceiveChallenge in NetworkSessionCocoa |
| https://bugs.webkit.org/show_bug.cgi?id=183134 |
| <rdar://problem/36339049> |
| |
| Reviewed by Alex Christensen. |
| |
| Like other delegates functions in this file, it is possible for didReceiveChallenge to get called |
| after _session has been nulled out. Other delegate functions already had early returns when |
| _session is null. However, such early return was missing in didReceiveChallenge. |
| |
| This patch ends the early return to didReceiveChallenge so that we do not end up calling |
| _session->downloadID(taskIdentifier) on a null _session. |
| |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]): |
| |
| 2018-02-26 Youenn Fablet <youenn@apple.com> |
| |
| MessagePort is not always destroyed in the right thread |
| https://bugs.webkit.org/show_bug.cgi?id=183053 |
| |
| Reviewed by Chris Dumez. |
| |
| Update code to pass a lambda to MessagePort::existingMessagePortForIdentifier. |
| |
| * WebProcess/WebCoreSupport/WebMessagePortChannelProvider.cpp: |
| (WebKit::WebMessagePortChannelProvider::checkProcessLocalPortForActivity): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::messagesAvailableForPort): |
| |
| 2018-02-25 Alexey Proskuryakov <ap@apple.com> |
| |
| Font smoothing doesn't get disabled if the preference is set before launching WebContent process |
| https://bugs.webkit.org/show_bug.cgi?id=183108 |
| |
| Reviewed by Tim Horton. |
| |
| * WebProcess/WebProcess.cpp: (WebKit::WebProcess::initializeWebProcess): |
| Fix the bug. While at it, also avoid the anti-pattern in setAlwaysUsesComplexTextCodePath. |
| |
| 2018-02-25 Philippe Normand <pnormand@igalia.com> |
| |
| Unreviewed GTK Debug build fix after r228942. |
| |
| * UIProcess/API/glib/IconDatabase.cpp: |
| (WebKit::IconDatabase::iconDatabaseSyncThread): |
| (WebKit::IconDatabase::syncThreadMainLoop): |
| (WebKit::IconDatabase::readFromDatabase): |
| (WebKit::IconDatabase::writeToDatabase): |
| (WebKit::IconDatabase::cleanupSyncThread): |
| |
| 2018-02-25 Chris Dumez <cdumez@apple.com> |
| |
| Service workers do not work well inside Web.app |
| https://bugs.webkit.org/show_bug.cgi?id=183105 |
| <rdar://problem/37864140> |
| |
| Reviewed by Youenn Fablet. |
| |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::didReceiveMessage): |
| We were failing to forward IPC messages to the ChildProcess class here. As a result, |
| the ChildProcess::RegisterURLSchemeServiceWorkersCanHandle IPC was being ignored |
| by the StorageProcess. |
| |
| 2018-02-24 Zan Dobersek <zdobersek@igalia.com> |
| |
| Unreviewed WPE breakage fix. |
| |
| * WebProcess/wpe/WebProcessMainWPE.cpp: Call g_set_prgname() in WebProcess |
| to prepare the GLib state for subsequent GStreamer initialization. |
| |
| 2018-02-23 John Wilander <wilander@apple.com> |
| |
| Introduce ITP debug logging as an opt-in developer feature |
| https://bugs.webkit.org/show_bug.cgi?id=183065 |
| <rdar://problem/37803761> |
| |
| Reviewed by Brent Fulgham. |
| |
| * Platform/Logging.h: |
| Added a dedicated channel for Resource Load Statistics debug logging |
| since this will be part of a developer-facing feature and should not |
| be mixed with general Resource Load Statistics logging. |
| * UIProcess/Cocoa/WebResourceLoadStatisticsStoreCocoa.mm: |
| (WebKit::WebResourceLoadStatisticsStore::registerUserDefaultsIfNeeded): |
| Now picks up the user default setting for |
| ResourceLoadStatisticsDebugLoggingEnabled. |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::removeDataRecords): |
| Now logs for which domains it purges website data if |
| ResourceLoadStatisticsDebugLoggingEnabled is set. |
| (WebKit::WebResourceLoadStatisticsStore::updateCookiePartitioning): |
| Now logs for which domains it partitions and blocks cookies |
| in third-party contexts if ResourceLoadStatisticsDebugLoggingEnabled |
| is set. |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| |
| 2018-02-23 Brent Fulgham <bfulgham@apple.com> |
| |
| [macOS] Correct sandbox violation during media playback |
| https://bugs.webkit.org/show_bug.cgi?id=183092 |
| <rdar://problem/37718495> |
| |
| Reviewed by Eric Carlson. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-02-23 Yousuke Kimoto <yousuke.kimoto@sony.com> |
| |
| [MSVC] Unknown a type definition error in WebResourceLoadStatisticsStore on wincairo webkit |
| https://bugs.webkit.org/show_bug.cgi?id=182873 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| |
| 2018-02-23 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GStreamer][MiniBrowser] Honor GStreamer command line parameters in MiniBrowser |
| https://bugs.webkit.org/show_bug.cgi?id=173655 |
| <rdar://problem/37706341> |
| |
| Reviewed by Philippe Normand. |
| |
| Actually pass the gst command line options to the WebProcess. The options in /proc/self/cmdline are separated by |
| null characters, so we are effectively passing always the first option only, which is the program name. Then, in |
| the web process we always ignore the first option and providing WebProcess unconditionally, so we were doing |
| nothing. |
| |
| * UIProcess/gtk/WebProcessPoolGtk.cpp: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): Use WebCore::extractGStreamerOptionsFromCommandLine() |
| * UIProcess/wpe/WebProcessPoolWPE.cpp: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): Ditto. |
| * WebProcess/soup/WebProcessSoup.cpp: |
| (WebKit::WebProcess::platformInitializeWebProcess): Move the vector. |
| |
| 2018-02-22 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| Remove currentTime() / currentTimeMS() |
| https://bugs.webkit.org/show_bug.cgi?id=183052 |
| |
| Reviewed by Mark Lam. |
| |
| * NetworkProcess/cache/CacheStorageEngineCache.cpp: |
| * PluginProcess/WebProcessConnection.cpp: |
| * Shared/WebProcessCreationParameters.h: |
| * Shared/linux/WebMemorySamplerLinux.cpp: |
| (WebKit::WebMemorySampler::sampleWebKit const): |
| * Shared/mac/WebMemorySampler.mac.mm: |
| (WebKit::WebMemorySampler::sampleWebKit const): |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextSetPlugInAutoStartOriginsFilteringOutEntriesAddedAfterTime): |
| * UIProcess/API/glib/IconDatabase.cpp: |
| (WebKit::IconDatabase::setIconDataForIconURL): |
| (WebKit::IconDatabase::synchronousLoadDecisionForIconURL): |
| (WebKit::IconDatabase::performURLImport): |
| * UIProcess/DrawingAreaProxyImpl.cpp: |
| * UIProcess/Plugins/PlugInAutoStartProvider.cpp: |
| (WebKit::expirationTimeFromNow): |
| (WebKit::PlugInAutoStartProvider::addAutoStartOriginHash): |
| (WebKit::PlugInAutoStartProvider::autoStartOriginsTableCopy const): |
| (WebKit::PlugInAutoStartProvider::setAutoStartOriginsTable): |
| (WebKit::PlugInAutoStartProvider::setAutoStartOriginsFilteringOutEntriesAddedAfterTime): |
| (WebKit::PlugInAutoStartProvider::setAutoStartOriginsTableWithItemsPassingTest): |
| (WebKit::PlugInAutoStartProvider::didReceiveUserInteraction): |
| * UIProcess/Plugins/PlugInAutoStartProvider.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processDidFinishLaunching): |
| (WebKit::WebProcessPool::startMemorySampler): |
| (WebKit::WebProcessPool::setPlugInAutoStartOriginsFilteringOutEntriesAddedAfterTime): |
| * UIProcess/WebProcessPool.h: |
| * WebProcess/InjectedBundle/API/APIInjectedBundlePageLoaderClient.h: |
| (API::InjectedBundle::PageLoaderClient::willPerformClientRedirectForFrame): |
| * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp: |
| (WebKit::InjectedBundlePageLoaderClient::willPerformClientRedirectForFrame): |
| * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchWillPerformClientRedirect): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::m_webSQLiteDatabaseTracker): |
| (WebKit::WebProcess::isPlugInAutoStartOriginHash): |
| (WebKit::WebProcess::plugInDidStartFromOrigin): |
| (WebKit::WebProcess::didAddPlugInAutoStartOriginHash): |
| (WebKit::WebProcess::resetPlugInAutoStartOriginDefaultHashes): |
| (WebKit::WebProcess::resetPlugInAutoStartOriginHashes): |
| (WebKit::WebProcess::plugInDidReceiveUserInteraction): |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| * WebProcess/wpe/WebProcessMainWPE.cpp: |
| |
| 2018-02-22 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: REGRESSION (r228349): ImageBitmap builtin is now runtime guarded |
| https://bugs.webkit.org/show_bug.cgi?id=183056 |
| <rdar://problem/37799067> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * WebProcess/WebPage/WebInspectorUI.cpp: |
| (WebKit::WebInspectorUI::WebInspectorUI): |
| |
| 2018-02-22 Youenn Fablet <youenn@apple.com> |
| |
| Caches::initialize should call all pending initialization callbacks in case of error |
| https://bugs.webkit.org/show_bug.cgi?id=183062 |
| |
| Reviewed by Chris Dumez. |
| |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::Caches::initialize): |
| (WebKit::CacheStorage::Caches::initializeSize): |
| |
| 2018-02-22 Youenn Fablet <youenn@apple.com> |
| |
| CacheStorage::Engine::Caches::writeRecord is not always calling the completion handler |
| https://bugs.webkit.org/show_bug.cgi?id=183055 |
| |
| Reviewed by Chris Dumez. |
| |
| Add a completion handler to Storage::store. |
| Use it instead in Caches::writeRecord. |
| This ensures that the Cache add/put promise will be called once all write operations have been done. |
| |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::Caches::writeRecord): |
| * NetworkProcess/cache/NetworkCacheStorage.cpp: |
| (WebKit::NetworkCache::Storage::WriteOperation::WriteOperation): |
| (WebKit::NetworkCache::Storage::finishWriteOperation): |
| (WebKit::NetworkCache::Storage::store): |
| * NetworkProcess/cache/NetworkCacheStorage.h: |
| (WebKit::NetworkCache::Storage::store): |
| |
| 2018-02-22 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Add an entitlement check for service worker on iOS |
| https://bugs.webkit.org/show_bug.cgi?id=182865 |
| |
| Reviewed by Dan Bernstein. |
| |
| Addressed Dan's comment by using xpc_connection_copy_entitlement_value instead of obtaining the audit token first. |
| |
| * Shared/mac/SandboxUtilities.h: |
| * Shared/mac/SandboxUtilities.mm: |
| (WebKit::connectedProcessHasEntitlement): |
| * StorageProcess/ios/StorageProcessIOS.mm: |
| (WebKit::StorageProcess::parentProcessHasServiceWorkerEntitlement const): |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::parentProcessHasServiceWorkerEntitlement const): |
| |
| 2018-02-22 Youenn Fablet <youenn@apple.com> |
| |
| Fetch event release assert should take into account the fetch mode |
| https://bugs.webkit.org/show_bug.cgi?id=183047 |
| |
| Reviewed by Chris Dumez. |
| |
| In case of navigation tasks, we should use the request URL and not the origin of the loading client. |
| |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::isValidFetch): |
| (WebKit::WebSWContextManagerConnection::startFetch): |
| |
| 2018-02-22 Yousuke Kimoto <yousuke.kimoto@sony.com> |
| |
| [WinCairo] Fix compile errors in WebPageWin.cpp and WebProcessWin.cpp due to WebCore forwarding header paths |
| https://bugs.webkit.org/show_bug.cgi?id=182969 |
| |
| Reviewed by Konstantin Tokarev. |
| |
| * WebProcess/WebPage/win/WebPageWin.cpp: |
| * WebProcess/win/WebProcessWin.cpp: |
| |
| 2018-02-22 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| Remove sleep(double) and sleepMS(double) interfaces |
| https://bugs.webkit.org/show_bug.cgi?id=183038 |
| |
| Reviewed by Mark Lam. |
| |
| * PluginProcess/WebProcessConnection.cpp: |
| (WebKit::WebProcessConnection::createPluginAsynchronously): |
| * UIProcess/linux/MemoryPressureMonitor.cpp: |
| (WebKit::pollIntervalForUsedMemoryPercentage): |
| (WebKit::MemoryPressureMonitor::MemoryPressureMonitor): |
| * WebProcess/wpe/WebProcessMainWPE.cpp: |
| |
| 2018-02-22 Youenn Fablet <youenn@apple.com> |
| |
| Add release logging for CacheStorage::Engine disk related functions |
| https://bugs.webkit.org/show_bug.cgi?id=183042 |
| |
| Reviewed by Chris Dumez. |
| |
| * NetworkProcess/cache/CacheStorageEngine.cpp: |
| (WebKit::CacheStorage::Engine::writeFile): |
| (WebKit::CacheStorage::Engine::readFile): |
| |
| 2018-02-22 Matt Lewis <jlewis3@apple.com> |
| |
| Unreviewed, rolling out r228902. |
| |
| This broke internal builds. |
| |
| Reverted changeset: |
| |
| "[Cocoa] Web Automation: provide a way to ask clients the type |
| of a JavaScript dialog" |
| https://bugs.webkit.org/show_bug.cgi?id=182660 |
| https://trac.webkit.org/changeset/228902 |
| |
| 2018-02-22 Youenn Fablet <youenn@apple.com> |
| |
| Add release asserts for service worker fetch and postMessage events |
| https://bugs.webkit.org/show_bug.cgi?id=183025 |
| rdar://problem/37765052 |
| |
| Reviewed by Daniel Bates. |
| |
| Add assertion to protect interception of a fetch load by a service worker with |
| a different origin from the page. |
| |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::startFetch): |
| |
| 2018-02-22 Ms2ger <Ms2ger@igalia.com> |
| |
| [GTK][WPE] Fix some build errors in service workers code |
| https://bugs.webkit.org/show_bug.cgi?id=182966 |
| |
| Reviewed by Žan Doberšek. |
| |
| * CMakeLists.txt: add missing files. |
| * StorageProcess/ServiceWorker/WebSWServerConnection.cpp: add missing includes. |
| * UIProcess/ServiceWorkerProcessProxy.cpp: use #include rather than #import in C++; add missing ifdef. |
| * UIProcess/ServiceWorkerProcessProxy.h: add missing ifdef. |
| * WebProcess/Storage/WebSWClientConnection.cpp: add missing includes. |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: add missing includes. |
| (WebKit::WebSWContextManagerConnection::WebSWContextManagerConnection): |
| call the function that exists outside cocoa. |
| |
| 2018-02-21 Per Arne Vollan <pvollan@apple.com> |
| |
| The WebContent process should not use NSScreen in the screenAvailableRect/screenRect implementations. |
| https://bugs.webkit.org/show_bug.cgi?id=182855 |
| |
| Reviewed by Brent Fulgham. |
| |
| On macOS, the functions screenAvailableRect and screenRect is implemented using NSScreen, which is communicating |
| with the WindowServer. To avoid this WindowServer communication from the WebContent process when calling |
| screenAvailableRect and screenRect, it is possible to let the UIProcess send a message to the WebContent |
| process whenever there is a change in the display properties, and have the WebContent process cache these |
| display properties. This message should also be sent to a newly started WebContent process. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::displayReconfigurationCallBack): |
| (WebKit::registerDisplayConfigurationCallback): |
| (WebKit::WebProcessPool::initializeNewWebProcess): |
| (WebKit::WebProcessPool::warmInitialProcess): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::setScreenProperties): |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| |
| 2018-02-21 Christopher Reid <chris.reid@sony.com> |
| |
| [Curl] Curl Cookie Database File should be configurable using NetworkProcessCreationParameters |
| https://bugs.webkit.org/show_bug.cgi?id=182751 |
| |
| Reviewed by Youenn Fablet. |
| |
| Adding a cookiePersistentStorageFile parameter to Curl's NetworkProcessCreationParameters. |
| This parameter is based on Soup's cookiePersistentStoragePath. |
| This parameter is not used yet, it is added to prepare for WinCairo WebKit support. |
| |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * NetworkProcess/curl/NetworkProcessCurl.cpp: |
| * WebProcess/Cookies/WebCookieManager.h: |
| * WebProcess/Cookies/curl/WebCookieManagerCurl.cpp: |
| |
| 2018-02-21 Brian Burg <bburg@apple.com> |
| |
| [Cocoa] Web Automation: provide a way to ask clients the type of a JavaScript dialog |
| https://bugs.webkit.org/show_bug.cgi?id=182660 |
| <rdar://problem/37408183> |
| |
| Reviewed by Tim Horton and Carlos Garcia Campos. |
| |
| Add another delegate method to ask what type of dialog is being shown. |
| This is used to implement §18.4 Step 5, where sending text to a dialog |
| without a prompt will return several different kinds of errors. |
| |
| No new tests, covered by web platform tests once Safari side has landed. |
| |
| * UIProcess/API/Cocoa/_WKAutomationSessionDelegate.h: Update FIXME radar numbers. |
| * UIProcess/Cocoa/AutomationSessionClient.h: |
| * UIProcess/Cocoa/AutomationSessionClient.mm: |
| (WebKit::AutomationSessionClient::AutomationSessionClient): |
| (WebKit::toImpl): |
| (WebKit::AutomationSessionClient::typeOfCurrentJavaScriptDialogOnPage): |
| If there is no current dialog to be checked, the client can return the 'None' |
| type. This gets converted into a std::nullopt and causes a command error later. |
| |
| 2018-02-21 Yousuke Kimoto <yousuke.kimoto@sony.com> |
| |
| [WinCairo] Fix compile errors of WebProcess and NetworkProcess due to no implementation for windows |
| https://bugs.webkit.org/show_bug.cgi?id=182870 |
| |
| Reviewed by Youenn Fablet. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::createNetworkConnectionToWebProcess): |
| * WebProcess/Plugins/PluginProcessConnectionManager.cpp: |
| (WebKit::PluginProcessConnectionManager::getPluginProcessConnection): |
| * WebProcess/WebPage/WebInspector.cpp: |
| (WebKit::WebInspector::openFrontendConnection): |
| * WebProcess/WebPage/WebInspectorUI.cpp: |
| (WebKit::WebInspectorUI::establishConnection): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::ensureNetworkProcessConnection): |
| |
| 2018-02-21 Don Olmstead <don.olmstead@sony.com> |
| |
| [CMake][Win] Use cmakeconfig.h rather than config.h and Platform.h |
| https://bugs.webkit.org/show_bug.cgi?id=182883 |
| |
| Reviewed by Per Arne Vollan. |
| |
| * config.h: |
| |
| 2018-02-21 Brian Burg <bburg@apple.com> |
| |
| Web Automation: failed provisional loads cause "Navigate To" command to hang |
| https://bugs.webkit.org/show_bug.cgi?id=183007 |
| <rdar://problem/37751819> |
| |
| Reviewed by Andy Estes. |
| |
| This hang was revealed by WPT test current_url.py::get_current_url_file_protocol. Now the |
| test simply fails because Safari chooses a policy of 'Ignore' for externally-opened files. |
| I filed an upstream issue with the test here: https://github.com/w3c/webdriver/issues/1232 |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didFailProvisionalLoadForFrame): |
| Notify the session that the load failed in the frame, just like we do |
| for non-provisional failed loads and successful loads. |
| |
| 2018-02-20 Nan Wang <n_wang@apple.com> |
| |
| AX: Keyboard focus not following VoiceOver cursor into web content or within web content. |
| https://bugs.webkit.org/show_bug.cgi?id=182752 |
| <rdar://problem/37518233> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * UIProcess/PageClient.h: |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::assistiveTechnologyMakeFirstResponder): |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::assistiveTechnologyMakeFirstResponder): |
| * UIProcess/mac/PageClientImplMac.h: |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::assistiveTechnologyMakeFirstResponder): |
| * UIProcess/mac/WebPageProxyMac.mm: |
| (WebKit::WebPageProxy::assistiveTechnologyMakeFirstResponder): |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::assistiveTechnologyMakeFirstResponder): |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| |
| 2018-02-14 Brian Burg <bburg@apple.com> |
| |
| Web Automation: combine session commands to resize and move top-level browsing contexts |
| https://bugs.webkit.org/show_bug.cgi?id=182749 |
| <rdar://problem/37515170> |
| |
| Reviewed by Andy Estes. |
| |
| Since moving and resizing the window are both accomplished by setting the window frame, |
| and the W3C WebDriver specification has a Get/Set Window Rect command, it's time to |
| deduplicate these two methods which basically do the same thing. |
| |
| Adopt modern JSON::Value getters that return std::optional<float>. I have been trying |
| to move the protocol over to this style wholesale, but it is probably easier to do |
| this conversion in smaller pieces. And so, I have started to do so. |
| |
| This change is covered by existing WebDriver tests. |
| |
| * UIProcess/Automation/Automation.json: Add new command. |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::setWindowFrameOfBrowsingContext): Added. |
| (WebKit::WebAutomationSession::resizeWindowOfBrowsingContext): Deleted. |
| (WebKit::WebAutomationSession::moveWindowOfBrowsingContext): Deleted. |
| * UIProcess/Automation/WebAutomationSession.h: |
| |
| 2018-02-20 Brian Burg <bburg@apple.com> |
| |
| ASSERT under WebAutomationSession::setProcessPool() when running W3C test suite a second time |
| https://bugs.webkit.org/show_bug.cgi?id=182991 |
| <rdar://problem/37620578> |
| |
| Reviewed by Timothy Hatcher. |
| |
| Sometimes when running more than one session end-to-end with the same browser instance, |
| UIProcess would crash under addMessageReceiver because another WebAutomationSession was still |
| registered. This is hard to reproduce, but upon code inspection, the receiver management code |
| is somewhat problematic because it only runs when the WebAutomationSession destructor runs. |
| In some cases the client could retain two sessions and cause the first one to never remove itself |
| as the message receiver. |
| |
| Instead of unregistering the session as a message receiver underneath the session's destructor, |
| do this whenever a new session supplants an old session since there is only one active session at a time. |
| |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::~WebAutomationSession): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::setAutomationSession): |
| |
| 2018-02-20 Tim Horton <timothy_horton@apple.com> |
| |
| Introduce HAVE(IOSURFACE_ACCELERATOR) |
| https://bugs.webkit.org/show_bug.cgi?id=182955 |
| <rdar://problem/37699510> |
| |
| Reviewed by Sam Weinig. |
| |
| * Shared/RemoteLayerTree/RemoteLayerBackingStore.h: |
| * Shared/RemoteLayerTree/RemoteLayerBackingStore.mm: |
| * Shared/cg/ShareableBitmapCG.cpp: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm: |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm: |
| * UIProcess/mac/ViewSnapshotStore.h: |
| * UIProcess/mac/ViewSnapshotStore.mm: |
| |
| 2018-02-20 Chris Dumez <cdumez@apple.com> |
| |
| Provisional load may get committed before receiving the decidePolicyForNavigationResponse response |
| https://bugs.webkit.org/show_bug.cgi?id=182720 |
| <rdar://problem/37515204> |
| |
| Reviewed by Alex Christensen. |
| |
| * WebProcess/Network/WebResourceLoader.cpp: |
| (WebKit::WebResourceLoader::didReceiveResponse): |
| * WebProcess/Storage/ServiceWorkerClientFetch.cpp: |
| (WebKit::ServiceWorkerClientFetch::didReceiveResponse): |
| * WebProcess/WebPage/WebURLSchemeTaskProxy.cpp: |
| (WebKit::WebURLSchemeTaskProxy::didReceiveResponse): |
| |
| 2018-02-20 Matt Lewis <jlewis3@apple.com> |
| |
| Unreviewed, rolling out r228829. |
| |
| This caused a consistent failure in the API test |
| WebKit.InteractionDeadlockAfterCrash on iOS Simulator |
| |
| Reverted changeset: |
| |
| "Switch to UIWKTextInteractionAssistant for non-editable text" |
| https://bugs.webkit.org/show_bug.cgi?id=182834 |
| https://trac.webkit.org/changeset/228829 |
| |
| 2018-02-20 Megan Gardner <megan_gardner@apple.com> |
| |
| Switch to UIWKTextInteractionAssistant for non-editable text |
| https://bugs.webkit.org/show_bug.cgi?id=182834 |
| |
| Reviewed by Wenson Hsieh and Tim Horton. |
| |
| Switching to only using the UIWKTextInteractionAssistant. Only character granularity is now supported. |
| Also keep the from regressing gating the keyboard bring up on user interaction. The presents of a |
| textInteractionAssistant can no longer be used as proxy for the presence of the keyboard. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView useSelectionAssistantWithGranularity:]): |
| (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]): |
| |
| 2018-02-20 John Wilander <wilander@apple.com> |
| |
| Make WebResourceLoadStatisticsStore::processStatisticsAndDataRecords() call WebProcessProxy::notifyPageStatisticsAndDataRecordsProcessed() in a proper callback |
| https://bugs.webkit.org/show_bug.cgi?id=182719 |
| <rdar://problem/37517370> |
| |
| Reviewed by Brent Fulgham. |
| |
| This will allow the page notification, statistics pruning, and persistence write |
| to be done at the right time and hopefully stabilize the layout tests including: |
| http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-deletion.html |
| |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::removeDataRecords): |
| Now takes a callback parameter. |
| (WebKit::WebResourceLoadStatisticsStore::processStatisticsAndDataRecords): |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| Now calls WebProcessProxy::notifyPageStatisticsAndDataRecordsProcessed() |
| in a callback provided to WebResourceLoadStatisticsStore::removeDataRecords(). |
| |
| 2018-02-20 Zan Dobersek <zdobersek@igalia.com> |
| |
| [Cairo] Drop target GraphicsContext usage in Cairo operations |
| https://bugs.webkit.org/show_bug.cgi?id=182964 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| The GraphicsContext parameters in various Cairo operations are not used |
| anymore, so they can be removed. Callsites are updated to reflect this. |
| |
| * Shared/cairo/ShareableBitmapCairo.cpp: |
| (WebKit::ShareableBitmap::paint): |
| * WebProcess/WebCoreSupport/gtk/WebDragClientGtk.cpp: |
| (WebKit::convertCairoSurfaceToShareableBitmap): |
| |
| 2018-02-20 Philippe Normand <pnormand@igalia.com> |
| |
| [GStreamer][MiniBrowser] Honor GStreamer command line parameters in MiniBrowser |
| https://bugs.webkit.org/show_bug.cgi?id=173655 |
| |
| Reviewed by Xabier Rodriguez-Calvar. |
| |
| The FIXME in GStreamerUtilities.cpp asks to pass the command line |
| parameters to the GStreamer initialization function. |
| |
| Based on initial patch by: Vanessa Chipirrás Navalón <vchipirras@igalia.com> |
| |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::encode const): |
| (WebKit::WebProcessCreationParameters::decode): |
| * Shared/WebProcessCreationParameters.h: Define the vector which contains the GStreamer options. |
| * UIProcess/gtk/WebProcessPoolGtk.cpp: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): Read from cmdline file |
| the GStreamer options written by console. |
| * WebProcess/soup/WebProcessSoup.cpp: |
| (WebKit::WebProcess::platformInitializeWebProcess): Call initializeGStreamer() method passing |
| the vector which contains the options. |
| |
| 2018-02-20 Yousuke Kimoto <yousuke.kimoto@sony.com> |
| |
| [Win] Fix MSVC's treating __attribute__((warn_unused_result)) |
| https://bugs.webkit.org/show_bug.cgi?id=182479 |
| |
| Reviewed by Darin Adler. |
| |
| Since MSVC doesn't understand "__attribute__", "_Check_return_" is used instead. |
| If clang and VisualStudio 2017 are used, a macro with "__attriute__" will be chosen. |
| |
| * UIProcess/API/cpp/WKRetainPtr.h: |
| |
| 2018-02-19 Brady Eidson <beidson@apple.com> |
| |
| Add WebProcessPool option for process swapping on navigation. |
| https://bugs.webkit.org/show_bug.cgi?id=182945 |
| |
| Reviewed by Alex Christensen. |
| |
| Just the most basic groundwork for testing a new WK2 feature. |
| |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| |
| * UIProcess/API/C/WKContextConfigurationRef.cpp: |
| (WKContextConfigurationProcessSwapsOnNavigation): |
| (WKContextConfigurationSetProcessSwapsOnNavigation): |
| * UIProcess/API/C/WKContextConfigurationRef.h: |
| |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: |
| (-[_WKProcessPoolConfiguration setProcessSwapsOnNavigation:]): |
| (-[_WKProcessPoolConfiguration processSwapsOnNavigation]): |
| |
| 2018-02-19 Daniel Bates <dabates@apple.com> |
| |
| Null pointer dereference in WebPageProxy::urlSchemeHandlerForScheme() |
| https://bugs.webkit.org/show_bug.cgi?id=182905 |
| <rdar://problem/37676775> |
| |
| Reviewed by Alex Christensen. |
| |
| Return nullptr when querying for the scheme handler of the null string. |
| |
| Before a navigation is performed WebKit checks if the destination URL is associated with an app |
| unless the embedding client overrides the WKNavigationDelegate delegate callback -webView:decidePolicyForNavigationAction:decisionHandler. |
| If the URL is not associated with an app then WebKit may fall back to checking if the embedding |
| client registered a scheme handler for it. Currently we assume that the scheme is a non-null |
| string when checking the scheme handler registry. However the scheme can be a null string if |
| it is part of a malformed URL. And this leads to bad news bears when we try to use it to look |
| for a scheme handler. Instead check that the scheme is a non-null string before checking to see |
| if it is in the scheme handler registry. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::urlSchemeHandlerForScheme): |
| |
| 2018-02-19 Eric Carlson <eric.carlson@apple.com> |
| |
| [Extra zoom mode] Don't allow PiP media playback |
| https://bugs.webkit.org/show_bug.cgi?id=182930 |
| <rdar://problem/37676259> |
| |
| Reviewed by Andy Estes. |
| |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: |
| (-[WKWebViewConfiguration init]): Don't enable PiP mode. Require user interaction for |
| all media types. |
| |
| 2018-02-19 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r228696. |
| |
| The API test added with this change is timing out on macOS. |
| |
| Reverted changeset: |
| |
| "Null pointer dereference in |
| WebPageProxy::urlSchemeHandlerForScheme()" |
| https://bugs.webkit.org/show_bug.cgi?id=182905 |
| https://trac.webkit.org/changeset/228696 |
| |
| 2018-02-19 Daniel Bates <dabates@apple.com> |
| |
| Null pointer dereference in WebPageProxy::urlSchemeHandlerForScheme() |
| https://bugs.webkit.org/show_bug.cgi?id=182905 |
| |
| Reviewed by Alex Christensen. |
| |
| Return nullptr when querying for the scheme handler of the null string. |
| |
| Before a navigation is performed WebKit checks if the destination URL is associated with an app |
| unless the embedding client overrides the WKNavigationDelegate delegate callback -webView:decidePolicyForNavigationAction:decisionHandler. |
| If the URL is not associated with an app then WebKit may fall back to checking if the embedding |
| client registered a scheme handler for it. Currently we assume that the scheme is a non-null |
| string when checking the scheme handler registry. However the scheme can be a null string if |
| it is part of a malformed URL. And this leads to bad news bears when we try to use it to look |
| for a scheme handler. Instead check that the scheme is a non-null string before checking to see |
| if it is in the scheme handler registry. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::urlSchemeHandlerForScheme): |
| |
| 2018-02-19 Ms2ger <Ms2ger@igalia.com> |
| |
| Explicitly qualify some method calls on this in lamdas in Service Worker code. |
| https://bugs.webkit.org/show_bug.cgi?id=182875 |
| |
| Reviewed by Chris Dumez. |
| |
| This is necessary for the code to build with GCC 5. Other code already |
| appears to have been adapted similarly. |
| |
| * StorageProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::startFetch): |
| |
| 2018-02-18 Reza Abbasian <rabbasian@apple.com> |
| |
| Set the appropriate AutoFill context for suggested passwords. |
| https://bugs.webkit.org/show_bug.cgi?id=182718 |
| <rdar://problem/36326863> |
| |
| Reviewed by Wenson Hsieh and Tim Horton. |
| |
| Before starting the input session, call the new delegate to query if AutoFill password suggestion assistance |
| is required for the focused element. |
| |
| * UIProcess/API/Cocoa/_WKFormInputSession.h: |
| * UIProcess/API/Cocoa/_WKInputDelegate.h: |
| Introduce a new delegate to be called before starting an input session to query if AutoFill password suggestion |
| assistance is required for the focused element. |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKFormInputSession initWithContentView:focusedElementInfo:requiresStrongPasswordAssistance:]): |
| (-[WKFormInputSession requiresStrongPasswordAssistance]): |
| (-[WKContentView cleanupInteraction]): |
| (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]): |
| Call the delegate to find out if AutoFill suggested password assistance is required. |
| (-[WKContentView _stopAssistingNode]): |
| (-[WKContentView _autofillContext]): If the first responder is a password element and requires |
| assistance for AutoFill suggested password, set the appropriate AutoFill context. |
| (-[WKFormInputSession initWithContentView:focusedElementInfo:]): Deleted. |
| |
| 2018-02-17 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Form control values are stale after dismissing and representing input view controllers |
| https://bugs.webkit.org/show_bug.cgi?id=182877 |
| <rdar://problem/37604395> |
| |
| Reviewed by Tim Horton. |
| |
| Currently, when presenting an input view controller for a focused element, we populate the initial form control |
| value using the WKContentView's assisted node information when it was last focused. However, if the user edits |
| the value of a form control, dismisses to the form control view controller (while the element is still focused) |
| and then begins editing the field again, the initial text will be the previous value of the input, since the |
| AssistedNodeInformation isn't up to date. |
| |
| To fix this, we introduce a mechanism to update WKContentView's AssistedNodeInformation for the current assisted |
| node. This overwrites _assistedNodeInformation with new information computed from the web process, as long as |
| the assisted node before and after the request is made in the UI process has not changed. We accomplish this by |
| adding an identifier to AssistedNodeInformation, which is monotonically incremented when an element is focused |
| in the web process. The UI process may then use this identifier to determine whether AssistedNodeInformations |
| are describing the same focused element. |
| |
| One interesting consideration here is that a normal AssistedNodeInformation update (propagated when focusing an |
| element) may be deferred in the UI process until the next layer tree commit. In the absence of the assisted node |
| identifier check, one could imagine a scenario in which the assisted node information in the UI process gets |
| "updated" from a new value to an old value: |
| |
| 1. The web process focuses an element and sends AssistedNodeInformation `A`. |
| 2. WKContentView calls -updateCurrentAssistedNodeInformation. |
| 3. The web process sends AssistedNodeInformation `B`. |
| 4. `A` is received in the UI process, but deferred. |
| 5. The UI process receives `B` and sets _assistedNodeInformation to `B`. |
| 6. The UI process calls -_startAssistingNode: and sets _assistedNodeInformation to `A`. |
| |
| This would mean that the _assistedNodeInformation is set to an earlier value, `A`, after being set to a later |
| value, `B`. However, because the AssistedNodeInformation identifier in step (2) refers to the assisted node |
| prior to step (1), the assisted node identifier in (5) would not match this identifier, and we would simply bail |
| instead of overwriting assisted node information. |
| |
| We use this AssistedNodeInformation update mechanism after inserting text via input view controllers, and also |
| after reentering edit mode from the focused form control view controller. This fixes two issues where changing |
| the size of the focused element after editing it results in the focused form overlay highlighting a stale frame, |
| and also when setting the initial text when reentering edit mode for a form control that is already focused. |
| |
| * Shared/AssistedNodeInformation.cpp: |
| (WebKit::AssistedNodeInformation::encode const): |
| (WebKit::AssistedNodeInformation::decode): |
| * Shared/AssistedNodeInformation.h: |
| |
| Add a new monotonically increasing identifier (per WebPage) which associates a AssistedNodeInformation with a |
| focused element. In the event that the web process crashes and relaunches (thus resetting this identifier), |
| AssistedNodeInformation state in the UI process is now also reset (see -cleanupInteraction), so we won't end up |
| confusing AssistedNodeInformations computed by different WebPages between a web process crash. |
| |
| * UIProcess/WebPageProxy.h: |
| |
| A bit of related refactoring here to remove an unnecessary bool flag that indicates whether we have a deferred |
| assisted node information. Instead, just use the presence of m_deferredNodeAssistanceArguments. |
| |
| * UIProcess/WebPageProxy.messages.in: |
| |
| Add a AssistedNodeInformationCallback IPC message. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView cleanupInteraction]): |
| |
| Clear out the previous AssistedNodeInformation. See above for details. |
| |
| (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]): |
| (-[WKContentView updateCurrentAssistedNodeInformation:]): |
| |
| Tries to update AssistedNodeInformation for the current assisted node, invoking the completion callback when |
| finished. This may result in the assisted node information not being updated due to the current assisted node |
| changing in the time between the start of the request and the information being received in the UI process. |
| |
| (-[WKContentView presentViewControllerForCurrentAssistedNode]): |
| |
| Refactored from -presentViewControllerForAssistedNode:, such that it no longer takes an AssistedNodeInformation |
| as an argument, but rather just uses WKContentView's current _assistedNodeInformation. This was just being |
| called with _assistedNodeInformation from all call sites anyways. |
| |
| (-[WKContentView textInputController:didCommitText:]): |
| |
| Request an AssistedNodeInformation update after setting the value of a form control; if the assisted node hasn't |
| changed, update the focused form control overlay. This is needed to handle cases where the focused element's |
| frame may have changed after inserting text (e.g. due to line wrapping), and the focused form control overlay |
| needs to be updated to reflect this change. |
| |
| (-[WKContentView focusedFormControlControllerDidBeginEditing:]): |
| |
| Request an AssistedNodeInformation update before reentering edit mode; if the assisted node hasn't changed since |
| the start of the request, present the appropriate input view controller. |
| |
| (-[WKContentView presentViewControllerForAssistedNode:]): Deleted. |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::assistedNodeInformationCallback): |
| (WebKit::WebPageProxy::requestAssistedNodeInformation): |
| (WebKit::WebPageProxy::didCommitLayerTree): |
| (WebKit::WebPageProxy::startAssistingNode): |
| (WebKit::WebPageProxy::stopAssistingNode): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::elementDidFocus): |
| |
| Increment the assisted node identifier. |
| |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::requestAssistedNodeInformation): |
| |
| Compute and return an AssistedNodeInformation. |
| |
| (WebKit::WebPage::getAssistedNodeInformation): |
| |
| 2018-02-16 Dean Jackson <dino@apple.com> |
| |
| Use OPENGL macros to be more clear about which OpenGL/ES WebGL uses on Cocoa |
| https://bugs.webkit.org/show_bug.cgi?id=182894 |
| |
| Reviewed by Tim Horton. |
| |
| Rename OPENGL_ES_2 to OPENGL_ES. |
| |
| * CMakeLists.txt: |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: |
| * UIProcess/gtk/AcceleratedBackingStoreWayland.cpp: |
| (WebKit::AcceleratedBackingStoreWayland::paint): |
| * UIProcess/gtk/WaylandCompositor.cpp: |
| (WebKit::WaylandCompositor::initializeEGL): |
| |
| 2018-02-16 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Add an entitlement check for service worker on iOS |
| https://bugs.webkit.org/show_bug.cgi?id=182865 |
| <rdar://problem/37505903> |
| |
| Reviewed by Brady Eidson. |
| |
| Added an entitlement check to enable service workers on iOS. |
| |
| * Shared/mac/SandboxUtilities.h: |
| * Shared/mac/SandboxUtilities.mm: |
| (WebKit::connectedProcessHasEntitlement): Added. |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::createStorageToWebProcessConnection): Enforce the entitlement check by crashing |
| when this code is executed without the parent process having the service worker entitlement. This should |
| never happen unless someone is trying to bypass the entitlement check in UI Process since we ordinarily |
| disable service worker gracefully in WKWebView _initializeWithConfiguration. |
| (WebKit::StorageProcess::swServerForSession): Ditto. |
| (WebKit::StorageProcess::registerSWServerConnection): Ditto. |
| * StorageProcess/StorageProcess.h: |
| (WebKit::StorageProcess::parentProcessHasServiceWorkerEntitlement const): Added. |
| * StorageProcess/ios/StorageProcessIOS.mm: |
| (WebKit::StorageProcess::parentProcessHasServiceWorkerEntitlement const): Added. |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): Disable the service workers when the entitlement is |
| missing from the current process. The entitlement is enforced by WebContent and Storage process. |
| This check avoids crashing WebContent process and gracefully disabling the feature. |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::updatePreferences): Enforce the entitlement check. |
| * WebProcess/WebPage/WebPage.h: |
| (WebKit::WebPage::parentProcessHasServiceWorkerEntitlement const): Added. |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::parentProcessHasServiceWorkerEntitlement const): Added. |
| |
| 2018-02-16 Youenn Fablet <youenn@apple.com> |
| |
| Allow specifying which plug-ins are supported |
| https://bugs.webkit.org/show_bug.cgi?id=182748 |
| |
| Reviewed by Chris Dumez. |
| |
| Add a C and ObjC API to set which plug-ins are specified. |
| Plug-ins may be allowed by origin of the main page or for all origins. |
| |
| If the API to set a supported plug-in is called, WebKit enters a mode |
| where it will block any plug-in that is not on the list. |
| |
| The list of supported plug-ins is stored in UIProcess and sent to WebProcess. |
| This allows to compute the list of visible plug-ins according supported plugins. |
| |
| PluginInfoStore is storing the list of supported plugins and can |
| answer whether a plug-in creation request is to be made unsupported or not. |
| It also creates the structure sent to WebProcess for computing plugin visibility. |
| |
| Updated ArgumentCoders to accept modern HashSet decoders. |
| |
| * Platform/IPC/ArgumentCoders.h: |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextAddSupportedPlugin): |
| (WKContextClearSupportedPlugins): |
| * UIProcess/API/C/WKContextPrivate.h: |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _addSupportedPlugin:named:withMimeTypes:withExtensions:]): |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/Plugins/PluginInfoStore.cpp: |
| (WebKit::PluginInfoStore::isSupportedPlugin): |
| (WebKit::PluginInfoStore::SupportedPlugins::isSupported): |
| (WebKit::PluginInfoStore::SupportedPlugin::isSupported): |
| (WebKit::PluginInfoStore::supportedPluginNames): |
| (WebKit::PluginInfoStore::addSupportedPlugin): |
| * UIProcess/Plugins/PluginInfoStore.h: |
| (WebKit::PluginInfoStore::clearSupportedPlugins): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::findPlugin): |
| (WebKit::WebPageProxy::unavailablePluginButtonClicked): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::addSupportedPlugin): |
| (WebKit::WebProcessPool::clearSupportedPlugins): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::getPlugins): |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebProcessProxy.messages.in: |
| * WebProcess/Plugins/WebPluginInfoProvider.cpp: |
| (WebKit::WebPluginInfoProvider::getPluginInfo): |
| (WebKit::WebPluginInfoProvider::getWebVisiblePluginInfo): |
| (WebKit::WebPluginInfoProvider::populatePluginCache): |
| * WebProcess/Plugins/WebPluginInfoProvider.h: |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::shouldUnavailablePluginMessageBeButton const): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::createPlugin): |
| (WebKit::WebPage::canPluginHandleResponse): |
| |
| 2018-02-16 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthN] Implement PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable() |
| https://bugs.webkit.org/show_bug.cgi?id=182771 |
| <rdar://problem/36459988> |
| |
| Reviewed by Brent Fulgham. |
| |
| This patch utilizes LocalAuthentication Framework to determine if biometrics |
| are enrolled on a device, which is the user verifying platform authenticator. |
| To do so, it links the framework to WebKit. |
| |
| * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.cpp: |
| (WebKit::WebCredentialsMessengerProxy::isUserVerifyingPlatformAuthenticatorAvailable): |
| (WebKit::WebCredentialsMessengerProxy::isUserVerifyingPlatformAuthenticatorAvailableReply): |
| * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.h: |
| * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.messages.in: |
| * UIProcess/CredentialManagement/cocoa/WebCredentialsMessengerProxyCocoa.mm: |
| (WebKit::WebCredentialsMessengerProxy::platformIsUserVerifyingPlatformAuthenticatorAvailable): |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/CredentialManagement/WebCredentialsMessenger.cpp: |
| (WebKit::WebCredentialsMessenger::isUserVerifyingPlatformAuthenticatorAvailable): |
| (WebKit::WebCredentialsMessenger::isUserVerifyingPlatformAuthenticatorAvailableReply): |
| * WebProcess/CredentialManagement/WebCredentialsMessenger.h: |
| * WebProcess/CredentialManagement/WebCredentialsMessenger.messages.in: |
| |
| 2018-02-16 Per Arne Vollan <pvollan@apple.com> |
| |
| Implement stopping of run loop in the WebContent process when using NSRunLoop. |
| https://bugs.webkit.org/show_bug.cgi?id=182499 |
| <rdar://problem/37247424> |
| |
| Reviewed by Brent Fulgham. |
| |
| Add the method ChildProcess::stopNSRunLoop to end the WebContent process by executing a block |
| with 'exit(0)' on the main run loop. |
| |
| * Shared/ChildProcess.h: |
| * Shared/mac/ChildProcessMac.mm: |
| (WebKit::ChildProcess::stopNSRunLoop): |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::platformInitializeWebProcess): |
| (WebKit::WebProcess::stopRunLoop): |
| |
| 2018-02-16 Yousuke Kimoto <yousuke.kimoto@sony.com> |
| |
| [WinCario] Add NetworkSessionCurl |
| https://bugs.webkit.org/show_bug.cgi?id=182680 |
| |
| Reviewed by Konstantin Tokarev. |
| |
| * NetworkProcess/NetworkSession.cpp: |
| (WebKit::NetworkSession::create): |
| * PlatformWin.cmake: |
| |
| 2018-02-16 Chris Dumez <cdumez@apple.com> |
| |
| ASSERTION FAILED: !m_processes[i] || *m_processes[i] == process in MessagePortChannel::entanglePortWithProcess() |
| https://bugs.webkit.org/show_bug.cgi?id=182054 |
| <rdar://problem/36871207> |
| |
| Reviewed by Brady Eidson. |
| |
| Pipe postMessage messages to and from service workers via the UIProcess instead of going |
| directly to the StorageProcess. This is temporarily needed to avoid races due to the |
| MessagePort registry currently living in the UIProcess and postMessage messages potentially |
| sending MessagePort objects. |
| |
| This change is covered by tests on the bots that currently flakily crash in debug. |
| |
| * StorageProcess/ServiceWorker/WebSWServerConnection.h: |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::postMessageToServiceWorker): |
| * StorageProcess/StorageProcess.h: |
| * StorageProcess/StorageProcess.messages.in: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::postMessageToServiceWorkerClient): |
| (WebKit::WebProcessPool::postMessageToServiceWorker): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessPool.messages.in: |
| * WebProcess/Storage/WebSWClientConnection.cpp: |
| (WebKit::WebSWClientConnection::postMessageToServiceWorker): |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::postMessageToServiceWorkerClient): |
| |
| 2018-02-16 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Add basic support for <input type='date'> using date picker UI |
| https://bugs.webkit.org/show_bug.cgi?id=182847 |
| <rdar://problem/35143111> |
| |
| Reviewed by Tim Horton. |
| |
| Add support for presenting date pickers when focusing a date input. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _stopAssistingNode]): |
| (-[WKContentView dismissAllInputViewControllers]): |
| |
| Pull logic to dismiss input view controllers into a single helper. |
| |
| (-[WKContentView presentDatePickerViewController:]): |
| (-[WKContentView dismissDatePickerViewController:]): |
| (-[WKContentView presentViewControllerForAssistedNode:]): |
| (-[WKContentView textInputController:didCommitText:]): |
| (-[WKContentView _wheelChangedWithEvent:]): |
| |
| Delegate wheel events to the date picker. |
| |
| * UIProcess/ios/forms/WKDatePickerViewController.h: Added. |
| * UIProcess/ios/forms/WKDatePickerViewController.mm: Added. |
| |
| Add harness files for the WKDatePickerViewController implementation in WebKitAdditions. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-02-15 Youenn Fablet <youenn@apple.com> |
| |
| Resources loaded from service workers are not downloadable |
| https://bugs.webkit.org/show_bug.cgi?id=182848 |
| |
| Reviewed by Chris Dumez. |
| |
| Downloads are not supporting resources loaded through service worker. |
| As a temporary solution, we will let network process handle it. |
| Note that this would not work if the URL can only be loaded through service worker. |
| Note also that for navigation loads, if the content type is the default one (application/octet-stream) we are overriding it to |
| text/html as we do not support mime sniffing yet from service worker responses. |
| This might interfere with automatic downloads from navigation. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::convertMainResourceLoadToDownload): |
| |
| 2018-02-15 Megan Gardner <megan_gardner@apple.com> |
| |
| Support scrolling for non-editable web-selection and start autoscroll when near screen edges |
| https://bugs.webkit.org/show_bug.cgi?id=182815 |
| |
| Add support for autoscrolling during a selection. This also takes into account the edges of the screen |
| and starts autoscrolling when you get close, while still allowing autoscrolling when you are past the bounds |
| of the WebView. |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView startAutoscroll:]): |
| (-[WKContentView resignFirstResponderForWebView]): |
| (-[WKContentView useSelectionAssistantWithGranularity:]): |
| (-[WKContentView selectedTextRange]): |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::startAutoscrollAtPosition): |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::startAutoscrollAtPosition): |
| (WebKit::WebPage::cancelAutoscroll): |
| |
| 2018-02-15 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Make sure WebResourceLoadStatisticsStore::mergeWithDataFromDecoder() can ingest older plist versions and not reset the database |
| https://bugs.webkit.org/show_bug.cgi?id=182812 |
| <rdar://problem/37511406> |
| |
| Reviewed by Brent Fulgham. |
| |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::mergeWithDataFromDecoder): |
| Now does the following: |
| - Logs when there is a model version mismatch. |
| - Does not ingest statistics if the version on disk is newer than the supported one. |
| - Does ingest statistics if the version on disk is older than the supported one. |
| - Passes on the version found on disk to WebCore::ResourceLoadStatistics::decode(). |
| |
| 2018-02-15 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthN] Revisit the whole async model of task dispatching, timeout and aborting |
| https://bugs.webkit.org/show_bug.cgi?id=181946 |
| <rdar://problem/37258262> |
| |
| Reviewed by Chris Dumez. |
| |
| Dummy WebCredentialsMessenger and WebCredentialsMessengerProxy are crafted to establish |
| a message exchange channel between UIProcess and WebProcess. |
| |
| * DerivedSources.make: |
| * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.cpp: Copied from Source/WebCore/Modules/webauthn/AuthenticatorResponse.h. |
| (WebKit::WebCredentialsMessengerProxy::WebCredentialsMessengerProxy): |
| (WebKit::WebCredentialsMessengerProxy::~WebCredentialsMessengerProxy): |
| (WebKit::WebCredentialsMessengerProxy::makeCredential): |
| (WebKit::WebCredentialsMessengerProxy::getAssertion): |
| * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.h: Copied from Source/WebCore/Modules/webauthn/AuthenticatorResponse.h. |
| * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.messages.in: Added. |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::m_configurationPreferenceValues): |
| (WebKit::WebPageProxy::reattachToWebProcess): |
| (WebKit::WebPageProxy::resetState): |
| * UIProcess/WebPageProxy.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/CredentialManagement/WebCredentialsMessenger.cpp: Copied from Source/WebCore/Modules/webauthn/AuthenticatorResponse.h. |
| (WebKit::WebCredentialsMessenger::WebCredentialsMessenger): |
| (WebKit::WebCredentialsMessenger::~WebCredentialsMessenger): |
| (WebKit::WebCredentialsMessenger::makeCredential): |
| (WebKit::WebCredentialsMessenger::getAssertion): |
| (WebKit::WebCredentialsMessenger::makeCredentialReply): |
| (WebKit::WebCredentialsMessenger::getAssertionReply): |
| * WebProcess/CredentialManagement/WebCredentialsMessenger.h: Copied from Source/WebCore/Modules/webauthn/AuthenticatorResponse.h. |
| * WebProcess/CredentialManagement/WebCredentialsMessenger.messages.in: Added. |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_credentialsMessenger): |
| (WebKit::m_cpuLimit): Deleted. |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2018-02-15 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [WPE] Unify build of platform-specific files in WebKit layer |
| https://bugs.webkit.org/show_bug.cgi?id=182696 |
| |
| Reviewed by Žan Doberšek. |
| |
| This is easy, because all needed changes were made in the previously-landed patch. |
| |
| * CMakeLists.txt: |
| * PlatformWPE.cmake: |
| |
| 2018-02-15 Don Olmstead <don.olmstead@sony.com> |
| |
| WebCore headers should not be included relatively within dependent projects |
| https://bugs.webkit.org/show_bug.cgi?id=182805 |
| |
| Reviewed by Chris Dumez. |
| |
| * NetworkProcess/capture/NetworkCaptureManager.cpp: |
| * NetworkProcess/webrtc/NetworkRTCMonitor.h: |
| * Shared/gtk/WebEventFactory.cpp: |
| * UIProcess/API/gtk/PageClientImpl.cpp: |
| * UIProcess/API/gtk/WebKitWebViewBase.cpp: |
| * UIProcess/gtk/WebPageProxyGtk.cpp: |
| * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp: |
| * WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp: |
| * WebProcess/WebCoreSupport/wpe/WebEditorClientWPE.cpp: |
| * WebProcess/WebPage/gtk/WebPageGtk.cpp: |
| * WebProcess/WebPage/wpe/WebPageWPE.cpp: |
| |
| 2018-02-15 Matt Lewis <jlewis3@apple.com> |
| |
| Unreviewed, rolling out r228495. |
| |
| This caused mulitple perf tests to fail consistently. |
| |
| Reverted changeset: |
| |
| "Resource Load Statistics: Make sure |
| WebResourceLoadStatisticsStore::mergeWithDataFromDecoder() can |
| ingest older plist versions and not reset the database" |
| https://bugs.webkit.org/show_bug.cgi?id=182812 |
| https://trac.webkit.org/changeset/228495 |
| |
| 2018-02-14 Ross Kirsling <ross.kirsling@sony.com> |
| |
| Default definition of InjectedBundle::PlatformBundle should not be Windows-specific. |
| https://bugs.webkit.org/show_bug.cgi?id=182810 |
| |
| Reviewed by Michael Catanzaro. |
| |
| This branch was added in r228455, but should not be limited to OS(WINDOWS). |
| |
| * WebProcess/InjectedBundle/InjectedBundle.h: |
| |
| 2018-02-14 Ross Kirsling <ross.kirsling@sony.com> |
| |
| Default implementations of nativeEvent() should be platform-agnostic. |
| https://bugs.webkit.org/show_bug.cgi?id=182806 |
| |
| Reviewed by Darin Adler. |
| |
| * Shared/NativeWebKeyboardEvent.h: |
| * Shared/NativeWebMouseEvent.h: |
| * Shared/NativeWebWheelEvent.h: |
| |
| 2018-02-14 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Make sure WebResourceLoadStatisticsStore::mergeWithDataFromDecoder() can ingest older plist versions and not reset the database |
| https://bugs.webkit.org/show_bug.cgi?id=182812 |
| <rdar://problem/37511406> |
| |
| Reviewed by Brent Fulgham. |
| |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::mergeWithDataFromDecoder): |
| Now does the following: |
| - Logs when there is a model version mismatch. |
| - Does not ingest statistics if the version on disk is newer than the supported one. |
| - Does ingest statistics if the version on disk is older than the supported one. |
| - Passes on the version found on disk to WebCore::ResourceLoadStatistics::decode(). |
| |
| 2018-02-14 Daniel Bates <dabates@apple.com> |
| |
| Disallow cross-origin subresources from asking for credentials |
| https://bugs.webkit.org/show_bug.cgi?id=182579 |
| <rdar://problem/36162271> |
| |
| Reviewed by Andy Estes. |
| |
| Add a private preference to toggle allowing non-mixed content cross-origin subresources to load. |
| WebKitTestRunner toggles this preference when it sees the test option allowCrossOriginSubresourcesToAskForCredential. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetAllowCrossOriginSubresourcesToAskForCredentials): |
| (WKPreferencesGetAllowCrossOriginSubresourcesToAskForCredentials): |
| * UIProcess/API/C/WKPreferencesRefPrivate.h: |
| |
| 2018-02-14 John Wilander <wilander@apple.com> |
| |
| Make maximumParallelReadCount static to fix lambda capture error in WebKit::NetworkCache::Storage::traverse() |
| https://bugs.webkit.org/show_bug.cgi?id=182797 |
| <rdar://problem/37540594> |
| |
| Reviewed by Tim Horton. |
| |
| This capture was added in r228455 and causes a build failure when |
| run with -Wunused-lambda-capture. Xcode also warns about it. |
| |
| * NetworkProcess/cache/NetworkCacheStorage.cpp: |
| (WebKit::NetworkCache::Storage::traverse): |
| |
| 2018-02-14 Ryosuke Niwa <rniwa@webkit.org> |
| |
| EventDispatcher::wheelEvent uses a wrong enum values in switch |
| https://bugs.webkit.org/show_bug.cgi?id=182796 |
| |
| Reviewed by Chris Dumez. |
| |
| EventDispatcher::wheelEvent is using PlatformWheelEventPhaseBegan and PlatformWheelEventPhaseEnded |
| but the enum type of wheelEvent.phase() is WebWheelEvent::Phase. |
| |
| The enum values are indentical for both so there is no behavioral change. |
| |
| * WebProcess/WebPage/EventDispatcher.cpp: |
| (WebKit::EventDispatcher::wheelEvent): |
| |
| 2018-02-14 Maureen Daum <mdaum@apple.com> |
| |
| Add C SPI for support of Website Data Store in Website Policies |
| https://bugs.webkit.org/show_bug.cgi?id=182698 |
| <rdar://problem/37412008> |
| |
| Reviewed by Andy Estes. |
| |
| Expand the API added for _WKWebsitePolicies.websiteDataStore in r225989 and r226325 |
| to be available in the C API. In the ObjC API, we handle setting the website data |
| store in NavigationState::NavigationClient::decidePolicyForNavigationAction. There |
| we throw an exception if setting the website data store isn't supported, and then |
| change the website data store. The equivalent place to do this work in the C API is |
| in WKFramePolicyListenerUseWithPolicies. However, instead of throwing exceptions, |
| release asserts are used. |
| |
| * UIProcess/API/C/WKFramePolicyListener.cpp: |
| (WKFramePolicyListenerUseWithPolicies): |
| If the website policies data contains a website data store, do the same checks that |
| are done in NavigationState::NavigationClient::decidePolicyForNavigationAction. Namely, |
| that it is a valid website data store and it is a policy decision for a main frame navigation. |
| If these checks are met, change the website data store. |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageUpdateWebsitePolicies): |
| * UIProcess/API/C/WKWebsitePolicies.cpp: |
| (WKWebsitePoliciesGetDataStore): |
| (WKWebsitePoliciesSetDataStore): |
| * UIProcess/API/C/WKWebsitePolicies.h: |
| * UIProcess/WebFrameListenerProxy.cpp: |
| (WebKit::WebFrameListenerProxy::changeWebsiteDataStore): |
| (WebKit::WebFrameListenerProxy::isMainFrame): |
| Expose whether the frame proxy is for a main frame, which is required to verify that |
| website policies only specify a website data store for main frame policy decisions. |
| * UIProcess/WebFrameListenerProxy.h: |
| * UIProcess/WebFramePolicyListenerProxy.cpp: |
| * UIProcess/WebFrameProxy.cpp: |
| (WebKit::WebFrameProxy::changeWebsiteDataStore): |
| * UIProcess/WebFrameProxy.h: |
| |
| 2018-02-14 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r228444. |
| |
| Introduced API and Layout test failures. |
| |
| Reverted changeset: |
| |
| "[WebAuthN] Revisit the whole async model of task dispatching, |
| timeout and aborting" |
| https://bugs.webkit.org/show_bug.cgi?id=181946 |
| https://trac.webkit.org/changeset/228444 |
| |
| 2018-02-13 Yousuke Kimoto <yousuke.kimoto@sony.com> |
| |
| [WinCairo] Fix build errors which come from including headers and not suitable implementation for windows |
| https://bugs.webkit.org/show_bug.cgi?id=182679 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * NetworkProcess/cache/NetworkCacheBlobStorage.cpp: |
| (WebKit::NetworkCache::BlobStorage::add): |
| * NetworkProcess/cache/NetworkCacheData.cpp: |
| (WebKit::NetworkCache::Data::mapToFile const): |
| (WebKit::NetworkCache::mapFile): |
| (WebKit::NetworkCache::adoptAndMapFile): |
| (WebKit::NetworkCache::readOrMakeSalt): |
| * NetworkProcess/cache/NetworkCacheFileSystem.cpp: |
| (WebKit::NetworkCache::directoryEntryType): |
| (WebKit::NetworkCache::traverseDirectory): |
| (WebKit::NetworkCache::fileTimes): |
| (WebKit::NetworkCache::updateFileModificationTimeIfNeeded): |
| * NetworkProcess/cache/NetworkCacheStorage.cpp: |
| (WebKit::NetworkCache::Storage::traverse): |
| * NetworkProcess/win/SystemProxyWin.h: |
| * Platform/IPC/Attachment.h: |
| * Platform/Module.h: |
| * Platform/SharedMemory.h: |
| * PluginProcess/WebProcessConnection.cpp: |
| * Shared/API/c/WKBase.h: |
| * Shared/ChildProcess.cpp: |
| * Shared/WebCoreArgumentCoders.h: |
| * UIProcess/ProcessAssertion.h: |
| * WebProcess/InjectedBundle/InjectedBundle.h: |
| * WebProcess/WebProcess.cpp: |
| |
| 2018-02-13 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r228431. |
| https://bugs.webkit.org/show_bug.cgi?id=182766 |
| |
| Regressed CMake build stability (Requested by dolmstead on |
| #webkit). |
| |
| Reverted changeset: |
| |
| "[CMake] Make WebCore headers copies" |
| https://bugs.webkit.org/show_bug.cgi?id=182512 |
| https://trac.webkit.org/changeset/228431 |
| |
| 2018-02-13 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthN] Revisit the whole async model of task dispatching, timeout and aborting |
| https://bugs.webkit.org/show_bug.cgi?id=181946 |
| <rdar://problem/37258262> |
| |
| Reviewed by Chris Dumez. |
| |
| Dummy WebCredentialsMessenger and WebCredentialsMessengerProxy are crafted to establish |
| a message exchange channel between UIProcess and WebProcess. |
| |
| * DerivedSources.make: |
| * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.cpp: Copied from Source/WebCore/Modules/webauthn/AuthenticatorResponse.h. |
| (WebKit::WebCredentialsMessengerProxy::WebCredentialsMessengerProxy): |
| (WebKit::WebCredentialsMessengerProxy::~WebCredentialsMessengerProxy): |
| (WebKit::WebCredentialsMessengerProxy::makeCredential): |
| (WebKit::WebCredentialsMessengerProxy::getAssertion): |
| * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.h: Copied from Source/WebCore/Modules/webauthn/AuthenticatorResponse.h. |
| * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.messages.in: Added. |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::m_configurationPreferenceValues): |
| (WebKit::WebPageProxy::reattachToWebProcess): |
| * UIProcess/WebPageProxy.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/CredentialManagement/WebCredentialsMessenger.cpp: Copied from Source/WebCore/Modules/webauthn/AuthenticatorResponse.h. |
| (WebKit::WebCredentialsMessenger::WebCredentialsMessenger): |
| (WebKit::WebCredentialsMessenger::~WebCredentialsMessenger): |
| (WebKit::WebCredentialsMessenger::makeCredential): |
| (WebKit::WebCredentialsMessenger::getAssertion): |
| (WebKit::WebCredentialsMessenger::makeCredentialReply): |
| (WebKit::WebCredentialsMessenger::getAssertionReply): |
| * WebProcess/CredentialManagement/WebCredentialsMessenger.h: Copied from Source/WebCore/Modules/webauthn/AuthenticatorResponse.h. |
| * WebProcess/CredentialManagement/WebCredentialsMessenger.messages.in: Added. |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_credentialsMessenger): |
| (WebKit::m_cpuLimit): Deleted. |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2018-02-13 Youenn Fablet <youenn@apple.com> |
| |
| Add support for configuring WebsiteDatastore service worker and cache storage path |
| https://bugs.webkit.org/show_bug.cgi?id=182674 |
| |
| Reviewed by Chris Dumez. |
| |
| Beef up WKWebsiteDataStoreConfiguration to easily set the WebsiteDataStore |
| service worker registration and cache storage directory path. |
| |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _initWithConfiguration:]): |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h: |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm: |
| (-[_WKWebsiteDataStoreConfiguration _cacheStorageDirectory]): |
| (-[_WKWebsiteDataStoreConfiguration _setCacheStorageDirectory:]): |
| (-[_WKWebsiteDataStoreConfiguration _serviceWorkerRegistrationDirectory]): |
| (-[_WKWebsiteDataStoreConfiguration _setServiceWorkerRegistrationDirectory:]): |
| |
| 2018-02-13 Brian Burg <bburg@apple.com> |
| |
| Web Automation: don't return an error if resizing/moving a window has no effect |
| https://bugs.webkit.org/show_bug.cgi?id=182742 |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::resizeWindowOfBrowsingContext): |
| (WebKit::WebAutomationSession::moveWindowOfBrowsingContext): |
| Unify the behavior for all ports. Don't raise an error if the command was |
| idempotent (by mistake or not). It should not be an error to re-maximize a window. |
| |
| 2018-02-13 Don Olmstead <don.olmstead@sony.com> |
| |
| [CMake] Make WebCore headers copies |
| https://bugs.webkit.org/show_bug.cgi?id=182512 |
| |
| Reviewed by Keith Miller. |
| |
| * CMakeLists.txt: |
| * NetworkProcess/capture/NetworkCaptureManager.cpp: |
| * NetworkProcess/webrtc/NetworkRTCMonitor.h: |
| * PlatformWPE.cmake: |
| * Scripts/generate-forwarding-headers.pl: |
| * Shared/gtk/WebEventFactory.cpp: |
| * UIProcess/API/gtk/PageClientImpl.cpp: |
| * UIProcess/API/gtk/WebKitWebViewBase.cpp: |
| * UIProcess/gtk/WebPageProxyGtk.cpp: |
| * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp: |
| * WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp: |
| * WebProcess/WebCoreSupport/wpe/WebEditorClientWPE.cpp: |
| * WebProcess/WebPage/gtk/WebPageGtk.cpp: |
| * WebProcess/WebPage/wpe/WebPageWPE.cpp: |
| |
| 2018-02-13 Brent Fulgham <bfulgham@apple.com> |
| |
| [iOS] whitelist iokit-get-properties |
| https://bugs.webkit.org/show_bug.cgi?id=182722 |
| <rdar://problem/30929165> |
| |
| Reviewed by Eric Carlson. |
| |
| Update the iOS sandbox to block access to IOKit properties that are not needed for |
| legitimate WebContent process use. This brings the iOS sandbox in line with the |
| work done under macOS. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2018-02-12 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Classify resources as prevalent based on redirects to other prevalent resources |
| https://bugs.webkit.org/show_bug.cgi?id=182664 |
| <rdar://problem/37372572> |
| |
| Reviewed by Brent Fulgham. |
| |
| * Platform/classifier/ResourceLoadStatisticsClassifier.cpp: |
| (WebKit::ResourceLoadStatisticsClassifier::hasPrevalentResourceCharacteristics): |
| Unique top frame redirects now counts toward classification as prevalent. |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<ResourceLoadStatistics>::encode): |
| (IPC::ArgumentCoder<ResourceLoadStatistics>::decode): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreSetStatisticsSubresourceUniqueRedirectFrom): |
| (WKWebsiteDataStoreSetStatisticsTopFrameUniqueRedirectTo): |
| (WKWebsiteDataStoreSetStatisticsTopFrameUniqueRedirectFrom): |
| Test infrastructure. |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| Bumped the statistics model to 11 because of the added fields. |
| (WebKit::WebResourceLoadStatisticsStore::recursivelyGetAllDomainsThatHaveRedirectedToThisDomain): |
| This function back traces redirect chains to classify domains |
| that have redirected to a newly classified prevalent resource. |
| (WebKit::WebResourceLoadStatisticsStore::processStatisticsAndDataRecords): |
| Now uses the new convenience function WebResourceLoadStatisticsStore::setPrevalentResource(). |
| (WebKit::WebResourceLoadStatisticsStore::setPrevalentResource): |
| New convenience function to make sure we always call |
| WebResourceLoadStatisticsStore::recursivelyGetAllDomainsThatHaveRedirectedToThisDomain() |
| and capture redirect chains backward. |
| (WebKit::WebResourceLoadStatisticsStore::setSubframeUnderTopFrameOrigin): |
| (WebKit::WebResourceLoadStatisticsStore::setSubresourceUnderTopFrameOrigin): |
| (WebKit::WebResourceLoadStatisticsStore::setSubresourceUniqueRedirectTo): |
| (WebKit::WebResourceLoadStatisticsStore::setSubresourceUniqueRedirectFrom): |
| (WebKit::WebResourceLoadStatisticsStore::setTopFrameUniqueRedirectTo): |
| (WebKit::WebResourceLoadStatisticsStore::setTopFrameUniqueRedirectFrom): |
| Test infrastructure. |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| |
| 2018-02-12 Antti Koivisto <antti@apple.com> |
| |
| Update NetworkCache::Storage::lastStableVersion after r226349 |
| https://bugs.webkit.org/show_bug.cgi?id=182723 |
| <rdar://problem/37469554> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * NetworkProcess/cache/NetworkCacheStorage.h: |
| |
| Allow deleting version 11 caches. |
| |
| 2018-02-12 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Add support for <input type='time'> using time picker UI |
| https://bugs.webkit.org/show_bug.cgi?id=182683 |
| <rdar://problem/35143162> |
| |
| Reviewed by Tim Horton. |
| |
| Adds support for showing a time picker when an input of type time is focused in extra zoomed mode. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _stopAssistingNode]): |
| (-[WKContentView presentTimePickerViewController:]): |
| (-[WKContentView dismissTimePickerViewController:]): |
| |
| Add helpers to dismiss and present the time picker view controller. |
| |
| (-[WKContentView presentViewControllerForAssistedNode:]): |
| |
| When focusing InputType::Time, present a time picker. Additionally, tweak the logic here to use the generic text |
| input view controller as a fallback when the other input view controllers (number pads, select menus and time |
| pickers thus far) are not relevant. This prevents us from completely being unable to edit form controls that are |
| currently unsupported. |
| |
| (-[WKContentView textInputController:didCommitText:]): |
| (-[WKContentView textInputControllerDidRequestDismissal:]): |
| |
| Tweak WKContentView for changes to WKTextFormControlViewControllerDelegate. |
| |
| (-[WKContentView actionNameForFocusedFormControlController:]): |
| |
| Adjust this implementation to hide the focused form control "Go" button for selects and time inputs. This |
| currently doesn't work for these form controls because it relies on implicit form submission; this should be |
| fixed by future changes, after which we should revert this adjustment. |
| |
| (-[WKContentView _wheelChangedWithEvent:]): |
| |
| Delegate wheel events to the time picker if needed. |
| |
| (-[WKContentView textInputController:didRequestDismissalWithAction:]): Deleted. |
| |
| Renamed to -textInputControllerDidRequestDismissal:. |
| |
| * UIProcess/ios/forms/WKTimePickerViewController.h: Added. |
| * UIProcess/ios/forms/WKTimePickerViewController.mm: Added. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-02-11 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [GTK] Unify builds for platform-specific files in WebKit layer |
| https://bugs.webkit.org/show_bug.cgi?id=182450 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Add most GTK-specific sources to unified build. API files are exempted, except for the DOM |
| API. Files shared with PluginProcessGTK2 are also exempted. Finally, files with name |
| conflicts in headers, which appears difficult to fix, are also exempted. |
| |
| * CMakeLists.txt: |
| * NetworkProcess/CustomProtocols/soup/LegacyCustomProtocolManagerSoup.cpp: |
| * NetworkProcess/soup/NetworkDataTaskSoup.cpp: |
| * NetworkProcess/soup/NetworkProcessSoup.cpp: |
| * NetworkProcess/soup/NetworkSessionSoup.cpp: |
| * NetworkProcess/soup/RemoteNetworkingContextSoup.cpp: |
| * Platform/classifier/ResourceLoadStatisticsClassifier.cpp: |
| * PlatformGTK.cmake: |
| * PluginProcess/unix/PluginControllerProxyUnix.cpp: |
| * Shared/CoordinatedGraphics/CoordinatedBackingStore.cpp: |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: |
| * Shared/CoordinatedGraphics/SimpleViewportController.cpp: |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: |
| * Shared/Plugins/Netscape/unix/NetscapePluginModuleUnix.cpp: |
| * Shared/Plugins/unix/PluginSearchPath.cpp: |
| * Shared/cairo/ShareableBitmapCairo.cpp: |
| * Shared/glib/WebContextMenuItemGlib.cpp: |
| * Shared/glib/WebErrorsGlib.cpp: |
| * Shared/gtk/ArgumentCodersGtk.cpp: |
| * Shared/gtk/NativeWebKeyboardEventGtk.cpp: |
| * Shared/gtk/ProcessExecutablePathGtk.cpp: |
| * Shared/gtk/WebErrorsGtk.cpp: |
| * Shared/gtk/WebEventFactory.cpp: |
| * Shared/linux/WebMemorySamplerLinux.cpp: |
| * Shared/soup/WebCoreArgumentCodersSoup.cpp: |
| * Shared/soup/WebErrorsSoup.cpp: |
| * SourcesGTK.txt: Added. |
| * UIProcess/AcceleratedDrawingAreaProxy.cpp: |
| * UIProcess/Automation/cairo/WebAutomationSessionCairo.cpp: |
| * UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp: |
| * UIProcess/BackingStore.cpp: |
| * UIProcess/DrawingAreaProxyImpl.cpp: |
| * UIProcess/Launcher/glib/ProcessLauncherGLib.cpp: |
| * UIProcess/Plugins/unix/PluginInfoStoreUnix.cpp: |
| * UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp: |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| * UIProcess/WebResourceLoadStatisticsTelemetry.cpp: |
| * UIProcess/WebStorage/StorageManager.cpp: |
| * UIProcess/cairo/BackingStoreCairo.cpp: |
| * UIProcess/gtk/AcceleratedBackingStore.cpp: |
| * UIProcess/gtk/DragAndDropHandler.cpp: |
| * UIProcess/gtk/GestureController.cpp: |
| * UIProcess/gtk/HardwareAccelerationManager.cpp: |
| * UIProcess/gtk/InputMethodFilter.cpp: |
| * UIProcess/gtk/TextCheckerGtk.cpp: |
| * UIProcess/gtk/WaylandCompositor.cpp: |
| * UIProcess/gtk/WebColorPickerGtk.cpp: |
| * UIProcess/gtk/WebContextMenuProxyGtk.cpp: |
| * UIProcess/gtk/WebPasteboardProxyGtk.cpp: |
| * UIProcess/gtk/WebPopupMenuProxyGtk.cpp: |
| * WebProcess/Cookies/soup/WebCookieManagerSoup.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMAttr.cpp: |
| (webkit_dom_attr_dom_event_target_init): |
| (webkit_dom_attr_set_property): |
| (webkit_dom_attr_get_property): |
| (webkit_dom_attr_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCDATASection.cpp: |
| (webkit_dom_cdata_section_dom_event_target_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRule.cpp: |
| (webkit_dom_css_rule_set_property): |
| (webkit_dom_css_rule_get_property): |
| (webkit_dom_css_rule_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRuleList.cpp: |
| (webkit_dom_css_rule_list_get_property): |
| (webkit_dom_css_rule_list_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleDeclaration.cpp: |
| (webkit_dom_css_style_declaration_set_property): |
| (webkit_dom_css_style_declaration_get_property): |
| (webkit_dom_css_style_declaration_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleSheet.cpp: |
| (webkit_dom_css_style_sheet_get_property): |
| (webkit_dom_css_style_sheet_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSValue.cpp: |
| (webkit_dom_css_value_set_property): |
| (webkit_dom_css_value_get_property): |
| (webkit_dom_css_value_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCharacterData.cpp: |
| (webkit_dom_character_data_dom_event_target_init): |
| (webkit_dom_character_data_set_property): |
| (webkit_dom_character_data_get_property): |
| (webkit_dom_character_data_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRect.cpp: |
| (webkit_dom_client_rect_get_property): |
| (webkit_dom_client_rect_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRectList.cpp: |
| (webkit_dom_client_rect_list_get_property): |
| (webkit_dom_client_rect_list_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMComment.cpp: |
| (webkit_dom_comment_dom_event_target_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMSelection.cpp: |
| (webkit_dom_dom_selection_get_property): |
| (webkit_dom_dom_selection_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMTokenList.cpp: |
| (webkit_dom_dom_token_list_set_property): |
| (webkit_dom_dom_token_list_get_property): |
| (webkit_dom_dom_token_list_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.cpp: |
| (webkit_dom_dom_window_dom_event_target_init): |
| (webkit_dom_dom_window_set_property): |
| (webkit_dom_dom_window_get_property): |
| (webkit_dom_dom_window_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocument.cpp: |
| (webkit_dom_document_dom_event_target_init): |
| (webkit_dom_document_set_property): |
| (webkit_dom_document_get_property): |
| (webkit_dom_document_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentFragment.cpp: |
| (webkit_dom_document_fragment_dom_event_target_init): |
| (webkit_dom_document_fragment_get_property): |
| (webkit_dom_document_fragment_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentType.cpp: |
| (webkit_dom_document_type_dom_event_target_init): |
| (webkit_dom_document_type_get_property): |
| (webkit_dom_document_type_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElement.cpp: |
| (webkit_dom_element_dom_event_target_init): |
| (webkit_dom_element_set_property): |
| (webkit_dom_element_get_property): |
| (webkit_dom_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEvent.cpp: |
| (webkit_dom_event_set_property): |
| (webkit_dom_event_get_property): |
| (webkit_dom_event_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFile.cpp: |
| (webkit_dom_file_get_property): |
| (webkit_dom_file_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFileList.cpp: |
| (webkit_dom_file_list_get_property): |
| (webkit_dom_file_list_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAnchorElement.cpp: |
| (webkit_dom_html_anchor_element_dom_event_target_init): |
| (webkit_dom_html_anchor_element_set_property): |
| (webkit_dom_html_anchor_element_get_property): |
| (webkit_dom_html_anchor_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAppletElement.cpp: |
| (webkit_dom_html_applet_element_dom_event_target_init): |
| (webkit_dom_html_applet_element_set_property): |
| (webkit_dom_html_applet_element_get_property): |
| (webkit_dom_html_applet_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAreaElement.cpp: |
| (webkit_dom_html_area_element_dom_event_target_init): |
| (webkit_dom_html_area_element_set_property): |
| (webkit_dom_html_area_element_get_property): |
| (webkit_dom_html_area_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBRElement.cpp: |
| (webkit_dom_html_br_element_dom_event_target_init): |
| (webkit_dom_html_br_element_set_property): |
| (webkit_dom_html_br_element_get_property): |
| (webkit_dom_html_br_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBaseElement.cpp: |
| (webkit_dom_html_base_element_dom_event_target_init): |
| (webkit_dom_html_base_element_set_property): |
| (webkit_dom_html_base_element_get_property): |
| (webkit_dom_html_base_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBodyElement.cpp: |
| (webkit_dom_html_body_element_dom_event_target_init): |
| (webkit_dom_html_body_element_set_property): |
| (webkit_dom_html_body_element_get_property): |
| (webkit_dom_html_body_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLButtonElement.cpp: |
| (webkit_dom_html_button_element_dom_event_target_init): |
| (webkit_dom_html_button_element_set_property): |
| (webkit_dom_html_button_element_get_property): |
| (webkit_dom_html_button_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCanvasElement.cpp: |
| (webkit_dom_html_canvas_element_dom_event_target_init): |
| (webkit_dom_html_canvas_element_set_property): |
| (webkit_dom_html_canvas_element_get_property): |
| (webkit_dom_html_canvas_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCollection.cpp: |
| (webkit_dom_html_collection_get_property): |
| (webkit_dom_html_collection_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDListElement.cpp: |
| (webkit_dom_html_d_list_element_dom_event_target_init): |
| (webkit_dom_html_d_list_element_set_property): |
| (webkit_dom_html_d_list_element_get_property): |
| (webkit_dom_html_d_list_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDirectoryElement.cpp: |
| (webkit_dom_html_directory_element_dom_event_target_init): |
| (webkit_dom_html_directory_element_set_property): |
| (webkit_dom_html_directory_element_get_property): |
| (webkit_dom_html_directory_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDivElement.cpp: |
| (webkit_dom_html_div_element_dom_event_target_init): |
| (webkit_dom_html_div_element_set_property): |
| (webkit_dom_html_div_element_get_property): |
| (webkit_dom_html_div_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDocument.cpp: |
| (webkit_dom_html_document_dom_event_target_init): |
| (webkit_dom_html_document_set_property): |
| (webkit_dom_html_document_get_property): |
| (webkit_dom_html_document_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElement.cpp: |
| (webkit_dom_html_element_dom_event_target_init): |
| (webkit_dom_html_element_set_property): |
| (webkit_dom_html_element_get_property): |
| (webkit_dom_html_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLEmbedElement.cpp: |
| (webkit_dom_html_embed_element_dom_event_target_init): |
| (webkit_dom_html_embed_element_set_property): |
| (webkit_dom_html_embed_element_get_property): |
| (webkit_dom_html_embed_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFieldSetElement.cpp: |
| (webkit_dom_html_field_set_element_dom_event_target_init): |
| (webkit_dom_html_field_set_element_get_property): |
| (webkit_dom_html_field_set_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFontElement.cpp: |
| (webkit_dom_html_font_element_dom_event_target_init): |
| (webkit_dom_html_font_element_set_property): |
| (webkit_dom_html_font_element_get_property): |
| (webkit_dom_html_font_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFormElement.cpp: |
| (webkit_dom_html_form_element_dom_event_target_init): |
| (webkit_dom_html_form_element_set_property): |
| (webkit_dom_html_form_element_get_property): |
| (webkit_dom_html_form_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameElement.cpp: |
| (webkit_dom_html_frame_element_dom_event_target_init): |
| (webkit_dom_html_frame_element_set_property): |
| (webkit_dom_html_frame_element_get_property): |
| (webkit_dom_html_frame_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameSetElement.cpp: |
| (webkit_dom_html_frame_set_element_dom_event_target_init): |
| (webkit_dom_html_frame_set_element_set_property): |
| (webkit_dom_html_frame_set_element_get_property): |
| (webkit_dom_html_frame_set_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHRElement.cpp: |
| (webkit_dom_html_hr_element_dom_event_target_init): |
| (webkit_dom_html_hr_element_set_property): |
| (webkit_dom_html_hr_element_get_property): |
| (webkit_dom_html_hr_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadElement.cpp: |
| (webkit_dom_html_head_element_dom_event_target_init): |
| (webkit_dom_html_head_element_set_property): |
| (webkit_dom_html_head_element_get_property): |
| (webkit_dom_html_head_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadingElement.cpp: |
| (webkit_dom_html_heading_element_dom_event_target_init): |
| (webkit_dom_html_heading_element_set_property): |
| (webkit_dom_html_heading_element_get_property): |
| (webkit_dom_html_heading_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHtmlElement.cpp: |
| (webkit_dom_html_html_element_dom_event_target_init): |
| (webkit_dom_html_html_element_set_property): |
| (webkit_dom_html_html_element_get_property): |
| (webkit_dom_html_html_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLIFrameElement.cpp: |
| (webkit_dom_html_iframe_element_dom_event_target_init): |
| (webkit_dom_html_iframe_element_set_property): |
| (webkit_dom_html_iframe_element_get_property): |
| (webkit_dom_html_iframe_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLImageElement.cpp: |
| (webkit_dom_html_image_element_dom_event_target_init): |
| (webkit_dom_html_image_element_set_property): |
| (webkit_dom_html_image_element_get_property): |
| (webkit_dom_html_image_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.cpp: |
| (webkit_dom_html_input_element_dom_event_target_init): |
| (webkit_dom_html_input_element_set_property): |
| (webkit_dom_html_input_element_get_property): |
| (webkit_dom_html_input_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLIElement.cpp: |
| (webkit_dom_html_li_element_dom_event_target_init): |
| (webkit_dom_html_li_element_set_property): |
| (webkit_dom_html_li_element_get_property): |
| (webkit_dom_html_li_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLabelElement.cpp: |
| (webkit_dom_html_label_element_dom_event_target_init): |
| (webkit_dom_html_label_element_set_property): |
| (webkit_dom_html_label_element_get_property): |
| (webkit_dom_html_label_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLegendElement.cpp: |
| (webkit_dom_html_legend_element_dom_event_target_init): |
| (webkit_dom_html_legend_element_set_property): |
| (webkit_dom_html_legend_element_get_property): |
| (webkit_dom_html_legend_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLinkElement.cpp: |
| (webkit_dom_html_link_element_dom_event_target_init): |
| (webkit_dom_html_link_element_set_property): |
| (webkit_dom_html_link_element_get_property): |
| (webkit_dom_html_link_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMapElement.cpp: |
| (webkit_dom_html_map_element_dom_event_target_init): |
| (webkit_dom_html_map_element_set_property): |
| (webkit_dom_html_map_element_get_property): |
| (webkit_dom_html_map_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMarqueeElement.cpp: |
| (webkit_dom_html_marquee_element_dom_event_target_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMenuElement.cpp: |
| (webkit_dom_html_menu_element_dom_event_target_init): |
| (webkit_dom_html_menu_element_set_property): |
| (webkit_dom_html_menu_element_get_property): |
| (webkit_dom_html_menu_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMetaElement.cpp: |
| (webkit_dom_html_meta_element_dom_event_target_init): |
| (webkit_dom_html_meta_element_set_property): |
| (webkit_dom_html_meta_element_get_property): |
| (webkit_dom_html_meta_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLModElement.cpp: |
| (webkit_dom_html_mod_element_dom_event_target_init): |
| (webkit_dom_html_mod_element_set_property): |
| (webkit_dom_html_mod_element_get_property): |
| (webkit_dom_html_mod_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOListElement.cpp: |
| (webkit_dom_html_o_list_element_dom_event_target_init): |
| (webkit_dom_html_o_list_element_set_property): |
| (webkit_dom_html_o_list_element_get_property): |
| (webkit_dom_html_o_list_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLObjectElement.cpp: |
| (webkit_dom_html_object_element_dom_event_target_init): |
| (webkit_dom_html_object_element_set_property): |
| (webkit_dom_html_object_element_get_property): |
| (webkit_dom_html_object_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptGroupElement.cpp: |
| (webkit_dom_html_opt_group_element_dom_event_target_init): |
| (webkit_dom_html_opt_group_element_set_property): |
| (webkit_dom_html_opt_group_element_get_property): |
| (webkit_dom_html_opt_group_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionElement.cpp: |
| (webkit_dom_html_option_element_dom_event_target_init): |
| (webkit_dom_html_option_element_set_property): |
| (webkit_dom_html_option_element_get_property): |
| (webkit_dom_html_option_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionsCollection.cpp: |
| (webkit_dom_html_options_collection_set_property): |
| (webkit_dom_html_options_collection_get_property): |
| (webkit_dom_html_options_collection_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParagraphElement.cpp: |
| (webkit_dom_html_paragraph_element_dom_event_target_init): |
| (webkit_dom_html_paragraph_element_set_property): |
| (webkit_dom_html_paragraph_element_get_property): |
| (webkit_dom_html_paragraph_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParamElement.cpp: |
| (webkit_dom_html_param_element_dom_event_target_init): |
| (webkit_dom_html_param_element_set_property): |
| (webkit_dom_html_param_element_get_property): |
| (webkit_dom_html_param_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPreElement.cpp: |
| (webkit_dom_html_pre_element_dom_event_target_init): |
| (webkit_dom_html_pre_element_set_property): |
| (webkit_dom_html_pre_element_get_property): |
| (webkit_dom_html_pre_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLQuoteElement.cpp: |
| (webkit_dom_html_quote_element_dom_event_target_init): |
| (webkit_dom_html_quote_element_set_property): |
| (webkit_dom_html_quote_element_get_property): |
| (webkit_dom_html_quote_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLScriptElement.cpp: |
| (webkit_dom_html_script_element_dom_event_target_init): |
| (webkit_dom_html_script_element_set_property): |
| (webkit_dom_html_script_element_get_property): |
| (webkit_dom_html_script_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLSelectElement.cpp: |
| (webkit_dom_html_select_element_dom_event_target_init): |
| (webkit_dom_html_select_element_set_property): |
| (webkit_dom_html_select_element_get_property): |
| (webkit_dom_html_select_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLStyleElement.cpp: |
| (webkit_dom_html_style_element_dom_event_target_init): |
| (webkit_dom_html_style_element_set_property): |
| (webkit_dom_html_style_element_get_property): |
| (webkit_dom_html_style_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCaptionElement.cpp: |
| (webkit_dom_html_table_caption_element_dom_event_target_init): |
| (webkit_dom_html_table_caption_element_set_property): |
| (webkit_dom_html_table_caption_element_get_property): |
| (webkit_dom_html_table_caption_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCellElement.cpp: |
| (webkit_dom_html_table_cell_element_dom_event_target_init): |
| (webkit_dom_html_table_cell_element_set_property): |
| (webkit_dom_html_table_cell_element_get_property): |
| (webkit_dom_html_table_cell_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableColElement.cpp: |
| (webkit_dom_html_table_col_element_dom_event_target_init): |
| (webkit_dom_html_table_col_element_set_property): |
| (webkit_dom_html_table_col_element_get_property): |
| (webkit_dom_html_table_col_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableElement.cpp: |
| (webkit_dom_html_table_element_dom_event_target_init): |
| (webkit_dom_html_table_element_set_property): |
| (webkit_dom_html_table_element_get_property): |
| (webkit_dom_html_table_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableRowElement.cpp: |
| (webkit_dom_html_table_row_element_dom_event_target_init): |
| (webkit_dom_html_table_row_element_set_property): |
| (webkit_dom_html_table_row_element_get_property): |
| (webkit_dom_html_table_row_element_class_init): |
| (webkit_dom_html_table_row_element_insert_cell): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableSectionElement.cpp: |
| (webkit_dom_html_table_section_element_dom_event_target_init): |
| (webkit_dom_html_table_section_element_set_property): |
| (webkit_dom_html_table_section_element_get_property): |
| (webkit_dom_html_table_section_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTextAreaElement.cpp: |
| (webkit_dom_html_text_area_element_dom_event_target_init): |
| (webkit_dom_html_text_area_element_set_property): |
| (webkit_dom_html_text_area_element_get_property): |
| (webkit_dom_html_text_area_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTitleElement.cpp: |
| (webkit_dom_html_title_element_dom_event_target_init): |
| (webkit_dom_html_title_element_set_property): |
| (webkit_dom_html_title_element_get_property): |
| (webkit_dom_html_title_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLUListElement.cpp: |
| (webkit_dom_html_u_list_element_dom_event_target_init): |
| (webkit_dom_html_u_list_element_set_property): |
| (webkit_dom_html_u_list_element_get_property): |
| (webkit_dom_html_u_list_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMKeyboardEvent.cpp: |
| (webkit_dom_keyboard_event_get_property): |
| (webkit_dom_keyboard_event_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaList.cpp: |
| (webkit_dom_media_list_set_property): |
| (webkit_dom_media_list_get_property): |
| (webkit_dom_media_list_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMouseEvent.cpp: |
| (webkit_dom_mouse_event_get_property): |
| (webkit_dom_mouse_event_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNamedNodeMap.cpp: |
| (webkit_dom_named_node_map_get_property): |
| (webkit_dom_named_node_map_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNode.cpp: |
| (webkit_dom_node_dom_event_target_init): |
| (webkit_dom_node_set_property): |
| (webkit_dom_node_get_property): |
| (webkit_dom_node_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeIterator.cpp: |
| (webkit_dom_node_iterator_get_property): |
| (webkit_dom_node_iterator_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeList.cpp: |
| (webkit_dom_node_list_get_property): |
| (webkit_dom_node_list_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMObject.cpp: |
| (webkitDOMObjectSetProperty): |
| (webkit_dom_object_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMProcessingInstruction.cpp: |
| (webkit_dom_processing_instruction_dom_event_target_init): |
| (webkit_dom_processing_instruction_get_property): |
| (webkit_dom_processing_instruction_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMRange.cpp: |
| (webkit_dom_range_get_property): |
| (webkit_dom_range_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheet.cpp: |
| (webkit_dom_style_sheet_set_property): |
| (webkit_dom_style_sheet_get_property): |
| (webkit_dom_style_sheet_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheetList.cpp: |
| (webkit_dom_style_sheet_list_get_property): |
| (webkit_dom_style_sheet_list_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMText.cpp: |
| (webkit_dom_text_dom_event_target_init): |
| (webkit_dom_text_get_property): |
| (webkit_dom_text_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTreeWalker.cpp: |
| (webkit_dom_tree_walker_get_property): |
| (webkit_dom_tree_walker_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMUIEvent.cpp: |
| (webkit_dom_ui_event_get_property): |
| (webkit_dom_ui_event_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMWheelEvent.cpp: |
| (webkit_dom_wheel_event_get_property): |
| (webkit_dom_wheel_event_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathResult.cpp: |
| (webkit_dom_xpath_result_get_property): |
| (webkit_dom_xpath_result_class_init): |
| * WebProcess/InjectedBundle/glib/InjectedBundleGlib.cpp: |
| * WebProcess/MediaCache/WebMediaKeyStorageManager.cpp: |
| * WebProcess/Plugins/Netscape/unix/NetscapePluginUnix.cpp: |
| * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp: |
| * WebProcess/WebCoreSupport/curl/WebFrameNetworkingContext.cpp: |
| * WebProcess/WebCoreSupport/gtk/WebContextMenuClientGtk.cpp: |
| * WebProcess/WebCoreSupport/gtk/WebDragClientGtk.cpp: |
| * WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp: |
| * WebProcess/WebCoreSupport/gtk/WebPopupMenuGtk.cpp: |
| * WebProcess/WebPage/AcceleratedDrawingArea.cpp: |
| * WebProcess/WebPage/AcceleratedSurface.cpp: |
| * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp: |
| * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp: |
| * WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp: |
| * WebProcess/WebPage/DrawingAreaImpl.cpp: |
| * WebProcess/WebPage/gtk/AcceleratedSurfaceWayland.cpp: |
| * WebProcess/WebPage/gtk/AcceleratedSurfaceX11.cpp: |
| * WebProcess/WebPage/gtk/WebPageGtk.cpp: |
| * WebProcess/gtk/WaylandCompositorDisplay.cpp: |
| * WebProcess/gtk/WebProcessMainGtk.cpp: |
| |
| 2018-02-05 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| WebDriver: addCookie command should prepend a dot to domain if missing |
| https://bugs.webkit.org/show_bug.cgi?id=182328 |
| <rdar://problem/37116398> |
| |
| Reviewed by Michael Catanzaro. |
| |
| RFC 2965: If an explicitly specified value does not start with a dot, the user agent supplies a leading dot. |
| |
| Fixes: imported/w3c/webdriver/tests/cookies/add_cookie.py::test_add_domain_cookie |
| |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::addSingleCookie): |
| |
| 2018-02-11 Yousuke Kimoto <yousuke.kimoto@sony.com> |
| |
| [WinCairo] Add WKBaseWin.h |
| https://bugs.webkit.org/show_bug.cgi?id=182681 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| * PlatformWin.cmake: |
| * Shared/API/c/win/WKBaseWin.h: Added. |
| |
| 2018-02-09 Ross Kirsling <ross.kirsling@sony.com> |
| |
| Remove invalidated WebPage::handleEditingKeyboardEvent default implementation after r228260. |
| https://bugs.webkit.org/show_bug.cgi?id=182663 |
| |
| Reviewed by Chris Dumez. |
| |
| This would need to be updated to turn `keyEvent` into `underlyingPlatformEvent`; |
| instead, we can remove it, as it's only for Windows, which doesn't yet support WK2. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::handleEditingKeyboardEvent): Deleted. |
| |
| 2018-02-09 Nan Wang <n_wang@apple.com> |
| |
| AX: Accessibility is not notified when a web process cancels the suspension |
| https://bugs.webkit.org/show_bug.cgi?id=182659 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| We were notifying Accessibility with the web process suspended information in actualPrepareToSuspend |
| and processDidResume. However, the suspension can be canceled during the prepare call. So that we |
| should also post a notification in cancelPrepareToSuspend. |
| |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::cancelPrepareToSuspend): |
| |
| 2018-02-09 Brent Fulgham <bfulgham@apple.com> |
| |
| Sandbox violating attempting to read log formatting preference file |
| https://bugs.webkit.org/show_bug.cgi?id=182648 |
| <rdar://problem/36629495> |
| |
| Reviewed by Eric Carlson. |
| |
| Various frameworks attempt to read logging format information from /usr/local/lib/log. The sandbox is blocking |
| this, generating log spam and preventing some logging features from working properly. We should allow read |
| access to this path. |
| |
| * NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in: |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb: |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-02-08 Chris Dumez <cdumez@apple.com> |
| |
| There should be a way to disable [OverrideBuiltins] behavior in a given DOMWrapperWorld |
| https://bugs.webkit.org/show_bug.cgi?id=182524 |
| <rdar://problem/9057327> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Add C API on WKBundleScriptWorld and Cocoa API on WKWebProcessPlugInScriptWorld to |
| disable the [OverrideBuiltins] behavior on a given script world. |
| |
| The [OverrideBuiltins] behavior [1] is legacy behavior that is needed for Web compatibility |
| but allowing the client to disable this behavior in a given world makes development easier |
| and running injected script on uncontrolled content a lot more reliable. |
| |
| [1] https://heycam.github.io/webidl/#OverrideBuiltins |
| |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInScriptWorld.h: |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInScriptWorld.mm: |
| (-[WKWebProcessPlugInScriptWorld disableOverrideBuiltinsBehavior]): |
| * WebProcess/InjectedBundle/API/c/WKBundleScriptWorld.cpp: |
| (WKBundleScriptWorldDisableOverrideBuiltinsBehavior): |
| * WebProcess/InjectedBundle/API/c/WKBundleScriptWorld.h: |
| * WebProcess/InjectedBundle/InjectedBundleScriptWorld.cpp: |
| (WebKit::InjectedBundleScriptWorld::disableOverrideBuiltinsBehavior): |
| * WebProcess/InjectedBundle/InjectedBundleScriptWorld.h: |
| |
| 2018-02-08 Ross Kirsling <ross.kirsling@sony.com> |
| |
| Remove WebProcessPool::platformInitialize stub. |
| https://bugs.webkit.org/show_bug.cgi?id=182621 |
| |
| Reviewed by Alex Christensen. |
| |
| The #if here could be simplified to PLATFORM(WIN), but Windows too will need a proper implementation |
| as part of WK2 support, so this stub shouldn't need to exist at all. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::platformInitialize): Deleted. |
| |
| 2018-02-08 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| TestController should not exercise cocoa-specific resource load statistics APIs |
| https://bugs.webkit.org/show_bug.cgi?id=182355 |
| |
| Reviewed by Alex Christensen. |
| |
| Remove the Cocoa testing SPI, since it's redundant with the C API. Also, add a couple |
| missing cookie partitioning callbacks to the C API. |
| |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreStatisticsUpdateCookiePartitioning): |
| (WKWebsiteDataStoreSetStatisticsShouldPartitionCookiesForHost): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetLastSeen:forHost:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetIsPrevalentResource:forHost:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsIsPrevalentResource:completionHandler:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsIsRegisteredAsSubFrameUnder:topFrameHost:completionHandler:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsIsRegisteredAsRedirectingTo:hostRedirectedTo:completionHandler:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetHadUserInteraction:forHost:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetHasHadNonRecentUserInteractionForHost:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsHadUserInteraction:completionHandler:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetIsGrandfathered:forHost:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsIsGrandfathered:completionHandler:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetSubframeUnderTopFrameOrigin:forHost:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetSubresourceUnderTopFrameOrigin:forHost:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetSubresourceUniqueRedirectTo:forHost:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetTimeToLiveUserInteraction:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetTimeToLiveCookiePartitionFree:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetMinimumTimeBetweenDataRecordsRemoval:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetGrandfatheringTime:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetMaxStatisticsEntries:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetPruneEntriesDownTo:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsProcessStatisticsAndDataRecords]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsUpdateCookiePartitioning]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsUpdateCookiePartitioning:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetShouldPartitionCookies:forHost:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetShouldPartitionCookies:forHost:completionHandler:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSubmitTelemetry]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetNotifyPagesWhenDataRecordsWereScanned:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetShouldClassifyResourcesBeforeDataRecordsRemoval:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetNotifyPagesWhenTelemetryWasCaptured:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsClearInMemoryAndPersistentStore]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsClearInMemoryAndPersistentStore:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsClearInMemoryAndPersistentStoreModifiedSinceHours:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsClearInMemoryAndPersistentStoreModifiedSinceHours:completionHandler:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsResetToConsistentState]): Deleted. |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| |
| 2018-02-08 Don Olmstead <don.olmstead@sony.com> |
| |
| Remove JavaScriptCore/ForwardingHeaders directory |
| https://bugs.webkit.org/show_bug.cgi?id=182594 |
| |
| Reviewed by Mark Lam. |
| |
| * PlatformGTK.cmake: |
| |
| 2018-02-08 Tim Horton <timothy_horton@apple.com> |
| |
| Make WebKit public headers modules-safe |
| https://bugs.webkit.org/show_bug.cgi?id=182611 |
| <rdar://problem/37160164> |
| |
| Reviewed by Dan Bernstein. |
| |
| * UIProcess/API/Cocoa/WKPreviewElementInfo.h: |
| * UIProcess/API/Cocoa/WKSnapshotConfiguration.h: |
| Import headers without which these WebKit headers can not be used alone. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| Make WKWindowFeaturesPrivate a private header like it was supposed to be. |
| |
| 2018-02-08 Matt Lewis <jlewis3@apple.com> |
| |
| Unreviewed, rolling out r228262. |
| |
| This broke an internal build alongside r228261. |
| |
| Reverted changeset: |
| |
| "WebDriver: addCookie command should prepend a dot to domain |
| if missing" |
| https://bugs.webkit.org/show_bug.cgi?id=182328 |
| https://trac.webkit.org/changeset/228262 |
| |
| 2018-02-08 Miguel Gomez <magomez@igalia.com> |
| |
| [GTK] WaylandCompositor misusing eglGetProcAddress |
| https://bugs.webkit.org/show_bug.cgi?id=182490 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Check that the appropriate extensions are available before calling eglGetProcAddress, as even |
| getting a non null value from it, the functionality can be disabled at runtime. |
| |
| * UIProcess/gtk/WaylandCompositor.cpp: |
| (WebKit::WaylandCompositor::initializeEGL): |
| |
| 2018-02-08 Frederic Wang <fwang@igalia.com> |
| |
| Add scrolling node types to distinguish main frames and subframes. |
| https://bugs.webkit.org/show_bug.cgi?id=182533 |
| |
| Reviewed by Simon Fraser. |
| |
| * Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp: Replace the case of |
| FrameScrollingNode with MainFrameScrollingNode and SubframeScrollingNode. |
| (WebKit::encodeNodeAndDescendants): |
| (WebKit::RemoteScrollingCoordinatorTransaction::decode): |
| (WebKit::dump): |
| * UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp: Ditto. |
| (WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers): |
| * UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp: Ditto and pass the node type to the |
| constructor of the frame scrolling node. |
| (WebKit::RemoteScrollingTree::createScrollingTreeNode): |
| * UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm: Replace the case of |
| FrameScrollingNode with MainFrameScrollingNode and SubframeScrollingNode. |
| (WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers): |
| * UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm: In order to |
| determine whether the node is a main frame or subframe, use the node type instead of checking |
| whether the node as a parent. |
| (WebKit::ScrollingTreeScrollingNodeDelegateIOS::updateChildNodesAfterScroll): |
| |
| 2018-02-05 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| WebDriver: addCookie command should prepend a dot to domain if missing |
| https://bugs.webkit.org/show_bug.cgi?id=182328 |
| <rdar://problem/37116398> |
| |
| Reviewed by Michael Catanzaro. |
| |
| RFC 2965: If an explicitly specified value does not start with a dot, the user agent supplies a leading dot. |
| |
| Fixes: imported/w3c/webdriver/tests/cookies/add_cookie.py::test_add_domain_cookie |
| |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::addSingleCookie): |
| |
| 2018-01-13 Darin Adler <darin@apple.com> |
| |
| Event improvements |
| https://bugs.webkit.org/show_bug.cgi?id=179591 |
| |
| Reviewed by Chris Dumez. |
| |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMWheelEvent.cpp: |
| (webkit_dom_wheel_event_init_wheel_event): Updated to call initWebKitWheelEvent. |
| |
| * WebProcess/Plugins/PluginView.cpp: Removed include of ScriptValue.h. |
| |
| * WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp: |
| (WebKit::WebEditorClient::executePendingEditorCommands): |
| Updated for name change from keyEvent to underlyingPlatformEvent. |
| (WebKit::WebEditorClient::handleInputMethodKeydown): Ditto. |
| * WebProcess/WebCoreSupport/wpe/WebEditorClientWPE.cpp: |
| (WebKit::WebEditorClient::handleKeyboardEvent): Ditto. |
| (WebKit::WebEditorClient::handleInputMethodKeydown): Ditto. |
| |
| * WebProcess/WebPage/WebPage.cpp: Removed include of ScriptValue.h. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::handleEditingKeyboardEvent): Updated for name change from |
| keyEvent to underlyingPlatformEvent. |
| * WebProcess/WebPage/mac/WebPageMac.mm: |
| (WebKit::WebPage::executeKeypressCommandsInternal): Ditto. |
| (WebKit::WebPage::handleEditingKeyboardEvent): Ditto. |
| |
| 2018-02-07 Antti Koivisto <antti@apple.com> and Youenn Fablet <youenn@apple.com> |
| |
| REGRESSION(r227758): Webpage fails to load due to crash in com.apple.WebKit: WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse + 267 |
| https://bugs.webkit.org/show_bug.cgi?id=182532 |
| <rdar://problem/36414017> |
| |
| Reviewed by Chris Dumez. |
| |
| No test case, don't know how to make one. The repro involves multipart HTTP streaming and details are hazy. |
| We were calling a function that was WTFMoved away just a few lines above. |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse): |
| |
| 2018-02-07 Tim Horton <timothy_horton@apple.com> |
| |
| Evernote device management web view sometimes displays at the wrong scale |
| https://bugs.webkit.org/show_bug.cgi?id=182590 |
| <rdar://problem/36633687> |
| |
| Reviewed by Simon Fraser. |
| |
| Evernote implements the WKWebView's scroll view's delegate method |
| viewForZoomingInScrollView: and returns nil. This results in |
| WKScrollView's zoomScale always returning 1, no matter what the |
| WKContentView's actual scale is. This will result in us never updating |
| the WKContentView's scale to 1. When loading a page that has a few |
| scale changes during load but ends up at scale 1, we get stuck at whatever |
| intermediate scale immediately preceded settling on 1. |
| |
| Fix this by not forwarding viewForZoomingInScrollView: to the external |
| WKScrollView delegate; we are in charge of the contents of the scroll |
| view (including which view scrollView's zoomScale should track), and |
| overriding viewForZoomingInScrollView: is only ever going to lead to |
| a broken WebKit. |
| |
| * UIProcess/ios/WKScrollView.mm: |
| (shouldForwardScrollViewDelegateMethodToExternalDelegate): |
| (-[WKScrollViewDelegateForwarder forwardInvocation:]): |
| (-[WKScrollViewDelegateForwarder forwardingTargetForSelector:]): |
| |
| 2018-02-07 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Delegate scrolling from the content view to input view controllers |
| https://bugs.webkit.org/show_bug.cgi?id=182534 |
| <rdar://problem/37276625> |
| |
| Reviewed by Tim Horton. |
| |
| Override -_wheelChangedWithEvent: on the content view, and give extra zoomed input view controllers a chance to |
| handle the event. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _wheelChangedWithEvent:]): |
| |
| 2018-02-07 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Implement multiple and single select menus |
| https://bugs.webkit.org/show_bug.cgi?id=182525 |
| <rdar://problem/35143016> |
| |
| Reviewed by Tim Horton. |
| |
| Add support for presenting picker views when focusing single or multiple select elements. See changes below for |
| additional detail. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _startAssistingKeyboard]): |
| |
| Move logic for presenting view controllers when focusing elements out of _startAssistingKeyboard, and into |
| _startAssistingNode:(...). This is because _startAssistingKeyboard is only invoked for certain types of focused |
| element types; importantly, this set excludes select elements. Putting the call to present the focused view |
| controller there also didn't make much since, considering that these new view controllers are not tied to |
| keyboards in any way. |
| |
| (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]): |
| (-[WKContentView _stopAssistingNode]): |
| |
| Dismiss any select menu that is being presented. |
| |
| (-[WKContentView presentSelectMenuViewController:]): |
| (-[WKContentView dismissSelectMenuViewController:]): |
| |
| Introduce idempotent helpers for presenting and dismissing the select menu view controller. |
| |
| (-[WKContentView presentViewControllerForAssistedNode:]): |
| (-[WKContentView selectMenu:didSelectItemAtIndex:]): |
| |
| For single select menus. Called when the user selects a row. |
| |
| (-[WKContentView didCancelSelectionInSelectMenu:]): |
| (-[WKContentView numberOfItemsInSelectMenu:]): |
| (-[WKContentView selectMenu:displayTextForItemAtIndex:]): |
| |
| Indicates the text value to show at a given index. |
| |
| (-[WKContentView selectMenu:didCheckItemAtIndex:checked:]): |
| |
| For multiple select menus, invoked when an item is checked. The `checked` parameter indicates whether or not the |
| item is now checked. |
| |
| (-[WKContentView selectMenuSupportsMultipleSelection:]): |
| |
| Indicates whether this select menu is single-item-only, or allows multiple items to be selected (checked). |
| |
| (-[WKContentView selectMenu:hasCheckedOptionAtIndex:]): |
| |
| For multiple select menus. Determines whether an option at the given index is checked. |
| |
| (-[WKContentView startingIndexForSelectMenu:]): |
| |
| Determines the index to instantly scroll to when presenting the select menu. |
| |
| * UIProcess/ios/forms/WKSelectMenuViewController.h: Added. |
| * UIProcess/ios/forms/WKSelectMenuViewController.mm: Added. |
| |
| Add new harness files for WKSelectMenuViewController's header and implementation (see WebKitAdditions). |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-02-07 Brent Fulgham <bfulgham@apple.com> |
| |
| Improve NetworkResourceLoader logging to capture redirect cases |
| https://bugs.webkit.org/show_bug.cgi?id=182573 |
| <rdar://problem/37316714> |
| |
| Reviewed by Chris Dumez. |
| |
| Add logging for cookie partitioning or blocking during redirects. |
| |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection): |
| |
| 2018-02-07 John Wilander <wilander@apple.com> |
| |
| Restrict Referer to just the origin for third parties in private mode and third parties ITP blocks cookies for in regular mode |
| https://bugs.webkit.org/show_bug.cgi?id=182559 |
| <rdar://problem/36990337> |
| |
| Reviewed by Andy Estes. |
| |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.h: |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::isThirdPartyRequest): |
| New convenience function. Checks whether the resource shares |
| partition with the first party. |
| (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): |
| Now strips the referrer to just the origin for: |
| 1. All third party requests in private mode. |
| 2. Third party requests to domains that ITP blocks cookies for. |
| (WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection): |
| Now strips the referrer in redirects to just the origin for: |
| 1. All third party requests in private mode. |
| 2. Third party requests to domains that ITP blocks cookies for. |
| |
| 2018-02-07 Daniel Bates <dabates@apple.com> |
| |
| Log error when authentication challenge is blocked due to an insecure request |
| https://bugs.webkit.org/show_bug.cgi?id=182358 |
| |
| Reviewed by Andy Estes. |
| |
| Have network process notify the web process when it blocks an authentication challenge. |
| |
| * NetworkProcess/NetworkLoad.cpp: |
| (WebKit::NetworkLoad::completeAuthenticationChallenge): |
| * NetworkProcess/NetworkLoadClient.h: |
| (WebKit::NetworkLoadClient::didBlockAuthenticationChallenge): |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::didBlockAuthenticationChallenge): |
| * NetworkProcess/NetworkResourceLoader.h: |
| * WebProcess/Network/WebResourceLoader.cpp: |
| (WebKit::WebResourceLoader::didBlockAuthenticationChallenge): |
| * WebProcess/Network/WebResourceLoader.h: |
| * WebProcess/Network/WebResourceLoader.messages.in: |
| |
| 2018-02-07 Chris Dumez <cdumez@apple.com> |
| |
| IndexedDB in service workers is using a memory backed store |
| https://bugs.webkit.org/show_bug.cgi?id=182574 |
| <rdar://problem/37316205> |
| |
| Reviewed by Youenn Fablet. |
| |
| Make sure we pass a proper WebDatabaseProvider to the ServiceWorkerProcess via |
| PageConfiguration. Otherwise, we end up using the default EmptyDatabaseProvider |
| which uses an InProcessIDBServer and a memory-backed store for IndexedDB. |
| |
| * UIProcess/ServiceWorkerProcessProxy.cpp: |
| (WebKit::ServiceWorkerProcessProxy::start): |
| * UIProcess/WebProcessPool.h: |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::WebSWContextManagerConnection): |
| (WebKit::WebSWContextManagerConnection::installServiceWorker): |
| * WebProcess/Storage/WebSWContextManagerConnection.h: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::establishWorkerContextConnectionToStorageProcess): |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| |
| 2018-02-07 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [GTK] Typo in a translatable string |
| https://bugs.webkit.org/show_bug.cgi?id=182570 |
| |
| Unreviewed. Fix a typo. |
| |
| * UIProcess/API/glib/WebKitWebsiteDataManager.cpp: |
| (webkit_website_data_manager_class_init): |
| |
| 2018-02-06 Don Olmstead <don.olmstead@sony.com> |
| |
| Remove WebCore/ForwardingHeaders directory |
| https://bugs.webkit.org/show_bug.cgi?id=182347 |
| |
| Reviewed by Keith Miller. |
| |
| * Platform/mac/StringUtilities.mm: |
| * Shared/Cocoa/WebKit2InitializeCocoa.mm: |
| * Shared/WebKit2Initialize.cpp: |
| * Shared/linux/WebMemorySamplerLinux.cpp: |
| * Shared/mac/WebMemorySampler.mac.mm: |
| * UIProcess/WebProcessPool.cpp: |
| * WebProcess/InjectedBundle/API/APIInjectedBundlePageUIClient.h: |
| * WebProcess/InjectedBundle/API/glib/WebKitConsoleMessagePrivate.h: |
| * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.h: |
| * WebProcess/Plugins/Netscape/NetscapePlugin.cpp: |
| * WebProcess/Plugins/PluginProcessConnection.cpp: |
| * WebProcess/Plugins/PluginView.cpp: |
| * WebProcess/WebPage/WebInspector.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| |
| 2018-02-06 Chris Dumez <cdumez@apple.com> |
| |
| Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/fetch-waits-for-activate.https.html is a flaky failure on macOS and iOS |
| https://bugs.webkit.org/show_bug.cgi?id=181392 |
| <rdar://problem/36384136> |
| |
| Reviewed by Youenn Fablet. |
| |
| All tasks from the StorageProcess to the WebContent process to update registrations |
| and service workers state are posted to the runloop. However, the fetch callbacks |
| do not do so. This means that fetch results might come in out of order with regards |
| to the registration / service worker state updates. The test was flaky because an |
| intercepted load would sometimes finish before the task to update the service worker |
| state to "activated" was processed by the runloop. We address the issue by having |
| the ServiceWorkerClientFetch callbacks schedule tasks to the runloop too. |
| |
| * WebProcess/Storage/ServiceWorkerClientFetch.cpp: |
| (WebKit::ServiceWorkerClientFetch::didReceiveResponse): |
| (WebKit::ServiceWorkerClientFetch::didReceiveData): |
| (WebKit::ServiceWorkerClientFetch::didFinish): |
| (WebKit::ServiceWorkerClientFetch::didFail): |
| (WebKit::ServiceWorkerClientFetch::didNotHandle): |
| |
| 2018-02-06 Brent Fulgham <bfulgham@apple.com> |
| |
| [macOS] Correct sandbox violation triggered by Chase.com |
| https://bugs.webkit.org/show_bug.cgi?id=182519 |
| <rdar://problem/37121757> |
| |
| Reviewed by Eric Carlson. |
| |
| Hitting a sandbox violation when attempting to check status of IOAV*En/Decode support. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-02-06 Jeff Miller <jeffm@apple.com> |
| |
| Add WKNavigationDelegate SPI to tell the client when an insecure plug-in is blocked |
| https://bugs.webkit.org/show_bug.cgi?id=182540 |
| |
| Reviewed by Alex Christensen. |
| |
| * UIProcess/API/APILoaderClient.h: |
| (API::LoaderClient::didBlockInsecurePluginVersion): |
| Changed to take a dictionary reference. |
| |
| * UIProcess/API/APINavigationClient.h: |
| (API::NavigationClient::didBlockInsecurePluginVersion): |
| Added. |
| |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetPageLoaderClient): |
| Changed didBlockInsecurePluginVersion() to take a dictionary reference. |
| |
| * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: |
| Added -_webView:didBlockInsecurePluginVersionWithInfo:. |
| |
| * UIProcess/Cocoa/NavigationState.h: |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::setNavigationDelegate): |
| Initialize webViewDidBlockInsecurePluginVersionWithInfo. |
| |
| (WebKit::NavigationState::NavigationClient::didBlockInsecurePluginVersion): |
| Added. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didBlockInsecurePluginVersion): |
| Remove check for PLATFORM(COCOA) (we don't check for this in didFailToInitializePlugin() where we |
| also use createPluginInformationDictionary()) and ENABLE(NETSCAPE_PLUGIN_API) (we're already inside |
| an #if ENABLE(NETSCAPE_PLUGIN_API block) and use auto for pluginInformation. Attempt to use the |
| navigation client before the loader client. |
| |
| 2018-02-06 Youenn Fablet <youenn@apple.com> |
| |
| HasServiceWorkerRegistration bit should be sent when creating a new page |
| https://bugs.webkit.org/show_bug.cgi?id=182410 |
| |
| Reviewed by Chris Dumez. |
| |
| Move the bit computation at page creation time. |
| This allows computing the bit based on the web site data store and not only on the pool configuration. |
| WebPage uses that bit to activate service worker registration matching for the whole process. |
| |
| In case there is a service worker process proxy created, the bit is set to true by default. |
| |
| Bit is computed by checking for database file presence. |
| This information is cached in a map for efficiency reasons and cleared when a service worker process proxy is created. |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::encode const): |
| (WebKit::WebProcessCreationParameters::decode): |
| * Shared/WebProcessCreationParameters.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::initializeWebPage): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::establishWorkerContextConnectionToStorageProcess): |
| (WebKit::WebProcessPool::initializeNewWebProcess): |
| (WebKit::WebProcessPool::mayHaveRegisteredServiceWorkers): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_cpuLimit): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeWebProcess): |
| |
| 2018-02-06 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, fix format specifiers added in r228116 |
| https://bugs.webkit.org/show_bug.cgi?id=182456 |
| <rdar://problem/37181006> |
| |
| * NetworkProcess/cache/CacheStorageEngineConnection.cpp: |
| (WebKit::CacheStorageEngineConnection::open): |
| (WebKit::CacheStorageEngineConnection::remove): |
| (WebKit::CacheStorageEngineConnection::caches): |
| (WebKit::CacheStorageEngineConnection::retrieveRecords): |
| (WebKit::CacheStorageEngineConnection::deleteMatchingRecords): |
| (WebKit::CacheStorageEngineConnection::putRecords): |
| (WebKit::CacheStorageEngineConnection::reference): |
| (WebKit::CacheStorageEngineConnection::dereference): |
| |
| 2018-02-05 Chris Dumez <cdumez@apple.com> |
| |
| Avoid unnecessarily constructing RunLoops for GC AutomaticThreads in Connection::sendMessage() after r228001 |
| https://bugs.webkit.org/show_bug.cgi?id=182494 |
| <rdar://problem/37147632> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Somebody fixed a GC crash in r228001 by allowing RunLoop::current() to be called from a |
| GC thread. However, this is still unnecessarily inefficient. Calling RunLoop::current() |
| will construct RunLoops for background GC threads (WTF::AutomaticThreads). This patches |
| updates the IPC code to call isMainThread() instead of RunLoop::isMain() in |
| Connection::sendMessage(). This should mean the same thing since this code runs in |
| WebKit2 and should be more efficient as it ends up simply calling pthread_main_np(), |
| without constructing a RunLoop. |
| |
| * Platform/IPC/Connection.cpp: |
| (IPC::Connection::sendMessage): |
| |
| 2018-02-05 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Release assertion in inlineVideoFrame |
| https://bugs.webkit.org/show_bug.cgi?id=182513 |
| <rdar://problem/37159363> |
| |
| Reviewed by Zalan Bujtas. |
| |
| Fixed the bug. Don't try to update the layout when there is no live render tree or active DOM objects |
| had been stopped: i.e. during a document destruction. |
| |
| * WebProcess/cocoa/VideoFullscreenManager.mm: |
| (WebKit::inlineVideoFrame): |
| |
| 2018-02-05 Yousuke Kimoto <yousuke.kimoto@sony.com> |
| |
| [WinCairo] Refine WebKitLegacy and WebKit build for wincairo |
| https://bugs.webkit.org/show_bug.cgi?id=182478 |
| |
| Reviewed by Alex Christensen. |
| |
| Fixed a typo of forwarding header path for InjectedBundle and copying header |
| method, which should use FLATTENED. |
| |
| * PlatformWin.cmake: Fix a typo of a forwarding header path for InjectedBundle and use FLATTENED. |
| |
| 2018-02-05 Youenn Fablet <youenn@apple.com> |
| |
| WebsiteDataStore::resolveDirectoriesIfNecessary() should not overwrite its resolved serviceWorkerRegistrationDirectory if already set |
| https://bugs.webkit.org/show_bug.cgi?id=182514 |
| |
| Reviewed by Chris Dumez. |
| |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::resolveDirectoriesIfNecessary): |
| |
| 2018-02-05 Brent Fulgham <bfulgham@apple.com> |
| |
| [iOS] Storage process is using the wrong sandbox profile filename |
| https://bugs.webkit.org/show_bug.cgi?id=182500 |
| <rdar://problem/37232614> |
| |
| Reviewed by David Kilzer. |
| |
| The iOS entitlements file was still referencing the old Databases sandbox profile, even though the |
| process has been renamed 'Storage'. |
| |
| * Configurations/Databases-iOS.entitlements: |
| |
| 2018-02-05 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Add DoNotProcessIncomingMessagesWhenWaitingForSyncReply to GetPlugins and RootViewToScreen |
| https://bugs.webkit.org/show_bug.cgi?id=182458 |
| |
| Reviewed by Chris Dumez. |
| |
| Added DoNotProcessIncomingMessagesWhenWaitingForSyncReply to GetPlugins and RootViewToScreen |
| which are found to get sent from WebContent process while ScriptDisallowedScope is present |
| by a work-in-progress patch on webkit.org/b/182449. |
| |
| * WebProcess/Plugins/WebPluginInfoProvider.cpp: |
| (WebKit::WebPluginInfoProvider::populatePluginCache): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::rootViewToScreen): |
| |
| 2018-02-05 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r227964 and r228087. |
| https://bugs.webkit.org/show_bug.cgi?id=182508 |
| |
| These introduced an API test failure with |
| URLTest.HostIsIPAddress alongside commit r228086 (Requested by |
| mlewis13 on #webkit). |
| |
| Reverted changesets: |
| |
| "[SOUP] Ensure domain is valid when converting a WebCore |
| Cookie to Soup" |
| https://bugs.webkit.org/show_bug.cgi?id=182328 |
| https://trac.webkit.org/changeset/227964 |
| |
| "WebDriver: addCookie command should prepend a dot to domain |
| if missing" |
| https://bugs.webkit.org/show_bug.cgi?id=182328 |
| https://trac.webkit.org/changeset/228087 |
| |
| 2018-02-05 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Implement number pad UI when editing `tel` and `number` inputs |
| https://bugs.webkit.org/show_bug.cgi?id=182472 |
| <rdar://problem/35143057> |
| |
| Reviewed by Tim Horton. |
| |
| Allows the user to edit numeric input types using a number pad. See below comments for more detail. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _startAssistingKeyboard]): |
| (-[WKContentView _stopAssistingNode]): |
| |
| Dismiss the number pad, if it is present. |
| |
| (-[WKContentView dismissNumberPadViewController:]): |
| (-[WKContentView presentNumberPadViewController:]): |
| |
| Add new helpers for showing and hiding the number pad view controller. |
| |
| (-[WKContentView presentViewControllerForAssistedNode:]): |
| (-[WKContentView textInputController:didRequestDismissalWithAction:]): |
| |
| Dismiss the number pad, if it is present. |
| |
| (-[WKContentView focusedFormControlControllerDidBeginEditing:]): |
| (-[WKContentView shouldPresentTextInputViewController:]): Deleted. |
| |
| Remove -shouldPresentTextInputViewController and replace it with -presentViewControllerForAssistedNode:, which |
| presents the appropriate view controller given "assisted" node information. |
| |
| * UIProcess/ios/forms/WKNumberPadView.h: Added. |
| * UIProcess/ios/forms/WKNumberPadView.mm: Added. |
| * UIProcess/ios/forms/WKNumberPadViewController.h: Added. |
| * UIProcess/ios/forms/WKNumberPadViewController.mm: Added. |
| |
| Add "WebKitAdditions harness" files for the new number pad view and view controller classes. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-02-05 Youenn Fablet <youenn@apple.com> |
| |
| Add logging to CacheStorageEngineConnection |
| https://bugs.webkit.org/show_bug.cgi?id=182456 |
| |
| Reviewed by Chris Dumez. |
| |
| * NetworkProcess/cache/CacheStorageEngineConnection.cpp: |
| (WebKit::CacheStorageEngineConnection::open): |
| (WebKit::CacheStorageEngineConnection::remove): |
| (WebKit::CacheStorageEngineConnection::caches): |
| (WebKit::CacheStorageEngineConnection::retrieveRecords): |
| (WebKit::CacheStorageEngineConnection::deleteMatchingRecords): |
| (WebKit::CacheStorageEngineConnection::putRecords): |
| (WebKit::CacheStorageEngineConnection::reference): |
| (WebKit::CacheStorageEngineConnection::dereference): |
| * Platform/Logging.h: |
| |
| 2018-02-05 Daniel Bates <dabates@apple.com> |
| |
| REGRESSION (r222795): Nike app "Refused to set unsafe header" when adding and viewing cart |
| https://bugs.webkit.org/show_bug.cgi?id=182491 |
| <rdar://problem/36533447> |
| |
| Reviewed by Brent Fulgham. |
| |
| Exempt Nike from the XHR header restrictions in r222795. |
| |
| Following r222795 only Dashboard widgets are allowed to set arbitrary XHR headers. |
| However Nike also depends on such functionality. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (shouldAllowSettingAnyXHRHeaderFromFileURLs): |
| |
| 2018-02-02 Brent Fulgham <bfulgham@apple.com> |
| |
| Improve NetworkResourceLoader logging so it can be used for 'setCookiesFromDOM' |
| https://bugs.webkit.org/show_bug.cgi?id=182455 |
| <rdar://problem/36626601> |
| |
| Reviewed by Chris Dumez. |
| |
| Refactor "logCookieInformation" so that it can be used for resource loads and DOM cookie |
| manipulation. Place the generally useful logic in a static method that can be invoked |
| from other places in the NetworkProcess. |
| |
| Call the new refactored method from NetworkConnectionToWebProcess::setCookiesFromDOM so |
| we can perform logging there as well. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM): Call the new logging method |
| (when enabled). |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::shouldLogCookieInformation): Changed to static method. |
| (WebKit::escapeForJSON): Made a static function so it could be shared between multiple |
| methods. |
| (WebKit::NetworkResourceLoader::logCookieInformation const): Refactor into two methods. |
| (WebKit::NetworkResourceLoader::logCookieInformation): Ditto. |
| (WebKit::NetworkResourceLoader::shouldLogCookieInformation const): Deleted. |
| * NetworkProcess/NetworkResourceLoader.h: |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): Switch to user-enabled release logging |
| to track partitioning and blocking behavior. |
| |
| 2018-02-05 John Wilander <wilander@apple.com> |
| |
| Storage Access API: Add testRunner.getAllStorageAccessEntries() to make testing easier and more explicit |
| https://bugs.webkit.org/show_bug.cgi?id=181601 |
| <rdar://problem/36475837> |
| |
| Reviewed by Alex Christensen. |
| |
| http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access.html |
| was found to be flaky. With the testRunner.hasStorageAccessEntry() getter |
| it's possible to check access even if a frame doesn't respond timely to |
| postMessage after detach and attach. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::getAllStorageAccessEntries): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _getAllStorageAccessEntries:]): |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::getAllStorageAccessEntries): |
| (WebKit::NetworkProcessProxy::allStorageAccessEntriesResult): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::getAllStorageAccessEntries): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| |
| 2018-02-05 Daniel Bates <dabates@apple.com> |
| |
| Disallow evaluating JavaScript from NPP_Destroy() in WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=181889 |
| <rdar://problem/36674701> |
| |
| Reviewed by Brent Fulgham. |
| |
| Make the behavior of WebKit match the behavior of WebKitLegacy on Mac. |
| |
| * Shared/Plugins/NPObjectMessageReceiver.cpp: |
| (WebKit::NPObjectMessageReceiver::hasMethod): |
| (WebKit::NPObjectMessageReceiver::invoke): |
| (WebKit::NPObjectMessageReceiver::invokeDefault): |
| (WebKit::NPObjectMessageReceiver::hasProperty): |
| (WebKit::NPObjectMessageReceiver::getProperty): |
| (WebKit::NPObjectMessageReceiver::setProperty): |
| (WebKit::NPObjectMessageReceiver::removeProperty): |
| (WebKit::NPObjectMessageReceiver::enumerate): |
| (WebKit::NPObjectMessageReceiver::construct): |
| Bail out if the plugin is executing NPP_Destroy(). |
| |
| * WebProcess/Plugins/Plugin.cpp: |
| (WebKit::Plugin::destroyPlugin): |
| * WebProcess/Plugins/Plugin.h: |
| (WebKit::Plugin::isBeingDestroyed const): |
| Move bookkeeping of whether the plugin is being destroyed from PluginView |
| to here. This makes it straightforward for NPObjectMessageReceiver to query |
| this information. |
| |
| * WebProcess/Plugins/PluginView.cpp: |
| (WebKit::PluginView::~PluginView): |
| (WebKit::PluginView::destroyPluginAndReset): |
| (WebKit::PluginView::recreateAndInitialize): |
| (WebKit::PluginView::protectPluginFromDestruction): |
| (WebKit::PluginView::unprotectPluginFromDestruction): |
| Move bookkeeping of whether the plugin is being destroyed from here |
| to Plugin. |
| |
| * WebProcess/Plugins/PluginView.h: |
| (WebKit::PluginView::isBeingDestroyed const): Turn around and ask the plugin if it |
| is being destroyed, if we have one. |
| |
| 2018-02-05 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| WebDriver: addCookie command should prepend a dot to domain if missing |
| https://bugs.webkit.org/show_bug.cgi?id=182328 |
| <rdar://problem/37116398> |
| |
| Reviewed by Michael Catanzaro. |
| |
| RFC 2965: If an explicitly specified value does not start with a dot, the user agent supplies a leading dot. |
| |
| Fixes: imported/w3c/webdriver/tests/cookies/add_cookie.py::test_add_domain_cookie |
| |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::addSingleCookie): |
| |
| 2018-02-03 Tim Horton <timothy_horton@apple.com> |
| |
| UI process sometimes crashes under -[WKContentView _lookupForWebView:] |
| https://bugs.webkit.org/show_bug.cgi?id=182460 |
| <rdar://problem/33260602> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _lookupForWebView:]): |
| If you have a range selection, but no rects for the selection, retrieving |
| the 0th element of selectionRects will crash the UI process. To fix, in |
| this case, use the rect for the starting caret instead. |
| |
| It doesn't seem like the presentationRect is actually currently used for |
| the Lookup service, so the only impact is that we shouldn't crash anymore. |
| |
| 2018-02-02 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Remove remaining dead !USE(NETWORK_SESSION) code |
| https://bugs.webkit.org/show_bug.cgi?id=182451 |
| |
| Reviewed by Alex Christensen. |
| |
| DownloadCurl.cpp and AuthenticationManagerSoup.cpp have been dead code since NETWORK_SESSION |
| became mandatory. |
| |
| * NetworkProcess/Downloads/curl/DownloadCurl.cpp: Removed. |
| * PlatformGTK.cmake: |
| * PlatformWPE.cmake: |
| * PlatformWin.cmake: |
| * Shared/Authentication/soup/AuthenticationManagerSoup.cpp: Removed. |
| |
| 2018-02-02 Youenn Fablet <youenn@apple.com> |
| |
| CacheStorage should check for origin file presence when computing the origin of a folder |
| https://bugs.webkit.org/show_bug.cgi?id=182454 |
| |
| Reviewed by Chris Dumez. |
| |
| In case caches is opened for an origin but no cache is added, we do not have a caches name file but we do have an origin filename. |
| We should be checking the origin filename anyway since we will be reading it afterwards. |
| |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::Caches::retrieveOriginFromDirectory): |
| |
| 2018-02-02 Youenn Fablet <youenn@apple.com> |
| |
| Configure serviceWorkerRegistrationDirectory on the web site data store and move it to a Caches subfolder as a default |
| https://bugs.webkit.org/show_bug.cgi?id=182403 |
| <rdar://problem/36673358> |
| |
| Reviewed by Alex Christensen. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::legacyWebsiteDataStoreConfiguration): Setting serviceWorkerRegistrationDirectory for legacy stores. |
| |
| 2018-02-02 Youenn Fablet <youenn@apple.com> |
| |
| Clearing all service worker registrations should wait for importing service worker registration to finish |
| https://bugs.webkit.org/show_bug.cgi?id=182407 |
| |
| Reviewed by Chris Dumez. |
| |
| Updating API to take a completion handler. |
| |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreRemoveAllServiceWorkerRegistrations): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| |
| 2018-02-02 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [Win] MSVC doesn't seem to like "friend class NeverDestroyed<Foo>" |
| https://bugs.webkit.org/show_bug.cgi?id=182081 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| The template friend class, which belongs to a different namespace, |
| can't access private member if its friend declaration is specified |
| without the namespace and with class keyword. |
| |
| Replaced "friend class NeverDestroyed<Foo>" with "friend NeverDestroyed<Foo>". |
| |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/capture/NetworkCaptureManager.h: |
| * PluginProcess/PluginProcess.h: |
| * Shared/CallbackID.h: |
| * Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp: |
| * StorageProcess/StorageProcess.h: |
| * UIProcess/Plugins/PluginProcessManager.h: |
| * UIProcess/Plugins/gtk/PluginInfoCache.h: |
| * UIProcess/WebPageProxy.cpp: |
| * UIProcess/WebPasteboardProxy.h: |
| * UIProcess/gtk/AcceleratedBackingStoreX11.cpp: |
| * UIProcess/gtk/HardwareAccelerationManager.h: |
| * UIProcess/gtk/WaylandCompositor.h: |
| * UIProcess/linux/MemoryPressureMonitor.h: |
| * UIProcess/mac/ServicesController.h: |
| * WebProcess/InjectedBundle/API/glib/WebKitExtensionManager.h: |
| * WebProcess/Plugins/WebPluginInfoProvider.h: |
| * WebProcess/WebCoreSupport/WebPasteboardOverrides.h: |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.h: |
| |
| 2018-02-02 Youenn Fablet <youenn@apple.com> |
| |
| Configure serviceWorkerRegistrationDirectory on the web site data store and move it to a Caches subfolder as a default |
| https://bugs.webkit.org/show_bug.cgi?id=182403 |
| |
| Reviewed by Alex Christensen. |
| |
| WebsiteDataStore is the place to set configuration information such as service worker registration path. |
| This patch updates WebKit code accordingly. |
| By default, the service worker registration path is in a Caches subfolder, similarly to cache API path. |
| |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| (API::ProcessPoolConfiguration::createWithLegacyOptions): |
| (API::ProcessPoolConfiguration::createWithWebsiteDataStoreConfiguration): |
| (API::ProcessPoolConfiguration::ProcessPoolConfiguration): |
| (API::ProcessPoolConfiguration::copy): |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| * UIProcess/API/C/WKContextConfigurationRef.cpp: |
| (WKContextConfigurationCopyServiceWorkerDatabaseDirectory): Deleted. |
| (WKContextConfigurationSetServiceWorkerDatabaseDirectory): Deleted. |
| * UIProcess/API/C/WKContextConfigurationRef.h: |
| * UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm: |
| (API::WebsiteDataStore::defaultServiceWorkerRegistrationDirectory): |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _serviceWorkerRegistrationDirectory]): |
| (-[WKWebsiteDataStore _setServiceWorkerRegistrationDirectory:]): |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureStorageProcessAndWebsiteDataStore): |
| (WebKit::WebProcessPool::initializeNewWebProcess): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| (WebKit::WebsiteDataStore::serviceWorkerRegistrationDirectory const): |
| (WebKit::WebsiteDataStore::setServiceWorkerRegistrationDirectory): |
| * UIProcess/gtk/WebProcessPoolGtk.cpp: |
| * UIProcess/gtk/WebProcessPoolWPE.cpp: |
| |
| 2018-02-02 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra Zoom Mode] Implement support for indirect mainframe scrolling |
| https://bugs.webkit.org/show_bug.cgi?id=182421 |
| <rdar://problem/35142694> |
| |
| Reviewed by Tim Horton. |
| |
| Makes a few small adjustments to WKScrollView to improve mainframe scrolling, and disable the pinch gesture for |
| zooming. See below for more details. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| |
| Remove a now-unneeded WebKitAdditions import. |
| |
| * UIProcess/ios/WKScrollView.mm: |
| (-[WKScrollView initWithFrame:]): |
| |
| Add imports for -Before and -After versions of WKScrollViewAdditions. |
| |
| (-[WKScrollView addGestureRecognizer:]): |
| |
| Override -addGestureRecognizer here to prevent touches on the pinch gesture recognizer from being recognized. |
| I chose this approach instead of just disabling the gesture in -initWithFrame: because (1) the pinch gesture |
| recognizer is lazily created when setting minimum or maximum zoom scales, rather than immediately in |
| -initWithFrame:, and (2) even if we set the -enabled to NO, UIKit later resets it to YES in other codepaths. |
| |
| 2018-02-01 Tim Horton <timothy_horton@apple.com> |
| |
| WebKit fails to build (_startAssistingNode has conflicting parameters) |
| https://bugs.webkit.org/show_bug.cgi?id=182417 |
| <rdar://problem/36965318> |
| |
| Reviewed by Dan Bernstein. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| Use Big BOOL like in the implementation. |
| |
| 2018-02-01 Brent Fulgham <bfulgham@apple.com> |
| |
| Improve NetworkResourceLogger to report blocked (versus non-partitioned) cookies |
| https://bugs.webkit.org/show_bug.cgi?id=182408 |
| <rdar://problem/36918028> |
| |
| Reviewed by Chris Dumez. |
| |
| Update the logging method to report blocked origins, rather than logging them as non-partitioned |
| loads that have no cookies or other content. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::logCookieInformation const): |
| |
| 2018-02-01 David Kilzer <ddkilzer@apple.com> |
| |
| REGRESSION (r222824): UI process crashes in WebKit::WebBackForwardList::backItem const |
| <https://webkit.org/b/182409> |
| <rdar://problem/35495094> |
| |
| Reviewed by Alex Christensen. |
| |
| * UIProcess/WebBackForwardList.cpp: |
| (WebKit::WebBackForwardList::goToItem): Fix typo so the for loop |
| actually checks each value in m_entries. |
| |
| 2018-02-01 Youenn Fablet <youenn@apple.com> |
| |
| Delay service worker process creation until actually needed by SWServer |
| https://bugs.webkit.org/show_bug.cgi?id=182301 |
| |
| Reviewed by Chris Dumez. |
| |
| Do not create a service worker process at creation of the first SWServerConnection. |
| Wait for a WebProcess message that needs it: |
| - postMessage message |
| - fetchEvent message |
| - job scheduling. |
| |
| * StorageProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::startFetch): |
| (WebKit::WebSWServerConnection::postMessageToServiceWorker): |
| (WebKit::WebSWServerConnection::scheduleJobInServer): |
| * StorageProcess/ServiceWorker/WebSWServerConnection.h: |
| * StorageProcess/StorageToWebProcessConnection.cpp: |
| (WebKit::StorageToWebProcessConnection::establishSWServerConnection): |
| |
| 2018-02-01 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Implement basic support for interacting with text form controls |
| https://bugs.webkit.org/show_bug.cgi?id=182401 |
| <rdar://problem/35143035> |
| |
| Reviewed by Tim Horton. |
| |
| Add UI support for interacting with and editing text form controls when extra zoom mode is enabled. See below |
| for more details. |
| |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: |
| (-[WKWebViewConfiguration init]): |
| (-[WKWebViewConfiguration encodeWithCoder:]): |
| (-[WKWebViewConfiguration initWithCoder:]): |
| (-[WKWebViewConfiguration copyWithZone:]): |
| (-[WKWebViewConfiguration _textInteractionGesturesEnabled]): |
| (-[WKWebViewConfiguration _setTextInteractionGesturesEnabled:]): |
| (-[WKWebViewConfiguration _longPressActionsEnabled]): |
| (-[WKWebViewConfiguration _setLongPressActionsEnabled:]): |
| |
| Introduce two new web view configuration flags: `textInteractionGesturesEnabled` and `longPressActionsEnabled`. |
| The former determines whether text interaction gestures (i.e. text selection, moving the caret, showing UI for |
| IME, etc.) are enabled. The latter determines whether or not long press actions (i.e. touch callout, share |
| sheet, etc.) are enabled. These are disabled by default only in extra zoom mode. |
| |
| * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::setTextAsync): |
| |
| Add a way to set the text value of a currently edited text form control. This will either set the text value of |
| an input, a. la. autofill, or overwrite the contents of a contenteditable area by selecting everything and |
| inserting the given text. |
| |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::focusNextAssistedNode): |
| |
| Add a default argument for the completion callback. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView setupInteraction]): |
| (-[WKContentView _displayFormNodeInputView]): |
| (-[WKContentView _actionForLongPressFromPositionInformation:]): |
| (-[WKContentView hasSelectablePositionAtPoint:]): |
| (-[WKContentView pointIsNearMarkedText:]): |
| (-[WKContentView textInteractionGesture:shouldBeginAtPoint:]): |
| (-[WKContentView insertionPointColor]): |
| |
| Respect the web view configuration flags above by bailing early from text interaction and long press action |
| sheet methods. |
| |
| (-[WKContentView _startAssistingKeyboard]): |
| (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]): |
| |
| Add a flag indicating whether we are in the process of changing focus from one node to another. We use this to |
| decide whether or not we want to present the text input view controller right away, or just reload the focused |
| form control overlay. When we stop "assisting" a node, we also keep the focused form control overlay up if we're |
| only changing focus to another form control. |
| |
| (-[WKContentView _stopAssistingNode]): |
| (-[WKContentView presentFocusedFormControlViewController:]): |
| (-[WKContentView dismissFocusedFormControlViewController:]): |
| (-[WKContentView shouldPresentTextInputViewController:]): |
| (-[WKContentView presentTextInputViewController:]): |
| (-[WKContentView dismissTextInputViewController:]): |
| |
| Introduce helpers for managing presentation of the focused form control overlay and text input view controller. |
| All -present and -dismiss helpers here are idempotent. These view controllers are presented from the content |
| view's view controller for fullscreen presentation. |
| |
| (-[WKContentView textInputController:didCommitText:]): |
| (-[WKContentView textInputController:didRequestDismissalWithAction:]): |
| (-[WKContentView focusedFormControlControllerDidSubmit:]): |
| (-[WKContentView focusedFormControlControllerDidCancel:]): |
| (-[WKContentView focusedFormControlControllerDidBeginEditing:]): |
| (-[WKContentView highlightedRectForFocusedFormControlController:inCoordinateSpace:]): |
| (-[WKContentView actionNameForFocusedFormControlController:]): |
| (-[WKContentView focusedFormControlControllerDidRequestNextNode:]): |
| (-[WKContentView focusedFormControlControllerDidRequestPreviousNode:]): |
| (-[WKContentView hasNextNodeForFocusedFormControlController:]): |
| (-[WKContentView hasPreviousNodeForFocusedFormControlController:]): |
| |
| Implement delegate methods for the focused form control and text input view controllers. This mainly involves |
| straightforward plumbing of pieces of AssistedNodeInformation on the content view. |
| |
| (-[WKContentView pointIsInAssistedNode:]): Deleted. |
| |
| Remove a method that was still implemented only for binary compatibility with iOS 10. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::setTextAsync): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2018-02-01 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Shift + mouse scroll should scroll horizontally |
| https://bugs.webkit.org/show_bug.cgi?id=181629 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Swap scroll direction when Shift is pressed for consistency with GtkScrolledWindow. |
| |
| * UIProcess/API/gtk/WebKitWebViewBase.cpp: |
| (webkitWebViewBaseScrollEvent): |
| |
| 2018-02-01 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| REGRESSION(r227893): fast/events/touch/touch-stale-node-crash.html and other tests crash |
| https://bugs.webkit.org/show_bug.cgi?id=182350 |
| |
| Reviewed by Carlos Alberto Lopez Perez. |
| |
| Ensure events synthesized from touch gestures have a valid window, screen and device. |
| |
| * UIProcess/API/gtk/WebKitWebViewBase.cpp: |
| * UIProcess/gtk/GestureController.h: Add virtual destructor to GestureControllerclient. |
| |
| 2018-01-31 Simon Fraser <simon.fraser@apple.com> |
| |
| Use different debug red colors for different contexts |
| https://bugs.webkit.org/show_bug.cgi?id=182362 |
| |
| Reviewed by Tim Horton. |
| |
| Pure red is used elsehwere in the system as a debug color indicator, so use different |
| shades of red for WebKit in the two places where we paint a reddish wash in debug builds, |
| so they are identifiable. |
| |
| * Shared/RemoteLayerTree/RemoteLayerBackingStore.mm: |
| (WebKit::RemoteLayerBackingStore::drawInContext): |
| |
| 2018-01-31 Don Olmstead <don.olmstead@sony.com> |
| |
| [CMake] Make JavaScriptCore headers copies |
| https://bugs.webkit.org/show_bug.cgi?id=182303 |
| |
| Reviewed by Alex Christensen. |
| |
| * CMakeLists.txt: |
| * Scripts/generate-forwarding-headers.pl: |
| |
| 2018-01-31 Alex Christensen <achristensen@webkit.org> |
| |
| Unreviewed, rolling out r227942. |
| |
| r227875 should not have been rolled out. |
| |
| Reverted changeset: |
| |
| "Unreviewed, rolling out r227875." |
| https://bugs.webkit.org/show_bug.cgi?id=182357 |
| https://trac.webkit.org/changeset/227942 |
| |
| 2018-01-31 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, rolling out r227875. |
| https://bugs.webkit.org/show_bug.cgi?id=182357 |
| |
| Missing cross-platform TestController implementation |
| |
| Reverted changeset: |
| |
| "Add callbacks to testRunner.statisticsSetShouldPartitionCookiesForHost() and testRunner.statisticsUpdateCookiePartitioning()" |
| https://bugs.webkit.org/show_bug.cgi?id=181958 |
| https://trac.webkit.org/changeset/227875 |
| |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreStatisticsUpdateCookiePartitioning): |
| (WKWebsiteDataStoreSetStatisticsShouldPartitionCookiesForHost): |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _resourceLoadStatisticsUpdateCookiePartitioning]): |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetShouldPartitionCookies:forHost:]): |
| (-[WKWebsiteDataStore _resourceLoadStatisticsUpdateCookiePartitioning:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetShouldPartitionCookies:forHost:completionHandler:]): Deleted. |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::resourceLoadStatisticsUpdated): |
| (WebKit::WebResourceLoadStatisticsStore::logUserInteraction): |
| (WebKit::WebResourceLoadStatisticsStore::logNonRecentUserInteraction): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleCookiePartitioningUpdate): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleCookiePartitioningUpdateForDomains): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleClearPartitioningStateForDomains): |
| (WebKit::WebResourceLoadStatisticsStore::mergeWithDataFromDecoder): |
| (WebKit::WebResourceLoadStatisticsStore::clearInMemory): |
| (WebKit::WebResourceLoadStatisticsStore::updateCookiePartitioning): |
| (WebKit::WebResourceLoadStatisticsStore::updateCookiePartitioningForDomains): |
| (WebKit::WebResourceLoadStatisticsStore::clearPartitioningStateForDomains): |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| |
| 2018-01-31 Brent Fulgham <bfulgham@apple.com> |
| |
| Follow-up to r227939. |
| https://bugs.webkit.org/show_bug.cgi?id=182354 |
| <rdar://problem/37046844> |
| |
| Make sure the correct sandbox is used on iOS as well. |
| |
| * StorageProcess/ios/StorageProcessIOS.mm: |
| (WebKit::StorageProcess::initializeSandbox): |
| |
| 2018-01-31 Brent Fulgham <bfulgham@apple.com> |
| |
| REGRESSION(r220094): com.apple.WebKit.Storage lost its sandbox |
| https://bugs.webkit.org/show_bug.cgi?id=182354 |
| <rdar://problem/37046844> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| The Database process was renamed to Storage, but it's sandbox was not updated. |
| |
| * Configurations/WebKit.xcconfig: Update for sandbox rename. |
| * DerivedSources.make: Ditto. |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.Databases.sb: Removed. |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.Storage.sb: Copied from Resources/SandboxProfiles/ios/com.apple.WebKit.Databases.sb. |
| * StorageProcess/mac/com.apple.WebKit.Databases.sb.in: Removed. |
| * StorageProcess/mac/com.apple.WebKit.Storage.sb.in: Copied from StorageProcess/mac/com.apple.WebKit.Databases.sb.in. |
| * WebKit.xcodeproj/project.pbxproj: Update for sandbox rename. |
| |
| 2018-01-31 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| REGRESSION(r227223): http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store-one-hour.html, http/tests/resourceLoadStatistics/grandfathering.html timing out on GTK, WPE |
| https://bugs.webkit.org/show_bug.cgi?id=182222 |
| |
| Reviewed by Alex Christensen. |
| |
| Add callbacks to notify when resource load statistics deletion is complete. |
| |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreStatisticsClearInMemoryAndPersistentStore): |
| (WKWebsiteDataStoreStatisticsClearInMemoryAndPersistentStoreModifiedSinceHours): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| |
| 2018-01-31 Tim Horton <timothy_horton@apple.com> |
| |
| Occasional null deref under WebPageProxy::updateBackingStoreDiscardableState() |
| https://bugs.webkit.org/show_bug.cgi?id=182349 |
| <rdar://problem/27822258> |
| |
| Reviewed by Simon Fraser. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::updateBackingStoreDiscardableState): |
| m_drawingArea can be null during process launch and relaunch. |
| |
| Cocoa ports don't use the result of setBackingStoreIsDiscardable(), |
| but they do run this code to keep it up to date. |
| |
| 2018-01-31 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [GTK] Move gir and typelib generation into ENABLE_INTROSPECTION conditional |
| https://bugs.webkit.org/show_bug.cgi?id=182308 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * PlatformGTK.cmake: |
| |
| 2018-01-31 Youenn Fablet <youenn@apple.com> |
| |
| Remove StorageToWebProcessConnection::removeSWServerConnection |
| https://bugs.webkit.org/show_bug.cgi?id=182305 |
| |
| Reviewed by Chris Dumez. |
| |
| * StorageProcess/StorageToWebProcessConnection.cpp: |
| (WebKit::StorageToWebProcessConnection::removeSWServerConnection): Deleted. |
| * StorageProcess/StorageToWebProcessConnection.h: |
| * StorageProcess/StorageToWebProcessConnection.messages.in: |
| |
| 2018-01-31 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| REGRESSION(r227544): [GTK] contextMenuEvent is NULL on CONTEXT_MENU call |
| https://bugs.webkit.org/show_bug.cgi?id=182224 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Move the gestures handling to WebKitWebViewBase. This patch adds GestureControllerClient class, created and |
| implemented by WebKitWebViewBase and used by GestureController instead of the WebPageProxy. This way we ensure |
| events are handled consistently. |
| |
| * UIProcess/API/gtk/PageClientImpl.cpp: |
| (WebKit::PageClientImpl::doneWithTouchEvent): Cast the GdkEvent since GestureController no longer works wirth |
| const GdkEvents. |
| (WebKit::PageClientImpl::zoom): Use webkit_web_view_set_zoom_level() in case of WebKitWebView or |
| WebPageProxy::setPageZoomFactor() otherwise. |
| * UIProcess/API/gtk/PageClientImpl.h: |
| * UIProcess/API/gtk/WebKitWebViewBase.cpp: |
| (ClickCounter::currentClickCountForGdkButtonEvent): Receive a GdkEvent to avoid casts. |
| (webkitWebViewBaseHandleMouseEvent): Helper function to handle mouse events. |
| (webkitWebViewBaseButtonPressEvent): Use webkitWebViewBaseHandleMouseEvent. |
| (webkitWebViewBaseButtonReleaseEvent): Ditto. |
| (webkitWebViewBaseHandleWheelEvent): Helper function to handle wheel events. |
| (webkitWebViewBaseScrollEvent): Use webkitWebViewBaseHandleWheelEvent. |
| (webkitWebViewBaseMotionNotifyEvent): Use webkitWebViewBaseHandleMouseEvent. |
| (webkitWebViewBaseCrossingNotifyEvent): Ditto. |
| (webkitWebViewBaseGestureController): Pass the widget and client to GestureController. |
| * UIProcess/gtk/GestureController.cpp: |
| (WebKit::GestureController::GestureController): Receives a widget and client now. |
| (WebKit::GestureController::handleEvent): Remove the const. |
| (WebKit::GestureController::Gesture::Gesture): Initialize client. |
| (WebKit::GestureController::Gesture::handleEvent): Remove the const. |
| (WebKit::GestureController::DragGesture::startDrag): Use the client instead of WebPageProxy. |
| (WebKit::GestureController::DragGesture::handleDrag): Ditto. |
| (WebKit::GestureController::DragGesture::handleTap): Ditto. |
| (WebKit::GestureController::DragGesture::begin): Ignore the const returned by gtk_gesture_get_last_event(). |
| (WebKit::GestureController::DragGesture::update): Ditto. |
| (WebKit::GestureController::DragGesture::end): Ditto. |
| (WebKit::GestureController::DragGesture::DragGesture): Receives a widget and client now. |
| (WebKit::GestureController::SwipeGesture::startMomentumScroll): Use the client instead of WebPageProxy. |
| (WebKit::GestureController::SwipeGesture::swipe): Ignore the const returned by gtk_gesture_get_last_event(). |
| (WebKit::GestureController::SwipeGesture::SwipeGesture): Receives a widget and client now. |
| (WebKit::GestureController::ZoomGesture::begin): Start the zoom. |
| (WebKit::GestureController::ZoomGesture::startZoom): Use the client instead of WebPageProxy. |
| (WebKit::GestureController::ZoomGesture::handleZoom): Ditto. |
| (WebKit::GestureController::ZoomGesture::ZoomGesture): Receives a widget and client now. |
| (WebKit::GestureController::LongPressGesture::longPressed): Use the client instead of WebKitWebView. |
| (WebKit::GestureController::LongPressGesture::pressed): Ignore the const returned by gtk_gesture_get_last_event(). |
| (WebKit::GestureController::LongPressGesture::LongPressGesture): Receives a widget and client now. |
| (WebKit::GestureController::Gesture::simulateMouseClick): Deleted. |
| (WebKit::createScrollEvent): Deleted. |
| * UIProcess/gtk/GestureController.h: |
| |
| 2018-01-31 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Web Automation: cookies returned by automation should have expiry time in seconds |
| https://bugs.webkit.org/show_bug.cgi?id=182293 |
| |
| Reviewed by Brian Burg. |
| |
| When creating a WebCore::Cookie from a WebDriver object we convert the given expiry time to milliseconds, but |
| when creating a WebDriver object from a WebCore::Cookie we are keeping the milliseconds. We should convert to |
| seconds for consistency, so that the WebDriver always handles seconds. |
| |
| Fixes: imported/w3c/webdriver/tests/cookies/get_named_cookie.py::test_get_named_cookie |
| |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::buildObjectForCookie): Convert expiry to seconds. |
| |
| 2018-01-31 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Unreviewed iOS build fix. |
| |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| |
| 2018-01-30 John Wilander <wilander@apple.com> |
| |
| Add callbacks to testRunner.statisticsSetShouldPartitionCookiesForHost() and testRunner.statisticsUpdateCookiePartitioning() |
| https://bugs.webkit.org/show_bug.cgi?id=181958 |
| https://bugs.webkit.org/show_bug.cgi?id=182072 |
| <rdar://problem/36801804> |
| <rdar://problem/36845795> |
| |
| Reviewed by Brent Fulgham. |
| |
| Because of the asynchronous nature of XPC and cookies, |
| we need callbacks in these TestRunner functions so that |
| the layout tests can wait for state changes to finish |
| before checking test conditions. |
| |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreStatisticsUpdateCookiePartitioning): |
| (WKWebsiteDataStoreSetStatisticsShouldPartitionCookiesForHost): |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _resourceLoadStatisticsUpdateCookiePartitioning]): |
| (-[WKWebsiteDataStore _resourceLoadStatisticsUpdateCookiePartitioning:]): |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetShouldPartitionCookies:forHost:]): |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetShouldPartitionCookies:forHost:completionHandler:]): |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::resourceLoadStatisticsUpdated): |
| (WebKit::WebResourceLoadStatisticsStore::logUserInteraction): |
| (WebKit::WebResourceLoadStatisticsStore::logNonRecentUserInteraction): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleCookiePartitioningUpdate): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleCookiePartitioningUpdateForDomains): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleClearPartitioningStateForDomains): |
| (WebKit::WebResourceLoadStatisticsStore::mergeWithDataFromDecoder): |
| (WebKit::WebResourceLoadStatisticsStore::clearInMemory): |
| (WebKit::WebResourceLoadStatisticsStore::updateCookiePartitioning): |
| (WebKit::WebResourceLoadStatisticsStore::updateCookiePartitioningForDomains): |
| (WebKit::WebResourceLoadStatisticsStore::clearPartitioningStateForDomains): |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| |
| 2018-01-30 Ryosuke Niwa <rniwa@webkit.org> |
| |
| REGRESSION(r227550): Resource timing API is disabled on macOS |
| https://bugs.webkit.org/show_bug.cgi?id=182318 |
| |
| Reviewed by Chris Dumez. |
| |
| Resource timing API should be enabled by default all versions of macOS we support now. |
| |
| * Shared/WebPreferences.yaml: |
| * Shared/WebPreferencesDefaultValues.h: |
| |
| 2018-01-30 Tim Horton <timothy_horton@apple.com> |
| |
| WKWebView layout is sometimes wrong after rotation on iPhone X |
| https://bugs.webkit.org/show_bug.cgi?id=182304 |
| <rdar://problem/34158671> |
| |
| Reviewed by Simon Fraser. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _computedContentInset]): |
| (-[WKWebView _scrollViewSystemContentInset]): |
| (activeMinimumLayoutSize): |
| It turns out that it is not always safe to look at the safe area insets of |
| children from inside layoutSubviews, even after the call to super. |
| |
| Instead, make use of the fact that WKScrollView and WKWebView have identical |
| coordinate spaces, and map WKWebView's safe area insets into the WKScrollView. |
| It's safe to use the scroll view's affected-edges and contentScrollInset, |
| because those aren't updated at the same outside-of-layout time that |
| safe area insets are. |
| |
| We could alternatively move all calls to activeMinimumLayoutSize outside |
| of layoutSubviews, but that seems like a larger and riskier change. |
| |
| All attempts to write a test have failed; this depends heavily on use of |
| autolayout and the mechanism by which the system updates system-owned |
| safe area insets during device rotation. |
| |
| 2018-01-30 Don Olmstead <don.olmstead@sony.com> |
| |
| JSExports.h should be included as <JavaScriptCore/JSExportMacros.h> |
| https://bugs.webkit.org/show_bug.cgi?id=182312 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * config.h: |
| |
| 2018-01-30 Brent Fulgham <bfulgham@apple.com> |
| |
| Add telemetry to track storage access API adoption |
| https://bugs.webkit.org/show_bug.cgi?id=182197 |
| <rdar://problem/35803309> |
| |
| Reviewed by Chris Dumez. |
| |
| Part 2: Add telemetry for the Storage Access API case |
| |
| This change increments a counter when an origin is loaded in a first part context because |
| it was granted Storage Access API permissions. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::logCookieInformation const): Add logging to indicate |
| loads that happened with the Storage Access API enabled. |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::requestStorageAccess): Increment counter for |
| loads using the new API. |
| |
| 2018-01-30 Megan Gardner <megan_gardner@apple.com> |
| |
| Make preserve and restore focus more likely to be symmetrical |
| https://bugs.webkit.org/show_bug.cgi?id=182264 |
| <rdar://problem/36948473> |
| |
| Reviewed by Tim Horton. |
| |
| Keep a stack of if we actually increment the focusState, so that |
| changes to the web content do not result in asymmetric decrements to the focus state. |
| To work around problems associated with <rdar://problem/37000122>. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _restoreFocusWithToken:]): |
| (-[WKContentView _preserveFocusWithToken:destructively:]): |
| |
| 2018-01-30 Brent Fulgham <bfulgham@apple.com> |
| |
| Add telemetry to track storage access API adoption |
| https://bugs.webkit.org/show_bug.cgi?id=182197 |
| <rdar://problem/35803309> |
| |
| Reviewed by Chris Dumez. |
| |
| This patch also handled aggregating the counts in the UIProcess, which has access to |
| the right data. |
| |
| The original patch assumed the WebContent process kept track of user interaction. This is |
| only tracked in the UIProcess, so we can get rid of some of the logging code adding in |
| r227755. |
| |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::encode const): Rollout of r227755 changes not |
| needed to track the statistics. |
| (WebKit::WebProcessCreationParameters::decode): Ditto. |
| * Shared/WebProcessCreationParameters.h: |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): Ditto. |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::wasAccessedAsFirstPartyDueToUserInteraction): Moved from |
| the WebContent process, which does not keep track of user interaction. |
| (WebKit::WebResourceLoadStatisticsStore::mergeStatistics): Aggregate counts while processing |
| the statistics. |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeWebProcess): |
| |
| 2018-01-30 Chris Dumez <cdumez@apple.com> |
| |
| Make sure we never create a WebSWClientConnection with an invalid sessionID |
| https://bugs.webkit.org/show_bug.cgi?id=182276 |
| <rdar://problem/36582633> |
| |
| Reviewed by Alex Christensen. |
| |
| Make sure we never create a WebSWClientConnection with an invalid sessionID as this |
| could corrupt our hash tables. |
| |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::swServerForSession): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::establishWorkerContextConnectionToStorageProcess): |
| * WebProcess/Storage/WebSWClientConnection.cpp: |
| (WebKit::WebSWClientConnection::WebSWClientConnection): |
| * WebProcess/Storage/WebServiceWorkerProvider.cpp: |
| (WebKit::WebServiceWorkerProvider::serviceWorkerConnectionForSession): |
| (WebKit::WebServiceWorkerProvider::existingServiceWorkerConnectionForSession): |
| * WebProcess/Storage/WebToStorageProcessConnection.cpp: |
| (WebKit::WebToStorageProcessConnection::serviceWorkerConnectionForSession): |
| |
| 2018-01-30 Basuke Suzuki <Basuke.Suzuki@sony.com> |
| |
| [WinCairo] Fix forwarding header conflict of WebKit on WinCairo |
| https://bugs.webkit.org/show_bug.cgi?id=177202 |
| |
| Reviewed by Alex Christensen. |
| |
| * PlatformWin.cmake: |
| |
| 2018-01-29 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| WebDriver: evaluateJavaScriptFunction should return null when return value is undefined |
| https://bugs.webkit.org/show_bug.cgi?id=180350 |
| |
| Reviewed by Carlos Alberto Lopez Perez. |
| |
| undefined can't be converted to JSON string, in which case JSON.stringify() returns undefined and we handle that |
| case to return an empty string. We currently handle this case for execute script commands, but not in all other |
| cases where we use evaluateJavaScriptFunction. It would be simpler if evaluateJavaScriptFunction returned null, |
| because in that case we wouldn't need to handle it as a special case. |
| |
| 15.2 Executing Script |
| https://w3c.github.io/webdriver/webdriver-spec.html#dfn-json-clone |
| |
| Fixes: imported/w3c/webdriver/tests/state/get_element_property.py::test_element_non_existent |
| |
| * WebProcess/Automation/WebAutomationSessionProxy.js: |
| (let.AutomationSessionProxy.prototype._jsonStringify): Return "null" instead of "" when undefined is given. |
| |
| 2018-01-29 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Release assert in updateLayout while waiting for sync reply to WebPageProxy::HasInsecureContent |
| https://bugs.webkit.org/show_bug.cgi?id=182273 |
| |
| Reviewed by Chris Dumez. |
| |
| The assertion was caused by unrelated sync IPCs being processed while WebContent process is waiting for |
| the reply to WebPageProxy::HasInsecureContent. Since this IPC can be used while creating CachedFrame, |
| it's not safe to execute arbitrary code. |
| |
| Fixed the bug by using DoNotProcessIncomingMessagesWhenWaitingForSyncReply added in r227566. |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::savePlatformDataToCachedFrame): |
| |
| 2018-01-29 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Add a build step to copy resources from WebKitAdditions as bundle resources in WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=182268 |
| <rdar://problem/37003784> |
| |
| Reviewed by Tim Horton and Dan Bernstein. |
| |
| Adds a "Copy Additional Resources" phase when building WebKit. This phase copies resources from |
| usr/local/include/WebKitAdditions/WebKit/AdditionalResources in the build directory into the |
| unlocalized resources directory. If the AdditionalResources directory does not exist in the build |
| directory, we fall back to searching the SDK. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-01-29 Youenn Fablet <youenn@apple.com> |
| |
| ServiceWorkerClientFetch should not consider responses without Location headers as redirection responses |
| https://bugs.webkit.org/show_bug.cgi?id=182134 |
| |
| Reviewed by Chris Dumez. |
| |
| As per fetch spec, a response with a redirection status code but no Location header should not be considered as a redirection. |
| This is also consistent with SubresourceLoader::didReceiveResponse. |
| |
| * WebProcess/Storage/ServiceWorkerClientFetch.cpp: |
| (WebKit::ServiceWorkerClientFetch::didReceiveResponse): |
| |
| 2018-01-29 Youenn Fablet <youenn@apple.com> |
| |
| Cache API should make sure to resolve caches.open promises in the same order as called |
| https://bugs.webkit.org/show_bug.cgi?id=182193 |
| <rdar://problem/36930363> |
| |
| Reviewed by Chris Dumez. |
| |
| Covered by added test. |
| Whenever opening/removing a cache requires writing to disk, wait to finish the task |
| until any disk writing task is done. |
| Applying this strategy when clearing data so that we also clear data that is pending to be written. |
| For removing cache, we now return whether a cache was actually deleted by returning zero as removed cache identifier. |
| WebCore uses that information to return true/false as promise resolution value. |
| |
| * NetworkProcess/cache/CacheStorageEngine.cpp: |
| (WebKit::CacheStorage::Engine::retrieveCaches): |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::Caches::clear): |
| (WebKit::CacheStorage::Caches::open): |
| (WebKit::CacheStorage::Caches::remove): |
| (WebKit::CacheStorage::Caches::writeCachesToDisk): |
| (WebKit::CacheStorage::Caches::cacheInfos): |
| (WebKit::CacheStorage::Caches::cacheInfos const): Deleted. |
| * NetworkProcess/cache/CacheStorageEngineCaches.h: |
| (WebKit::CacheStorage::Caches::createWeakPtr): |
| |
| 2018-01-29 Alex Christensen <achristensen@webkit.org> |
| |
| Clean up API after bugs 178240 and 176474 |
| https://bugs.webkit.org/show_bug.cgi?id=182259 |
| |
| Reviewed by Dan Bernstein. |
| |
| NS_OPTIONS should be NSUInteger, not NSInteger. This is how all other NS_OPTIONS in WebKit are, |
| and it's necessary if we get really big numbers as options. Changing them won't cause binary |
| incompatibility unless someone does signed integer comparison with currently invalid values. |
| |
| Added availability macros I forgot to add earlier. |
| |
| * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| |
| 2018-01-29 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthN] Add a compile-time feature flag |
| https://bugs.webkit.org/show_bug.cgi?id=182211 |
| <rdar://problem/36936365> |
| |
| Reviewed by Brent Fulgham. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2018-01-29 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Introduce debug mode as experimental feature |
| https://bugs.webkit.org/show_bug.cgi?id=182199 |
| <rdar://problem/36930364> |
| |
| Reviewed by Alex Christensen. |
| |
| The only changes to default behavior are: |
| - Increased resolution on timestamps which is needed to be able to set shorter |
| timeouts in debug mode. |
| - Only update partitioning and blocking table when needed. This is an optimization |
| which pays off in less XPC with shorter timeouts. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/APIWebsiteDataStore.cpp: |
| (API::WebsiteDataStore::resourceLoadStatisticsDebugMode const): |
| (API::WebsiteDataStore::setResourceLoadStatisticsDebugMode): |
| * UIProcess/API/APIWebsiteDataStore.h: |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreSetResourceLoadStatisticsDebugMode): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _resourceLoadStatisticsDebugMode]): |
| (-[WKWebsiteDataStore _setResourceLoadStatisticsDebugMode:]): |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::setResourceLoadStatisticsDebugMode): |
| (WebKit::WebResourceLoadStatisticsStore::logUserInteraction): |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::resourceLoadStatisticsDebugMode const): |
| (WebKit::WebsiteDataStore::setResourceLoadStatisticsDebugMode): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| |
| 2018-01-29 Andy Estes <aestes@apple.com> |
| |
| [iOS] Restrict synthetic clicks to the origin that handled the underlying touch event |
| https://bugs.webkit.org/show_bug.cgi?id=182252 |
| <rdar://problem/21555881> |
| |
| Reviewed by Tim Horton. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::dispatchTouchEvent): |
| (WebKit::WebPage::updatePotentialTapSecurityOrigin): |
| |
| Record the target frame origin of touch events that are potential taps, are |
| TouchStart events, are targeted in frames that have touch event listeners, and are not |
| handled by those listeners. |
| |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::potentialTapAtPosition): |
| (WebKit::WebPage::commitPotentialTap): |
| (WebKit::WebPage::cancelPotentialTapInFrame): |
| |
| Passed the target frame origin to Frame::nodeRespondingToClickEvents() then cleared it. |
| |
| 2018-01-29 Alex Christensen <achristensen@webkit.org> |
| |
| Make policy checks more robust against null pointer dereferencing |
| https://bugs.webkit.org/show_bug.cgi?id=182263 |
| <rdar://problem/34895714> |
| |
| Reviewed by Tim Horton. |
| |
| We're still dereferencing null. Check everything. |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse): |
| |
| 2018-01-29 Brent Fulgham <bfulgham@apple.com> |
| |
| Add telemetry to track storage access API adoption |
| https://bugs.webkit.org/show_bug.cgi?id=182197 |
| <rdar://problem/35803309> |
| |
| Reviewed by Chris Dumez. |
| |
| Part 1: Add telemetry for the user interaction case |
| |
| This patch adds telemetry to track how frequently third-party cookies are |
| used in a first party context due to user interaction. This will help |
| understand cases where the new Storage Access API can help, and to help |
| us understand if we have considered relevant use cases in its design. |
| |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::encode const): |
| (WebKit::WebProcessCreationParameters::decode): |
| * Shared/WebProcessCreationParameters.h: |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): |
| * UIProcess/WebResourceLoadStatisticsTelemetry.cpp: |
| (WebKit::sortedPrevalentResourceTelemetry): Update for new telemetry. |
| (WebKit::submitTopList): Update for new data types. |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeWebProcess): Handle the partitioning time |
| passed from the UIProcess. |
| |
| 2018-01-29 Alex Christensen <achristensen@webkit.org> |
| |
| Fix crash when during canAuthenticateAgainstProtectionSpace |
| https://bugs.webkit.org/show_bug.cgi?id=182260 |
| <rdar://problem/34911343> |
| |
| Reviewed by Chris Dumez. |
| |
| If we have a valid network load with no challenge completion handler and we are |
| telling it to continue with the challenge handling, something has gone wrong. |
| Maybe we've just recovered from a crashed network process. If this happens, do nothing. |
| |
| * NetworkProcess/NetworkLoad.cpp: |
| (WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace): |
| |
| 2018-01-29 Zach Li <zacharyli323@gmail.com> |
| |
| Warning in 32-bit WebKit build when trying to link to SafariSafeBrowsing |
| https://bugs.webkit.org/show_bug.cgi?id=182251 |
| rdar://problem/36964995 |
| |
| Reviewed by Alex Christensen. |
| |
| * Configurations/WebKit.xcconfig: |
| Only link against SafariSafeBrowsing framework in 64-bit architecture. |
| |
| * Platform/spi/Cocoa/SafeBrowsingSPI.h: |
| Guard the Safe Browsing code with WK_API_ENABLED. |
| |
| 2018-01-29 Chris Dumez <cdumez@apple.com> |
| |
| Make sure we do not re-enter Webcore during StorageToWebProcessConnection::EstablishSWServerConnection Sync IPC |
| https://bugs.webkit.org/show_bug.cgi?id=182256 |
| <rdar://problem/36689233> |
| |
| Reviewed by Simon Fraser. |
| |
| Make sure we do not re-enter Webcore during StorageToWebProcessConnection::EstablishSWServerConnection Sync IPC as |
| this can lead to crashes such as the one in <rdar://problem/36689233>. |
| |
| * WebProcess/Storage/WebSWClientConnection.cpp: |
| (WebKit::WebSWClientConnection::WebSWClientConnection): |
| |
| 2018-01-29 Jan-Michael Brummer <jan.brummer@tabos.org> |
| |
| [GTK] Zooming gesture incorrectly uses scale instead of zoom |
| https://bugs.webkit.org/show_bug.cgi?id=182174 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Switch zooming gesture to use zoom instead of scale function. |
| |
| * UIProcess/gtk/GestureController.cpp: |
| (WebKit::GestureController::ZoomGesture::begin): |
| (WebKit::GestureController::ZoomGesture::handleZoom): |
| |
| 2018-01-29 Brady Eidson <beidson@apple.com> |
| |
| Make it possible for apps that use both WK1 and WK2 to use MessagePorts. |
| https://bugs.webkit.org/show_bug.cgi?id=182229 |
| |
| Reviewed by Chris Dumez. |
| |
| * UIProcess/UIMessagePortChannelProvider.cpp: |
| (WebKit::UIMessagePortChannelProvider::UIMessagePortChannelProvider): |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::m_configurationPreferenceValues): The UI process does not need to override the |
| global singleton provider. It can remain the default ProviderImpl to allow WK1 views |
| to work fine, too. |
| |
| 2018-01-29 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| WebDriver: ASSERTION FAILED: !m_loadTimer.isActive() |
| https://bugs.webkit.org/show_bug.cgi?id=182237 |
| |
| Reviewed by Carlos Alberto Lopez Perez. |
| |
| We should stop the load timer when we dispatch the pending navigation callbacks due to an alert open. |
| |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::willShowJavaScriptDialog): |
| |
| 2018-01-29 Zan Dobersek <zdobersek@igalia.com> |
| |
| [Cairo] Add GraphicsContextImplCairo::createFactory() helpers |
| https://bugs.webkit.org/show_bug.cgi?id=182238 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Use GraphicsContextImplCairo::createFactory() helpers throughout the |
| Cairo-specific GraphicsContext constructors in the WebKit layer. |
| |
| * Shared/cairo/ShareableBitmapCairo.cpp: |
| (WebKit::ShareableBitmap::createGraphicsContext): |
| * UIProcess/cairo/BackingStoreCairo.cpp: |
| (WebKit::BackingStore::incorporateUpdate): |
| * WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp: |
| (WebKit::WebPrintOperationGtk::renderPage): |
| |
| 2018-01-29 Zan Dobersek <zdobersek@igalia.com> |
| |
| [Cairo] Remove the GraphicsContext(cairo_t*) constructor |
| https://bugs.webkit.org/show_bug.cgi?id=182234 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Call sites of the GraphicsContext(cairo_t*) constructor are adjusted to |
| instead provide a factory function that returns a fresh |
| GraphicsContextImplCairo object, passing that cairo_t object to its |
| constructor. |
| |
| * Shared/cairo/ShareableBitmapCairo.cpp: |
| (WebKit::ShareableBitmap::createGraphicsContext): |
| * UIProcess/cairo/BackingStoreCairo.cpp: |
| (WebKit::BackingStore::incorporateUpdate): |
| * WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp: |
| (WebKit::WebPrintOperationGtk::renderPage): |
| |
| 2018-01-26 Megan Gardner <megan_gardner@apple.com> |
| |
| Don't retain focus for input peripheral views |
| https://bugs.webkit.org/show_bug.cgi?id=182204 |
| |
| Reviewed by Tim Horton. |
| |
| Retaining focus on input peripheral views makes it so they cannot dismiss themselves with |
| the current architecture. This should probably be fixed in UIKit, as there is no reason for |
| focus to be retained on these views anyways, as they don't have keyboard input, but this |
| guards against over-aggressive retain requests. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _restoreFocusWithToken:]): |
| (-[WKContentView _preserveFocusWithToken:destructively:]): |
| |
| 2018-01-26 Chris Dumez <cdumez@apple.com> |
| |
| Make sure service worker code does not launch a StorageProcess unnecessarily |
| https://bugs.webkit.org/show_bug.cgi?id=182192 |
| <rdar://problem/36927427> |
| |
| Reviewed by Geoffrey Garen. |
| |
| When calling WebProcess::existingWebToStorageProcessConnection(), make sure we do not |
| force the creation of a WebProcess connection to the StorageProcess. If there is |
| no WebProcess, just return false right away. |
| |
| * WebProcess/Storage/WebServiceWorkerProvider.cpp: |
| (WebKit::WebServiceWorkerProvider::existingServiceWorkerConnectionForSession): |
| * WebProcess/WebProcess.h: |
| |
| 2018-01-26 Alex Christensen <achristensen@webkit.org> |
| |
| Allow cellular access for default-created ephemeral sessions |
| https://bugs.webkit.org/show_bug.cgi?id=182179 |
| <rdar://problem/36572023> |
| |
| Reviewed by Andy Estes. |
| |
| This makes it so when we recover from a NetworkProcess crash (see r227590) on iOS, we will |
| be able to continue browsing using cell data. |
| |
| * Shared/WebsiteDataStoreParameters.cpp: |
| (WebKit::WebsiteDataStoreParameters::privateSessionParameters): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::pageBeginUsingWebsiteDataStore): |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::setPrivateBrowsingEnabled): |
| |
| 2018-01-26 Alex Christensen <achristensen@webkit.org> |
| |
| Clean up more networking code |
| https://bugs.webkit.org/show_bug.cgi?id=182161 |
| |
| Reviewed by Anders Carlsson. |
| |
| Two cleanups: |
| 1. The WebProcess doesn't need to initialize NetworkSessions. |
| 2. WebFrameNetworkingContext doesn't need to have the NetworkingContext functions to support ResourceHandles in WebKit any more. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| * NetworkProcess/NetworkLoad.h: |
| * NetworkProcess/RemoteNetworkingContext.h: |
| (): Deleted. |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| * NetworkProcess/curl/RemoteNetworkingContextCurl.cpp: |
| (WebKit::RemoteNetworkingContext::~RemoteNetworkingContext): Deleted. |
| (WebKit::RemoteNetworkingContext::isValid const): Deleted. |
| (WebKit::RemoteNetworkingContext::storageSession const): Deleted. |
| * NetworkProcess/mac/RemoteNetworkingContext.mm: |
| (WebKit::RemoteNetworkingContext::~RemoteNetworkingContext): Deleted. |
| (WebKit::RemoteNetworkingContext::isValid const): Deleted. |
| (WebKit::RemoteNetworkingContext::localFileContentSniffingEnabled const): Deleted. |
| (WebKit::RemoteNetworkingContext::storageSession const): Deleted. |
| (WebKit::RemoteNetworkingContext::sourceApplicationAuditData const): Deleted. |
| (WebKit::RemoteNetworkingContext::sourceApplicationIdentifier const): Deleted. |
| (WebKit::RemoteNetworkingContext::blockedError const): Deleted. |
| * NetworkProcess/soup/RemoteNetworkingContextSoup.cpp: |
| (WebKit::RemoteNetworkingContext::~RemoteNetworkingContext): Deleted. |
| (WebKit::RemoteNetworkingContext::isValid const): Deleted. |
| (WebKit::RemoteNetworkingContext::storageSession const): Deleted. |
| * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm: |
| (WebKit::WebFrameNetworkingContext::ensureWebsiteDataStoreSession): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeWebProcess): |
| (WebKit::WebProcess::clearCachedCredentials): |
| |
| 2018-01-26 Jan-Michael Brummer <jan.brummer@tabos.org> |
| |
| [GTK] Support using long-tap gesture to open context menu |
| https://bugs.webkit.org/show_bug.cgi?id=140747 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Add long press gesture which simulates a secondary mouse press to open context menu. |
| |
| * UIProcess/gtk/GestureController.cpp: |
| (WebKit::GestureController::GestureController): |
| (WebKit::GestureController::handleEvent): |
| (WebKit::GestureController::isProcessingGestures const): |
| (WebKit::GestureController::Gesture::simulateMousePress): |
| (WebKit::GestureController::DragGesture::handleTap): |
| (WebKit::GestureController::LongPressGesture::longPressed): |
| (WebKit::GestureController::LongPressGesture::pressed): |
| (WebKit::GestureController::LongPressGesture::LongPressGesture): |
| * UIProcess/gtk/GestureController.h: |
| (WebKit::GestureController::reset): |
| |
| 2018-01-26 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. REGRESSION(r227647): window.open() is broken in GTK and WPE after r227647. |
| |
| In r227647, API::UIClient::createNewPage() was changed to use CompletionHandler instead of Function. All |
| implementations were updated expect the GLib one, and we didn't notice it because the method doesn't have the |
| final/override mark. |
| |
| * UIProcess/API/glib/WebKitUIClient.cpp: |
| (UIClient::createNewPage): |
| |
| 2018-01-25 Sergio Villar Senin <svillar@igalia.com> |
| |
| [WebVR] Make WebVR available by default for developer builds |
| https://bugs.webkit.org/show_bug.cgi?id=182101 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Moved WebVR setting to the experimental features section and make it |
| available by default for developer builds for GTK and WPE. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-01-25 Alex Christensen <achristensen@webkit.org> |
| |
| REGRESSION (r221899): Web Content process hangs when webpage tries to make a new window if the WKWebView doesn’t have a UI delegate |
| https://bugs.webkit.org/show_bug.cgi?id=182152 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Call the completion handler of the default API::UIClient::createNewPage. |
| |
| * UIProcess/API/APIUIClient.h: |
| (API::UIClient::createNewPage): |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetPageUIClient): |
| * UIProcess/Cocoa/UIDelegate.h: |
| * UIProcess/Cocoa/UIDelegate.mm: |
| (WebKit::UIDelegate::UIClient::createNewPage): |
| |
| 2018-01-25 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS] [WK2] Introduce new views and view controllers to support extra-zoomed text form controls |
| https://bugs.webkit.org/show_bug.cgi?id=182000 |
| <rdar://problem/35143035> |
| |
| Reviewed by Tim Horton. |
| |
| Add new files to support text form control editing while extra-zoomed. |
| |
| * UIProcess/ios/forms/WKFocusedFormControlView.h: Added. |
| * UIProcess/ios/forms/WKFocusedFormControlView.mm: Added. |
| * UIProcess/ios/forms/WKFocusedFormControlViewController.h: Added. |
| * UIProcess/ios/forms/WKFocusedFormControlViewController.mm: Added. |
| * UIProcess/ios/forms/WKTextFormControlViewController.h: Added. |
| * UIProcess/ios/forms/WKTextFormControlViewController.mm: Added. |
| * UIProcess/ios/forms/WKTextInputViewController.h: Added. |
| * UIProcess/ios/forms/WKTextInputViewController.mm: Added. |
| * UIProcess/ios/forms/WKTextSuggestionButton.h: Added. |
| * UIProcess/ios/forms/WKTextSuggestionButton.mm: Added. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-01-25 Chris Dumez <cdumez@apple.com> |
| |
| Clients.get(id) should only returns clients in the service worker's origin |
| https://bugs.webkit.org/show_bug.cgi?id=182149 |
| <rdar://problem/36882310> |
| |
| Reviewed by Youenn Fablet. |
| |
| * StorageProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::postMessageToServiceWorker): |
| |
| 2018-01-25 Youenn Fablet <youenn@apple.com> |
| |
| WebPluginInfoProvider should handle null host queries |
| https://bugs.webkit.org/show_bug.cgi?id=182112 |
| |
| Reviewed by Chris Dumez. |
| |
| Return early if host is null. |
| |
| * WebProcess/Plugins/WebPluginInfoProvider.cpp: |
| (WebKit::WebPluginInfoProvider::populatePluginCache): |
| |
| 2018-01-25 Simon Fraser <simon.fraser@apple.com> |
| |
| ASSERT(CGSizeEqualToSize(m_resizeScrollOffset, CGSizeZero)) in WebViewImpl::setFrameAndScrollBy() |
| https://bugs.webkit.org/show_bug.cgi?id=182082 |
| rdar://problem/13971838 |
| |
| Reviewed by Tim Horton. |
| |
| Safari could call WebViewImpl::setFrameAndScrollBy() multiple times with different scroll offsets, |
| triggering this assertion. |
| |
| Rename to m_resizeScrollOffset to m_scrollOffsetAdjustment to reduce confusion with actual scroll offsets. |
| This parameter has no effect on macOS, but is used by the -[WKWebView setFrame:andScrollBy:] so at some point |
| needs to be hooked up to allow synchronous view resize and scroll adjustment (e.g. for the Find bar animation). |
| |
| Remove DrawingAreaProxy's m_layerPosition which was unused, and remove the parameters from the UpdateGeometry message. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _frameOrBoundsChanged]): |
| (-[WKWebView _beginAnimatedResizeWithUpdates:]): |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::setFrameAndScrollBy): |
| (WebKit::WebViewImpl::setDrawingAreaSize): |
| * UIProcess/DrawingAreaProxy.cpp: |
| (WebKit::DrawingAreaProxy::setSize): |
| * UIProcess/DrawingAreaProxy.h: |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm: |
| (WebKit::RemoteLayerTreeDrawingAreaProxy::sendUpdateGeometry): |
| * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm: |
| (WebKit::TiledCoreAnimationDrawingAreaProxy::sendUpdateGeometry): |
| * WebProcess/WebPage/DrawingArea.h: |
| (WebKit::DrawingArea::updateGeometry): |
| * WebProcess/WebPage/DrawingArea.messages.in: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm: |
| (WebKit::RemoteLayerTreeDrawingArea::updateGeometry): |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h: |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: |
| (WebKit::TiledCoreAnimationDrawingArea::updateGeometry): |
| |
| 2018-01-25 Keith Rollin <krollin@apple.com> |
| |
| Add logging to facilitate binding of WebContent and Network processes to UI process |
| https://bugs.webkit.org/show_bug.cgi?id=182066 |
| |
| Reviewed by Brent Fulgham. |
| |
| When examining sysdiagnose logs and tracing events from one process to |
| another, it would be helpful to know which WebKit processes were |
| related to each other. When Safari, Mail, Messages, etc. are all |
| running at the same time, it may otherwise be difficult to know if a |
| particular Network process, for example was associated with Safari or |
| some other application. Add some logging to the creation of WebContent |
| and Network processes to identify their "presenting process" (parent |
| application). |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| * Platform/Logging.h: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeWebProcess): |
| |
| 2018-01-25 Youenn Fablet <youenn@apple.com> |
| |
| DocumentLoader should interrupt ongoing load when getting a redirection from network that matches a service worker |
| https://bugs.webkit.org/show_bug.cgi?id=182115 |
| |
| Reviewed by Alex Christensen. |
| |
| * WebProcess/Storage/ServiceWorkerClientFetch.cpp: |
| (WebKit::ServiceWorkerClientFetch::didReceiveResponse): |
| |
| 2018-01-25 Alex Christensen <achristensen@webkit.org> |
| |
| Fix crash when preconnecting while closing private browsing |
| https://bugs.webkit.org/show_bug.cgi?id=182114 |
| <rdar://problem/35637284> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * NetworkProcess/PreconnectTask.cpp: |
| There is a race condition when destroying a session while a page is initiating a preconnect. |
| If this happens, fail gracefully instead of trying to preconnect with a null session. |
| |
| 2018-01-25 Dan Bernstein <mitz@apple.com> |
| |
| [Mac] Enable library validation for Networking & Storage XPC services |
| https://bugs.webkit.org/show_bug.cgi?id=173424 |
| <rdar://problem/32386565> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * Configurations/BaseXPCService.xcconfig: Moved the definitions of |
| WK_LIBRARY_VALIDATION_ENABLED and WK_LIBRARY_VALIDATION_CODE_SIGN_FLAGS from |
| WebContentService.xcconfig to here and made them Mac-only at this level. |
| * Configurations/NetworkService.xcconfig: Also set OTHER_CODE_SIGN_FLAGS to |
| WK_LIBRARY_VALIDATION_CODE_SIGN_FLAGS. |
| * Configurations/StorageService.xcconfig: Ditto. |
| * Configurations/WebContentService.xcconfig: Moved definitions from here to |
| BaseXPCService.xcconfig. |
| |
| 2018-01-25 David Hyatt <hyatt@apple.com> |
| |
| Enable lines clamp support for Apple Mail by default |
| https://bugs.webkit.org/show_bug.cgi?id=182113 |
| |
| Reviewed by Dean Jackson. |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::creationParameters): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/mac/WebPageProxyMac.mm: |
| (WebKit::WebPageProxy::appleMailLinesClampEnabled): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_cpuLimit): |
| |
| 2018-01-25 Sergio Villar Senin <svillar@igalia.com> |
| |
| [WebVR][GTK][WPE] Remove the WebVR public API added in r227518 |
| https://bugs.webkit.org/show_bug.cgi?id=182102 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: |
| |
| 2018-01-25 Sergio Villar Senin <svillar@igalia.com> |
| |
| [WebVR][GTK][WPE] Remove the WebVR public API added in r227518 |
| https://bugs.webkit.org/show_bug.cgi?id=182102 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| This new public API was not supposed to be included in the patch |
| that added OpenVR to the tree and to the build. |
| |
| * UIProcess/API/glib/WebKitSettings.cpp: |
| (webKitSettingsSetProperty): |
| (webKitSettingsGetProperty): |
| (webkit_settings_class_init): |
| (webkit_settings_get_enable_webvr): Deleted. |
| (webkit_settings_set_enable_webvr): Deleted. |
| * UIProcess/API/gtk/WebKitSettings.h: |
| * UIProcess/API/wpe/WebKitSettings.h: |
| |
| 2018-01-25 Claudio Saavedra <csaavedra@igalia.com> |
| |
| [GTK] Fix build with touch events disabled |
| |
| Unreviewed build fix. |
| |
| Explicitly include gtk.h in files that were indirectly getting it |
| only when touch events were enabled. |
| * UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp: |
| * UIProcess/gtk/WaylandCompositor.h: |
| |
| 2018-01-25 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| WebDriver: test imported/selenium/py/test/selenium/webdriver/common/alerts_tests.py crashes in debug |
| https://bugs.webkit.org/show_bug.cgi?id=182096 |
| |
| Reviewed by Carlos Alberto Lopez Perez. |
| |
| It's an assert in HashTable iterators checkValidity(). The problem is that we get the keys to iterate the values |
| and the map is modified inside the loop. We need to use copyToVector to copy the keys. |
| |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::respondToPendingPageNavigationCallbacksWithTimeout): |
| (WebKit::WebAutomationSession::respondToPendingFrameNavigationCallbacksWithTimeout): |
| (WebKit::WebAutomationSession::willShowJavaScriptDialog): |
| |
| 2018-01-24 Alex Christensen <achristensen@webkit.org> |
| |
| Gracefully recover from NetworkProcess crashes in private browsing |
| https://bugs.webkit.org/show_bug.cgi?id=182073 |
| <rdar://problem/36572023> |
| |
| Reviewed by Geoff Garen. |
| |
| If we're using a non-persistent WKWebsiteDataStore and the NetworkProcess crashes and we try to do a load, |
| then the WebProcess restarts the NetworkProcess but doesn't recreate the ephemeral session in the NetworkProcess. |
| When this happens, we've already lost the browsing state in memory in the NetworkProcess, but we don't want to hang. |
| If this is the problem, then just recreate the ephemeral session and continue loading. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::removeStorageAccessForFrame): |
| (WebKit::NetworkConnectionToWebProcess::removeStorageAccessForAllFramesOnPage): |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::startNetworkLoad): |
| * Shared/WebsiteDataStoreParameters.cpp: |
| (WebKit::WebsiteDataStoreParameters::privateSessionParameters): |
| (WebKit::WebsiteDataStoreParameters::legacyPrivateSessionParameters): Deleted. |
| * Shared/WebsiteDataStoreParameters.h: |
| (WebKit::WebsiteDataStoreParameters::legacyPrivateSessionParameters): |
| |
| 2018-01-24 Dan Bernstein <mitz@apple.com> |
| |
| Enable library validation on the Web Content service |
| Part 1 of https://bugs.webkit.org/show_bug.cgi?id=172365 |
| <rdar://problem/26470661> |
| |
| Reviewed by David Kilzer. |
| |
| This makes the Web Content process signed with the Library Validation flag in production |
| builds. Because doing so would prevent engineering builds of Apple apps that use an |
| injected bundle from working, this also adds a Development version of the service, which |
| does not enforce Library Validation. The UI process chooses to use the Development service |
| iff it would need to load an injected bundle that is not part of the OS. |
| |
| * Configurations/DebugRelease.xcconfig: Disable Library Validation in engineering builds. |
| |
| * Configurations/WebContentService.Development.xcconfig: Added. Like the normal service, but |
| only installed when WebKit is installed in the OS, and uses a Development variant. |
| |
| * Configurations/WebContentService.xcconfig: For the Development variant, append |
| ".Development" to the product name, which is also the service identifier. Enable Library |
| Validation for the Normal variant of the service when WK_LIBRARY_VALIDATION_ENABLED allows |
| it. |
| |
| * UIProcess/Launcher/ProcessLauncher.h: Add nonValidInjectedCodeAllowed member to |
| LaunchOptions, false by default. |
| |
| * UIProcess/Launcher/mac/ProcessLauncherMac.mm: |
| (WebKit::serviceName): Use the Development variant if nonValidInjectedCodeAllowed is true. |
| |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::getLaunchOptions): Initialize nonValidInjectedCodeAllowed using |
| the new shouldAllowNonValidInjectedCode(). |
| (WebKit::WebProcessProxy::shouldAllowNonValidInjectedCode const): Generic implementation |
| that returns false. |
| * UIProcess/WebProcessProxy.h: Declared shouldAllowNonValidInjectedCode. |
| * UIProcess/mac/WebProcessProxyMac.mm: |
| (WebKit::WebProcessProxy::shouldAllowNonValidInjectedCode const): Return true if this is |
| system WebKit with a non-system injected bundle. |
| |
| * WebKit.xcodeproj/project.pbxproj: Added new service target. |
| |
| 2018-01-24 Chris Dumez <cdumez@apple.com> |
| |
| Add a IPC::SendSyncOption indicating we should not process incoming IPC while waiting for the sync reply |
| https://bugs.webkit.org/show_bug.cgi?id=182021 |
| <rdar://problem/21629943> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Add a new DoNotProcessIncomingMessagesWhenWaitingForSyncReply SendSyncOption that the caller can |
| set when calling sendSync(). This indicates that the sendSync() should return only when we receive |
| the response to our sync IPC message, and that we should not process ANY incoming IPC in the meantime. |
| |
| This patch also starts using this flag in 3 places where we know processing incoming IPC is an issue |
| and is causing crashes. |
| |
| * Platform/IPC/Connection.cpp: |
| (IPC::Connection::sendSyncMessage): |
| When DoNotProcessIncomingMessagesWhenWaitingForSyncReply SendSyncOption is set, make sure |
| we set the ShouldDispatchMessageWhenWaitingForSyncReply flag on the encoder. If we did not set this |
| flag then it could cause deadlocks when the destination process is also waiting on a synchronous |
| IPC from us. Normally, this flag already gets set for sync messages because sendSyncMessage() calls |
| sendMessage() with DispatchMessageEvenWhenWaitingForSyncReply SyncOption. However, sendMessage() |
| ignores the DispatchMessageEvenWhenWaitingForSyncReply flag if the |
| m_onlySendMessagesAsDispatchWhenWaitingForSyncReplyWhenProcessingSuchAMessage flag is set on the |
| connection. Note that this flag is set on the connection from the WebProcess to the UIProcess at |
| the moment, which is why we saw deadlocks on the previous iteration of this patch. |
| |
| (IPC::Connection::waitForSyncReply): |
| If DoNotProcessIncomingMessagesWhenWaitingForSyncReply SendSyncOption is set, do not |
| process incoming IPC messages while waiting for our sync IPC reply. |
| |
| * Platform/IPC/Connection.h: |
| Add new SendSyncOption. |
| |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::testIncomingSyncIPCMessageWhileWaitingForSyncReply): |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebProcessProxy.messages.in: |
| Testing infrastructure. |
| |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::loadResourceSynchronously): |
| Use new flag. |
| |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::testIncomingSyncIPCMessageWhileWaitingForSyncReply): |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| Testing infrastructure. |
| |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: |
| (WebKit::WebPlatformStrategies::cookieRequestHeaderFieldValue): |
| Use new flag. |
| |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::syncIPCMessageWhileWaitingForSyncReplyForTesting): |
| Testing infrastructure. |
| |
| (WebKit::WebProcess::ensureNetworkProcessConnection): |
| Use new flag. |
| |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| Testing infrastructure. |
| |
| 2018-01-24 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Remove duplicate preference update for WebAuthentication value |
| https://bugs.webkit.org/show_bug.cgi?id=182058 |
| |
| Reviewed by Brian Burg. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::updatePreferences): |
| An identical update already happens in generated code. |
| |
| 2018-01-24 Alex Christensen <achristensen@webkit.org> |
| |
| Remove WebProcess access to QTKit |
| https://bugs.webkit.org/show_bug.cgi?id=182035 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| This isn't needed any more. We only have a little bit of code that uses QTKit which we should remove, |
| and it's only used for fullscreen controls in WebKitLegacy. Let's tighten up the sandbox! |
| |
| 2018-01-24 Alex Christensen <achristensen@webkit.org> |
| |
| Remove pre-Sierra-OS-specific code in WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=182024 |
| |
| Reviewed by Tim Horton. |
| |
| * PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in: |
| * Shared/Cocoa/DataDetectionResult.mm: |
| (WebKit::DataDetectionResult::encode const): |
| * Shared/Cocoa/WebCoreArgumentCodersCocoa.mm: |
| (IPC::ArgumentCoder<WebCore::Payment>::encode): |
| (IPC::ArgumentCoder<WebCore::PaymentContact>::encode): |
| (IPC::ArgumentCoder<WebCore::PaymentMerchantSession>::encode): |
| (IPC::ArgumentCoder<WebCore::PaymentMethod>::encode): |
| * Shared/WebPreferencesDefaultValues.h: |
| * Shared/cg/ShareableBitmapCG.cpp: |
| (WebKit::wantsExtendedRange): |
| * Shared/ios/InteractionInformationAtPosition.mm: |
| (WebKit::InteractionInformationAtPosition::encode const): |
| * Shared/mac/CodeSigning.mm: |
| (WebKit::codeSigningIdentifier): |
| (WebKit::codeSigningIdentifierForCurrentProcess): |
| * Shared/mac/ColorSpaceData.mm: |
| (WebKit::ColorSpaceData::encode const): |
| * Shared/mac/PasteboardTypes.mm: |
| (WebKit::PasteboardTypes::forURL): |
| * Shared/mac/WebCoreArgumentCodersMac.mm: |
| (IPC::ArgumentCoder<ProtectionSpace>::encodePlatformData): |
| (IPC::ArgumentCoder<Credential>::encodePlatformData): |
| (IPC::ArgumentCoder<ContentFilterUnblockHandler>::encode): |
| (IPC::ArgumentCoder<MediaPlaybackTargetContext>::encodePlatformData): |
| * Shared/mac/WebHitTestResultData.mm: |
| (WebKit::WebHitTestResultData::platformEncode const): |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _setObject:forBundleParameter:]): |
| (-[WKProcessPool _setObjectsForBundleParametersWithDictionary:]): |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _handleAcceptedCandidate:]): |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::handleAcceptedCandidate): |
| (WebKit::WebViewImpl::performDragOperation): |
| * UIProcess/mac/WebPopupMenuProxyMac.mm: |
| (WebKit::WebPopupMenuProxyMac::showPopupMenu): |
| * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm: |
| (-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]): |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-01-24 Alex Christensen <achristensen@webkit.org> |
| |
| Stop using AuthenticationClient in WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=182016 |
| |
| Reviewed by Brady Eidson. |
| |
| It was necessary to support ResourceHandle use in WebKit, but now we're using NetworkSession everywhere in WebKit. |
| |
| * Shared/Authentication/AuthenticationManager.cpp: |
| (WebKit::AuthenticationManager::useCredentialForSingleChallenge): |
| (WebKit::AuthenticationManager::continueWithoutCredentialForSingleChallenge): |
| (WebKit::AuthenticationManager::cancelSingleChallenge): |
| (WebKit::AuthenticationManager::performDefaultHandlingForSingleChallenge): |
| (WebKit::AuthenticationManager::rejectProtectionSpaceAndContinueForSingleChallenge): |
| |
| 2018-01-24 Alex Christensen <achristensen@webkit.org> |
| |
| Remove WebProcess authentication code |
| https://bugs.webkit.org/show_bug.cgi?id=182020 |
| |
| Reviewed by Brady Eidson. |
| |
| * Shared/Authentication/AuthenticationManager.cpp: |
| * Shared/Authentication/AuthenticationManager.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didReceiveAuthenticationChallenge): Deleted. |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDidReceiveAuthenticationChallenge): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::m_webSQLiteDatabaseTracker): |
| |
| 2018-01-24 Jan-Michael Brummer <jan.brummer@tabos.org> |
| |
| [GTK] Page crash after swipe gesture running GNOME3 under wayland |
| https://bugs.webkit.org/show_bug.cgi?id=181996 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Add missing GDK_TOUCH_CANCEL support which fixes page crashes due to cancelled gestures. |
| * Shared/gtk/WebEventFactory.cpp: |
| (WebKit::WebEventFactory::createWebTouchEvent): |
| * UIProcess/API/gtk/PageClientImpl.cpp: |
| (WebKit::PageClientImpl::doneWithTouchEvent): |
| * UIProcess/API/gtk/WebKitWebViewBase.cpp: |
| (touchPointStateForEvents): |
| (webkitWebViewBaseGetTouchPointsForEvent): |
| (webkitWebViewBaseTouchEvent): |
| * UIProcess/gtk/GestureController.cpp: |
| (WebKit::GestureController::handleEvent): |
| |
| 2018-01-24 Alex Christensen <achristensen@webkit.org> |
| |
| Remove unused QTKit preference |
| https://bugs.webkit.org/show_bug.cgi?id=181968 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| * Shared/API/c/WKDeprecatedFunctions.cpp: |
| (WKPreferencesSetQTKitEnabled): |
| (WKPreferencesGetQTKitEnabled): |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetQTKitEnabled): Deleted. |
| (WKPreferencesGetQTKitEnabled): Deleted. |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences _setQTKitEnabled:]): Deleted. |
| (-[WKPreferences _qtKitEnabled]): Deleted. |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: |
| |
| 2018-01-24 Youenn Fablet <youenn@apple.com> |
| |
| Fetch response should copy its url from the request if null |
| https://bugs.webkit.org/show_bug.cgi?id=182048 |
| |
| Reviewed by Chris Dumez. |
| |
| * WebProcess/Storage/ServiceWorkerClientFetch.cpp: |
| (WebKit::ServiceWorkerClientFetch::didReceiveResponse): |
| |
| 2018-01-24 Sergio Villar Senin <svillar@igalia.com> |
| |
| Unreviewed build fix after r227518. I forgot to add the function declarations to the WPE |
| header. |
| |
| * UIProcess/API/wpe/WebKitSettings.h: Added webkit_settings_get/set_enable_webvr. |
| |
| 2018-01-24 Youenn Fablet <youenn@apple.com> |
| |
| Add Cache Storage engine assertion following on bug 181887 |
| https://bugs.webkit.org/show_bug.cgi?id=181925 |
| |
| Reviewed by Alex Christensen. |
| |
| In a normal environment, the folderPath should be the same as the path computed from the ClientOrigin. |
| Add assertion to verify this. |
| |
| * NetworkProcess/cache/CacheStorageEngine.cpp: |
| (WebKit::CacheStorage::Engine::clearCachesForOrigin): |
| |
| 2018-01-24 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [GTK] Use GDK_EVENT_PROPAGATE and GDK_EVENT_STOP in WebKitWebViewBase.cpp |
| https://bugs.webkit.org/show_bug.cgi?id=182031 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| No functional changes, this just replaces TRUE with GDK_EVENT_STOP and FALSE with |
| GDK_EVENT_PROPAGATE, to improve readability. |
| |
| * UIProcess/API/gtk/WebKitWebViewBase.cpp: |
| (webkitWebViewBaseKeyPressEvent): |
| (webkitWebViewBaseKeyReleaseEvent): |
| (webkitWebViewBaseButtonPressEvent): |
| (webkitWebViewBaseButtonReleaseEvent): |
| (webkitWebViewBaseScrollEvent): |
| (webkitWebViewBaseMotionNotifyEvent): |
| (webkitWebViewBaseCrossingNotifyEvent): |
| (webkitWebViewBaseTouchEvent): |
| |
| 2018-01-23 Eric Carlson <eric.carlson@apple.com> |
| |
| Resign NowPlaying status when no media element is eligible |
| https://bugs.webkit.org/show_bug.cgi?id=181914 |
| <rdar://problem/35294116> |
| |
| Reviewed by Jer Noble. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _requestActiveNowPlayingSessionInfo:]): Return registeredAsNowPlayingApplication |
| status. |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::nowPlayingInfoCallback): Ditto. |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/WebPage/Cocoa/WebPageCocoa.mm: |
| (WebKit::WebPage::requestActiveNowPlayingSessionInfo): Ditto. |
| |
| 2018-01-23 Alex Christensen <achristensen@webkit.org> |
| |
| Use CompletionHandlers for ResourceHandleClient::didReceiveResponseAsync |
| https://bugs.webkit.org/show_bug.cgi?id=181961 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * NetworkProcess/Downloads/Download.h: |
| * NetworkProcess/NetworkLoad.cpp: |
| * NetworkProcess/NetworkLoad.h: |
| * NetworkProcess/NetworkResourceLoadParameters.h: |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm: |
| * WebProcess/WebPage/mac/WebPageMac.mm: |
| * WebProcess/WebProcess.cpp: |
| |
| 2018-01-23 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, rollout r227216 as it seems to be causing deadlocks |
| https://bugs.webkit.org/show_bug.cgi?id=182013 |
| |
| * Platform/IPC/Connection.cpp: |
| (IPC::Connection::waitForSyncReply): |
| * Platform/IPC/Connection.h: |
| (IPC::Connection::setShouldProcessIncomingMessagesWhileWaitingForSyncReply): Deleted. |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::testIncomingSyncIPCMessageWhileWaitingForSyncReply): Deleted. |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebProcessProxy.messages.in: |
| * WebProcess/Network/NetworkProcessConnection.cpp: |
| (WebKit::NetworkProcessConnection::NetworkProcessConnection): |
| * WebProcess/Storage/WebToStorageProcessConnection.cpp: |
| (WebKit::WebToStorageProcessConnection::WebToStorageProcessConnection): |
| * WebProcess/WebConnectionToUIProcess.cpp: |
| (WebKit::WebConnectionToUIProcess::WebConnectionToUIProcess): |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::testIncomingSyncIPCMessageWhileWaitingForSyncReply): Deleted. |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| * WebProcess/WebCoreSupport/WebEditorClient.cpp: |
| (WebKit::WebEditorClient::undo): |
| (WebKit::WebEditorClient::redo): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::syncIPCMessageWhileWaitingForSyncReplyForTesting): Deleted. |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| |
| 2018-01-23 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r227437. |
| https://bugs.webkit.org/show_bug.cgi?id=182011 |
| |
| broke build (Requested by alexchristensen on #webkit). |
| |
| Reverted changeset: |
| |
| "Remove unused QTKit preference" |
| https://bugs.webkit.org/show_bug.cgi?id=181968 |
| https://trac.webkit.org/changeset/227437 |
| |
| 2018-01-23 Alex Christensen <achristensen@webkit.org> |
| |
| Remove compile guard around beacon API |
| https://bugs.webkit.org/show_bug.cgi?id=182002 |
| |
| Reviewed by Sam Weinig. |
| |
| It's enabled everywhere now. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetBeaconAPIEnabled): |
| (WKPreferencesGetBeaconAPIEnabled): |
| * config.h: |
| |
| 2018-01-23 Alex Christensen <achristensen@webkit.org> |
| |
| Remove unused QTKit preference |
| https://bugs.webkit.org/show_bug.cgi?id=181968 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| * Shared/API/c/WKDeprecatedFunctions.cpp: |
| (WKPreferencesSetQTKitEnabled): |
| (WKPreferencesGetQTKitEnabled): |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetQTKitEnabled): Deleted. |
| (WKPreferencesGetQTKitEnabled): Deleted. |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences _setQTKitEnabled:]): Deleted. |
| (-[WKPreferences _qtKitEnabled]): Deleted. |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: |
| |
| 2018-01-23 Brent Fulgham <bfulgham@apple.com> |
| |
| [macOS] WebProcess needs TCC entitlements for media capture |
| https://bugs.webkit.org/show_bug.cgi?id=181995 |
| <rdar://problem/36674649> |
| |
| Reviewed by Eric Carlson. |
| |
| * Configurations/WebContent-OSX.entitlements: Add delegated services needed to support media |
| capture features. |
| |
| 2018-01-23 Dan Bernstein <mitz@apple.com> |
| |
| [Cocoa] Disable header postprocessing when building for macOS High Sierra |
| https://bugs.webkit.org/show_bug.cgi?id=181972 |
| |
| Reviewed by Anders Carlsson. |
| |
| * Configurations/WebKit.xcconfig: Adopt macOSTargetConditionals.xcconfig helpers and disable postprocessing |
| when building for macOS 10.13. |
| |
| 2018-01-23 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Window resizing is broken after detaching to separate window |
| https://bugs.webkit.org/show_bug.cgi?id=181992 |
| <rdar://problem/36714840> |
| |
| Reviewed by Brian Burg. |
| |
| * UIProcess/mac/WebInspectorProxyMac.mm: |
| (WebKit::WebInspectorProxy::platformDetach): |
| Restore the inspector view's autoresizingMask to the initial value |
| that works with a detached window. This gets changed when the view |
| gets attached to bottom/side, so we need to revert it on detaching. |
| |
| 2018-01-23 Brady Eidson <beidson@apple.com> |
| |
| Allow passing MessagePorts across processes (e.g. ServiceWorkers). |
| https://bugs.webkit.org/show_bug.cgi?id=181178 |
| |
| Reviewed by Andy Estes. |
| |
| * StorageProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::postMessageToServiceWorker): |
| (WebKit::WebSWServerConnection::postMessageToServiceWorkerClient): |
| * StorageProcess/ServiceWorker/WebSWServerConnection.h: |
| * StorageProcess/ServiceWorker/WebSWServerConnection.messages.in: |
| |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::postMessageToServiceWorkerClient): |
| * StorageProcess/StorageProcess.h: |
| * StorageProcess/StorageProcess.messages.in: |
| |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::entangleLocalPortInThisProcessToRemote): |
| (WebKit::WebProcessProxy::postMessageToRemote): |
| |
| * WebProcess/Storage/WebSWClientConnection.cpp: |
| (WebKit::WebSWClientConnection::postMessageToServiceWorker): |
| (WebKit::WebSWClientConnection::postMessageToServiceWorkerClient): |
| * WebProcess/Storage/WebSWClientConnection.h: |
| * WebProcess/Storage/WebSWClientConnection.messages.in: |
| |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::postMessageToServiceWorker): |
| (WebKit::WebSWContextManagerConnection::postMessageToServiceWorkerClient): |
| * WebProcess/Storage/WebSWContextManagerConnection.h: |
| * WebProcess/Storage/WebSWContextManagerConnection.messages.in: |
| |
| 2018-01-23 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r227279 and r227373. |
| https://bugs.webkit.org/show_bug.cgi?id=181988 |
| |
| The LayoutTest crash fix introduced an API test failure. |
| (Requested by ryanhaddad on #webkit). |
| |
| Reverted changesets: |
| |
| "Resign NowPlaying status when no media element is eligible" |
| https://bugs.webkit.org/show_bug.cgi?id=181914 |
| https://trac.webkit.org/changeset/227279 |
| |
| "Resign NowPlaying status when no media element is eligible" |
| https://bugs.webkit.org/show_bug.cgi?id=181914 |
| https://trac.webkit.org/changeset/227373 |
| |
| 2018-01-23 Youenn Fablet <youenn@apple.com> |
| |
| REGRESSION (r227348): ASSERT_NOT_REACHED in WebKit::ServiceWorkerClientFetch::didFinish() |
| https://bugs.webkit.org/show_bug.cgi?id=181956 |
| <rdar://problem/36755492> |
| |
| Reviewed by Chris Dumez. |
| |
| Covered by test no longer crashing in Debug builds. |
| Reset m_redirectionStatus to None when starting an SW fetch. |
| |
| * WebProcess/Storage/ServiceWorkerClientFetch.cpp: |
| (WebKit::ServiceWorkerClientFetch::start): |
| (WebKit::ServiceWorkerClientFetch::didFinish): |
| |
| 2018-01-23 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [WPE] TestWebKitFindController asserts |
| https://bugs.webkit.org/show_bug.cgi?id=181472 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Let's fix this in two independent ways. |
| |
| First, use a GRefPtr to hold ownership of the WebKitWebViewBackend. This way, we don't need |
| to change the order in which WebKitWebView destroys its priv struct members from what is |
| used in WebKitGTK+, which can lead to odd bugs. |
| |
| Additionally, just for good measure, stop resetting the find client when disposing |
| WebKitFindController. This is unnecessary because it will never be destroyed before the |
| WebKitWebView. |
| |
| * UIProcess/API/glib/WebKitFindController.cpp: |
| (webkit_find_controller_class_init): |
| (webkitFindControllerDispose): Deleted. |
| * UIProcess/API/glib/WebKitWebView.cpp: |
| (_WebKitWebViewPrivate::~_WebKitWebViewPrivate): |
| (webkitWebViewSetProperty): |
| (webkitWebViewGetProperty): |
| (webkitWebViewCreatePage): |
| (webkit_web_view_get_backend): |
| * UIProcess/API/wpe/WebKitWebViewBackend.cpp: |
| (webkitWebViewBackendCreateDefault): |
| (WTF::refGPtr): |
| (WTF::derefGPtr): |
| * UIProcess/API/wpe/WebKitWebViewBackendPrivate.h: |
| |
| 2018-01-22 Jon Lee <jonlee@apple.com> |
| |
| Update title label size |
| https://bugs.webkit.org/show_bug.cgi?id=181962 |
| rdar://problem/36754744 |
| |
| Reviewed by Simon Fraser. |
| |
| * UIProcess/ios/WKFullScreenWindowControllerIOS.mm: |
| (-[_WKFullScreenViewController setLocation:secure:trustedName:trustedSite:]): Move titleLabel properties into |
| createSubviews. |
| (-[_WKFullScreenViewController createSubviews]): Set the title label for both the cancel and location buttons. |
| Refer to a const CGFloat for the font size. |
| |
| 2018-01-22 Megan Gardner <megan_gardner@apple.com> |
| |
| Temporarily restore block selection code conditionally |
| https://bugs.webkit.org/show_bug.cgi?id=181895 |
| <rdar://problem/36567325> |
| |
| Reviewed by Tim Horton. |
| |
| We need to restore this code temporarily to avoid a crash. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView changeBlockSelectionWithTouchAt:withSelectionTouch:forHandle:]): |
| |
| 2018-01-22 Zach Li <zacharyli323@gmail.com> |
| |
| We should not try to link against the Safe Browsing framework on watchOS and tvOS. |
| https://bugs.webkit.org/show_bug.cgi?id=181965. |
| |
| Reviewed by Tim Horton. |
| |
| * Configurations/WebKit.xcconfig: |
| |
| 2018-01-22 Alex Christensen <achristensen@webkit.org> |
| |
| Remove pre-NetworkSession loading code |
| https://bugs.webkit.org/show_bug.cgi?id=181944 |
| |
| Reviewed by Tim Horton. |
| |
| We were keeping it around for El Capitan. |
| |
| * NetworkProcess/CustomProtocols/Cocoa/LegacyCustomProtocolManagerCocoa.mm: |
| (WebKit::LegacyCustomProtocolManager::registerProtocolClass): |
| * NetworkProcess/CustomProtocols/LegacyCustomProtocolManager.cpp: |
| (WebKit::LegacyCustomProtocolManager::initialize): |
| * NetworkProcess/CustomProtocols/LegacyCustomProtocolManager.h: |
| * NetworkProcess/Downloads/BlobDownloadClient.cpp: Removed. |
| * NetworkProcess/Downloads/BlobDownloadClient.h: Removed. |
| * NetworkProcess/Downloads/Download.cpp: |
| (WebKit::Download::~Download): |
| (WebKit::Download::cancel): |
| (WebKit::Download::didReceiveChallenge): |
| (WebKit::Download::didFinish): |
| (WebKit::Download::isAlwaysOnLoggingAllowed const): |
| (WebKit::Download::start): Deleted. |
| (WebKit::Download::startWithHandle): Deleted. |
| (WebKit::Download::didStart): Deleted. |
| (WebKit::Download::willSendRedirectedRequest): Deleted. |
| (WebKit::Download::didReceiveAuthenticationChallenge): Deleted. |
| (WebKit::Download::didReceiveResponse): Deleted. |
| (WebKit::Download::shouldDecodeSourceDataOfMIMEType): Deleted. |
| (WebKit::Download::decideDestinationWithSuggestedFilename): Deleted. |
| (WebKit::Download::decideDestinationWithSuggestedFilenameAsync): Deleted. |
| (WebKit::Download::didDecideDownloadDestination): Deleted. |
| (WebKit::Download::continueDidReceiveResponse): Deleted. |
| * NetworkProcess/Downloads/Download.h: |
| (WebKit::Download::setBlobFileReferences): Deleted. |
| (WebKit::Download::request const): Deleted. |
| * NetworkProcess/Downloads/DownloadManager.cpp: |
| (WebKit::DownloadManager::startDownload): |
| (WebKit::DownloadManager::willDecidePendingDownloadDestination): |
| (WebKit::DownloadManager::convertNetworkLoadToDownload): |
| (WebKit::DownloadManager::continueDecidePendingDownloadDestination): |
| (WebKit::DownloadManager::resumeDownload): |
| (WebKit::DownloadManager::cancelDownload): |
| * NetworkProcess/Downloads/DownloadManager.h: |
| (WebKit::DownloadManager::startDownload): |
| * NetworkProcess/Downloads/PendingDownload.cpp: |
| * NetworkProcess/Downloads/PendingDownload.h: |
| * NetworkProcess/Downloads/cocoa/DownloadCocoa.mm: |
| * NetworkProcess/Downloads/ios/DownloadIOS.mm: Removed. |
| * NetworkProcess/Downloads/mac/DownloadMac.mm: Removed. |
| * NetworkProcess/NetworkCORSPreflightChecker.cpp: |
| * NetworkProcess/NetworkCORSPreflightChecker.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::loadPing): |
| * NetworkProcess/NetworkDataTask.cpp: |
| * NetworkProcess/NetworkDataTask.h: |
| * NetworkProcess/NetworkDataTaskBlob.cpp: |
| * NetworkProcess/NetworkDataTaskBlob.h: |
| * NetworkProcess/NetworkLoad.cpp: |
| (WebKit::NetworkLoad::~NetworkLoad): |
| (WebKit::NetworkLoad::setDefersLoading): |
| (WebKit::NetworkLoad::cancel): |
| (WebKit::NetworkLoad::continueWillSendRequest): |
| (WebKit::NetworkLoad::continueDidReceiveResponse): |
| (WebKit::NetworkLoad::shouldCaptureExtraNetworkLoadMetrics const): |
| (WebKit::NetworkLoad::didReceiveResponseAsync): Deleted. |
| (WebKit::NetworkLoad::didReceiveBuffer): Deleted. |
| (WebKit::NetworkLoad::didFinishLoading): Deleted. |
| (WebKit::NetworkLoad::didFail): Deleted. |
| (WebKit::NetworkLoad::willSendRequestAsync): Deleted. |
| (WebKit::NetworkLoad::canAuthenticateAgainstProtectionSpaceAsync): Deleted. |
| (WebKit::NetworkLoad::shouldUseCredentialStorage): Deleted. |
| (WebKit::NetworkLoad::didReceiveAuthenticationChallenge): Deleted. |
| (WebKit::NetworkLoad::receivedCancellation): Deleted. |
| * NetworkProcess/NetworkLoad.h: |
| * NetworkProcess/NetworkLoadParameters.h: |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| (WebKit::NetworkProcess::clearCachedCredentials): |
| (WebKit::NetworkProcess::findPendingDownloadLocation): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::startNetworkLoad): |
| * NetworkProcess/NetworkSession.cpp: |
| * NetworkProcess/NetworkSession.h: |
| * NetworkProcess/PingLoad.cpp: |
| * NetworkProcess/PingLoad.h: |
| * NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp: |
| (WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad): |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.h: |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa): |
| * NetworkProcess/cocoa/NetworkSessionCocoa.h: |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| * NetworkProcess/mac/NetworkLoadMac.mm: Removed. |
| * NetworkProcess/mac/RemoteNetworkingContext.mm: |
| (WebKit::RemoteNetworkingContext::ensureWebsiteDataStoreSession): |
| * Shared/Authentication/AuthenticationManager.cpp: |
| (WebKit::AuthenticationManager::didReceiveAuthenticationChallenge): |
| (WebKit::AuthenticationManager::useCredentialForSingleChallenge): |
| (WebKit::AuthenticationManager::continueWithoutCredentialForSingleChallenge): |
| (WebKit::AuthenticationManager::cancelSingleChallenge): |
| (WebKit::AuthenticationManager::performDefaultHandlingForSingleChallenge): |
| (WebKit::AuthenticationManager::rejectProtectionSpaceAndContinueForSingleChallenge): |
| * Shared/Authentication/AuthenticationManager.h: |
| * Shared/Authentication/cocoa/AuthenticationManagerCocoa.mm: Removed. |
| * Shared/SessionTracker.cpp: |
| (WebKit::SessionTracker::setSession): |
| (WebKit::SessionTracker::destroySession): |
| * Shared/SessionTracker.h: |
| * Shared/mac/CookieStorageShim.h: Removed. |
| * Shared/mac/CookieStorageShim.mm: Removed. |
| * UIProcess/API/APIDownloadClient.h: |
| (API::DownloadClient::didReceiveData): |
| (API::DownloadClient::shouldDecodeSourceDataOfMIMEType): Deleted. |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextSetDownloadClient): |
| * UIProcess/Cocoa/DownloadClient.h: |
| * UIProcess/Cocoa/DownloadClient.mm: |
| (WebKit::DownloadClient::shouldDecodeSourceDataOfMIMEType): Deleted. |
| * UIProcess/Downloads/DownloadProxy.cpp: |
| (WebKit::DownloadProxy::willSendRequest): |
| (WebKit::DownloadProxy::didReceiveResponse): |
| (WebKit::DownloadProxy::shouldDecodeSourceDataOfMIMEType): Deleted. |
| (WebKit::DownloadProxy::decideDestinationWithSuggestedFilename): Deleted. |
| * UIProcess/Downloads/DownloadProxy.h: |
| * UIProcess/Downloads/DownloadProxy.messages.in: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm: |
| (WebKit::WebFrameNetworkingContext::ensureWebsiteDataStoreSession): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeWebProcess): |
| (WebKit::WebProcess::clearCachedCredentials): |
| * config.h: |
| |
| 2018-01-22 Youenn Fablet <youenn@apple.com> |
| |
| SW: Make sure ServiceWorker loading and requests are correctly cleared by ITP |
| https://bugs.webkit.org/show_bug.cgi?id=181942 |
| <rdar://problem/35132091> |
| |
| Reviewed by Chris Dumez. |
| |
| Add ServiceWorkerRegistrations and DOMCache as persistent data to be cleared according ITP decisions. |
| |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::monitoredDataTypes): |
| |
| 2018-01-22 Chris Dumez <cdumez@apple.com> |
| |
| Add release logging to help debug issues related to service workers |
| https://bugs.webkit.org/show_bug.cgi?id=181935 |
| <rdar://problem/36735900> |
| |
| Reviewed by Brady Eidson. |
| |
| * StorageProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::startFetch): |
| (WebKit::WebSWServerConnection::didFinishFetch): |
| (WebKit::WebSWServerConnection::didFailFetch): |
| (WebKit::WebSWServerConnection::didNotHandleFetch): |
| |
| 2018-01-22 Brent Fulgham <bfulgham@apple.com> |
| |
| [iOS] REGRESSION (r225763): Allow access to power logging features |
| https://bugs.webkit.org/show_bug.cgi?id=181938 |
| <rdar://problem/36442803> |
| |
| Reviewed by Eric Carlson. |
| |
| I denied access to the powerlog facility in r225763, not realizing that it |
| gets activated in certain logging scenarios. This patch reverts this change. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2018-01-22 Brent Fulgham <bfulgham@apple.com> |
| |
| [macOS, iOS] Allow accss to AVFoundation preference |
| https://bugs.webkit.org/show_bug.cgi?id=181937 |
| <rdar://problem/33137029> |
| |
| Reviewed by Eric Carlson. |
| |
| Grant access to the 'com.apple.avfoundation.frecents' preference. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-01-22 Brady Eidson <beidson@apple.com> |
| |
| In WebKit2, make the MessagePortChannelRegistry live in the UI process. |
| https://bugs.webkit.org/show_bug.cgi?id=181922 |
| |
| Reviewed by Andy Estes. |
| |
| With all of the work that went into making MessagePorts be fully asynchronous |
| and to be process-aware, formally moving them out-of-process is just a matter |
| of adding WebKit IPC layers. |
| |
| The basic unit of asynchronicity is "MessagePortChannelProvider", and this patch |
| adds both a WebMessagePortChannelProvider and UIMessagePortChannelProvider for |
| each side of the process divide. |
| |
| * UIProcess/UIMessagePortChannelProvider.cpp: Added. |
| (WebKit::UIMessagePortChannelProvider::singleton): |
| (WebKit::UIMessagePortChannelProvider::UIMessagePortChannelProvider): |
| (WebKit::UIMessagePortChannelProvider::~UIMessagePortChannelProvider): |
| (WebKit::UIMessagePortChannelProvider::createNewMessagePortChannel): |
| (WebKit::UIMessagePortChannelProvider::entangleLocalPortInThisProcessToRemote): |
| (WebKit::UIMessagePortChannelProvider::messagePortDisentangled): |
| (WebKit::UIMessagePortChannelProvider::messagePortClosed): |
| (WebKit::UIMessagePortChannelProvider::takeAllMessagesForPort): |
| (WebKit::UIMessagePortChannelProvider::postMessageToRemote): |
| (WebKit::UIMessagePortChannelProvider::checkRemotePortForActivity): |
| (WebKit::UIMessagePortChannelProvider::checkProcessLocalPortForActivity): |
| * UIProcess/UIMessagePortChannelProvider.h: Added. |
| (WebKit::UIMessagePortChannelProvider::registry): |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::m_configurationPreferenceValues): |
| |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::processForIdentifier): |
| (WebKit::m_userMediaCaptureManagerProxy): |
| (WebKit::WebProcessProxy::~WebProcessProxy): |
| (WebKit::WebProcessProxy::shutDown): |
| (WebKit::WebProcessProxy::createNewMessagePortChannel): |
| (WebKit::WebProcessProxy::entangleLocalPortInThisProcessToRemote): |
| (WebKit::WebProcessProxy::messagePortDisentangled): |
| (WebKit::WebProcessProxy::messagePortClosed): |
| (WebKit::WebProcessProxy::takeAllMessagesForPort): |
| (WebKit::WebProcessProxy::didDeliverMessagePortMessages): |
| (WebKit::WebProcessProxy::postMessageToRemote): |
| (WebKit::WebProcessProxy::checkRemotePortForActivity): |
| (WebKit::WebProcessProxy::checkProcessLocalPortForActivity): |
| (WebKit::WebProcessProxy::didCheckProcessLocalPortForActivity): |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebProcessProxy.messages.in: |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| * WebProcess/WebCoreSupport/WebMessagePortChannelProvider.cpp: Added. |
| (WebKit::WebMessagePortChannelProvider::singleton): |
| (WebKit::WebMessagePortChannelProvider::WebMessagePortChannelProvider): |
| (WebKit::WebMessagePortChannelProvider::~WebMessagePortChannelProvider): |
| (WebKit::WebMessagePortChannelProvider::createNewMessagePortChannel): |
| (WebKit::WebMessagePortChannelProvider::entangleLocalPortInThisProcessToRemote): |
| (WebKit::WebMessagePortChannelProvider::messagePortDisentangled): |
| (WebKit::WebMessagePortChannelProvider::messagePortClosed): |
| (WebKit::WebMessagePortChannelProvider::takeAllMessagesForPort): |
| (WebKit::WebMessagePortChannelProvider::didTakeAllMessagesForPort): |
| (WebKit::WebMessagePortChannelProvider::didCheckRemotePortForActivity): |
| (WebKit::WebMessagePortChannelProvider::postMessageToRemote): |
| (WebKit::WebMessagePortChannelProvider::checkProcessLocalPortForActivity): |
| (WebKit::WebMessagePortChannelProvider::checkRemotePortForActivity): |
| * WebProcess/WebCoreSupport/WebMessagePortChannelProvider.h: Added. |
| |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeProcess): |
| (WebKit::WebProcess::didTakeAllMessagesForPort): |
| (WebKit::WebProcess::checkProcessLocalPortForActivity): |
| (WebKit::WebProcess::didCheckRemotePortForActivity): |
| (WebKit::WebProcess::messagesAvailableForPort): |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| |
| 2018-01-22 Youenn Fablet <youenn@apple.com> |
| |
| Bump default cache storage quota to 50MB |
| https://bugs.webkit.org/show_bug.cgi?id=181924 |
| |
| Reviewed by Chris Dumez. |
| |
| Existing web sites use more than 20 MB. |
| |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| |
| 2018-01-22 Zan Dobersek <zdobersek@igalia.com> |
| |
| Unreviewed build fix after r227292. Fixing a bad copy-paste that broke |
| the GTK+ debug builds. |
| |
| * WebProcess/WebCoreSupport/gtk/WebDragClientGtk.cpp: |
| (WebKit::convertCairoSurfaceToShareableBitmap): |
| |
| 2018-01-22 Zan Dobersek <zdobersek@igalia.com> |
| |
| [Cairo] Refactor PlatformContextCairo::drawSurfaceToContext() into a Cairo operation |
| https://bugs.webkit.org/show_bug.cgi?id=181930 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Call sites of the PlatformContextCairo::drawSurfaceToContext() method |
| are adjusted to now call Cairo::drawSurface() and properly pass the |
| PlatformContextCairo object to the function. |
| |
| * Shared/cairo/ShareableBitmapCairo.cpp: |
| (WebKit::ShareableBitmap::paint): |
| * WebProcess/WebCoreSupport/gtk/WebDragClientGtk.cpp: |
| (WebKit::convertCairoSurfaceToShareableBitmap): |
| |
| 2018-01-21 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Fix compile warning. |
| |
| Use #include instead of #import in cross-platform code. |
| |
| * Shared/WebPreferencesDefaultValues.cpp: |
| |
| 2018-01-21 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Turning off custom pasteboard data doesn't actually turn it off in WK2 |
| https://bugs.webkit.org/show_bug.cgi?id=181920 |
| <rdar://problem/36686429> |
| |
| Reviewed by Wenson Hsieh. |
| |
| Moved the code to decide when to enable custom pasteboard data from WebCore |
| since we never enable this feature in WebKit1. |
| |
| * Shared/WebPreferences.yaml: |
| * Shared/WebPreferencesDefaultValues.cpp: |
| (defaultCustomPasteboardDataEnabled): Added. |
| * Shared/WebPreferencesDefaultValues.h: |
| |
| 2018-01-21 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Add a new feature flag for EXTRA_ZOOM_MODE and reintroduce AdditionalFeatureDefines.h |
| https://bugs.webkit.org/show_bug.cgi?id=181918 |
| |
| Reviewed by Tim Horton. |
| |
| Add EXTRA_ZOOM_MODE to FeatureDefines.xconfig (off by default). |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2018-01-21 Eric Carlson <eric.carlson@apple.com> |
| |
| Resign NowPlaying status when no media element is eligible |
| https://bugs.webkit.org/show_bug.cgi?id=181914 |
| <rdar://problem/35294116> |
| |
| Reviewed by Jer Noble. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _requestActiveNowPlayingSessionInfo:]): Return registeredAsNowPlayingApplication |
| status. |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::nowPlayingInfoCallback): Ditto. |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/WebPage/Cocoa/WebPageCocoa.mm: |
| (WebKit::WebPage::requestActiveNowPlayingSessionInfo): Ditto. |
| |
| 2018-01-20 Andy Estes <aestes@apple.com> |
| |
| [Apple Pay] Stop eagerly loading PassKit.framework |
| https://bugs.webkit.org/show_bug.cgi?id=181911 |
| <rdar://problem/36555369> |
| |
| Reviewed by Tim Horton. |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| |
| Removed availablePaymentNetworks from WebPageCreationParameters. |
| |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetApplePayEnabled): |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| |
| Stopped calling WebPaymentCoordinatorProxy::platformSupportsPayments(). |
| |
| * UIProcess/ApplePay/WebPaymentCoordinatorProxy.cpp: |
| (WebKit::WebPaymentCoordinatorProxy::availablePaymentNetworks): |
| * UIProcess/ApplePay/WebPaymentCoordinatorProxy.h: |
| * UIProcess/ApplePay/WebPaymentCoordinatorProxy.messages.in: |
| |
| Added message AvailablePaymentNetworks, which synchronously returns a Vector of payment |
| networks. |
| |
| * UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm: |
| (WebKit::WebPaymentCoordinatorProxy::platformCanMakePayments): |
| |
| Returned false if PassKitLibrary() fails. |
| |
| (WebKit::WebPaymentCoordinatorProxy::platformCanMakePaymentsWithActiveCard): |
| (WebKit::WebPaymentCoordinatorProxy::platformOpenPaymentSetup): |
| |
| Called completionHandler with false if PassKitLibrary() fails. |
| |
| (WebKit::WebPaymentCoordinatorProxy::platformAvailablePaymentNetworks): |
| (WebKit::WebPaymentCoordinatorProxy::availablePaymentNetworks): |
| |
| Renamed availablePaymentNetworks to platformAvailablePaymentNetworks |
| |
| (WebKit::WebPaymentCoordinatorProxy::platformSupportsPayments): Deleted. |
| |
| * UIProcess/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm: |
| (WebKit::WebPaymentCoordinatorProxy::platformShowPaymentUI): |
| |
| Called completionHandler with false if PassKitLibrary() fails. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::creationParameters): |
| |
| Stopped calling WebPaymentCoordinatorProxy::availablePaymentNetworks(). |
| |
| * WebProcess/ApplePay/WebPaymentCoordinator.cpp: |
| (WebKit::WebPaymentCoordinator::availablePaymentNetworks): |
| (WebKit::WebPaymentCoordinator::validatedPaymentNetwork): |
| * WebProcess/ApplePay/WebPaymentCoordinator.h: |
| |
| Implemented PaymentCoordinatorClient::validatedPaymentNetwork(). m_availablePaymentNetworks |
| starts off as std::nullopt, but is initialized by sending the AvailablePaymentNetworks sync |
| message the first time it's accessed. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::WebPage): |
| |
| Stopped setting PageConfiguration::availablePaymentNetworks. |
| |
| 2018-01-20 Jer Noble <jer.noble@apple.com> |
| |
| Release ASSERT when reloading Vimeo page @ WebCore: WebCore::Document::updateLayout |
| https://bugs.webkit.org/show_bug.cgi?id=181840 |
| <rdar://problem/36186214> |
| |
| Reviewed by Simon Fraser. |
| |
| Updating layout while the document is suspended or stopped is unsafe. |
| |
| * WebProcess/cocoa/VideoFullscreenManager.mm: |
| (WebKit::inlineVideoFrame): |
| |
| 2018-01-20 Chris Dumez <cdumez@apple.com> |
| |
| DOMCache data sometimes not properly removed when clearing data for a given origin |
| https://bugs.webkit.org/show_bug.cgi?id=181887 |
| <rdar://problem/36671239> |
| |
| Reviewed by Youenn Fablet. |
| |
| * NetworkProcess/cache/CacheStorageEngine.cpp: |
| (WebKit::CacheStorage::Engine::clearCachesForOrigin): |
| This code was iterating through folders on disk, then reading the folder's origin |
| from the origin file on disk. Then, if the origin would match the one we want to |
| delete, it would regenerate the folder path using cachesRootPath(*folderOrigin). |
| I don't know how but on my machine, I was ended up in a state where the path |
| generated by cachesRootPath(*folderOrigin) differed from the actual folder path |
| we read the origin from (Likely a different salt?). To make the code more robust, |
| I updated the code to delete "folderPath", which is the path we read the origin |
| from. |
| |
| 2018-01-19 Zach Li <zacharyli323@gmail.com> |
| |
| Expose Safe Browsing SPI |
| https://bugs.webkit.org/show_bug.cgi?id=181804 |
| <rdar://problem/36626946> |
| |
| Reviewed by Dan Bernstein. |
| |
| If client is using Apple internal SDK, then we can just import the header; if not, |
| then we declare necessary symbols that client will need. |
| |
| * Configurations/WebKit.xcconfig: |
| Only link against SafariSafeBrowsing framework on macOS High Sierra |
| and iOS 11 and above. Weak link against SafariSafeBrowsing framework |
| because it is not present on the Base system. |
| |
| * Platform/spi/Cocoa/SafeBrowsingSPI.h: Added. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| Added SafeBrowsingSPI.h. |
| |
| * WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/11/SafariSafeBrowsing.framework/SafariSafeBrowsing.tbd: |
| Added. |
| |
| 2018-01-19 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed build fix, removed unused lambda capture. |
| |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent): |
| |
| 2018-01-19 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Remove unused calls to WebResourceLoadStatisticsStore:logTestingEvent() to fix API test |
| https://bugs.webkit.org/show_bug.cgi?id=181890 |
| <rdar://problem/36674772> |
| |
| Unreviewed API test fix. |
| |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent): |
| |
| 2018-01-19 Youenn Fablet <youenn@apple.com> |
| |
| Do not go to the storage process when registering a service worker client if there is no service worker registered |
| https://bugs.webkit.org/show_bug.cgi?id=181740 |
| <rdar://problem/36650400> |
| |
| Reviewed by Chris Dumez. |
| |
| UIProcess notifies all web processes to register their service worker clients when spinning the service worker process. |
| Add private API to set the number of web processes for testing purposes. |
| |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _setMaximumNumberOfProcesses:]): |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::establishWorkerContextConnectionToStorageProcess): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::registerServiceWorkerClients): |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| |
| 2018-01-19 Dean Jackson <dino@apple.com> |
| |
| REGRESSION (r221092): Swipe actions are hard to perform in FastMail app |
| https://bugs.webkit.org/show_bug.cgi?id=181817 |
| <rdar://problem/35274055> |
| |
| Reviewed by Simon Fraser. |
| |
| Add a linked-on-or-after check to set passive touch listeners on document in WebCore. |
| |
| * CMakeLists.txt: |
| * Shared/WebPreferences.yaml: |
| * Shared/WebPreferencesDefaultValues.cpp: Copied from Source/WebKit/UIProcess/Cocoa/VersionChecks.h. |
| (defaultPassiveTouchListenersAsDefaultOnDocument): |
| * Shared/WebPreferencesDefaultValues.h: |
| * UIProcess/Cocoa/VersionChecks.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-01-19 Joseph Pecoraro <pecoraro@apple.com> |
| |
| [Cocoa] _WKNSWindowExtras.h: Add missing availability annotation |
| https://bugs.webkit.org/show_bug.cgi?id=181868 |
| |
| Reviewed by Dan Bernstein. |
| |
| * Shared/API/Cocoa/_WKNSWindowExtras.h: |
| |
| 2018-01-19 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Add void to argument list to fix build with -Wstrict-prototypes |
| https://bugs.webkit.org/show_bug.cgi?id=181870 |
| <rdar://problem/36666750> |
| |
| Unreviewed build fix. |
| |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| |
| 2018-01-19 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r227211. |
| |
| Breaks iOS Simulator tests. |
| |
| Reverted changeset: |
| |
| "Expose Safe Browsing SPI" |
| https://bugs.webkit.org/show_bug.cgi?id=181804 |
| https://trac.webkit.org/changeset/227211 |
| |
| 2018-01-19 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Implement callback support for removal of WebsiteDataType::ResourceLoadStatistics |
| https://bugs.webkit.org/show_bug.cgi?id=181822 |
| https://bugs.webkit.org/show_bug.cgi?id=175263 |
| https://bugs.webkit.org/show_bug.cgi?id=178536 |
| https://bugs.webkit.org/show_bug.cgi?id=181223 |
| https://bugs.webkit.org/show_bug.cgi?id=181482 |
| <rdar://problem/33491222> |
| <rdar://problem/33805293> |
| <rdar://problem/36332683> |
| <rdar://problem/36549026> |
| |
| Reviewed by Alex Christensen. |
| |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreStatisticsClearInMemoryAndPersistentStore): |
| (WKWebsiteDataStoreStatisticsClearInMemoryAndPersistentStoreModifiedSinceHours): |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _resourceLoadStatisticsClearInMemoryAndPersistentStore]): |
| Calls the new API with no-op completion handler. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsClearInMemoryAndPersistentStore:]): |
| New API with completion handler. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsClearInMemoryAndPersistentStoreModifiedSinceHours:]): |
| Calls the new API with no-op completion handler. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsClearInMemoryAndPersistentStoreModifiedSinceHours:completionHandler:]): |
| New API with completion handler. |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| * UIProcess/ResourceLoadStatisticsPersistentStorage.cpp: |
| (WebKit::ResourceLoadStatisticsPersistentStorage::populateMemoryStoreFromDisk): |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::grandfatherExistingWebsiteData): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent): |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::removeData): |
| (WebKit::WebsiteDataStore::clearResourceLoadStatisticsInWebProcesses): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| |
| 2018-01-19 Daniel Bates <dabates@apple.com> |
| |
| REGRESSION (r223149): Ref WebPageProxy objects before calling their functionality |
| https://bugs.webkit.org/show_bug.cgi?id=181863 |
| <rdar://problem/36662452> |
| |
| Reviewed by Chris Dumez. |
| |
| More fix ups following r223149. When notifying all pages of a process state change we need to |
| take care to ref all the pages before iterating over them and notifying them of the change. |
| Notifying a page of such a state change may ultimately delegate to the embedding client. And |
| the embedding client can do anything, including deallocating one or more pages. |
| |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::didBecomeUnresponsive): |
| (WebKit::WebProcessProxy::didBecomeResponsive): |
| (WebKit::WebProcessProxy::willChangeIsResponsive): |
| (WebKit::WebProcessProxy::didChangeIsResponsive): |
| (WebKit::WebProcessProxy::requestTermination): |
| |
| 2018-01-19 Chris Dumez <cdumez@apple.com> |
| |
| The WebContent process should not process incoming IPC while waiting for a sync IPC reply |
| https://bugs.webkit.org/show_bug.cgi?id=181560 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| The WebContent process should not process incoming IPC while waiting for a sync IPC reply. |
| This is causing hard-to-debug crashes because developers often assume the state does not |
| change during a sendSync() call. |
| |
| * Platform/IPC/Connection.cpp: |
| (IPC::Connection::waitForSyncReply): |
| * Platform/IPC/Connection.h: |
| (IPC::Connection::setShouldProcessIncomingMessagesWhileWaitingForSyncReply): |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::testIncomingSyncIPCMessageWhileWaitingForSyncReply): |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebProcessProxy.messages.in: |
| * WebProcess/Network/NetworkProcessConnection.cpp: |
| (WebKit::NetworkProcessConnection::NetworkProcessConnection): |
| * WebProcess/Storage/WebToStorageProcessConnection.cpp: |
| (WebKit::WebToStorageProcessConnection::WebToStorageProcessConnection): |
| * WebProcess/WebConnectionToUIProcess.cpp: |
| (WebKit::WebConnectionToUIProcess::WebConnectionToUIProcess): |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::testIncomingSyncIPCMessageWhileWaitingForSyncReply): |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| * WebProcess/WebCoreSupport/WebEditorClient.cpp: |
| (WebKit::WebEditorClient::undo): |
| (WebKit::WebEditorClient::redo): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::syncIPCMessageWhileWaitingForSyncReplyForTesting): |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| |
| 2018-01-19 Keith Miller <keith_miller@apple.com> |
| |
| HaveInternalSDK includes should be "#include?" |
| https://bugs.webkit.org/show_bug.cgi?id=179670 |
| |
| Reviewed by Dan Bernstein. |
| |
| * Configurations/Base.xcconfig: |
| |
| 2018-01-19 Daniel Bates <dabates@apple.com> |
| |
| Fix misspelling; substitute willDetachRenderer for willDetatchRenderer. |
| |
| * WebProcess/Plugins/PDF/PDFPlugin.h: |
| * WebProcess/Plugins/PDF/PDFPlugin.mm: |
| (WebKit::PDFPlugin::willDetachRenderer): |
| (WebKit::PDFPlugin::willDetatchRenderer): Deleted. |
| * WebProcess/Plugins/Plugin.h: |
| (WebKit::Plugin::willDetachRenderer): |
| (WebKit::Plugin::willDetatchRenderer): Deleted. |
| * WebProcess/Plugins/PluginView.cpp: |
| (WebKit::PluginView::willDetachRenderer): |
| (WebKit::PluginView::willDetatchRenderer): Deleted. |
| * WebProcess/Plugins/PluginView.h: |
| |
| 2018-01-19 Zach Li <zacharyli323@gmail.com> |
| |
| Expose Safe Browsing SPI |
| https://bugs.webkit.org/show_bug.cgi?id=181804 |
| <rdar://problem/36626946> |
| |
| Reviewed by Alex Christensen. |
| |
| If client is using Apple internal SDK, then we can just import the header; if not, |
| then we declare necessary symbols that client will need. |
| |
| * Configurations/WebKit.xcconfig: |
| Only link against SafariSafeBrowsing framework on macOS High Sierra |
| and iOS 11 and above. Weak link against SafariSafeBrowsing framework |
| because it is not present on the Base system. |
| |
| * Platform/spi/Cocoa/SafeBrowsingSPI.h: Added. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| Added SafeBrowsingSPI.h. |
| |
| * WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/11/SafariSafeBrowsing.framework/SafariSafeBrowsing.tbd: |
| Added. |
| |
| 2018-01-18 Chris Dumez <cdumez@apple.com> |
| |
| We should be able to terminate service workers that are unresponsive |
| https://bugs.webkit.org/show_bug.cgi?id=181563 |
| <rdar://problem/35280031> |
| |
| Reviewed by Alex Christensen. |
| |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::terminateWorker): |
| Use a 10 second timeout for forcefully exiting the service worker process when |
| the service worker in question fails to terminate. |
| |
| (WebKit::WebSWContextManagerConnection::syncTerminateWorker): |
| Use a 100ms timeout for forcefully exiting the service worker process when |
| the service worker in question fails to terminate. This method is only called |
| from the layout tests, which is why we use a very short timeout. |
| |
| 2018-01-18 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, suppress deprecation warnings to fix the build with a newer SDK. |
| |
| * UIProcess/ios/WKPDFPageNumberIndicator.mm: |
| (-[WKPDFPageNumberIndicator _makeRoundedCorners]): |
| |
| 2018-01-18 Youenn Fablet <youenn@apple.com> |
| |
| Do not go to the storage process when loading a main resource if there is no service worker registered |
| https://bugs.webkit.org/show_bug.cgi?id=181395 |
| |
| Reviewed by Chris Dumez. |
| |
| Add a new web process creation parameter to know whether there is any service worker registered at web process creation time. |
| If there is none, the web process will then start to load HTTP resources from the network. |
| The connection to the storage process is then executed when receiving the first bytes of the main resource. |
| This connection is needed as other web processes may create service workers at any given time. |
| If there is one registered service worker, the web process will wait for its connection to the storage process to be active. |
| |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::encode const): |
| (WebKit::WebProcessCreationParameters::decode): |
| * Shared/WebProcessCreationParameters.h: |
| * UIProcess/ServiceWorkerProcessProxy.cpp: |
| (WebKit::ServiceWorkerProcessProxy::hasRegisteredServiceWorkers): |
| * UIProcess/ServiceWorkerProcessProxy.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::initializeNewWebProcess): |
| * WebProcess/Storage/WebServiceWorkerProvider.cpp: |
| (WebKit::WebServiceWorkerProvider::existingServiceWorkerConnectionForSession): |
| * WebProcess/Storage/WebServiceWorkerProvider.h: |
| * WebProcess/Storage/WebToStorageProcessConnection.h: |
| (WebKit::WebToStorageProcessConnection::existingServiceWorkerConnectionForSession): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeWebProcess): |
| |
| 2018-01-18 Chris Dumez <cdumez@apple.com> |
| |
| Regression(r223149): WebProcessProxy::didClose() no longer refs WebPageProxy objects |
| https://bugs.webkit.org/show_bug.cgi?id=181771 |
| <rdar://problem/36566237> |
| |
| Reviewed by Brady Eidson. |
| |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::didClose): |
| Use copyToVectorOf<RefPtr<WebPageProxy>>() to maintain pre-r223149 behavior |
| and ref the pages. |
| |
| 2018-01-18 Dan Bernstein <mitz@apple.com> |
| |
| [Xcode] Streamline and future-proof target-macOS-version-dependent build setting definitions |
| https://bugs.webkit.org/show_bug.cgi?id=181803 |
| |
| Reviewed by Tim Horton. |
| |
| * Configurations/Base.xcconfig: Updated. |
| * Configurations/DebugRelease.xcconfig: Ditto. |
| * Configurations/FeatureDefines.xcconfig: Adopted macOSTargetConditionals helpers. |
| * Configurations/Version.xcconfig: Updated. |
| * Configurations/macOSTargetConditionals.xcconfig: Added. Defines helper build settings |
| useful for defining settings that depend on the target macOS version. |
| |
| 2018-01-18 Chris Dumez <cdumez@apple.com> |
| |
| Service Workers restored from persistent storage have 'redundant' state |
| https://bugs.webkit.org/show_bug.cgi?id=181749 |
| <rdar://problem/36556486> |
| |
| Reviewed by Youenn Fablet. |
| |
| Allow service workers to intercept custom protocol loads as this is useful for |
| API testing. |
| |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::scheduleLoad): |
| (WebKit::WebLoaderStrategy::tryLoadingUsingURLSchemeHandler): |
| * WebProcess/Network/WebLoaderStrategy.h: |
| |
| 2018-01-18 Brent Fulgham <bfulgham@apple.com> |
| |
| REGRESSION(r225858): Sandbox violations due to blocked access to Spotlight search preferences |
| https://bugs.webkit.org/show_bug.cgi?id=181797 |
| <rdar://problem/36546412> |
| |
| Reviewed by Eric Carlson. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: Add the read permission for |
| 'com.apple.lookup.shared' to support DataDetectors. |
| |
| 2018-01-17 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Block cookies for prevalent resources without user interaction |
| https://bugs.webkit.org/show_bug.cgi?id=177394 |
| <rdar://problem/34613960> |
| |
| Reviewed by Alex Christensen. |
| |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.h: |
| Now has m_hasBeenSetToUseStatelessCookieStorage to handle |
| cookie blocking. |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::statelessCookieStorage): |
| Returns singleton empty, deny-all cookie storage for cookie blocking. |
| The ugly pragma instructions for clang are because the NSString |
| parameter for _initWithIdentifier was not marked nullable pre-Sierra. |
| (WebKit::NetworkDataTaskCocoa::applyCookieBlockingPolicy): |
| Instead of just decision making, this now applies the policy. |
| (WebKit::NetworkDataTaskCocoa::applyCookiePartitioningPolicy): |
| New method. |
| (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): |
| Now blocks cookies for domains where cookies will be purged anyway. |
| (WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection): |
| Now blocks cookies for domains where cookies will be purged anyway. |
| (WebKit::shouldChangePartition): Deleted. |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]): |
| Now downgrades for blocked cookies instead of partitioned cookies. |
| (-[WKNetworkSessionDelegate URLSession:task:_schemeUpgraded:completionHandler:]): |
| Now downgrades for blocked cookies instead of partitioned cookies. |
| |
| |
| 2018-01-17 Stephan Szabo <stephan.szabo@sony.com> |
| |
| [Curl] Use ResourceRequest::encodeWithPlatformData() |
| https://bugs.webkit.org/show_bug.cgi?id=181768 |
| |
| Reviewed by Alex Christensen. |
| |
| * Shared/curl/WebCoreArgumentCodersCurl.cpp: |
| (IPC::ArgumentCoder<ResourceRequest>::encodePlatformData): |
| (IPC::ArgumentCoder<ResourceRequest>::decodePlatformData): |
| |
| 2018-01-17 Matt Lewis <jlewis3@apple.com> |
| |
| Unreviewed, rolling out r227076. |
| |
| This breaks internal builds |
| |
| Reverted changeset: |
| |
| "Resource Load Statistics: Block cookies for prevalent |
| resources without user interaction" |
| https://bugs.webkit.org/show_bug.cgi?id=177394 |
| https://trac.webkit.org/changeset/227076 |
| |
| 2018-01-17 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| WEBKIT_FRAMEWORK should not modify file-global include directories |
| https://bugs.webkit.org/show_bug.cgi?id=181656 |
| |
| Reviewed by Konstantin Tokarev. |
| |
| * PlatformGTK.cmake: |
| * PlatformWPE.cmake: |
| |
| 2018-01-17 Youenn Fablet <youenn@apple.com> |
| |
| Put fetch request keepAlive behind a runtime flag |
| https://bugs.webkit.org/show_bug.cgi?id=181592 |
| |
| Reviewed by Chris Dumez. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetFetchAPIKeepAliveEnabled): |
| (WKPreferencesGetFetchAPIKeepAliveEnabled): |
| * UIProcess/API/C/WKPreferencesRefPrivate.h: |
| |
| 2018-01-17 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Block cookies for prevalent resources without user interaction |
| https://bugs.webkit.org/show_bug.cgi?id=177394 |
| <rdar://problem/34613960> |
| |
| Reviewed by Alex Christensen. |
| |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.h: |
| Now has m_hasBeenSetToUseStatelessCookieStorage to handle |
| cookie blocking. |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::statelessCookieStorage): |
| Returns singleton empty, deny-all cookie storage for cookie blocking. |
| (WebKit::NetworkDataTaskCocoa::applyCookieBlockingPolicy): |
| Instead of just decision making, this now applies the policy. |
| (WebKit::NetworkDataTaskCocoa::applyCookiePartitioningPolicy): |
| New method. |
| (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): |
| Now blocks cookies for domains where cookies will be purged anyway. |
| (WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection): |
| Now blocks cookies for domains where cookies will be purged anyway. |
| (WebKit::shouldChangePartition): Deleted. |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]): |
| Now downgrades for blocked cookies instead of partitioned cookies. |
| (-[WKNetworkSessionDelegate URLSession:task:_schemeUpgraded:completionHandler:]): |
| Now downgrades for blocked cookies instead of partitioned cookies. |
| |
| 2018-01-17 Daniel Bates <dabates@apple.com> |
| |
| REGRESSION (r222795): Cardiogram never signs in |
| https://bugs.webkit.org/show_bug.cgi?id=181693 |
| <rdar://problem/36286293> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Exempt Cardiogram from the XHR header restrictions in r222795. |
| |
| Following r222795 only Dashboard widgets are allowed to set arbitrary XHR headers. |
| However Cardiogram also depends on such functionality. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (shouldAllowSettingAnyXHRHeaderFromFileURLs): |
| (-[WKWebView _initializeWithConfiguration:]): |
| * UIProcess/Cocoa/VersionChecks.h: |
| |
| 2018-01-17 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Add injected bundle SPI to replace subresource URLs when dropping or pasting rich content |
| https://bugs.webkit.org/show_bug.cgi?id=181637 |
| <rdar://problem/36508471> |
| |
| Reviewed by Tim Horton. |
| |
| Add new injected bundle SPI, replacementURLForResource, which clients may use to provide a replacement URL to |
| represent an archive resource, given the resource's data and MIME type. |
| |
| * WebProcess/InjectedBundle/API/APIInjectedBundleEditorClient.h: |
| (API::InjectedBundle::EditorClient::replacementURLForResource): |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInEditingDelegate.h: |
| * WebProcess/InjectedBundle/API/c/WKBundlePageEditorClient.h: |
| |
| Add replacementURLForResource, and also bump the current injected bundle editor client version to 2. |
| |
| * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm: |
| (-[WKWebProcessPlugInBrowserContextController _setEditingDelegate:]): |
| * WebProcess/InjectedBundle/InjectedBundlePageEditorClient.cpp: |
| (WebKit::InjectedBundlePageEditorClient::replacementURLForResource): |
| * WebProcess/InjectedBundle/InjectedBundlePageEditorClient.h: |
| * WebProcess/WebCoreSupport/WebEditorClient.cpp: |
| (WebKit::WebEditorClient::replacementURLForResource): |
| * WebProcess/WebCoreSupport/WebEditorClient.h: |
| |
| 2018-01-17 Zan Dobersek <zdobersek@igalia.com> |
| |
| [Cairo] Don't mirror global alpha and image interpolation quality state values in PlatformContextCairo |
| https://bugs.webkit.org/show_bug.cgi?id=181725 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * Shared/cairo/ShareableBitmapCairo.cpp: |
| (WebKit::ShareableBitmap::paint): |
| Adjust the PlatformContextCairo::drawSurfaceToContext() invocation. |
| * WebProcess/WebCoreSupport/gtk/WebDragClientGtk.cpp: |
| (WebKit::convertCairoSurfaceToShareableBitmap): Ditto. |
| |
| 2018-01-17 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Update OptionsGTK.cmake and NEWS for 2.19.6 release. |
| |
| * gtk/NEWS: Add release notes for 2.19.6. |
| |
| 2018-01-17 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Duplicated symbols in libjavascriptcoregtk and libwebkit2gtk can cause crashes in production builds |
| https://bugs.webkit.org/show_bug.cgi?id=179914 |
| |
| Reviewed by Žan Doberšek. |
| |
| Add symbols detected by check-for-global-bss-symbols-in-webkigtk-libs to the version script. |
| |
| * webkitglib-symbols.map: |
| |
| 2018-01-17 Youenn Fablet <youenn@apple.com> |
| |
| Clear Caches volatile storage as a memory optimization. |
| https://bugs.webkit.org/show_bug.cgi?id=181643 |
| |
| Reviewed by Chris Dumez. |
| |
| clearMemoryRepresentation clears m_caches which exposes data potentially stored in m_volatileStorage. |
| Clearing m_volatileStorage allows releasing some memory. |
| |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::Caches::clearMemoryRepresentation): |
| |
| 2018-01-17 Zan Dobersek <zdobersek@igalia.com> |
| |
| [Cairo] Use one-time ShadowBlur objects when performing shadowing |
| https://bugs.webkit.org/show_bug.cgi?id=181720 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * Shared/cairo/ShareableBitmapCairo.cpp: |
| (WebKit::ShareableBitmap::paint): |
| Adjust the PlatformContextCairo::drawSurfaceToContext() invocation. |
| * WebProcess/WebCoreSupport/gtk/WebDragClientGtk.cpp: |
| (WebKit::convertCairoSurfaceToShareableBitmap): Ditto. |
| |
| 2018-01-16 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [CMake] Remove WebCoreDerivedSources library target |
| https://bugs.webkit.org/show_bug.cgi?id=181664 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * CMakeLists.txt: Do not link WebCoreDerivedSources. |
| * PlatformGTK.cmake: Appended WebCore after WebCorePlatformGTK in WebKit_LIBRARIES. |
| * PlatformWin.cmake: Ditto. |
| |
| 2018-01-16 Alex Christensen <achristensen@webkit.org> |
| |
| Merge sync and async code paths for getting context menus |
| https://bugs.webkit.org/show_bug.cgi?id=181423 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| What a mess. We had a code path for asynchronous context menu generation and a different one for synchronous context menu generation. |
| This makes it so there is just one. At the API level we see if there is an asynchronous delegate to call, then synchronous. |
| There is a subtle theoretical change in behaviour because m_page.contextMenuClient().showContextMenu is now called for the asynchronous |
| case and it wasn't before, but the one C API client that uses this has nullptr as it's WKPageShowContextMenuCallback, so we won't break anything! |
| |
| * UIProcess/API/APIContextMenuClient.h: |
| (API::ContextMenuClient::getContextMenuFromProposedMenu): |
| (API::ContextMenuClient::getContextMenuFromProposedMenuAsync): Deleted. |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetPageContextMenuClient): |
| * UIProcess/API/glib/WebKitContextMenuClient.cpp: |
| * UIProcess/WebContextMenuProxy.h: |
| * UIProcess/gtk/WebContextMenuProxyGtk.cpp: |
| (WebKit::WebContextMenuProxyGtk::show): |
| (WebKit::WebContextMenuProxyGtk::showContextMenuWithItems): |
| * UIProcess/gtk/WebContextMenuProxyGtk.h: |
| * UIProcess/mac/WebContextMenuProxyMac.h: |
| * UIProcess/mac/WebContextMenuProxyMac.mm: |
| (WebKit::WebContextMenuProxyMac::showContextMenuWithItems): |
| (WebKit::WebContextMenuProxyMac::showContextMenu): |
| * UIProcess/wpe/WebContextMenuProxyWPE.h: |
| |
| 2018-01-16 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Don't link WebKit target directly to JavaScriptCore |
| https://bugs.webkit.org/show_bug.cgi?id=181688 |
| |
| Reviewed by Alex Christensen. |
| |
| It's safer if we only link to the next lower-layered lib in the stack, so let's just link |
| directly to WebCore instead. |
| |
| And WPE doesn't need to specify it twice. |
| |
| * CMakeLists.txt: |
| * PlatformMac.cmake: |
| * PlatformWPE.cmake: |
| |
| 2018-01-16 Eric Carlson <eric.carlson@apple.com> |
| |
| AVSampleBufferDisplayLayer should be flushed when application activates |
| https://bugs.webkit.org/show_bug.cgi?id=181623 |
| <rdar://problem/36487738> |
| |
| Reviewed by Darin Adler. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::applicationWillResignActive): Call page. |
| (WebKit::WebPage::applicationDidEnterBackground): Ditto, let it call libWebRTCProvider. |
| (WebKit::WebPage::applicationWillEnterForeground): Call page. |
| (WebKit::WebPage::applicationDidBecomeActive): Ditto, let it call libWebRTCProvider. |
| |
| 2018-01-16 Zach Li <zachli@apple.com> |
| |
| Add pop-up policy support in website policies. |
| https://bugs.webkit.org/show_bug.cgi?id=181544. |
| rdar://problem/30521400. |
| |
| Reviewed by Alex Christensen. |
| |
| * Shared/WebsitePoliciesData.cpp: Encode and decode |
| pop-up policy. |
| (WebKit::WebsitePoliciesData::encode const): |
| (WebKit::WebsitePoliciesData::decode): |
| (WebKit::WebsitePoliciesData::applyToDocumentLoader): |
| Apply the pop-up policy from website policies to the |
| document loader. |
| |
| * Shared/WebsitePoliciesData.h: |
| |
| * Shared/WebsitePopUpPolicy.h: |
| Added for declaring enum WebsitePopUpPolicy. |
| |
| * UIProcess/API/APIWforebsitePolicies.cpp: |
| Include pop-up policy in website policies. |
| (API::WebsitePolicies::WebsitePolicies): |
| (API::WebsitePolicies::data): |
| * UIProcess/API/APIWebsitePolicies.h: |
| |
| * UIProcess/API/C/WKWebsitePolicies.cpp: |
| Added C API to get and set pop-up policy on |
| website policies. |
| (WKWebsitePoliciesGetPopUpPolicy): |
| (WKWebsitePoliciesSetPopUpPolicy): |
| * UIProcess/API/C/WKWebsitePolicies.h: |
| |
| * UIProcess/API/Cocoa/_WKWebsitePolicies.h: |
| Added Obj-C API to get and set pop-up policy |
| on website policies. |
| * UIProcess/API/Cocoa/_WKWebsitePolicies.mm: |
| (-[_WKWebsitePolicies setPopUpPolicy:]): |
| (-[_WKWebsitePolicies popUpPolicy]): |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| Added WebsitePopUpPolicy.h. |
| |
| 2018-01-16 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [CMake][Mac] Fix the build errors |
| https://bugs.webkit.org/show_bug.cgi?id=181665 |
| |
| Reviewed by Alex Christensen. |
| |
| * CMakeLists.txt: Added TouchBarMenuData.cpp and TouchBarMenuItemData.cpp to compile. |
| * PlatformMac.cmake: Added _WKApplicationManifest.mm, WKInspectorWKWebView.mm and WKInspectorWindow.mm to compile. |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _webPageContentProcessCount]): Call WebProcessPool::serviceWorkerProxy() only if ENABLE(SERVICE_WORKER). |
| |
| 2018-01-16 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Attachment Support] Provide the `src` of an attachment to the UI delegate when an attachment is inserted |
| https://bugs.webkit.org/show_bug.cgi?id=181638 |
| <rdar://problem/36508702> |
| |
| Reviewed by Dan Bernstein. |
| |
| Add a `source` parameter to the `didInsertAttachment` codepath for notifying WebKit2 clients when attachment |
| elements are inserted into the document. |
| |
| * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _didInsertAttachment:withSource:]): |
| (-[WKWebView _didInsertAttachment:]): Deleted. |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| * UIProcess/Cocoa/PageClientImplCocoa.h: |
| * UIProcess/Cocoa/PageClientImplCocoa.mm: |
| (WebKit::PageClientImplCocoa::didInsertAttachment): |
| * UIProcess/PageClient.h: |
| (WebKit::PageClient::didInsertAttachment): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didInsertAttachment): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/WebCoreSupport/WebEditorClient.cpp: |
| (WebKit::WebEditorClient::didInsertAttachment): |
| * WebProcess/WebCoreSupport/WebEditorClient.h: |
| |
| 2018-01-15 Youenn Fablet <youenn@apple.com> |
| |
| ASSERTION FAILED: m_ptr under WebKit::CacheStorage::Caches::writeRecord |
| https://bugs.webkit.org/show_bug.cgi?id=181401 |
| <rdar://problem/36379022> |
| |
| Reviewed by Darin Adler. |
| |
| m_isInitialized is true but m_storage is set to nullptr when calling writeRecord. |
| The only case seems to be if: |
| - We are doing persistent storage |
| - We are traversing the storage to do the initialization. At that point m_storage is set to a correct value. |
| - clearMemoryRepresentation is called, thus setting m_storage to nullptr and m_isInitialized to false. |
| We fix this by making clearMemoryRepresentation a no-op if we are initializing the caches. |
| clearMemoryRepresentation is about cleaning the in-memory information of the caches and the memory representation is empty at init time. |
| Nullifying m_storage is a memory consumption optimization. |
| |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::Caches::clearMemoryRepresentation): |
| |
| 2018-01-12 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Unreviewed, speculative build fix after r226899. |
| |
| Add an empty implementation for PageClient::startDrag. |
| |
| * UIProcess/PageClient.h: |
| (WebKit::PageClient::startDrag): |
| |
| 2018-01-12 Brent Fulgham <bfulgham@apple.com> |
| |
| [iOS] Remove unneeded accessibility-related sandbox rules |
| https://bugs.webkit.org/show_bug.cgi?id=181619 |
| <rdar://problem/36485356> |
| |
| Reviewed by Eric Carlson. |
| |
| Remove a number of sandbox exceptions that were in place for accessibility support. These are |
| not needed in the WebContent process, since Safari (not WebKit) handles the accessibility |
| interactions. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2018-01-12 Keith Rollin <krollin@apple.com> |
| |
| Logged JSON should escape "'s and \'s in strings. |
| https://bugs.webkit.org/show_bug.cgi?id=181608 |
| |
| Reviewed by Brent Fulgham. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::logCookieInformation const): |
| |
| 2018-01-12 Megan Gardner <megan_gardner@apple.com> |
| |
| Unreviewed, fixing error in UIKitSPI.h. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| |
| 2018-01-12 Megan Gardner <megan_gardner@apple.com> |
| |
| Implement MultiDocument protocol for restoring focus to a WKWebView |
| https://bugs.webkit.org/show_bug.cgi?id=181510 |
| |
| Reviewed by Dan Bernstein. |
| |
| Support the UIKit protocol for restoring focus to a what previously had focus. |
| WebKit already knows what node was previously being focused by the DOM, we merely |
| need to be asked to turn the focus on again. |
| Resubmitting https://trac.webkit.org/changeset/226826 as it broke internal builds |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _restoreFocusWithToken:]): |
| (-[WKContentView _preserveFocusWithToken:destructively:]): |
| |
| 2018-01-12 Youenn Fablet <youenn@apple.com> |
| |
| WebProcess should pass the registration identifier and not the worker identifier for fetch events |
| https://bugs.webkit.org/show_bug.cgi?id=181591 |
| |
| Reviewed by Chris Dumez. |
| |
| Use service worker registration identifier to compute the active service worker identifier responsible to handle the fetch event. |
| |
| * StorageProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::startFetch): |
| * StorageProcess/ServiceWorker/WebSWServerConnection.h: |
| * StorageProcess/ServiceWorker/WebSWServerConnection.messages.in: |
| * WebProcess/Storage/ServiceWorkerClientFetch.cpp: |
| (WebKit::ServiceWorkerClientFetch::start): |
| * WebProcess/Storage/WebSWClientConnection.cpp: |
| (WebKit::WebSWClientConnection::startFetch): |
| * WebProcess/Storage/WebSWClientConnection.h: |
| * WebProcess/Storage/WebServiceWorkerProvider.cpp: |
| (WebKit::shouldHandleFetch): |
| |
| 2018-01-12 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r226826. |
| |
| Breaks internal builds. |
| |
| Reverted changeset: |
| |
| "Implement MultiDocument protocol for restoring focus to a |
| WKWebView" |
| https://bugs.webkit.org/show_bug.cgi?id=181510 |
| https://trac.webkit.org/changeset/226826 |
| |
| 2018-01-12 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [WK2] Unify macOS and iOS codepaths in the UI process when starting a drag |
| https://bugs.webkit.org/show_bug.cgi?id=181574 |
| |
| Reviewed by Tim Horton. |
| |
| Rearrange some macOS drag start logic in the UI process so that it uses the same codepaths in WebPageProxy as |
| iOS. Namely, startDrag should just forward the DragItem and drag image handle along to the appropriate views on |
| each platform (WKContentView and WebViewImpl). |
| |
| There should be no change in behavior. |
| |
| * UIProcess/Cocoa/WebPageProxyCocoa.mm: |
| |
| Both macOS and iOS now funnel through this method. |
| |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::startDrag): |
| (WebKit::WebViewImpl::dragImageForView): Deleted. |
| |
| Rename dragImageForView to startDrag. Move the call to didStartDrag() here, and call dragCancelled() in the |
| case where we bailed from starting the drag (due to failing to create a drag image). |
| |
| * UIProcess/PageClient.h: |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::setDragImage): Deleted. |
| |
| Rename setDragImage to startDrag. |
| |
| * UIProcess/mac/PageClientImplMac.h: |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::startDrag): |
| (WebKit::PageClientImpl::setDragImage): Deleted. |
| * UIProcess/mac/WebPageProxyMac.mm: |
| (WebKit::WebPageProxy::startDrag): Deleted. |
| |
| 2018-01-12 Antoine Quint <graouts@apple.com> |
| |
| Add support for the frames() timing function |
| https://bugs.webkit.org/show_bug.cgi?id=181585 |
| <rdar://problem/36463317> |
| |
| Reviewed by Dean. |
| |
| Add the ability to endode and decode the frames() timing function. |
| |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<FramesTimingFunction>::encode): |
| (IPC::ArgumentCoder<FramesTimingFunction>::decode): |
| * Shared/WebCoreArgumentCoders.h: |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm: |
| (WebKit::PlatformCAAnimationRemote::Properties::encode const): |
| (WebKit::PlatformCAAnimationRemote::Properties::decode): |
| |
| 2018-01-11 Keith Miller <keith_miller@apple.com> |
| |
| Rename ENABLE_ASYNC_ITERATION to ENABLE_JS_ASYNC_ITERATION |
| https://bugs.webkit.org/show_bug.cgi?id=181573 |
| |
| Reviewed by Simon Fraser. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2018-01-11 Brent Fulgham <bfulgham@apple.com> |
| |
| REGRESSION(r219530): ResourceLoadStatisticsPersistentStorage should be read-only in ephemeral sessions |
| https://bugs.webkit.org/show_bug.cgi?id=181136 |
| <rdar://problem/36116604> |
| |
| Reviewed by Chris Dumez. |
| |
| Some uses of WebKit involve running a UIProcess as an ephemeral session for the life of the process. In this |
| case, we do not initialize the data path for the set of load statistics triggering an assertion. |
| |
| We actually intended ephemeral sessions to consume the existing resource load data (presumably captured during |
| non-ephemeral browsing). This would be a read-only mode, where it would not add new entries to the load |
| statistics, but would take advantage of existing observations. Currently that does not happen (for this type |
| of WebKit embed), which forces each run as an ephemeral session to build up in-memory browsing data until it has |
| enough observations to begin modifying loads. |
| |
| We need to set the ResourceLoadStatisticsPersistentStorage object to a "read only" mode in this case, so |
| that it read (but does not write) from this database. |
| |
| Tested by ephemeral website data TestWebKitAPI tests. |
| |
| * UIProcess/ResourceLoadStatisticsPersistentStorage.cpp: |
| (WebKit::ResourceLoadStatisticsPersistentStorage::create): Added to allow creation of the right style of |
| Persistent Storage. |
| (WebKit::ResourceLoadStatisticsPersistentStorage::ResourceLoadStatisticsPersistentStorage): Initialize the |
| new data member. |
| (WebKit::ResourceLoadStatisticsPersistentStorage::asyncWriteTimerFired): RELEASE_ASSERT that we never run |
| this method when in "read only" mode. |
| (WebKit::ResourceLoadStatisticsPersistentStorage::writeMemoryStoreToDisk): Ditto. |
| (WebKit::ResourceLoadStatisticsPersistentStorage::scheduleOrWriteMemoryStore): Return early if asked to |
| schedule a write operation for a "read only" persistent store. |
| (WebKit::ResourceLoadStatisticsPersistentStorage::finishAllPendingWorkSynchronously): RELEASE_ASSERT if we |
| ever shut down in "read only" mode with an active write timer. |
| * UIProcess/ResourceLoadStatisticsPersistentStorage.h: |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore): Pass a flag indicating whether the |
| storage session is ephemeral or not. |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| |
| 2018-01-11 Keith Rollin <krollin@apple.com> |
| |
| Add optional logging of ITP-related user interaction information |
| https://bugs.webkit.org/show_bug.cgi?id=181556 |
| |
| Reviewed by Brent Fulgham. |
| |
| In order to support the tracking of the efficacy of Intelligent |
| Tracking Protection, add some logging indicating when the user |
| interacts with a page in a way that affects cookie partitioning. This |
| logging is off by default, and is enabled with `defaults write -g |
| WebKitLogCookieInformation -bool true`. |
| |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::encode const): |
| (WebKit::WebProcessCreationParameters::decode): |
| * Shared/WebProcessCreationParameters.h: |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeWebProcess): |
| |
| 2018-01-11 Megan Gardner <megan_gardner@apple.com> |
| |
| Implement MultiDocument protocol for restoring focus to a WKWebView |
| https://bugs.webkit.org/show_bug.cgi?id=181510 |
| |
| Reviewed by Dan Bernstein. |
| |
| Support the UIKit protocol for restoring focus to a what previously had focus. |
| WebKit already has a method to silently remove and replace focus, without telling the |
| web process about the unfocus and refocusing, so we're just using that. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _restoreFocusWithToken:]): |
| (-[WKContentView _preserveFocusWithToken:destructively:]): |
| |
| |
| 2018-01-11 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Don't load inline data when requesting info for an attachment element backed by a file path |
| https://bugs.webkit.org/show_bug.cgi?id=181550 |
| |
| Reviewed by Tim Horton |
| |
| See WebCore/ChangeLog for more information. |
| |
| * UIProcess/API/Cocoa/_WKAttachment.mm: |
| (-[_WKAttachmentInfo initWithInfo:]): |
| (-[_WKAttachmentInfo fileLoadingError]): |
| (-[_WKAttachment requestInfo:]): |
| |
| 2018-01-11 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r226789 and r226794. |
| https://bugs.webkit.org/show_bug.cgi?id=181564 |
| |
| broke API tests (Requested by alexchristensen on #webkit). |
| |
| Reverted changesets: |
| |
| "Merge sync and async code paths for getting context menus" |
| https://bugs.webkit.org/show_bug.cgi?id=181423 |
| https://trac.webkit.org/changeset/226789 |
| |
| "Revert changes accidentally committed with r226789." |
| https://bugs.webkit.org/show_bug.cgi?id=181423 |
| https://trac.webkit.org/changeset/226794 |
| |
| 2018-01-11 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Send PromisedBlobInfo to the client through DragItem instead of DragClient::prepareToDragPromisedBlob |
| https://bugs.webkit.org/show_bug.cgi?id=181497 |
| |
| Reviewed by Tim Horton. |
| |
| Refactor drag and drop support for promised blob data, so that blob info is shipped across to the client layer |
| via DragItem in the DragClient::startDrag codepath, rather than via a separate prepareToDragPromisedBlob client |
| codepath that stages promised blob info. |
| |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::prepareToDragPromisedBlob): Deleted. |
| * UIProcess/PageClient.h: |
| (WebKit::PageClient::prepareToDragPromisedBlob): Deleted. |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::prepareToDragPromisedBlob): Deleted. |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::prepareToDragPromisedBlob): Deleted. |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _startDrag:item:]): |
| * UIProcess/mac/PageClientImplMac.h: |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::prepareToDragPromisedBlob): Deleted. |
| * WebProcess/WebCoreSupport/WebDragClient.cpp: |
| (WebKit::WebDragClient::prepareToDragPromisedBlob): Deleted. |
| * WebProcess/WebCoreSupport/WebDragClient.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::prepareToDragPromisedBlob): Deleted. |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2018-01-09 Per Arne Vollan <pvollan@apple.com> |
| |
| VoiceOver does not work when the WebContent process is using NSRunLoop. |
| https://bugs.webkit.org/show_bug.cgi?id=181331 |
| <rdar://problem/36408004> |
| |
| Reviewed by Brent Fulgham. |
| |
| When the WebContent process is using NSRunLoop instead of the NSApplication run loop, |
| accessibility must be initialized for VoiceOver to work. This patch also switches to |
| using NSRunLoop in the WebContent process. |
| |
| * Configurations/WebContentService.xcconfig: |
| * Platform/IPC/mac/ConnectionMac.mm: |
| (IPC::AccessibilityProcessSuspendedNotification): Remove unneccessary workaround. |
| * WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-OSX.plist: Switch to NSRunLoop. |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::platformInitializeProcess): Initialize accessibility. |
| |
| 2018-01-11 Don Olmstead <don.olmstead@sony.com> |
| |
| WebContextMenuListenerProxy.cpp not including config on first line |
| https://bugs.webkit.org/show_bug.cgi?id=181552 |
| |
| Reviewed by Alex Christensen. |
| |
| * UIProcess/WebContextMenuListenerProxy.cpp: |
| |
| 2018-01-11 Youenn Fablet <youenn@apple.com> |
| |
| Redirected iframe loading with Request.redirect=follow should fail |
| https://bugs.webkit.org/show_bug.cgi?id=181491 |
| |
| Reviewed by Alex Christensen. |
| |
| * WebProcess/Storage/ServiceWorkerClientFetch.cpp: |
| (WebKit::ServiceWorkerClientFetch::validateResponse): |
| |
| 2018-01-11 Youenn Fablet <youenn@apple.com> |
| |
| Replace WebRTCLegacyAPIDisabled by WebRTCLegacyAPIEnabled and switch off WebRTC legacy flag by default |
| https://bugs.webkit.org/show_bug.cgi?id=181480 |
| |
| Reviewed by Eric Carlson. |
| |
| Renaming preference to WebRTCLegacyAPIEnabled for simplification and removing it from experimental feature. |
| Set it to off by default. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetWebRTCLegacyAPIEnabled): |
| (WKPreferencesGetWebRTCLegacyAPIEnabled): |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences _webRTCLegacyAPIEnabled]): |
| (-[WKPreferences _setWebRTCLegacyAPIEnabled:]): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::updatePreferences): |
| |
| 2018-01-11 Alex Christensen <achristensen@webkit.org> |
| |
| Merge sync and async code paths for getting context menus |
| https://bugs.webkit.org/show_bug.cgi?id=181423 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| What a mess. We had a code path for asynchronous context menu generation and a different one for synchronous context menu generation. |
| This makes it so there is just one. At the API level we see if there is an asynchronous delegate to call, then synchronous. |
| There is a subtle theoretical change in behaviour because m_page.contextMenuClient().showContextMenu is now called for the asynchronous |
| case and it wasn't before, but the one C API client that uses this has nullptr as it's WKPageShowContextMenuCallback, so we won't break anything! |
| |
| * UIProcess/API/APIContextMenuClient.h: |
| (API::ContextMenuClient::getContextMenuFromProposedMenu): |
| (API::ContextMenuClient::getContextMenuFromProposedMenuAsync): Deleted. |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetPageContextMenuClient): |
| * UIProcess/API/glib/WebKitContextMenuClient.cpp: |
| * UIProcess/WebContextMenuProxy.h: |
| * UIProcess/gtk/WebContextMenuProxyGtk.cpp: |
| (WebKit::WebContextMenuProxyGtk::show): |
| (WebKit::WebContextMenuProxyGtk::showContextMenuWithItems): |
| * UIProcess/gtk/WebContextMenuProxyGtk.h: |
| * UIProcess/mac/WebContextMenuProxyMac.h: |
| * UIProcess/mac/WebContextMenuProxyMac.mm: |
| (WebKit::WebContextMenuProxyMac::showContextMenuWithItems): |
| (WebKit::WebContextMenuProxyMac::showContextMenu): |
| * UIProcess/wpe/WebContextMenuProxyWPE.h: |
| |
| 2018-01-11 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Attachment Support] Support dragging attachment elements out as files on iOS |
| https://bugs.webkit.org/show_bug.cgi?id=181199 |
| <rdar://problem/36299316> |
| |
| Reviewed by Tim Horton, Andy Estes and Joseph Pecoraro. |
| |
| Implement support for registering and beginning a drag with promised blob info. See below for more detail. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKDragSessionContext addTemporaryDirectory:]): |
| (-[WKDragSessionContext cleanUpTemporaryDirectories]): |
| |
| Introduce WKDragSessionContext, which represents the localContext of a UIDragSession initiated in WebKit. The |
| blob promise dragging codepath uses this to register temporary directories when saving blob data to a location |
| on disk; when all data transfers are finished, or if the drag interaction is being reset, we then use |
| -cleanUpTemporaryDirectories to remove each temporary directory. |
| |
| (existingLocalDragSessionContext): |
| (ensureLocalDragSessionContext): |
| |
| Helper methods to set the UIDragSession's localContext to a WKDragSessionContext and query for any existing |
| context. |
| |
| (-[WKContentView cleanupInteraction]): |
| |
| Before the content view's UIDragInteraction goes away, clean up any temporary directories added to the |
| UIDragSession. |
| |
| (-[WKContentView _prepareToDragPromisedBlob:]): |
| |
| When dragging with a promised blob, register a new item provider on the pasteboard representing the blob data, |
| along with any additional metadata associated with the blob. For the promise callback, call out to the network |
| process to write the blob data to a temporary path; when done, call the NSItemProvider's completion handler with |
| the temporary blob data location. |
| |
| (-[WKContentView _itemsForBeginningOrAddingToSessionWithRegistrationList:stagedDragSource:]): |
| (-[WKContentView dragInteraction:sessionDidTransferItems:]): |
| |
| Use this delegate hook as an opportunity to remove any temporary directories created when promised blob data is |
| requested upon drop. Since we know the drag session that has finished transferring data, we simply ask its local |
| context (a WKDragSessionContext) to remove any temporary filepaths it has created. |
| |
| 2018-01-10 Jeff Miller <jeffm@apple.com> |
| |
| -[WKWebView _web_gestureEventWasNotHandledByWebCore:] should call -_gestureEventWasNotHandledByWebCore: |
| https://bugs.webkit.org/show_bug.cgi?id=181498 |
| |
| Reviewed by Alex Christensen. |
| |
| WKView's API contract allows clients to override -_gestureEventWasNotHandledByWebCore:, and -[WKView |
| _web_gestureEventWasNotHandledByWebCore:] calls -_gestureEventWasNotHandledByWebCore: instead of |
| invoking WebViewImpl::gestureEventWasNotHandledByWebCoreFromViewOnly() directly. WKWebView should do |
| the same thing. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _web_gestureEventWasNotHandledByWebCore:]): |
| Call -_gestureEventWasNotHandledByWebCore:, which will call gestureEventWasNotHandledByWebCoreFromViewOnly(). |
| |
| 2018-01-10 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| REGRESSION(r222507): Composition highlight doesn't render when using IME |
| https://bugs.webkit.org/show_bug.cgi?id=181485 |
| <rdar://problem/35896516> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Add plumbing for a `suppressUnderline` argument when setting marked text. |
| |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: |
| (WKBundlePageSetComposition): |
| * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::setCompositionForTesting): |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2018-01-10 Tim Horton <timothy_horton@apple.com> |
| |
| REGRESSION (r213590): Swipe from edge to go to previous page is significantly slower than tapping back button on Twitter |
| https://bugs.webkit.org/show_bug.cgi?id=181269 |
| <rdar://problem/35110344> |
| |
| Reviewed by Simon Fraser. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _processDidExit]): |
| (-[WKWebView _didCommitLayerTree:]): |
| When swiping to a page that set history.scrollRestoration = "manual", |
| we will never restore the scroll position. We will still restore |
| "state", but won't have a location. Currently, the code assumes that |
| it should wait to remove the swipe snapshot until the scroll position |
| is restored. Instead, wait until the "state" is restored, whether |
| or not that includes a scroll position/center point restoration. |
| |
| Do this by making _firstTransactionIDAfterPageRestore an optional, |
| and reset it after it fires, so that we only run the restoration code |
| in _didCommitLayerTree for the first commit after state restoration, |
| not all subsequent commits. Then, tell ViewGestureController that |
| the scroll position has been restored even if the page opted out. |
| |
| The reason that this is specific to pushState is that normal, |
| non-same-document loads bail from waiting for the scroll position |
| restoration in VGC::didReachMainFrameLoadTerminalState() (see the long |
| comment there for an explanation). |
| |
| (-[WKWebView _beginBackSwipeForTesting]): |
| (-[WKWebView _completeBackSwipeForTesting]): |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/Cocoa/ViewGestureController.h: |
| * UIProcess/ios/ViewGestureControllerIOS.mm: |
| (-[WKSwipeTransitionController transitionForDirection:]): |
| (WebKit::ViewGestureController::beginSimulatedSwipeInDirectionForTesting): |
| (WebKit::ViewGestureController::completeSimulatedSwipeInDirectionForTesting): |
| * UIProcess/mac/ViewGestureControllerMac.mm: |
| (WebKit::ViewGestureController::beginSimulatedSwipeInDirectionForTesting): |
| (WebKit::ViewGestureController::completeSimulatedSwipeInDirectionForTesting): |
| Add a mechanism to forcefully test swipe back. Instead of simulating |
| events like on Mac, we just talk to the UIKit internals and force |
| the interaction to start, pause, and then complete when we want. |
| |
| 2018-01-10 Brent Fulgham <bfulgham@apple.com> |
| |
| Use protectedThis for the 'updatePrevalentDomainsToPartitionOrBlockCookies' lambda |
| https://bugs.webkit.org/show_bug.cgi?id=181452 |
| <rdar://problem/36416912> |
| |
| Reviewed by Chris Dumez. |
| |
| We forgot to use a 'protectedThis' back in r225006 for one of the lambdas used by |
| the WebsiteDataStore for processing. |
| |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::enableResourceLoadStatisticsAndSetTestingCallback): |
| |
| 2018-01-09 John Wilander <wilander@apple.com> |
| |
| Storage Access API: Turn feature on by default in WebPreferences.yaml |
| https://bugs.webkit.org/show_bug.cgi?id=181458 |
| |
| Reviewed by Brent Fulgham. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-01-09 Alex Christensen <achristensen@webkit.org> |
| |
| WKOpenPanelParameters SPI should return autoreleased objects |
| https://bugs.webkit.org/show_bug.cgi?id=181457 |
| <rdar://problem/35884960> |
| |
| Reviewed by Tim Horton. |
| |
| In r226607 I made a mistake by returning an object that has been released. |
| I instead follow a pattern of leaking and autoreleasing that we use elsewhere in the ObjC API. |
| |
| * UIProcess/API/Cocoa/WKOpenPanelParameters.mm: |
| (-[WKOpenPanelParameters _acceptedMIMETypes]): |
| (-[WKOpenPanelParameters _acceptedFileExtensions]): |
| |
| 2018-01-09 Dan Bernstein <mitz@apple.com> |
| |
| Removed some empty directories that were left behind |
| |
| * WebProcess/Cookies/cf: Removed. |
| * WebProcess/ios: Removed. |
| |
| 2018-01-09 Paul Knight <pknight@apple.com> |
| |
| Don't record dynamic spelling corrections while in an ephemeral browsing session |
| https://bugs.webkit.org/show_bug.cgi?id=181417 |
| <rdar://problem/33309104> |
| |
| Dynamic spelling correction responses are kept on disk. Avoid recording |
| these responses when in an ephemeral session. |
| |
| Reviewed by Tim Horton and Wenson Hsieh. |
| |
| * UIProcess/mac/CorrectionPanel.h: |
| * UIProcess/mac/CorrectionPanel.mm: |
| (WebKit::CorrectionPanel::recordAutocorrectionResponse): |
| Add a WebViewImpl parameter so we can query the current session. |
| Return early before recording the response if the session is |
| ephemeral. |
| (WebKit::CorrectionPanel::handleAcceptedReplacement): |
| Update a caller to include the new parameter. |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::recordAutocorrectionResponse): |
| Ditto. |
| |
| 2018-01-09 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Update OptionsGTK.cmake and NEWS for 2.19.5 release. |
| |
| * gtk/NEWS: Add release notes for 2.19.5. |
| |
| 2018-01-09 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Missing symbols exported in 2.19.4 |
| https://bugs.webkit.org/show_bug.cgi?id=181433 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Add missing WEBKIT_API to webkit_dom_dom_window_webkit_message_handlers_post_message(). |
| |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.h: |
| * webkitglib-symbols.map: Remove webkit_media_player_debug from local. |
| |
| 2018-01-09 Youenn Fablet <youenn@apple.com> |
| |
| SWClientConnection should not keep references to service worker jobs |
| https://bugs.webkit.org/show_bug.cgi?id=181381 |
| |
| Reviewed by Chris Dumez. |
| |
| Updated IPC handling based on WebCore refactoring. |
| |
| * Scripts/webkit/messages.py: |
| (forward_declarations_and_headers): |
| (headers_for_type): |
| * StorageProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::rejectJobInClient): |
| (WebKit::WebSWServerConnection::resolveRegistrationJobInClient): |
| (WebKit::WebSWServerConnection::resolveUnregistrationJobInClient): |
| (WebKit::WebSWServerConnection::startScriptFetchInClient): |
| * StorageProcess/ServiceWorker/WebSWServerConnection.h: |
| * WebProcess/Storage/WebSWClientConnection.messages.in: |
| |
| 2018-01-09 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Update OptionsGTK.cmake and NEWS for 2.19.4 release. |
| |
| * gtk/NEWS: Add release notes for 2.19.4. |
| |
| 2018-01-09 Ali Juma <ajuma@chromium.org> |
| |
| Implement VisualViewport API events |
| https://bugs.webkit.org/show_bug.cgi?id=179386 |
| |
| Reviewed by Frédéric Wang. |
| |
| Change the default value of the VisualViewportAPI experimental feature flag to |
| DEFAULT_EXPERIMENTAL_FEATURES_ENABLED. This patch completes the implementation |
| of this feature as specified by https://wicg.github.io/visual-viewport/, so this |
| feature is now ready for wider testing. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-01-08 Alex Christensen <achristensen@webkit.org> |
| |
| Add WKNavigationDelegate SPI exposing WebProcess crash reason |
| https://bugs.webkit.org/show_bug.cgi?id=181410 |
| <rdar://problem/36167199> |
| |
| Reviewed by Wenson Hsieh. |
| |
| We exposed it in the C SPI. |
| |
| * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: |
| * UIProcess/Cocoa/NavigationState.h: |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::setNavigationDelegate): |
| (WebKit::toWKProcessTerminationReason): |
| (WebKit::NavigationState::NavigationClient::processDidTerminate): |
| |
| 2018-01-08 Alex Christensen <achristensen@webkit.org> |
| |
| Make ObjC SPI equivalent to WKPageNavigationClient.decidePolicyForPluginLoad |
| https://bugs.webkit.org/show_bug.cgi?id=181413 |
| <rdar://problem/36169005> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/API/APINavigationClient.h: |
| (API::NavigationClient::decidePolicyForPluginLoad): |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetPageNavigationClient): |
| * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: |
| * UIProcess/Cocoa/NavigationState.h: |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::setNavigationDelegate): |
| (WebKit::toPluginModuleLoadPolicy): |
| (WebKit::toWKPluginModuleLoadPolicy): |
| (WebKit::NavigationState::NavigationClient::decidePolicyForPluginLoad): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::findPlugin): |
| |
| 2018-01-08 Ryosuke Niwa <rniwa@webkit.org> |
| |
| iOS build fix attempt after r226602. |
| |
| * UIProcess/API/C/WKContextMenuListener.cpp: |
| (WKContextMenuListenerUseContextMenuItems): |
| |
| 2018-01-08 Alex Christensen <achristensen@webkit.org> |
| |
| Add SPI for WKOpenPanelParameters._acceptedMIMETypes and _acceptedFileExtensions |
| https://bugs.webkit.org/show_bug.cgi?id=181408 |
| <rdar://problem/35884960> |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/API/Cocoa/WKOpenPanelParameters.mm: |
| (-[WKOpenPanelParameters _acceptedMIMETypes]): |
| (-[WKOpenPanelParameters _acceptedFileExtensions]): |
| * UIProcess/API/Cocoa/WKOpenPanelParametersInternal.h: |
| * UIProcess/API/Cocoa/WKOpenPanelParametersPrivate.h: Added. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-01-08 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r226532 and r226540. |
| https://bugs.webkit.org/show_bug.cgi?id=181422 |
| |
| jessie says basic browsing does not seem to work (Requested by |
| alexchristensen on #webkit). |
| |
| Reverted changesets: |
| |
| "Add CSP support to service workers" |
| https://bugs.webkit.org/show_bug.cgi?id=181385 |
| https://trac.webkit.org/changeset/226532 |
| |
| "SWClientConnection should not keep references to service |
| worker jobs" |
| https://bugs.webkit.org/show_bug.cgi?id=181381 |
| https://trac.webkit.org/changeset/226540 |
| |
| 2018-01-08 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Attachment Support] Expose file name and content type of WKAttachment |
| https://bugs.webkit.org/show_bug.cgi?id=181390 |
| <rdar://problem/36336837> |
| |
| Reviewed by Tim Horton. |
| |
| Add support for -[_WKAttachment requestInfo:], which fetches a snapshot of the attachment's state. This API is |
| meant to be a replacement for -requestData: that provides additional metadata about the attachment. |
| |
| * Scripts/webkit/messages.py: |
| (headers_for_type): |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<AttachmentInfo>::encode): |
| (IPC::ArgumentCoder<AttachmentInfo>::decode): |
| * Shared/WebCoreArgumentCoders.h: |
| |
| Add IPC support for AttachmentInfo. Note that instead of using (encode|decode)SharedBuffer, we send and receive |
| data references to the shared buffer. |
| |
| * UIProcess/API/APIAttachment.cpp: |
| (API::Attachment::requestInfo): |
| (API::Attachment::requestData): Deleted. |
| * UIProcess/API/APIAttachment.h: |
| |
| Change requestData to requestInfo. |
| |
| * UIProcess/API/Cocoa/_WKAttachment.h: |
| * UIProcess/API/Cocoa/_WKAttachment.mm: |
| (-[_WKAttachmentInfo initWithInfo:]): |
| (-[_WKAttachmentInfo data]): |
| (-[_WKAttachmentInfo name]): |
| (-[_WKAttachmentInfo filePath]): |
| (-[_WKAttachmentInfo contentType]): |
| (-[_WKAttachment requestInfo:]): |
| (-[_WKAttachment requestData:]): |
| |
| Implement -requestInfo: by calling into APIAttachment, and reimplement -requestData: in terms of -requestInfo:. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::attachmentInfoCallback): |
| (WebKit::WebPageProxy::requestAttachmentInfo): |
| (WebKit::WebPageProxy::sharedBufferCallback): Deleted. |
| (WebKit::WebPageProxy::requestAttachmentData): Deleted. |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| |
| Rename the SharedBufferCallback IPC message to AttachmentInfoCallback, and make it conditional on |
| ATTACHMENT_ELEMENT. Rename requestAttachmentData to requestAttachmentInfo. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::requestAttachmentInfo): |
| (WebKit::WebPage::invokeSharedBufferCallback): Deleted. |
| (WebKit::WebPage::requestAttachmentData): Deleted. |
| |
| Rename requestAttachmentData to requestAttachmentInfo and adopt HTMLAttachmentElement::requestInfo. |
| |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2018-01-08 Alex Christensen <achristensen@webkit.org> |
| |
| Pass around Vector<Ref<WebContextMenuItem>> instead of WKArrayRef or Vector<WebContextMenuItemData> |
| https://bugs.webkit.org/show_bug.cgi?id=181419 |
| |
| Reviewed by Tim Horton. |
| |
| Passing a WKArrayRef to an API object is messy and was preventing me from moving things around and making ObjC SPI. |
| No change in behavior. Just using different layering abstractions for the same data. |
| |
| * UIProcess/API/C/WKContextMenuListener.cpp: |
| (WKContextMenuListenerUseContextMenuItems): |
| * UIProcess/WebContextMenuListenerProxy.cpp: |
| (WebKit::WebContextMenuListenerProxy::useContextMenuItems): |
| * UIProcess/WebContextMenuListenerProxy.h: |
| * UIProcess/WebContextMenuProxy.h: |
| * UIProcess/mac/WebContextMenuProxyMac.h: |
| * UIProcess/mac/WebContextMenuProxyMac.mm: |
| (WebKit::WebContextMenuProxyMac::showContextMenuWithItems): |
| (WebKit::WebContextMenuProxyMac::showContextMenu): |
| |
| 2018-01-08 John Wilander <wilander@apple.com> |
| |
| Storage Access API: Remove access for all frames under a page when the page is closed |
| https://bugs.webkit.org/show_bug.cgi?id=181398 |
| <rdar://problem/36357879> |
| |
| Reviewed by Alex Christensen. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::removeStorageAccessForAllFramesOnPage): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::close): |
| |
| 2018-01-08 Youenn Fablet <youenn@apple.com> |
| |
| SWClientConnection should not keep references to service worker jobs |
| https://bugs.webkit.org/show_bug.cgi?id=181381 |
| |
| Reviewed by Chris Dumez. |
| |
| Updated IPC handling based on WebCore refactoring. |
| |
| * Scripts/webkit/messages.py: |
| (forward_declarations_and_headers): |
| (headers_for_type): |
| * StorageProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::rejectJobInClient): |
| (WebKit::WebSWServerConnection::resolveRegistrationJobInClient): |
| (WebKit::WebSWServerConnection::resolveUnregistrationJobInClient): |
| (WebKit::WebSWServerConnection::startScriptFetchInClient): |
| * StorageProcess/ServiceWorker/WebSWServerConnection.h: |
| * WebProcess/Storage/WebSWClientConnection.messages.in: |
| |
| 2018-01-08 Joseph Pecoraro <pecoraro@apple.com> |
| |
| [Cocoa] Web Inspector: Provide a way for clients to check if an NSWindow is a Web Inspector window |
| https://bugs.webkit.org/show_bug.cgi?id=181361 |
| <rdar://problem/36332865> |
| |
| Reviewed by Darin Adler. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| New files. |
| |
| * Shared/API/Cocoa/_WKNSWindowExtras.h: Added. |
| * Shared/API/Cocoa/_WKNSWindowExtras.mm: Added. |
| (-[NSWindow _web_isWebInspectorWindow]): |
| Method to determing if a window is being used for Web Inspector content. |
| |
| * UIProcess/mac/WKInspectorWindow.h: Added. |
| * UIProcess/mac/WKInspectorWindow.mm: Added. |
| Named subclass so we can use isKindOfClass. |
| |
| * UIProcess/mac/WebInspectorProxyMac.mm: |
| (WebKit::WebInspectorProxy::createFrontendWindow): |
| Use the named subclass. |
| |
| 2018-01-08 Tim Horton <timothy_horton@apple.com> |
| |
| Build fix for WKPDFView |
| https://bugs.webkit.org/show_bug.cgi?id=181399 |
| <rdar://problem/36311915> |
| |
| Reviewed by Simon Fraser. |
| |
| * UIProcess/ios/WKPDFView.mm: |
| Disable deprecation warnings in this whole file. |
| |
| 2018-01-08 Youenn Fablet <youenn@apple.com> |
| |
| Caches::writeCachesToDisk should assert that it is initialized |
| https://bugs.webkit.org/show_bug.cgi?id=181383 |
| |
| Reviewed by Alex Christensen. |
| |
| Add assertion to ensure caches is initialized |
| |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::Caches::writeCachesToDisk): |
| |
| 2018-01-08 Youenn Fablet <youenn@apple.com> |
| |
| WebProcessPool::terminateServiceWorkerProcess should protect itself in debug builds |
| https://bugs.webkit.org/show_bug.cgi?id=181384 |
| |
| Reviewed by Chris Dumez. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::terminateServiceWorkerProcess): |
| |
| 2018-01-08 Frederic Wang <fwang@igalia.com> |
| |
| Unreviewed build fix after r226211. |
| |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: Use WK_IOS_TBA for iOS. |
| |
| 2018-01-08 Youenn Fablet <youenn@apple.com> |
| |
| navigator.onLine does not work inside service workers |
| https://bugs.webkit.org/show_bug.cgi?id=181079 |
| <rdar://problem/36178606> |
| |
| Reviewed by Darin Adler. |
| |
| Added support for a callback called for each service worker proxy creation. |
| Callback is used by WTR to inject a self.internals object used for testing. |
| |
| * WebProcess/InjectedBundle/API/c/WKBundle.cpp: |
| (WKBundleSetServiceWorkerProxyCreationCallback): |
| * WebProcess/InjectedBundle/API/c/WKBundle.h: |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::setServiceWorkerProxyCreationCallback): |
| * WebProcess/InjectedBundle/InjectedBundle.h: |
| |
| 2018-01-07 David Kilzer <ddkilzer@apple.com> |
| |
| Enable -Wcast-qual for WebInspectorUI, WebKitLegacy, WebKit projects |
| <https://webkit.org/b/181256> |
| <rdar://problem/36281730> |
| |
| Reviewed by Darin Adler. |
| |
| * Configurations/Base.xcconfig: |
| (WARNING_CFLAGS): Add -Wcast-qual. |
| * NetworkProcess/cache/NetworkCacheCodersCocoa.cpp: |
| (WTF::Persistence::encodeCertificateChain): Include |
| TypeCastsCF.h from WTF, and use |
| checked_cf_cast<SecCertificateRef>() to fix warning. |
| * Platform/cocoa/WKCrashReporter.mm: |
| (WebKit::setCrashReportApplicationSpecificInformation): |
| - Move `oldMessage` check above nullptr check to fix a leak when |
| passing in nullptr after previously setting the crash string. |
| - Change C-style cast to const_cast<char*>() to fix warning. |
| * PluginProcess/mac/PluginProcessShim.mm: |
| (WebKit::shim_shmat): Change C-style cast to |
| const_cast<void*>() to fix warning. |
| * Shared/Authentication/mac/AuthenticationManager.mac.mm: |
| (WebKit::leafCertificate): Include TypeCastsCF.h from |
| WTF, and use checked_cf_cast<SecCertificateRef>() to fix |
| warning. |
| * Shared/cf/ArgumentCodersCF.cpp: |
| (IPC::encode): Use static_cast<>(const_cast<void*>() to |
| fix warnings since the CFTypeID has already been |
| checked. |
| * Shared/mac/WebCoreArgumentCodersMac.mm: |
| (IPC::decodeNSError): Use an `auto` variable to hold the |
| CFMutableDictionaryRef, then WTFMove() to assign it back to |
| `userInfo`. |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::takeWindowSnapshot): Include TypeCastsCF.h from |
| WTF, and use checked_cf_cast<CGImageRef>() to fix |
| warning. |
| |
| 2018-01-07 Konstantin Tokarev <annulen@yandex.ru> |
| |
| [cmake] Unset CMAKE_REQUIRED_LIBRARIES after check_function_exists test |
| https://bugs.webkit.org/show_bug.cgi?id=181371 |
| |
| Reviewed by Michael Catanzaro. |
| |
| This variable is used by check_function_exists internally, its value |
| should be never used for anything else. |
| |
| * CMakeLists.txt: |
| |
| 2018-01-05 Dan Bernstein <mitz@apple.com> |
| |
| REGRESSION (r226218): iOS-only assets are installed on macOS |
| https://bugs.webkit.org/show_bug.cgi?id=181362 |
| |
| Reviewed by Anders Carlsson. |
| |
| * Configurations/WebKit.xcconfig: Exclude everything under Resources/ios when not targeting |
| iOS. |
| |
| * Resources/ios: Added. |
| * Resources/ios/iOS.xcassets: Moved from Source/WebKit/WebKit.xcassets. |
| * Resources/ios/iOS.xcassets/LockMini.imageset/NavigationBarLockMini@2x.pdf: Set the |
| svn:mime-type property. |
| * Resources/ios/iOS.xcassets/LockMini.imageset/NavigationBarLockMini@3x.pdf: Ditto. |
| |
| * Resources/mac: Added. |
| * Resources/mac/mediaIcon.pdf: Moved here… |
| * Resources/mediaIcon.pdf: …from here. |
| |
| * WebKit.xcassets: Moved under Resources/ios. |
| |
| * WebKit.xcodeproj/project.pbxproj: Created an ios group under the Resources group, and |
| cleaned up the mac group. Removed the Recovered References group. |
| |
| 2018-01-05 John Wilander <wilander@apple.com> |
| |
| Storage Access API: Refactor to make naming accurate and explicit, simplify access table, and prepare for access removal for page |
| https://bugs.webkit.org/show_bug.cgi?id=181357 |
| <rdar://problem/36331031> |
| |
| Reviewed by Alex Christensen. |
| |
| This change does the following: |
| - Changes function and message names to reflect how this feature |
| was eventually implemented, i.e. access per frame. |
| - Makes it explicit that the UI process is only involved in |
| granting storage access and not removing storage access. |
| The latter is done directly by the web process. |
| - Simplifies the network process' entry map since only needs to |
| be able to give access to one domain in one frame at a time. |
| Access goes away on frame navigation so there can only be one |
| domain at a time per frame. Also, the map now uses pageIDs as |
| main keys to prepare for efficient access removal for all |
| frames under a page. |
| - Fixes a bug in so that a cross-origin iframe with the same |
| partition as the top frame correctly is handled as already |
| having access. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::removeStorageAccessForFrame): |
| (WebKit::NetworkConnectionToWebProcess::removeStorageAccess): Deleted. |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::hasStorageAccessForFrame): |
| (WebKit::NetworkProcess::grantStorageAccessForFrame): |
| (WebKit::NetworkProcess::hasStorageAccessForPrevalentDomains): Deleted. |
| (WebKit::NetworkProcess::updateStorageAccessForPrevalentDomains): Deleted. |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::hasStorageAccessForFrame): |
| (WebKit::NetworkProcessProxy::grantStorageAccessForFrame): |
| (WebKit::NetworkProcessProxy::hasStorageAccessForPrevalentDomains): Deleted. |
| (WebKit::NetworkProcessProxy::updateStorageAccessForPrevalentDomains): Deleted. |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore): |
| (WebKit::WebResourceLoadStatisticsStore::hasStorageAccess): |
| (WebKit::WebResourceLoadStatisticsStore::requestStorageAccess): |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::hasStorageAccessForFrameHandler): |
| (WebKit::WebsiteDataStore::grantStorageAccessForFrameHandler): |
| (WebKit::WebsiteDataStore::enableResourceLoadStatisticsAndSetTestingCallback): |
| (WebKit::WebsiteDataStore::hasStorageAccessForPrevalentDomainsHandler): Deleted. |
| (WebKit::WebsiteDataStore::updateStorageAccessForPrevalentDomainsHandler): Deleted. |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::detachedFromParent2): |
| (WebKit::WebFrameLoaderClient::dispatchWillChangeDocument): |
| |
| 2018-01-05 Youenn Fablet <youenn@apple.com> |
| |
| Implement Cache API partitioning based on ClientOrigin |
| https://bugs.webkit.org/show_bug.cgi?id=181240 |
| |
| Reviewed by Alex Christensen. |
| |
| open and retrieveCaches now take a ClientOrigin instead of a String. |
| Updated cache filesystem path computation to take both client origin and top origin. |
| |
| When clearing an origin, caches whose client origin or top origin matches the origin are cleared. |
| Caches are added to the web site data of their client origin with their corresponding cache size. |
| Caches are added to the web site data of their top origin with a size equal to 0. |
| |
| Updated memory representation dumping used for test to include both top and client origins. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::deleteWebsiteDataForOrigins): |
| * NetworkProcess/cache/CacheStorageEngine.cpp: |
| (WebKit::CacheStorage::Engine::cachesRootPath): |
| (WebKit::CacheStorage::Engine::open): |
| (WebKit::CacheStorage::Engine::remove): |
| (WebKit::CacheStorage::Engine::retrieveCaches): |
| (WebKit::CacheStorage::Engine::readCachesFromDisk): |
| (WebKit::CacheStorage::Engine::removeCaches): |
| (WebKit::CacheStorage::Engine::fetchEntries): |
| (WebKit::CacheStorage::Engine::clearCachesForOrigin): |
| (WebKit::CacheStorage::Engine::clearMemoryRepresentation): |
| (WebKit::CacheStorage::Engine::representation): |
| * NetworkProcess/cache/CacheStorageEngine.h: |
| * NetworkProcess/cache/CacheStorageEngineCache.cpp: |
| (WebKit::CacheStorage::Cache::Cache): |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::Caches::retrieveOriginFromDirectory): |
| (WebKit::CacheStorage::Caches::Caches): |
| (WebKit::CacheStorage::Caches::storeOrigin): |
| (WebKit::CacheStorage::Caches::readOrigin): |
| (WebKit::CacheStorage::Caches::open): |
| * NetworkProcess/cache/CacheStorageEngineCaches.h: |
| (WebKit::CacheStorage::Caches::create): |
| (WebKit::CacheStorage::Caches::origin const): |
| * NetworkProcess/cache/CacheStorageEngineConnection.cpp: |
| (WebKit::CacheStorageEngineConnection::open): |
| (WebKit::CacheStorageEngineConnection::caches): |
| (WebKit::CacheStorageEngineConnection::clearMemoryRepresentation): |
| * NetworkProcess/cache/CacheStorageEngineConnection.h: |
| * NetworkProcess/cache/CacheStorageEngineConnection.messages.in: |
| * WebProcess/Cache/WebCacheStorageConnection.cpp: |
| (WebKit::WebCacheStorageConnection::doOpen): |
| (WebKit::WebCacheStorageConnection::doRetrieveCaches): |
| (WebKit::WebCacheStorageConnection::clearMemoryRepresentation): |
| * WebProcess/Cache/WebCacheStorageConnection.h: |
| |
| 2018-01-05 Megan Gardner <megan_gardner@apple.com> |
| |
| Show Keyboard when re-launching WKWebView with a previously focused element |
| https://bugs.webkit.org/show_bug.cgi?id=181353 |
| |
| Reviewed by Tim Horton. |
| |
| When relaunching an app with a WKWebView, restore the keyboard if there was a previously |
| focused element that was being assisted. The element was already being tracked, we just |
| needed to not bail on showing the keyboard for instances where it was a state change that |
| caused the element to be refocused. |
| |
| * UIProcess/PageClient.h: |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::startAssistingNode): |
| * UIProcess/ios/WKContentView.h: |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]): |
| (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:userObject:]): Deleted. |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::startAutoscrollAtPosition): |
| (WebKit::WebPageProxy::startAssistingNode): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::setActivityState): |
| (WebKit::WebPage::elementDidFocus): |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2018-01-05 Alex Christensen <achristensen@webkit.org> |
| |
| Restrict navigation-time WKWebsiteDataStore swapping to main frame navigations |
| https://bugs.webkit.org/show_bug.cgi?id=181217 |
| |
| Reviewed by Tim Horton. |
| |
| If we swap during an iframe navigation, then we get a page in a strange state. |
| The intent of the main frame navigation WKWebsiteDataStore swap is that |
| that is a time when we can change storages without a page in an inconsistent state. |
| |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): |
| |
| 2018-01-05 Alex Christensen <achristensen@webkit.org> |
| |
| Add WKBundleFrameCreateFrameHandle |
| https://bugs.webkit.org/show_bug.cgi?id=181232 |
| <rdar://problem/35926696> |
| |
| Reviewed by Tim Horton. |
| |
| InjectedBundle clients wanting to sent a _WKFrameHandle cannot without this function. |
| Before, they would just send the WKBundleFrameRef which would be changed into a WKFrameRef |
| in the UIProcess by WebProcessProxy::transformHandlesToObjects, but there is no ObjC equivalent |
| of WKFrameRef, so we were just getting a WKObject when we wanted a _WKFrameHandle. |
| We can't change WebProcessProxy::transformHandlesToObjects without being incompatible with the |
| existing C API, so let's add a way for clients to say "I want a _WKFrameHandle". |
| |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: |
| (WKBundleFrameCreateFrameHandle): |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.h: |
| |
| 2018-01-05 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Attachment Support] Add a way to write blob data to a file URL from the UI process |
| https://bugs.webkit.org/show_bug.cgi?id=181236 |
| |
| Reviewed by Brady Eidson. |
| |
| Add support for writing a blob to a designated file path. In WebKit, this is mainly plumbing writeBlobToFilePath |
| through WebPageProxy to the network process. |
| |
| * NetworkProcess/FileAPI/NetworkBlobRegistry.cpp: |
| (WebKit::NetworkBlobRegistry::writeBlobToFilePath): |
| |
| Call out to the BlobRegistryImpl to write blobs to the file path. Additionally grant sandbox extensions for any |
| file-backed blob parts corresponding to the given blob URL. |
| |
| (WebKit::NetworkBlobRegistry::filesInBlob): |
| |
| Introduce a version of filesInBlob that doesn't check against the NetworkConnectionToWebProcess. This is used |
| when the UI process is the driver for writing a blob. |
| |
| * NetworkProcess/FileAPI/NetworkBlobRegistry.h: |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::writeBlobToFilePath): |
| |
| Temporarily grant sandbox access to the given file path. |
| |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<PromisedBlobInfo>::encode): |
| (IPC::ArgumentCoder<PromisedBlobInfo>::decode): |
| (IPC::ArgumentCoder<PromisedBlobData>::encode): Deleted. |
| (IPC::ArgumentCoder<PromisedBlobData>::decode): Deleted. |
| |
| Remove PromisedBlobData (see WebCore/ChangeLog for more information). |
| |
| * Shared/WebCoreArgumentCoders.h: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::didClose): |
| |
| If the network process is terminated, flush any pending callbacks in m_writeBlobToFilePathCallbackMap, passing |
| in a failure result (success := false) and clearing the callback map. |
| |
| (WebKit::NetworkProcessProxy::writeBlobToFilePath): |
| (WebKit::NetworkProcessProxy::didWriteBlobToFilePath): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::writeBlobToFilePath): |
| * UIProcess/WebPageProxy.h: |
| |
| 2018-01-05 Dan Bernstein <mitz@apple.com> |
| |
| Add injected bundle equivalents of DOMHTMLDocument (DOMHTMLDocumentExtensions) |
| https://bugs.webkit.org/show_bug.cgi?id=181345 |
| |
| Reviewed by Tim Horton. |
| |
| * WebProcess/InjectedBundle/API/mac/WKDOMDocument.h: Declared new methods. |
| * WebProcess/InjectedBundle/API/mac/WKDOMDocument.mm: |
| (-[WKDOMDocument createDocumentFragmentWithMarkupString:baseURL:]): Added. Calls WebCore’s |
| createFragmentFromMarkup. |
| (-[WKDOMDocument createDocumentFragmentWithText:]): Added. Calls WebCore’s |
| createFragmentFromText. |
| |
| 2018-01-05 Don Olmstead <don.olmstead@sony.com> |
| |
| [Curl] Add implementation stubs for Network Cache |
| https://bugs.webkit.org/show_bug.cgi?id=181343 |
| |
| Reviewed by Alex Christensen. |
| |
| * NetworkProcess/cache/NetworkCacheCodersCurl.cpp: Added. |
| (WTF::Persistence::Coder<WebCore::CertificateInfo>::encode): |
| (WTF::Persistence::Coder<WebCore::CertificateInfo>::decode): |
| * NetworkProcess/cache/NetworkCacheDataCurl.cpp: Added. |
| (WebKit::NetworkCache::Data::Data): |
| (WebKit::NetworkCache::Data::empty): |
| (WebKit::NetworkCache::Data::data const): |
| (WebKit::NetworkCache::Data::isNull const): |
| (WebKit::NetworkCache::Data::apply const): |
| (WebKit::NetworkCache::Data::subrange const): |
| (WebKit::NetworkCache::concatenate): |
| (WebKit::NetworkCache::Data::adoptMap): |
| * NetworkProcess/cache/NetworkCacheIOChannelCurl.cpp: Added. |
| (WebKit::NetworkCache::IOChannel::IOChannel): |
| (WebKit::NetworkCache::IOChannel::~IOChannel): |
| (WebKit::NetworkCache::IOChannel::open): |
| (WebKit::NetworkCache::IOChannel::read): |
| (WebKit::NetworkCache::IOChannel::write): |
| * PlatformWin.cmake: |
| |
| 2018-01-05 Don Olmstead <don.olmstead@sony.com> |
| |
| [Curl] Update method declarations in WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=181342 |
| |
| Reviewed by Alex Christensen. |
| |
| * NetworkProcess/Downloads/curl/DownloadCurl.cpp: |
| (WebKit::Download::resume): |
| * NetworkProcess/curl/RemoteNetworkingContextCurl.cpp: |
| (WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession): Deleted. |
| (WebKit::RemoteNetworkingContext::blockedError const): Deleted. |
| |
| 2018-01-05 Don Olmstead <don.olmstead@sony.com> |
| |
| WebFullScreenManager should compile when ENABLE(VIDEO) is off |
| https://bugs.webkit.org/show_bug.cgi?id=181338 |
| |
| Reviewed by Alex Christensen. |
| |
| * WebProcess/FullScreen/WebFullScreenManager.cpp: |
| (WebKit::WebFullScreenManager::didEnterFullScreen): |
| (WebKit::WebFullScreenManager::willExitFullScreen): |
| * WebProcess/FullScreen/WebFullScreenManager.h: |
| |
| 2018-01-05 Andy Estes <aestes@apple.com> |
| |
| [Apple Pay] Disable Apple Pay on platforms that don't have PassKit.framework |
| https://bugs.webkit.org/show_bug.cgi?id=181335 |
| <rdar://problem/36311296> |
| |
| Reviewed by Brady Eidson. |
| |
| When Safari is running in the macOS Base System, PassKit.framework is not available. |
| If we fail to dlopen PassKit, we should disable Apple Pay. |
| |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetApplePayEnabled): |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| * UIProcess/ApplePay/WebPaymentCoordinatorProxy.h: |
| * UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm: |
| (WebKit::WebPaymentCoordinatorProxy::availablePaymentNetworks): |
| (WebKit::WebPaymentCoordinatorProxy::platformSupportsPayments): |
| |
| 2018-01-05 Dan Bernstein <mitz@apple.com> |
| |
| Fixed the build following AppKit API deprecations in a recent SDKs |
| |
| * UIProcess/mac/WKFullScreenWindowController.mm: |
| (-[WKFullScreenWindowController enterFullScreen:]): Suppressed deprecation warnings. |
| (-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]): Ditto. |
| (-[WKFullScreenWindowController exitFullScreen]): Ditto. |
| (-[WKFullScreenWindowController finishedExitFullScreenAnimation:]): Ditto. |
| (-[WKFullScreenWindowController completeFinishExitFullScreenAnimationAfterRepaint]): Ditto. |
| (-[WKFullScreenWindowController _startEnterFullScreenAnimationWithDuration:]): Ditto. |
| (-[WKFullScreenWindowController _startExitFullScreenAnimationWithDuration:]): Ditto. |
| * UIProcess/mac/WKPrintingView.mm: |
| (-[WKPrintingView _setAutodisplay:]): Ditto. |
| |
| 2018-01-05 Matt Lewis <jlewis3@apple.com> |
| |
| Unreviewed, rolling out r226401. |
| |
| This caused timeouts on multiple platforms. |
| |
| Reverted changeset: |
| |
| "Implement Cache API partitioning based on ClientOrigin" |
| https://bugs.webkit.org/show_bug.cgi?id=181240 |
| https://trac.webkit.org/changeset/226401 |
| |
| 2018-01-05 Joseph Pecoraro <pecoraro@apple.com> |
| |
| ServiceWorkers: Enable UserTiming / ResourceTiming |
| https://bugs.webkit.org/show_bug.cgi?id=181297 |
| <rdar://problem/36307306> |
| |
| Reviewed by Youenn Fablet. |
| |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::updatePreferencesStore): |
| Enable Resource Timing / User Timing for the ServiceWorker process. |
| |
| 2018-01-04 Zan Dobersek <zdobersek@igalia.com> |
| |
| Unreviewed GTK+ build fix. |
| |
| * UIProcess/API/glib/WebKitUserMediaPermissionRequest.cpp: |
| (webkit_user_media_permission_is_for_audio_device): |
| Call UserMediaPermissionRequestProxy::requiresAudioCapture(). |
| (webkit_user_media_permission_is_for_video_device): |
| Call UserMediaPermissionRequestProxy::requiresVideoCapture(). |
| |
| 2018-01-04 Don Olmstead <don.olmstead@sony.com> |
| |
| [Curl] Fix compilation error in WebFrameNetworkingContext |
| https://bugs.webkit.org/show_bug.cgi?id=181312 |
| |
| Reviewed by Alex Christensen. |
| |
| * WebProcess/WebCoreSupport/curl/WebFrameNetworkingContext.cpp: |
| (WebKit::WebFrameNetworkingContext::ensureWebsiteDataStoreSession): |
| |
| 2018-01-04 Tim Horton <timothy_horton@apple.com> |
| |
| WKWebView loses minimum layout size overrides that happen while the process is terminated |
| https://bugs.webkit.org/show_bug.cgi?id=181306 |
| <rdar://problem/34398288> |
| |
| Reviewed by Dan Bernstein. |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _didRelaunchProcess]): Deleted. |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::creationParameters): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::didRelaunchProcess): |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::setViewportConfigurationMinimumLayoutSize): |
| (WebKit::WebPageProxy::setForceAlwaysUserScalable): |
| (WebKit::WebPageProxy::setMaximumUnobscuredSize): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::WebPage): |
| Pass the current viewport minimum layout size and maximum unobscured size |
| in the WebPageCreationParameters instead of re-sending them in _didRelaunchProcess. |
| |
| The previous approach was problematic when _dispatchSetMinimumLayoutSize: |
| was changed to not re-send identical updates, because if the client calls |
| _overrideLayoutParametersWithMinimumLayoutSize before the Web Content process |
| is re-launched (after terminating), we would cache the size, attempt to send it, |
| fail silently (because the process is not launched), and then in _didRelaunchProcess |
| we would choose not to re-send (after the process is successfully relaunched) |
| because we think we already sent the new value. |
| |
| Add isValid() checks to our message sends. Ideally send() would assert |
| if the process is not alive to avoid problems like this, but it doesn't (yet). |
| |
| Get rid of WKWebView's _didRelaunchProcess, because it does nothing now. |
| |
| 2018-01-04 Stephan Szabo <stephan.szabo@sony.com> |
| |
| NetworkProcess cache files use functions from unistd.h without explicitly including it |
| https://bugs.webkit.org/show_bug.cgi?id=181261 |
| |
| Reviewed by Alex Christensen. |
| |
| * NetworkProcess/cache/NetworkCacheBlobStorage.cpp: |
| * NetworkProcess/cache/NetworkCacheData.cpp: |
| |
| 2018-01-04 Keith Rollin <krollin@apple.com> |
| |
| Add commas |
| https://bugs.webkit.org/show_bug.cgi?id=181295 |
| <rdar://problem/35802295> |
| |
| Reviewed by Brent Fulgham. |
| |
| Fix a problem introduced in r226226 where the emitted JSON didn't |
| include some required commas. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::logCookieInformation const): |
| |
| 2018-01-04 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Add Mock screen capture source |
| https://bugs.webkit.org/show_bug.cgi?id=181291 |
| <rdar://problem/36298164> |
| |
| Reviewed by Dean Jackson. |
| |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<MediaConstraints>::decode): |
| (IPC::ArgumentCoder<CaptureDevice>::encode): Deleted, moved to CaptureDevice.h |
| (IPC::ArgumentCoder<CaptureDevice>::decode): Ditto. |
| * Shared/WebCoreArgumentCoders.h: |
| |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: Add _WKCaptureDeviceDisplay. |
| * UIProcess/Cocoa/UIDelegate.mm: |
| (WebKit::requestUserMediaAuthorizationForDevices): Deal with display capture. |
| (WebKit::UIDelegate::UIClient::decidePolicyForUserMediaPermissionRequest): Ditto. |
| |
| * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: |
| (WebKit::UserMediaPermissionRequestManagerProxy::userMediaAccessWasDenied): requiresAudio -> requiresAudioCapture. |
| (WebKit::UserMediaPermissionRequestManagerProxy::searchForGrantedRequest const): Never reuse |
| a previously granted display capture request. |
| |
| * UIProcess/UserMediaPermissionRequestProxy.cpp: |
| (WebKit::UserMediaPermissionRequestProxy::allow): Search the eligible devices instead of asking |
| the source center to find devices. |
| * UIProcess/UserMediaPermissionRequestProxy.h: |
| (WebKit::UserMediaPermissionRequestProxy::requiresAudioCapture const): Renamed. |
| (WebKit::UserMediaPermissionRequestProxy::requiresVideoCapture const): Ditto. |
| (WebKit::UserMediaPermissionRequestProxy::requiresDisplayCapture const): New. |
| (WebKit::UserMediaPermissionRequestProxy::requiresAudio const): Deleted. |
| (WebKit::UserMediaPermissionRequestProxy::requiresVideo const): Deleted. |
| |
| 2018-01-04 Youenn Fablet <youenn@apple.com> |
| |
| FetchResponse should set its internal response text encoding name |
| https://bugs.webkit.org/show_bug.cgi?id=181284 |
| |
| Reviewed by Alex Christensen. |
| |
| * WebProcess/Storage/ServiceWorkerClientFetch.cpp: |
| (WebKit::ServiceWorkerClientFetch::didReceiveResponse): Set default encoding to UTF-8. |
| |
| 2018-01-04 Youenn Fablet <youenn@apple.com> |
| |
| Implement Cache API partitioning based on ClientOrigin |
| https://bugs.webkit.org/show_bug.cgi?id=181240 |
| |
| Reviewed by Alex Christensen. |
| |
| open and retrieveCaches now take a ClientOrigin instead of a String. |
| Updated cache filesystem path computation to take both client origin and top origin. |
| |
| When clearing an origin, caches whose client origin or top origin matches the origin are cleared. |
| Caches are added to the web site data of their client origin with their corresponding cache size. |
| Caches are added to the web site data of their top origin with a size equal to 0. |
| |
| Updated memory representation dumping used for test to include both top and client origins. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::deleteWebsiteDataForOrigins): |
| * NetworkProcess/cache/CacheStorageEngine.cpp: |
| (WebKit::CacheStorage::Engine::cachesRootPath): |
| (WebKit::CacheStorage::Engine::open): |
| (WebKit::CacheStorage::Engine::remove): |
| (WebKit::CacheStorage::Engine::retrieveCaches): |
| (WebKit::CacheStorage::Engine::readCachesFromDisk): |
| (WebKit::CacheStorage::Engine::removeCaches): |
| (WebKit::CacheStorage::Engine::fetchEntries): |
| (WebKit::CacheStorage::Engine::clearCachesForOrigin): |
| (WebKit::CacheStorage::Engine::clearMemoryRepresentation): |
| (WebKit::CacheStorage::Engine::representation): |
| * NetworkProcess/cache/CacheStorageEngine.h: |
| * NetworkProcess/cache/CacheStorageEngineCache.cpp: |
| (WebKit::CacheStorage::Cache::Cache): |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::Caches::retrieveOriginFromDirectory): |
| (WebKit::CacheStorage::Caches::Caches): |
| (WebKit::CacheStorage::Caches::storeOrigin): |
| (WebKit::CacheStorage::Caches::readOrigin): |
| (WebKit::CacheStorage::Caches::open): |
| * NetworkProcess/cache/CacheStorageEngineCaches.h: |
| (WebKit::CacheStorage::Caches::create): |
| (WebKit::CacheStorage::Caches::origin const): |
| * NetworkProcess/cache/CacheStorageEngineConnection.cpp: |
| (WebKit::CacheStorageEngineConnection::open): |
| (WebKit::CacheStorageEngineConnection::caches): |
| (WebKit::CacheStorageEngineConnection::clearMemoryRepresentation): |
| * NetworkProcess/cache/CacheStorageEngineConnection.h: |
| * NetworkProcess/cache/CacheStorageEngineConnection.messages.in: |
| * WebProcess/Cache/WebCacheStorageConnection.cpp: |
| (WebKit::WebCacheStorageConnection::doOpen): |
| (WebKit::WebCacheStorageConnection::doRetrieveCaches): |
| (WebKit::WebCacheStorageConnection::clearMemoryRepresentation): |
| * WebProcess/Cache/WebCacheStorageConnection.h: |
| |
| 2018-01-04 Youenn Fablet <youenn@apple.com> |
| |
| Service Worker should expose redirect mode for navigation loads as manual |
| https://bugs.webkit.org/show_bug.cgi?id=181067 |
| |
| Reviewed by Alex Christensen. |
| |
| * WebProcess/Storage/ServiceWorkerClientFetch.cpp: |
| (WebKit::ServiceWorkerClientFetch::didReceiveResponse): |
| |
| 2018-01-03 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Attachment Support] Create attachment elements when dropping files on iOS |
| https://bugs.webkit.org/show_bug.cgi?id=181192 |
| <rdar://problem/36280945> |
| |
| Reviewed by Tim Horton. |
| |
| Make some minor adjustments for changes to the pasteboard in WebCore. See WebCore/ChangeLog for more detail. |
| Teaches WebPasteboardProxy et. al. to plumb PasteboardItemInfo from the UI process to the web process via the |
| new `InformationForItemAtIndex` codepath. |
| |
| * UIProcess/Cocoa/WebPasteboardProxyCocoa.mm: |
| (WebKit::WebPasteboardProxy::informationForItemAtIndex): |
| (WebKit::WebPasteboardProxy::getFilenamesForDataInteraction): Deleted. |
| * UIProcess/WebPasteboardProxy.h: |
| * UIProcess/WebPasteboardProxy.messages.in: |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: |
| (WebKit::WebPlatformStrategies::informationForItemAtIndex): |
| (WebKit::WebPlatformStrategies::getFilenamesForDataInteraction): Deleted. |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.h: |
| |
| 2018-01-03 Ting-Wei Lan <lantw44@gmail.com> |
| |
| Replace hard-coded paths in shebangs with #!/usr/bin/env |
| https://bugs.webkit.org/show_bug.cgi?id=181040 |
| |
| Reviewed by Alex Christensen. |
| |
| * Scripts/generate-forwarding-headers.pl: |
| |
| 2018-01-03 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Attachment Support] Add plumbing for starting a drag with promised blob data |
| https://bugs.webkit.org/show_bug.cgi?id=181201 |
| |
| Reviewed by Tim Horton. |
| |
| Add boilerplate plumbing for PrepareToDragPromisedBlob, which delivers blob promises to the UI process when |
| dragging, respectively. |
| |
| * Scripts/webkit/messages.py: |
| (headers_for_type): |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::encodeTypesAndData): |
| (IPC::decodeTypesAndData): |
| (IPC::ArgumentCoder<PasteboardWebContent>::encode): |
| (IPC::ArgumentCoder<PasteboardWebContent>::decode): |
| (IPC::ArgumentCoder<PasteboardImage>::encode): |
| (IPC::ArgumentCoder<PasteboardImage>::decode): |
| (IPC::ArgumentCoder<PromisedBlobInfo>::encode): |
| (IPC::ArgumentCoder<PromisedBlobInfo>::decode): |
| |
| Add IPC support PromisedBlobInfo's additionalTypes and additionalData. |
| |
| (IPC::encodeClientTypesAndData): Deleted. |
| (IPC::decodeClientTypesAndData): Deleted. |
| |
| Rename these helper functions and move them to the top of the file. |
| |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::prepareToDragPromisedBlob): |
| * UIProcess/PageClient.h: |
| (WebKit::PageClient::prepareToDragPromisedBlob): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::prepareToDragPromisedBlob): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::prepareToDragPromisedBlob): |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _prepareToDragPromisedBlob:]): |
| * UIProcess/mac/PageClientImplMac.h: |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::prepareToDragPromisedBlob): |
| * WebProcess/WebCoreSupport/WebDragClient.cpp: |
| (WebKit::WebDragClient::prepareToDragPromisedBlob): |
| * WebProcess/WebCoreSupport/WebDragClient.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::prepareToDragPromisedBlob): |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2018-01-03 David Kilzer <ddkilzer@apple.com> |
| |
| REGRESSION (r212929): WKSnapshotConfiguration may leak an NSNumber when deallocated |
| <https://webkit.org/b/181274> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UIProcess/API/Cocoa/WKSnapshotConfiguration.mm: |
| (-[WKSnapshotConfiguration dealloc]): Implement method and |
| release _snapshotWidth. |
| |
| 2018-01-03 John Wilander <wilander@apple.com> |
| |
| Storage Access API: Refactor XPC for access removal to go straight from the web process to the network process |
| https://bugs.webkit.org/show_bug.cgi?id=181270 |
| <rdar://problem/36289544> |
| |
| Reviewed by Alex Christensen. |
| |
| This change refactors how the web process tells the network process |
| to remove storage access. Previously, this was done over the UI process |
| just like requests for storage access. But since no further reasoning |
| is needed, the message should go straight from the web process to the |
| network process for performance reasons and to minimize the risk of a |
| race. |
| |
| As a consequence, the XPC code for storage access removal in the UI |
| process is deleted. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::removeStorageAccess): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::removeStorageAccess): Deleted. |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::removeStorageAccess): Deleted. |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::requestStorageAccess): |
| (WebKit::WebPageProxy::removeStorageAccess): Deleted. |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::requestStorageAccess): |
| (WebKit::WebsiteDataStore::removeStorageAccess): Deleted. |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::detachedFromParent2): |
| (WebKit::WebFrameLoaderClient::dispatchWillChangeDocument): |
| |
| 2018-01-03 David Kilzer <ddkilzer@apple.com> |
| |
| com.apple.WebKit.Networking crash in com.apple.Foundation: -[__NSOperationInternal _start:] |
| <https://webkit.org/b/181272> |
| <rdar://problem/35657310> |
| |
| Reviewed by Alex Christensen. |
| |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (downgradeRequest): Remove unnecessary -autorelease. |
| |
| 2018-01-03 Brent Fulgham <bfulgham@apple.com> |
| |
| [macOS] Constant frame dropping during Flash video playback |
| https://bugs.webkit.org/show_bug.cgi?id=181249 |
| <rdar://problem/34843448> |
| |
| Reviewed by Eric Carlson. |
| |
| Review of logs during jerky flash video playback shows a few IOKit properties are being blocked by the sandbox, |
| which prevents some high-efficiency codecs from being used. Add 'AppleGVAKeyDoesNotExist', 'IODVDBundleName', and |
| 'IOGVA*Encode' to the whitelist. |
| |
| * PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in: |
| |
| 2018-01-03 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [GTK] Add web process API to detect when form is submitted via JavaScript |
| https://bugs.webkit.org/show_bug.cgi?id=173915 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Epiphany relies on the DOM submit event to detect when a form has been submitted. However, |
| for historical reasons, the submit event is not emitted when a form is submitted by |
| JavaScript. It is therefore not currently possible for a web browser to reliably detect form |
| submission and not possible to implement a robust password storage feature. In order to |
| avoid this problem, this patch adds a new WebKitWebPage signal, will-submit-form, that |
| browsers can use in preference to a DOM event listener. |
| |
| Unfortunately, this signal is not available for WPE because it depends on the DOM API. |
| |
| There are two submission events, WEBKIT_FORM_SUBMISSION_WILL_SEND_DOM_EVENT and |
| WEBKIT_FORM_SUBMISSION_WILL_COMPLETE. WEBKIT_FORM_SUBMISSION_WILL_SEND_DOM_EVENT |
| occurs earlier than WEBKIT_FORM_SUBMISSION_WILL_COMPLETE and can be used to retrieve form |
| values before websites receive the DOM submit event. This is useful as some websites like |
| to delete form values right before a submit would normally happen in order to attempt to |
| defeat browser password managers. There are two tricks to note: JavaScript can cancel form |
| submission immediately after this event occurs (by returning false in an onsubmit handler), |
| and, for historical reasons, this event will not occur at all when form submission is |
| triggered by JavaScript. WEBKIT_FORM_SUBMISSION_WILL_COMPLETE occurs next, and is more |
| straightforward: it is always emitted when a form is about to be submitted, when it is too |
| late to cancel. |
| |
| The recommended way to reliably retrieve password form values would be to watch for both |
| events, use the form value detected in WEBKIT_FORM_SUBMISSION_WILL_SEND_DOM_EVENT |
| if that event is emitted, and use the value detected later in |
| WEBKIT_FORM_SUBMISSION_WILL_COMPLETE otherwise. |
| |
| Since one of the signal arguments is an enum, we now have to run glib-mkenums for the web |
| process API. And that has resulted in this patch also adding GType goo for |
| WebKitConsoleMessageLevel and WebKitConsoleMessageSource that was previously missing. Any |
| applications that for some unlikely reason want to use these enums in properties or signals |
| will be happy. |
| |
| * PlatformGTK.cmake: |
| * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: |
| * WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp: |
| (webkit_web_page_class_init): |
| * WebProcess/InjectedBundle/API/gtk/WebKitWebPage.h: |
| * WebProcess/InjectedBundle/API/gtk/WebKitWebProcessEnumTypes.cpp.template: Added. |
| * WebProcess/InjectedBundle/API/gtk/WebKitWebProcessEnumTypes.h.template: Added. |
| |
| 2018-01-03 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Really fix plugin process after r226327. |
| |
| * PluginProcess/unix/PluginProcessMainUnix.cpp: |
| |
| 2018-01-02 Brent Fulgham <bfulgham@apple.com> |
| |
| [macOS, iOS] Adopt new secure coding APIs in WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=181085 |
| <rdar://problem/34837397> |
| |
| Reviewed by Tim Horton. |
| |
| Update WebKit code to use NSSecureCoding when the underlying operating system supports it. Use new |
| wrapper functions so the same code can be built on all supported OS releases, while enabling |
| seure coding when possible. |
| |
| Note that NSView-based classes cannot be migrated at present due to AppKit not supporting NSSecureCoding |
| in its class hierarchy. |
| |
| Tested by exising TestWebKitAPI tests for Coding and data transfer. |
| |
| * Platform/ios/AccessibilityIOS.mm: |
| (WebKit::newAccessibilityRemoteToken): Encode using NSSecureCoding. |
| * UIProcess/API/Cocoa/WKPreferences.h: |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (+[WKPreferences supportsSecureCoding]): Added to enable NSSecureCoding. |
| * UIProcess/API/Cocoa/WKProcessPool.h: |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (+[WKProcessPool supportsSecureCoding]): Ditto. |
| * UIProcess/API/Cocoa/WKUserContentController.h: |
| * UIProcess/API/Cocoa/WKUserContentController.mm: |
| (+[WKUserContentController supportsSecureCoding]): Ditto. |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView initWithCoder:]): Use coding initialization that supports secure coding if |
| it is available in the supplied class. |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.h: |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: |
| (+[WKWebViewConfiguration supportsSecureCoding]): Added to enable NSSecureCoding. |
| (-[WKWebViewConfiguration initWithCoder:]): Use secure coding when possible. |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.h: |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (+[WKWebsiteDataStore supportsSecureCoding]): Added to enable NSSecureCoding. |
| * UIProcess/API/Cocoa/_WKApplicationManifest.h: |
| * UIProcess/API/Cocoa/_WKApplicationManifest.mm: |
| (+[_WKApplicationManifest supportsSecureCoding]): Added to enable NSSecureCoding. |
| (-[_WKApplicationManifest initWithCoder:]): Use secure coding when possible. |
| |
| 2017-12-28 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| Remove std::chrono completely |
| https://bugs.webkit.org/show_bug.cgi?id=181186 |
| |
| Reviewed by Alex Christensen. |
| |
| Use MonotonicTime, WallTime, and Seconds instead. |
| Changes are mechanical ones. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::deleteWebsiteData): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::Caches::clear): |
| * NetworkProcess/cache/NetworkCache.cpp: |
| (WebKit::NetworkCache::responseHasExpired): |
| (WebKit::NetworkCache::responseNeedsRevalidation): |
| (WebKit::NetworkCache::makeStoreDecision): |
| (WebKit::NetworkCache::Cache::clear): |
| (WebKit::NetworkCache::Cache::storeData): |
| * NetworkProcess/cache/NetworkCache.h: |
| * NetworkProcess/cache/NetworkCacheEntry.cpp: |
| (WebKit::NetworkCache::Entry::Entry): |
| (WebKit::NetworkCache::Entry::asJSON const): |
| * NetworkProcess/cache/NetworkCacheEntry.h: |
| (WebKit::NetworkCache::Entry::timeStamp const): |
| * NetworkProcess/cache/NetworkCacheFileSystem.cpp: |
| (WebKit::NetworkCache::fileTimes): |
| (WebKit::NetworkCache::updateFileModificationTimeIfNeeded): |
| * NetworkProcess/cache/NetworkCacheFileSystem.h: |
| * NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp: |
| (WebKit::NetworkCache::IOChannel::IOChannel): |
| * NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp: |
| (WebKit::NetworkCache::responseNeedsRevalidation): |
| (WebKit::NetworkCache::canRevalidate): |
| * NetworkProcess/cache/NetworkCacheStorage.cpp: |
| (WebKit::NetworkCache::Storage::readRecord): |
| (WebKit::NetworkCache::Storage::clear): |
| (WebKit::NetworkCache::computeRecordWorth): |
| * NetworkProcess/cache/NetworkCacheStorage.h: |
| Bump the cache version. We now change the data in persistent cache. |
| * NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp: |
| (WebKit::NetworkCache::SubresourceInfo::SubresourceInfo): |
| (WebKit::NetworkCache::SubresourcesEntry::SubresourcesEntry): |
| * NetworkProcess/cache/NetworkCacheSubresourcesEntry.h: |
| (WebKit::NetworkCache::SubresourceInfo::lastSeen const): |
| (WebKit::NetworkCache::SubresourceInfo::firstSeen const): |
| (WebKit::NetworkCache::SubresourcesEntry::timeStamp const): |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::clearHSTSCache): |
| (WebKit::clearNSURLCache): |
| (WebKit::NetworkProcess::clearDiskCache): |
| * NetworkProcess/curl/NetworkProcessCurl.cpp: |
| (WebKit::NetworkProcess::clearDiskCache): |
| * NetworkProcess/mac/NetworkProcessMac.mm: |
| (WebKit::NetworkProcess::clearCacheForAllOrigins): |
| * NetworkProcess/soup/NetworkProcessSoup.cpp: |
| (WebKit::NetworkProcess::clearCacheForAllOrigins): |
| (WebKit::NetworkProcess::clearDiskCache): |
| * Platform/IPC/ArgumentCoders.cpp: |
| (IPC::ArgumentCoder<WallTime>::encode): |
| (IPC::ArgumentCoder<WallTime>::decode): |
| (IPC::ArgumentCoder<std::chrono::system_clock::time_point>::encode): Deleted. |
| (IPC::ArgumentCoder<std::chrono::system_clock::time_point>::decode): Deleted. |
| * Platform/IPC/ArgumentCoders.h: |
| * PluginProcess/PluginProcess.cpp: |
| (WebKit::PluginProcess::deleteWebsiteData): |
| * PluginProcess/PluginProcess.h: |
| * PluginProcess/PluginProcess.messages.in: |
| * Scripts/webkit/messages.py: |
| (headers_for_type): |
| * Shared/RemoteLayerTree/RemoteLayerBackingStore.h: |
| (WebKit::RemoteLayerBackingStore::lastDisplayTime const): |
| * Shared/RemoteLayerTree/RemoteLayerBackingStore.mm: |
| (WebKit::RemoteLayerBackingStore::RemoteLayerBackingStore): |
| (WebKit::RemoteLayerBackingStore::display): |
| * Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.h: |
| * Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm: |
| (WebKit::RemoteLayerBackingStoreCollection::markBackingStoreVolatile): |
| (WebKit::RemoteLayerBackingStoreCollection::volatilityTimerFired): |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<RecentSearch>::decode): |
| (IPC::ArgumentCoder<WallTime>::encode): Deleted. |
| (IPC::ArgumentCoder<WallTime>::decode): Deleted. |
| * Shared/WebCoreArgumentCoders.h: |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::deleteWebsiteData): |
| * StorageProcess/StorageProcess.h: |
| * StorageProcess/StorageProcess.messages.in: |
| * UIProcess/API/C/WKApplicationCacheManager.cpp: |
| (WKApplicationCacheManagerDeleteAllEntries): |
| * UIProcess/API/C/WKCookieManager.cpp: |
| (WKCookieManagerDeleteAllCookiesModifiedAfterDate): |
| * UIProcess/API/C/WKKeyValueStorageManager.cpp: |
| (WKKeyValueStorageManagerDeleteAllEntries): |
| * UIProcess/API/C/WKResourceCacheManager.cpp: |
| (WKResourceCacheManagerClearCacheForAllOrigins): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreStatisticsClearInMemoryAndPersistentStoreModifiedSinceHours): |
| (WKWebsiteDataStoreStatisticsClearThroughWebsiteDataRemoval): |
| (WKWebsiteDataStoreRemoveAllFetchCaches): |
| (WKWebsiteDataStoreRemoveAllIndexedDatabases): |
| (WKWebsiteDataStoreRemoveAllServiceWorkerRegistrations): |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (toSystemClockTime): |
| (-[WKWebsiteDataStore _resourceLoadStatisticsClearInMemoryAndPersistentStoreModifiedSinceHours:]): |
| * UIProcess/API/glib/WebKitWebContext.cpp: |
| (webkit_web_context_clear_cache): |
| * UIProcess/API/glib/WebKitWebsiteDataManager.cpp: |
| (webkit_website_data_manager_clear): |
| * UIProcess/DrawingAreaProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::deleteWebsiteData): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Plugins/PluginProcessManager.cpp: |
| (WebKit::PluginProcessManager::deleteWebsiteData): |
| * UIProcess/Plugins/PluginProcessManager.h: |
| * UIProcess/Plugins/PluginProcessProxy.cpp: |
| (WebKit::PluginProcessProxy::deleteWebsiteData): |
| * UIProcess/Plugins/PluginProcessProxy.h: |
| * UIProcess/Storage/StorageProcessProxy.cpp: |
| (WebKit::StorageProcessProxy::deleteWebsiteData): |
| * UIProcess/Storage/StorageProcessProxy.h: |
| * UIProcess/WebCookieManagerProxy.cpp: |
| (WebKit::WebCookieManagerProxy::deleteAllCookiesModifiedSince): |
| * UIProcess/WebCookieManagerProxy.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::deleteWebsiteData): |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent): |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| * UIProcess/WebStorage/LocalStorageDatabaseTracker.cpp: |
| (WebKit::LocalStorageDatabaseTracker::deleteDatabasesModifiedSince): |
| * UIProcess/WebStorage/LocalStorageDatabaseTracker.h: |
| * UIProcess/WebStorage/StorageManager.cpp: |
| (WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince): |
| * UIProcess/WebStorage/StorageManager.h: |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::platformRemoveRecentSearches): |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::removeData): |
| (WebKit::WebsiteDataStore::removeMediaKeys): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| * UIProcess/gtk/WebPageProxyGtk.cpp: |
| (WebKit::WebsiteDataStore::platformRemoveRecentSearches): |
| * UIProcess/wpe/WebPageProxyWPE.cpp: |
| (WebKit::WebsiteDataStore::platformRemoveRecentSearches): |
| * WebProcess/Cookies/WebCookieManager.cpp: |
| (WebKit::WebCookieManager::deleteAllCookiesModifiedSince): |
| * WebProcess/Cookies/WebCookieManager.h: |
| * WebProcess/Cookies/WebCookieManager.messages.in: |
| * WebProcess/Plugins/PluginView.cpp: |
| (WebKit::lastModifiedDateMS): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::deleteWebsiteData): |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| |
| 2018-01-02 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Attachment Support] Introduce data structures and IPC support for writing promised blobs |
| https://bugs.webkit.org/show_bug.cgi?id=181189 |
| |
| Reviewed by Tim Horton. |
| |
| Add IPC support for PromisedBlobInfo and PromisedBlobData. See WebCore/ChangeLog for more detail. |
| |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<PromisedBlobData>::encode): |
| (IPC::ArgumentCoder<PromisedBlobData>::decode): |
| (IPC::ArgumentCoder<PromisedBlobInfo>::encode): |
| (IPC::ArgumentCoder<PromisedBlobInfo>::decode): |
| * Shared/WebCoreArgumentCoders.h: |
| |
| 2018-01-02 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| REGRESSION(r223253): Broke ResourceLoadStatistics layout tests for non-Cocoa ports |
| https://bugs.webkit.org/show_bug.cgi?id=181231 |
| |
| Reviewed by Alex Christensen. |
| |
| Add new C API for use by WebKitTestRunner. |
| |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreIsStatisticsRegisteredAsSubFrameUnder): |
| (WKWebsiteDataStoreIsStatisticsRegisteredAsRedirectingTo): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| |
| 2018-01-02 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Add a WebAuthentication runtime feature flag |
| https://bugs.webkit.org/show_bug.cgi?id=181220 |
| <rdar://problem/36055305> |
| |
| Reviewed by Brent Fulgham. |
| |
| Renames the CredentialManagement runtime feature flag into WebAuthentication. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetWebAuthenticationEnabled): |
| (WKPreferencesGetWebAuthenticationEnabled): |
| (WKPreferencesSetCredentialManagementEnabled): Deleted. |
| (WKPreferencesGetCredentialManagementEnabled): Deleted. |
| * UIProcess/API/C/WKPreferencesRefPrivate.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::updatePreferences): |
| |
| 2018-01-02 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| REGRESSION(r226327): [GTK] Plugin process is broken |
| https://bugs.webkit.org/show_bug.cgi?id=181187 |
| |
| Unreviewed, fix PluginProcessMainUnix after r226327. |
| |
| * PluginProcess/unix/PluginProcessMainUnix.cpp: |
| |
| 2018-01-02 Tim Horton <timothy_horton@apple.com> |
| |
| Fix the build on platforms where UICurrentUserInterfaceIdiomIsPad is defined to false |
| https://bugs.webkit.org/show_bug.cgi?id=181218 |
| |
| Reviewed by Alex Christensen. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| (currentUserInterfaceIdiomIsPad): |
| * UIProcess/ios/SmartMagnificationController.mm: |
| (WebKit::SmartMagnificationController::didCollectGeometryForSmartMagnificationGesture): |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKFormInputSession setAccessoryViewCustomButtonTitle:]): |
| (-[WKContentView _requiresKeyboardWhenFirstResponder]): |
| (-[WKContentView _displayFormNodeInputView]): |
| (-[WKContentView requiresAccessoryView]): |
| (-[WKContentView _updateAccessory]): |
| * UIProcess/ios/forms/WKAirPlayRoutePicker.mm: |
| (-[WKAirPlayRoutePicker show:fromRect:]): |
| * UIProcess/ios/forms/WKFileUploadPanel.mm: |
| (-[WKFileUploadPanel _showPhotoPickerWithSourceType:]): |
| (-[WKFileUploadPanel _presentMenuOptionForCurrentInterfaceIdiom:]): |
| * UIProcess/ios/forms/WKFormInputControl.mm: |
| (-[WKDateTimePicker initWithView:datePickerMode:]): |
| (-[WKFormInputControl initWithView:]): |
| * UIProcess/ios/forms/WKFormSelectControl.mm: |
| (-[WKFormSelectControl initWithView:]): |
| On platforms where UICurrentUserInterfaceIdiomIsPad is defined to false, |
| blocks that conditionally execute based on its value are unreachable. |
| This causes the compiler to complain. Hide it away inside an inline function |
| and make use of that everywhere we used to use the macro. |
| |
| 2018-01-02 Alex Christensen <achristensen@webkit.org> |
| |
| Remove SVN file accidentally added in r226160 |
| https://bugs.webkit.org/show_bug.cgi?id=180934 |
| |
| * UIProcess/WebPageProxy.cpp.orig: Removed. |
| |
| 2018-01-02 Alex Christensen <achristensen@webkit.org> |
| |
| Use BlockPtrs and lambdas instead of new/delete to pass parameters to blocks in WebViewImpl::performDragOperation |
| https://bugs.webkit.org/show_bug.cgi?id=180795 |
| |
| Reviewed by Brent Fulgham. |
| |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::performDragOperation): |
| |
| 2018-01-02 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [WPE][GTK] Implement the assignment of ProcessIdentifiers to child processes |
| https://bugs.webkit.org/show_bug.cgi?id=181187 |
| |
| Reviewed by Brady Eidson. |
| |
| * Shared/ChildProcess.cpp: Make the ProcessIdentifier mandatory. |
| (WebKit::ChildProcess::initialize): |
| * Shared/unix/ChildProcessMain.cpp: Initialize ChildProcessInitializationParameters with the |
| ProcessIdentifier. |
| (WebKit::ChildProcessMainBase::parseCommandLine): |
| * UIProcess/Launcher/glib/ProcessLauncherGLib.cpp: Copy the ProcessIdentifier from |
| LaunchOptions into argv. |
| (WebKit::ProcessLauncher::launchProcess): |
| * WebProcess/wpe/WebProcessMainWPE.cpp: Expect the WPE socket ID later in the command line. |
| |
| 2018-01-02 Alex Christensen <achristensen@webkit.org> |
| |
| Use new WebsiteDataStore passed in through decidePolicyForNavigation SPI |
| https://bugs.webkit.org/show_bug.cgi?id=180897 |
| <rdar://problem/35535328> |
| |
| Reviewed by Brent Fulgham. |
| |
| * Shared/WebsitePoliciesData.cpp: |
| (WebKit::WebsitePoliciesData::applyToDocumentLoader): |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::changeWebsiteDataStore): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::pageBeginUsingWebsiteDataStore): |
| (WebKit::WebProcessPool::pageEndUsingWebsiteDataStore): |
| (WebKit::WebProcessPool::pageAddedToProcess): Deleted. |
| (WebKit::WebProcessPool::pageRemovedFromProcess): Deleted. |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::addExistingWebPage): |
| (WebKit::WebProcessProxy::removeWebPage): |
| * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm: |
| (WebKit::WebFrameNetworkingContext::ensureWebsiteDataStoreSession): |
| |
| 2018-01-02 Alex Christensen <achristensen@webkit.org> |
| |
| Only use CookieStorageShim when we aren't using NetworkSession |
| https://bugs.webkit.org/show_bug.cgi?id=180766 |
| |
| Reviewed by Brent Fulgham. |
| |
| * Shared/mac/CookieStorageShim.h: |
| * Shared/mac/CookieStorageShim.mm: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeWebProcess): |
| |
| 2018-01-02 Alex Christensen <achristensen@webkit.org> |
| |
| Clean up context menu code |
| https://bugs.webkit.org/show_bug.cgi?id=181074 |
| |
| Reviewed by Brent Fulgham. |
| |
| Use Ref instead of RefPtr where possible. |
| Use move semantics instead of copying from const references when possible. |
| Remove dead iOS code. Reduce allocations. Add stub for WPE. |
| |
| * UIProcess/API/APIContextMenuClient.h: |
| (API::ContextMenuClient::getContextMenuFromProposedMenu): |
| (API::ContextMenuClient::getContextMenuFromProposedMenuAsync): |
| (API::ContextMenuClient::showContextMenu): |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetPageContextMenuClient): |
| * UIProcess/API/gtk/PageClientImpl.cpp: |
| (WebKit::PageClientImpl::createContextMenuProxy): |
| * UIProcess/API/gtk/PageClientImpl.h: |
| * UIProcess/PageClient.h: |
| * UIProcess/WebContextMenuListenerProxy.cpp: |
| (WebKit::WebContextMenuListenerProxy::useContextMenuItems): |
| * UIProcess/WebContextMenuProxy.cpp: |
| (WebKit::WebContextMenuProxy::WebContextMenuProxy): |
| * UIProcess/WebContextMenuProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::showContextMenu): |
| (WebKit::WebPageProxy::internalShowContextMenu): Deleted. |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/gtk/WebContextMenuProxyGtk.cpp: |
| (WebKit::WebContextMenuProxyGtk::showContextMenuWithItems): |
| (WebKit::WebContextMenuProxyGtk::WebContextMenuProxyGtk): |
| * UIProcess/gtk/WebContextMenuProxyGtk.h: |
| (WebKit::WebContextMenuProxyGtk::create): |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::createContextMenuProxy): Deleted. |
| * UIProcess/mac/PageClientImplMac.h: |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::createContextMenuProxy): |
| * UIProcess/mac/WebContextMenuProxyMac.h: |
| (WebKit::WebContextMenuProxyMac::create): |
| * UIProcess/mac/WebContextMenuProxyMac.mm: |
| (WebKit::WebContextMenuProxyMac::WebContextMenuProxyMac): |
| (WebKit::WebContextMenuProxyMac::showContextMenuWithItems): |
| (WebKit::WebContextMenuProxyMac::showContextMenu): |
| |
| == Rolled over to ChangeLog-2018-01-01 == |