| 2020-01-13 Kate Cheney <katherine_cheney@apple.com> |
| |
| Unreviewed followup fix to: https://bugs.webkit.org/show_bug.cgi?id=205288. |
| This flag should be off-by-default. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2020-01-13 Alex Christensen <achristensen@webkit.org> |
| |
| Propogate UIEdgeInsets from WKWebView to WKSafeBrowsingWarning on iOS |
| https://bugs.webkit.org/show_bug.cgi?id=206201 |
| <rdar://problem/57135847> |
| |
| Reviewed by Tim Horton. |
| |
| Manually verified this fixes the radar. |
| |
| * UIProcess/API/ios/WKWebViewIOS.mm: |
| (-[WKWebView _computedObscuredInsetForSafeBrowsingWarning]): |
| (-[WKWebView safeAreaInsetsDidChange]): |
| (-[WKWebView _setObscuredInsets:]): |
| |
| 2020-01-13 Eric Carlson <eric.carlson@apple.com> |
| |
| Expose audio tracks for media files in the GPUProcess |
| https://bugs.webkit.org/show_bug.cgi?id=206152 |
| <rdar://problem/58513227> |
| |
| Reviewed by youenn fablet. |
| |
| * GPUProcess/media/RemoteAudioTrackProxy.cpp: Added. |
| (WebKit::RemoteAudioTrackProxy::RemoteAudioTrackProxy): |
| (WebKit::RemoteAudioTrackProxy::configuration): |
| (WebKit::RemoteAudioTrackProxy::configurationChanged): |
| (WebKit::RemoteAudioTrackProxy::willRemove): |
| (WebKit::RemoteAudioTrackProxy::enabledChanged): |
| (WebKit::RemoteAudioTrackProxy::idChanged): |
| (WebKit::RemoteAudioTrackProxy::labelChanged): |
| (WebKit::RemoteAudioTrackProxy::languageChanged): |
| * GPUProcess/media/RemoteAudioTrackProxy.h: Added. |
| * GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp: |
| (WebKit::RemoteMediaPlayerManagerProxy::setRate): |
| (WebKit::RemoteMediaPlayerManagerProxy::audioTrackSetEnabled): |
| * GPUProcess/media/RemoteMediaPlayerManagerProxy.h: |
| * GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in: |
| * GPUProcess/media/RemoteMediaPlayerProxy.cpp: |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerDidAddAudioTrack): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerDidRemoveAudioTrack): |
| (WebKit::RemoteMediaPlayerProxy::audioTrackSetEnabled): |
| * GPUProcess/media/RemoteMediaPlayerProxy.h: |
| * GPUProcess/media/TrackPrivateRemoteConfiguration.h: Added. |
| (WebKit::TrackPrivateRemoteConfiguration::encode const): |
| (WebKit::TrackPrivateRemoteConfiguration::decode): |
| * GPUProcess/media/TrackPrivateRemoteIdentifier.h: Added. |
| * Scripts/webkit/messages.py: |
| * Sources.txt: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/GPU/media/AudioTrackPrivateRemote.cpp: Added. |
| (WebKit::AudioTrackPrivateRemote::AudioTrackPrivateRemote): |
| (WebKit::AudioTrackPrivateRemote::setEnabled): |
| (WebKit::AudioTrackPrivateRemote::updateConfiguration): |
| * WebProcess/GPU/media/AudioTrackPrivateRemote.h: Added. |
| (WebKit::AudioTrackPrivateRemote::create): |
| * WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp: |
| (WebKit::MediaPlayerPrivateRemote::addRemoteAudioTrack): |
| (WebKit::MediaPlayerPrivateRemote::removeRemoteAudioTrack): |
| (WebKit::MediaPlayerPrivateRemote::remoteAudioTrackConfigurationChanged): |
| * WebProcess/GPU/media/MediaPlayerPrivateRemote.h: |
| * WebProcess/GPU/media/RemoteMediaPlayerManager.cpp: |
| (WebKit::RemoteMediaPlayerManager::timeChanged): |
| (WebKit::RemoteMediaPlayerManager::durationChanged): |
| (WebKit::RemoteMediaPlayerManager::engineFailedToLoad): |
| (WebKit::RemoteMediaPlayerManager::characteristicChanged): |
| (WebKit::RemoteMediaPlayerManager::sizeChanged): |
| (WebKit::RemoteMediaPlayerManager::addRemoteAudioTrack): |
| (WebKit::RemoteMediaPlayerManager::removeRemoteAudioTrack): |
| (WebKit::RemoteMediaPlayerManager::remoteAudioTrackConfigurationChanged): |
| (WebKit::RemoteMediaPlayerManager::updateCachedState): |
| * WebProcess/GPU/media/RemoteMediaPlayerManager.h: |
| * WebProcess/GPU/media/RemoteMediaPlayerManager.messages.in: |
| * WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp: |
| |
| 2020-01-06 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthn] Support CTAP Client Pin |
| https://bugs.webkit.org/show_bug.cgi?id=191516 |
| <rdar://problem/56558558> |
| |
| Reviewed by Brent Fulgham. |
| |
| This patch implements authenticatorClientPIN from the spec: |
| https://fidoalliance.org/specs/fido-v2.0-ps-20190130/fido-client-to-authenticator-protocol-v2.0-ps-20190130.html#authenticatorClientPIN |
| Specifically, it implements section 5.5.1, 5.5.3, 5.5.4, 5.5.7, and 5.5.8. |
| |
| Here is the flow how makeCredential/getAssertion works with a PIN in our implementation: |
| 1. Determine if the connected authenticator has a PIN; |
| 2. If yes, send the makeCredential/getAssertion request to the authenticator with an empty pinAuth |
| such that the authenticator will wink for user gestures. This step intends to confirm the authenticator |
| is the one the user wants to use. Otherwise, we don't know which authenticator to send the PIN |
| if multiple are connected; |
| 3. Once the user confirms the authetnicator, it will return either CTAP2_ERR_PIN_INVALID or |
| CTAP2_ERR_PIN_AUTH_INVALID. Some authenticators return CTAP2_ERR_PIN_AUTH_INVALID even though |
| it is not suggested by the spec; |
| 4. Get retries from the authenticator; |
| 5. Get key agreement from the authenticator; |
| 6. Ask the UI client for the PIN and at the meantime inform it the retries; |
| 7. Get pin token from the authenticator; |
| 8. Resend the makeCredential/getAssertion request with the desired pinAuth. |
| |
| Besides implementating the above flow, this patch also fixes some bugs within the PIN commands encoder: |
| 1. pinAuth/pinProtocol are wrongly encoded for makeCredential/getAssertion; |
| 2. AES CBC should be called without any padding. Therefore, CryptoAlgorithmAES_CBC adds a no padding mode; |
| 3. The sharedSecret is the SHA256 digest of the ECDH key agreement instead of the raw key agreement. |
| |
| * UIProcess/API/APIWebAuthenticationPanelClient.h: |
| (API::WebAuthenticationPanelClient::requestPin const): |
| * UIProcess/WebAuthentication/Authenticator.h: |
| * UIProcess/WebAuthentication/AuthenticatorManager.cpp: |
| (WebKit::AuthenticatorManager::requestPin): |
| * UIProcess/WebAuthentication/AuthenticatorManager.h: |
| * UIProcess/WebAuthentication/Cocoa/WebAuthenticationPanelClient.h: |
| * UIProcess/WebAuthentication/Cocoa/WebAuthenticationPanelClient.mm: |
| (WebKit::WebAuthenticationPanelClient::WebAuthenticationPanelClient): |
| (WebKit::WebAuthenticationPanelClient::requestPin const): |
| * UIProcess/WebAuthentication/Mock/MockHidConnection.cpp: |
| (WebKit::MockHidConnection::feedReports): |
| * UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp: |
| (WebKit::CtapAuthenticator::makeCredential): |
| (WebKit::CtapAuthenticator::continueMakeCredentialAfterResponseReceived): |
| (WebKit::CtapAuthenticator::getAssertion): |
| (WebKit::CtapAuthenticator::continueGetAssertionAfterResponseReceived): |
| (WebKit::CtapAuthenticator::getRetries): |
| (WebKit::CtapAuthenticator::continueGetKeyAgreementAfterGetRetries): |
| (WebKit::CtapAuthenticator::continueRequestPinAfterGetKeyAgreement): |
| (WebKit::CtapAuthenticator::continueGetPinTokenAfterRequestPin): |
| (WebKit::CtapAuthenticator::continueRequestAfterGetPinToken): |
| (WebKit::CtapAuthenticator::continueMakeCredentialAfterResponseReceived const): Deleted. |
| * UIProcess/WebAuthentication/fido/CtapAuthenticator.h: |
| |
| 2020-01-13 Brent Fulgham <bfulgham@apple.com> |
| |
| [iOS] Remove 'com.apple.diagnosticd' from WebContent process sandbox |
| https://bugs.webkit.org/show_bug.cgi?id=206114 |
| <rdar://problem/58496791> |
| |
| Reviewed by Per Arne Vollan. |
| |
| In Bug 205292 we began dynamically adding a sandbox extension for 'com.apple.diagnosticd' when needed. |
| We should remove the blanket permission from the sandbox. |
| |
| Test: fast/sandbox/ios/sandbox-mach-lookup.html |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2020-01-12 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [macCatalyst] UI process crashes on launch after r254101 |
| https://bugs.webkit.org/show_bug.cgi?id=206156 |
| <rdar://problem/58514942> |
| |
| Reviewed by Brent Fulgham. |
| |
| Fixes the crash by not soft-linking BackBoardServices in an attempt to invoke BKSDisplayBrightnessGetCurrent on |
| macCatalyst. Prior to r254101, this was only defined on iOS and not watchOS or tvOS; after this change, it |
| should be defined only on iOS, watchOS and tvOS. |
| |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::registerNotificationObservers): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::initializeNewWebProcess): |
| * UIProcess/WebProcessPool.h: |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| |
| 2020-01-13 Antti Koivisto <antti@apple.com> |
| |
| [LFC][Integration] Enable LFC integration |
| https://bugs.webkit.org/show_bug.cgi?id=206128 |
| |
| Reviewed by Zalan Bujtas. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2020-01-13 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| WebDriver: pressed virtual keys not correctly handled in action sequences |
| https://bugs.webkit.org/show_bug.cgi?id=205997 |
| |
| Reviewed by Brian Burg. |
| |
| When modifiers are present we need to translate the keys that might be affected by the modifiers. |
| |
| * UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp: |
| (WebKit::doKeyStrokeEvent): |
| |
| 2020-01-13 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. [GTK][WPE] Add missing autocleanup definition for WebKitInputMethodContext |
| |
| I forgot to add it in r253749. |
| |
| * UIProcess/API/gtk/WebKitAutocleanups.h: |
| * UIProcess/API/wpe/WebKitAutocleanups.h: |
| |
| 2020-01-12 Tim Horton <timothy_horton@apple.com> |
| |
| Remove CorePDF linkage in WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=206103 |
| <rdar://problem/58490563> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * Configurations/WebKit.xcconfig: |
| |
| 2020-01-11 Alex Christensen <achristensen@webkit.org> |
| |
| Expose frame information on _WKResourceLoadInfo |
| https://bugs.webkit.org/show_bug.cgi?id=206104 |
| <rdar://problem/57132290> |
| |
| Reviewed by Dean Jackson. |
| |
| * NetworkProcess/NetworkResourceLoadParameters.cpp: |
| (WebKit::NetworkResourceLoadParameters::encode const): |
| (WebKit::NetworkResourceLoadParameters::decode): |
| * NetworkProcess/NetworkResourceLoadParameters.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::resourceLoadInfo): |
| * Shared/API/Cocoa/_WKFrameHandle.h: |
| * Shared/API/Cocoa/_WKFrameHandle.mm: |
| (-[_WKFrameHandle frameID]): |
| (-[_WKFrameHandle initWithCoder:]): |
| (-[_WKFrameHandle encodeWithCoder:]): |
| (-[_WKFrameHandle _frameID]): Deleted. |
| * Shared/API/Cocoa/_WKFrameHandleInternal.h: |
| * Shared/ResourceLoadInfo.h: |
| (WebKit::ResourceLoadInfo::encode const): |
| (WebKit::ResourceLoadInfo::decode): |
| * UIProcess/API/APIResourceLoadInfo.h: |
| * UIProcess/API/Cocoa/_WKInspector.mm: |
| (-[_WKInspector showMainResourceForFrame:]): |
| * UIProcess/API/Cocoa/_WKResourceLoadInfo.h: |
| * UIProcess/API/Cocoa/_WKResourceLoadInfo.mm: |
| (-[_WKResourceLoadInfo frame]): |
| (-[_WKResourceLoadInfo parentFrame]): |
| * UIProcess/API/mac/WKWebViewMac.mm: |
| (-[WKWebView _canChangeFrameLayout:]): |
| (-[WKWebView _printOperationWithPrintInfo:forFrame:]): |
| * UIProcess/Cocoa/WKReloadFrameErrorRecoveryAttempter.mm: |
| (-[WKReloadFrameErrorRecoveryAttempter attemptRecovery]): |
| * UIProcess/ios/WKContentView.mm: |
| (-[WKContentView _wk_pageCountForPrintFormatter:]): |
| * WebProcess/Automation/WebAutomationSessionProxy.cpp: |
| (WebKit::evaluateJavaScriptCallback): |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm: |
| (+[WKWebProcessPlugInFrame lookUpFrameFromHandle:]): |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::addParametersFromFrame): |
| (WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess): |
| (WebKit::WebLoaderStrategy::loadResourceSynchronously): |
| (WebKit::WebLoaderStrategy::startPingLoad): |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::installServiceWorker): |
| |
| 2020-01-11 Kate Cheney <katherine_cheney@apple.com> |
| |
| Add correct grandfathering functionality to the ITP database backend |
| https://bugs.webkit.org/show_bug.cgi?id=205844 |
| <rdar://problem/58360450> |
| |
| Reviewed by John Wilander. |
| |
| This patch adds functionality for grandfathering statistics upon |
| creation of a new ITP database file. The memory store relies on |
| the presence of the ITP plist to indicate whether the data should |
| be grandfathered. Since the database does not use a plist, this patch |
| adds a boolean variable to track whether the database file previously |
| existed or not to indicate when to grandfather. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: |
| (WebKit::ResourceLoadStatisticsDatabaseStore::openITPDatabase): |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h: |
| The boolean variable m_isNewResourceLoadStatisticDatabaseFile is set |
| to true if the database file did not previously exist, indicating ITP |
| is being used for the first time and data should be grandfathered. |
| |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::populateMemoryStoreFromDisk): |
| This is where the grandfathering happens. The call to logTestingEvent |
| is for API testing purposes only. |
| |
| (WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent): |
| If a scheduleClearInMemoryAndPersistent is called, the plist is |
| deleted, and data will be grandfathered upon recreation. To mimic |
| this, the ITP database store is cleared and becomes "new" again, so |
| the boolean is set to true. |
| |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetIsITPDatabaseEnabled): |
| (WKPreferencesGetIsITPDatabaseEnabled): |
| * UIProcess/API/C/WKPreferencesRef.h: |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences _isITPDatabaseEnabled]): |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: |
| In order to properly run the grandfathering |
| API tests, the 'isITPDatabaseEnabled' boolean needs to be exposed from |
| Web Preferences. |
| |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| The API tests rely on the ITP database flag being set correctly. Since |
| being on-by-default, the ITP database flag does not show up in the |
| user defaults menu if enabled. This patch fixes this by first checking |
| to see if the value is in the defaults menu, otherwise returning the |
| default preferences value. This ensures the preferences value matches |
| the actual store being initialized. |
| |
| 2020-01-10 Eric Carlson <eric.carlson@apple.com> |
| |
| [Media in GPU process] Extend the GPU process sandbox to allow access to local files when necessary |
| https://bugs.webkit.org/show_bug.cgi?id=205967 |
| <rdar://problem/58425020> |
| |
| Reviewed by youenn fablet. |
| |
| No new tests, un-skipped existing tests that pass because of this change. |
| |
| The GPU process sandbox does not allow access to local files so extend it before |
| attempting to open a file:// url, and revoke the extension when the file is closed. |
| |
| * GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp: |
| (WebKit::RemoteMediaPlayerManagerProxy::load): |
| * GPUProcess/media/RemoteMediaPlayerManagerProxy.h: |
| * GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in: |
| * GPUProcess/media/RemoteMediaPlayerProxy.cpp: |
| (WebKit::RemoteMediaPlayerProxy::invalidate): |
| (WebKit::RemoteMediaPlayerProxy::load): |
| * GPUProcess/media/RemoteMediaPlayerProxy.h: |
| * UIProcess/GPU/GPUProcessProxy.cpp: |
| (WebKit::GPUProcessProxy::openGPUProcessConnection): |
| * UIProcess/GPU/GPUProcessProxy.h: |
| * UIProcess/WebProcessProxy.cpp: |
| * UIProcess/WebProcessProxy.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/GPU/GPUProcessConnection.h: |
| (WebKit::GPUProcessConnection::setAuditToken): |
| (WebKit::GPUProcessConnection::auditToken const): |
| * WebProcess/GPU/GPUProcessConnectionInfo.h: |
| (WebKit::GPUProcessConnectionInfo::encode const): |
| (WebKit::GPUProcessConnectionInfo::decode): |
| * WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp: |
| (WebKit::MediaPlayerPrivateRemote::prepareForPlayback): |
| (WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote::load): |
| (WebKit::MediaPlayerPrivateRemote::cancelLoad): |
| (WebKit::MediaPlayerPrivateRemote::prepareToPlay): |
| (WebKit::MediaPlayerPrivateRemote::play): |
| (WebKit::MediaPlayerPrivateRemote::pause): |
| (WebKit::MediaPlayerPrivateRemote::setPreservesPitch): |
| (WebKit::MediaPlayerPrivateRemote::setVolumeDouble): |
| (WebKit::MediaPlayerPrivateRemote::setMuted): |
| (WebKit::MediaPlayerPrivateRemote::setPreload): |
| (WebKit::MediaPlayerPrivateRemote::setPrivateBrowsingMode): |
| (WebKit::MediaPlayerPrivateRemote::seek): |
| (WebKit::MediaPlayerPrivateRemote::seekWithTolerance): |
| (WebKit::MediaPlayerPrivateRemote::prepareForRendering): |
| (WebKit::MediaPlayerPrivateRemote::setSize): |
| (WebKit::MediaPlayerPrivateRemote::setVisible): |
| (WebKit::MediaPlayerPrivateRemote::setShouldMaintainAspectRatio): |
| (WebKit::MediaPlayerPrivateRemote::setVideoFullscreenFrame): |
| (WebKit::MediaPlayerPrivateRemote::setVideoFullscreenGravity): |
| (WebKit::MediaPlayerPrivateRemote::acceleratedRenderingStateChanged): |
| (WebKit::MediaPlayerPrivateRemote::setShouldDisableSleep): |
| (WebKit::MediaPlayerPrivateRemote::requestResource): |
| * WebProcess/GPU/media/MediaPlayerPrivateRemote.h: |
| * WebProcess/GPU/media/RemoteMediaPlayerMIMETypeCache.cpp: |
| (WebKit::RemoteMediaPlayerMIMETypeCache::canDecodeExtendedType): |
| (WebKit::RemoteMediaPlayerMIMETypeCache::supportsTypeAndCodecs): |
| (WebKit::RemoteMediaPlayerMIMETypeCache::initializeCache): |
| * WebProcess/GPU/media/RemoteMediaPlayerManager.cpp: |
| (WebKit::RemoteMediaPlayerManager::createRemoteMediaPlayer): |
| (WebKit::RemoteMediaPlayerManager::deleteRemoteMediaPlayer): |
| (WebKit::RemoteMediaPlayerManager::getSupportedTypes): |
| (WebKit::RemoteMediaPlayerManager::originsInMediaCache): |
| (WebKit::RemoteMediaPlayerManager::clearMediaCache): |
| (WebKit::RemoteMediaPlayerManager::clearMediaCacheForOrigins): |
| (WebKit::RemoteMediaPlayerManager::gpuProcessConnection const): |
| * WebProcess/GPU/media/RemoteMediaPlayerManager.h: |
| (WebKit::RemoteMediaPlayerManager::parentProcess const): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::ensureGPUProcessConnection): |
| |
| 2020-01-10 Jer Noble <jer.noble@apple.com> |
| |
| [iOS] Audio from non-frontmost tab continues when app is backgrounded |
| https://bugs.webkit.org/show_bug.cgi?id=206101 |
| <rdar://problem/58089916> |
| |
| Reviewed by Eric Carlson. |
| |
| Tests: WKWebViewPausePlayingAudioTests.InWindow |
| WKWebViewPausePlayingAudioTests.OutOfWindow |
| |
| The ApplicationStateTracker will only send notifications about application state to |
| WebPageProxies when those proxies' views are actually in-window. Add a separate application |
| state observer strictly for media which fires only when application state notifications are |
| received while the view is not in-window. |
| |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/ios/WKContentView.mm: |
| (-[WKContentView _commonInitializationWithProcessPool:configuration:]): |
| (-[WKContentView _applicationDidEnterBackground:]): |
| (-[WKContentView _applicationWillEnterForeground:]): |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::applicationDidEnterBackgroundForMedia): |
| (WebKit::WebPageProxy::applicationWillEnterForegroundForMedia): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::applicationDidEnterBackgroundForMedia): |
| (WebKit::WebPage::applicationWillEnterForegroundForMedia): |
| |
| 2020-01-10 Simon Fraser <simon.fraser@apple.com> |
| |
| Introduce ENABLE_META_VIEWPORT and use it in some WK2 code |
| https://bugs.webkit.org/show_bug.cgi?id=206091 |
| |
| Reviewed by Tim Horton. |
| |
| Use ENABLE(META_VIEWPORT) rather than PLATFORM(IOS_FAMILY) to enable various |
| bits of viewport-related code. |
| |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<ViewportArguments>::decode): |
| (IPC::ArgumentCoder<ViewportAttributes>::encode): |
| (IPC::ArgumentCoder<ViewportAttributes>::decode): |
| * Shared/WebCoreArgumentCoders.h: |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetIgnoresViewportScaleLimits): |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| * UIProcess/WebPageProxy.cpp: |
| * UIProcess/WebPageProxy.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::didCommitLoad): |
| * WebProcess/WebPage/WebPage.h: |
| (WebKit::WebPage::viewportConfiguration const): |
| |
| 2020-01-10 Jonathan Bedard <jbedard@apple.com> |
| |
| Python3: Support Source/WebKit/Scripts/webkit |
| https://bugs.webkit.org/show_bug.cgi?id=206078 |
| |
| Reviewed by Stephanie Lewis. |
| |
| Covered by existing unit tests. |
| |
| * Scripts/webkit/LegacyMessages-expected.h: Sort forward declarations. |
| * Scripts/webkit/Messages-expected.h: Ditto. |
| * Scripts/webkit/messages.py: Sort printed outputs. |
| |
| 2020-01-10 Brent Fulgham <bfulgham@apple.com> |
| |
| [iOS] Remove reporting for some well-understood sandbox rules |
| https://bugs.webkit.org/show_bug.cgi?id=206111 |
| |
| Reviewed by Per Arne Vollan. |
| |
| Remove sandbox rules designed to generate reporting about resource use for some well-understood |
| items that are frequently hit in WebKit use. |
| |
| No new tests. No change in behavior. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2020-01-10 Brent Fulgham <bfulgham@apple.com> |
| |
| [iOS] Remove used media-related mach services from the WebContent process sandbox |
| https://bugs.webkit.org/show_bug.cgi?id=206089 |
| <rdar://problem/58489478> |
| |
| Reviewed by Per Arne Vollan. |
| |
| After conducting multiple test passes and large-scale living-on testing with telemetry, we have |
| confirmed that the following XPC services are not used by the media logic in WebKit, and can be |
| removed: |
| |
| com.apple.coremedia.cpeprotector.xpc |
| com.apple.coremedia.figcontentkeysession.xpc |
| com.apple.coremedia.routingsessionmanager.xpc |
| com.apple.coremedia.sts |
| |
| Test: fast/sandbox/ios/sandbox-mach-lookup.html |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2020-01-10 Brent Fulgham <bfulgham@apple.com> |
| |
| [iOS] Remove 'com.apple.awdd' from the WebContent process sandbox |
| https://bugs.webkit.org/show_bug.cgi?id=206095 |
| <rdar://problem/56871147> |
| |
| Reviewed by Per Arne Vollan. |
| |
| We no longer need access to 'com.apple.awdd' in the iOS WebContent sandbox. We should remove |
| it from the sandbox. |
| |
| Test: fast/sandbox/ios/sandbox-mach-lookup.html |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2020-01-09 Per Arne Vollan <pvollan@apple.com> |
| |
| Map CSS value ID to system color in the UI process |
| https://bugs.webkit.org/show_bug.cgi?id=204314 |
| |
| Reviewed by Dean Jackson. |
| |
| Create mapping between CSS value IDs and system colors in the UI process and send to the WebContent process |
| on process startup. |
| |
| * 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): |
| |
| 2020-01-10 Mark Lam <mark.lam@apple.com> |
| |
| Gardening: simple build fix after r254119. |
| |
| Not reviewed. |
| |
| We should be using ASSERT_ENABLED instead of ASSERT_DSIABLED. |
| |
| * NetworkProcess/soup/NetworkDataTaskSoup.cpp: |
| (WebKit::NetworkDataTaskSoup::sendRequestCallback): |
| |
| 2020-01-10 Brent Fulgham <bfulgham@apple.com> |
| |
| [iOS] Remove 'com.apple.powerlog.plxpclogger.xpc' from the WebContent process sandbox |
| https://bugs.webkit.org/show_bug.cgi?id=206086 |
| <rdar://problem/57195681> |
| |
| Reviewed by Per Arne Vollan. |
| |
| Telemetry and testing have confirmed that we no longer need a mach connection to the |
| 'com.apple.powerlog.plxpclogger.xpc' service. We should remove it from the WebContent process sandbox. |
| |
| Test: fast/sandbox/ios/sandbox-mach-lookup.html |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2020-01-10 Brent Fulgham <bfulgham@apple.com> |
| |
| Remove 'com.apple.iohideventsystem' from the WebContent process sandbox |
| https://bugs.webkit.org/show_bug.cgi?id=206085 |
| <rdar://problem/36085204> |
| |
| Reviewed by Alex Christensen. |
| |
| After r253357 we no longer need access to 'com.apple.iohideventsystem', and should remove it from |
| the WebContent process sandbox. |
| |
| Test: fast/sandbox/ios/sandbox-mach-lookup.html |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb: |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2020-01-10 Brent Fulgham <bfulgham@apple.com> |
| |
| [iOS] Remove 'com.apple.cookied' from the WebContent process sandbox |
| https://bugs.webkit.org/show_bug.cgi?id=206083 |
| <rdar://problem/56963865> |
| |
| Reviewed by Per Arne Vollan. |
| |
| Telemetry and testing have confirmed that we no longer use the 'com.apple.cookied' mach connection |
| in the WebContent process on iOS. We should remove this from the WebContent process sandbox |
| |
| Tested by fast/sandbox/ios/sandbox-mach-lookup.html. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2020-01-10 Brent Fulgham <bfulgham@apple.com> |
| |
| Remove com.apple.locationd.registration from the WebContent sandbox |
| https://bugs.webkit.org/show_bug.cgi?id=206021 |
| <rdar://problem/58451384> |
| |
| Reviewed by Per Arne Vollan. |
| |
| Now that we generate a dynamic extension for 'com.apple.locationd.registration', we should remove |
| the blanket allow rule from the sandbox. |
| |
| Test: fast/sandbox/ios/sandbox-mach-lookup.html |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb: |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2020-01-10 Simon Fraser <simon.fraser@apple.com> |
| |
| Clean up -[WKWebView _didCommitLayerTree:] |
| https://bugs.webkit.org/show_bug.cgi?id=206049 |
| |
| Reviewed by Tim Horton. |
| |
| In preparation for sharing more of this code with macOS, factors parts of -[WKWebView _didCommitLayerTree:] |
| into new functions. |
| |
| Also pull out part of -[WKWebView _updateVisibleContentRects] into its own function. |
| |
| * UIProcess/API/ios/WKWebViewIOS.mm: |
| (-[WKWebView _trackTransactionCommit:]): |
| (-[WKWebView _updateScrollViewForTransaction:]): |
| (-[WKWebView _restoreScrollAndZoomStateForTransaction:]): |
| (-[WKWebView _didCommitLayerTree:]): |
| (-[WKWebView _allowsDoubleTapGestures]): |
| (-[WKWebView currentlyVisibleContentInsetsWithScale:obscuredInsets:]): |
| (-[WKWebView _updateVisibleContentRects]): |
| (areEssentiallyEqualAsFloat): Deleted. |
| |
| 2020-01-10 Simon Fraser <simon.fraser@apple.com> |
| |
| [macOS UI-side compositing] Introduce WKScrollView and WKContentView for macOS |
| https://bugs.webkit.org/show_bug.cgi?id=206042 |
| |
| Reviewed by Tim Horton. |
| |
| Add WKScrollViewMac and WKWebViewMac, with bare-bones implementations. WKScrollViewMac |
| has a WKScrollViewDelegate to make it more iOS-like, to avoid clients having to register |
| boundsDidChange notifications, and WKWebView on macOS becomes the delegate. |
| |
| These views are only created when UI-side compositing is enabled. |
| |
| * SourcesCocoa.txt: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| * UIProcess/API/mac/WKContentViewMac.h: Added. |
| * UIProcess/API/mac/WKContentViewMac.mm: Added. |
| (-[WKContentView initWithFrame:page:]): |
| (-[WKContentView isFlipped]): |
| (-[WKContentView _setAcceleratedCompositingRootLayer:]): |
| * UIProcess/API/mac/WKScrollViewMac.h: Added. |
| * UIProcess/API/mac/WKScrollViewMac.mm: Added. |
| (+[WKScrollView isCompatibleWithResponsiveScrolling]): |
| (-[WKScrollView initWithFrame:]): |
| (-[WKScrollView dealloc]): |
| (-[WKScrollView delegate]): |
| (-[WKScrollView setDelegate:]): |
| (-[WKScrollView contentOffset]): |
| (-[WKScrollView boundsDidChange:]): |
| (-[WKScrollView setContentInsets:]): |
| * UIProcess/API/mac/WKWebViewMac.h: |
| * UIProcess/API/mac/WKWebViewMac.mm: |
| (-[WKWebView scrollViewDidScroll:]): |
| (-[WKWebView scrollViewContentInsetsDidChange:]): |
| (-[WKWebView _setupScrollAndContentViews]): |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2020-01-10 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthn] Support authenticatorGetNextAssertion |
| https://bugs.webkit.org/show_bug.cgi?id=203346 |
| <rdar://problem/56558488> |
| |
| Reviewed by Brent Fulgham. |
| |
| This patch implements authenticatorGetNextAssertion as suggested by the spec: |
| https://fidoalliance.org/specs/fido-v2.0-ps-20190130/fido-client-to-authenticator-protocol-v2.0-ps-20190130.html#authenticatorGetNextAssertion |
| |
| The work flow is as follow: |
| 1) When a valid assertion response is received, check its numberOfCredentials member; |
| 2) When it is larger then 1, use authenticatorGetNextAssertion to get all remaining responses; |
| 3) Once all responses are gathered, ask UI clients to pick one to return. |
| |
| * UIProcess/API/APIWebAuthenticationPanelClient.h: |
| (API::WebAuthenticationPanelClient::selectAssertionResponses const): |
| * UIProcess/WebAuthentication/Authenticator.h: |
| * UIProcess/WebAuthentication/AuthenticatorManager.cpp: |
| (WebKit::AuthenticatorManager::selectAssertionResponses): |
| * UIProcess/WebAuthentication/AuthenticatorManager.h: |
| * UIProcess/WebAuthentication/Mock/MockHidConnection.cpp: |
| (WebKit::MockHidConnection::parseRequest): |
| * UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp: |
| (WebKit::CtapAuthenticator::continueGetAssertionAfterResponseReceived): |
| (WebKit::CtapAuthenticator::continueGetNextAssertionAfterResponseReceived): |
| * UIProcess/WebAuthentication/fido/CtapAuthenticator.h: |
| |
| 2020-01-10 Brent Fulgham <bfulgham@apple.com> |
| |
| Remove 'com.apple.nehelper' from the WebContent sandbox. |
| https://bugs.webkit.org/show_bug.cgi?id=206025 |
| <rdar://problem/58453508> |
| |
| Reviewed by Per Arne Vollan. |
| |
| Now that we generate a dynamic extension for 'com.apple.nehelper' and 'com.apple.nesessionmanager.content-filter', |
| we should remove the blanket allow rules from the sandbox. |
| |
| Tests: fast/sandbox/ios/sandbox-mach-lookup.html, fast/sandbox/mac/sandbox-mach-lookup.html |
| |
| * GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in: |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb: |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2020-01-10 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> |
| |
| Silence compiler warning |
| https://bugs.webkit.org/show_bug.cgi?id=206070 |
| |
| Reviewed by Chris Dumez. |
| |
| Silence compiler by using the proper formatter for log out. |
| |
| No functional changes. |
| |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::didReceiveMessage): |
| |
| 2020-01-10 Alex Christensen <achristensen@webkit.org> |
| |
| Expand _WKResourceLoadDelegate callbacks |
| https://bugs.webkit.org/show_bug.cgi?id=206037 |
| <rdar://problem/57132290> |
| |
| Reviewed by Youenn Fablet. |
| |
| Add 5 informative delegate callbacks at these times during the loading process: |
| 1. When a request is sent. |
| 2. When a redirect happens. |
| 3. When a challenge happens. |
| 4. When a response is received. |
| 5. When loading completes or fails. |
| |
| As mentioned in r254183 these callbacks are only called when a _WKResourceLoadDelegate is given to a WKWebView. |
| We add a new struct ResourceLoadInfo which will need to be expanded containing currently only the load identifier. |
| Covered by new API tests which verify the validity of the sent information. |
| |
| * NetworkProcess/NetworkLoad.cpp: |
| (WebKit::NetworkLoad::didReceiveChallenge): |
| * NetworkProcess/NetworkLoadClient.h: |
| (WebKit::NetworkLoadClient::didReceiveChallenge): |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::generateResourceLoadID): |
| (WebKit::NetworkResourceLoader::startNetworkLoad): |
| (WebKit::NetworkResourceLoader::resourceLoadInfo): |
| (WebKit::NetworkResourceLoader::didReceiveResponse): |
| (WebKit::NetworkResourceLoader::didFinishLoading): |
| (WebKit::NetworkResourceLoader::didFailLoading): |
| (WebKit::NetworkResourceLoader::didReceiveChallenge): |
| Add a way to send a message informing that a challenge happened with information gathered from the NetworkResourceLoader, |
| which previously was not informed of challenges because the challenges went directly from the NetworkLoad to the AuthenticationManager. |
| (WebKit::NetworkResourceLoader::willSendRedirectedRequest): |
| (WebKit::NetworkResourceLoader::continueWillSendRequest): |
| (WebKit::m_shouldCaptureExtraNetworkLoadMetrics): Deleted. |
| * NetworkProcess/NetworkResourceLoader.h: |
| * Shared/API/APIObject.h: |
| * Shared/Cocoa/APIObject.mm: |
| (API::Object::newObject): |
| * Shared/ResourceLoadInfo.h: Added. |
| (WebKit::ResourceLoadInfo::encode const): |
| (WebKit::ResourceLoadInfo::decode): |
| * SourcesCocoa.txt: |
| * UIProcess/API/APIResourceLoadClient.h: |
| * UIProcess/API/APIResourceLoadInfo.h: Added. |
| * UIProcess/API/Cocoa/_WKResourceLoadDelegate.h: |
| * UIProcess/API/Cocoa/_WKResourceLoadInfo.h: Added. |
| * UIProcess/API/Cocoa/_WKResourceLoadInfo.mm: Added. |
| (-[_WKResourceLoadInfo dealloc]): |
| (-[_WKResourceLoadInfo resourceLoadID]): |
| (-[_WKResourceLoadInfo _apiObject]): |
| * UIProcess/API/Cocoa/_WKResourceLoadInfoInternal.h: Added. |
| * UIProcess/Authentication/AuthenticationChallengeProxy.cpp: |
| (WebKit::AuthenticationChallengeProxy::AuthenticationChallengeProxy): |
| An AuthenticationChallengeProxy was only used for challenges that needed credentials, so they wrapped a CompletionHandler. |
| This new type of informative-only challenge will be given a null CompletionHandler, which means no action can be taken. |
| * UIProcess/Cocoa/ResourceLoadDelegate.h: |
| * UIProcess/Cocoa/ResourceLoadDelegate.mm: |
| (WebKit::ResourceLoadDelegate::setDelegate): |
| (WebKit::ResourceLoadDelegate::ResourceLoadClient::didSendRequest const): |
| (WebKit::ResourceLoadDelegate::ResourceLoadClient::didPerformHTTPRedirection const): |
| (WebKit::ResourceLoadDelegate::ResourceLoadClient::didReceiveChallenge const): |
| (WebKit::ResourceLoadDelegate::ResourceLoadClient::didReceiveResponse const): |
| (WebKit::ResourceLoadDelegate::ResourceLoadClient::didCompleteWithError const): |
| (WebKit::ResourceLoadDelegate::ResourceLoadClient::willSendRequest const): Deleted. |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::resourceLoadDidSendRequest): |
| (WebKit::NetworkProcessProxy::resourceLoadDidPerformHTTPRedirection): |
| (WebKit::NetworkProcessProxy::resourceLoadDidReceiveChallenge): |
| (WebKit::NetworkProcessProxy::resourceLoadDidReceiveResponse): |
| (WebKit::NetworkProcessProxy::resourceLoadDidCompleteWithError): |
| (WebKit::NetworkProcessProxy::pageWillSendRequest): Deleted. |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| * UIProcess/WebPageProxy.cpp: |
| * UIProcess/WebPageProxy.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::loadResourceSynchronously): |
| (WebKit::WebLoaderStrategy::startPingLoad): |
| * WebProcess/Network/WebResourceLoader.cpp: |
| (WebKit::WebResourceLoader::willSendRequest): |
| |
| 2020-01-10 Alex Christensen <achristensen@webkit.org> |
| |
| Add SPI to enable TLS 1.0 and 1.1 in WKWebViews |
| https://bugs.webkit.org/show_bug.cgi?id=206046 |
| |
| Reviewed by Youenn Fablet. |
| |
| This is needed for <rdar://problem/58464912> |
| Covered by API tests. |
| |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h: |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm: |
| (-[_WKWebsiteDataStoreConfiguration legacyTLSEnabled]): |
| (-[_WKWebsiteDataStoreConfiguration setLegacyTLSEnabled:]): |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp: |
| (WebKit::WebsiteDataStoreConfiguration::copy const): |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h: |
| (WebKit::WebsiteDataStoreConfiguration::legacyTLSEnabled const): |
| (WebKit::WebsiteDataStoreConfiguration::setLegacyTLSEnabled): |
| |
| 2020-01-10 Brent Fulgham <bfulgham@apple.com> |
| |
| [macOS] Issue sandbox extension to "com.apple.nesessionmanager" prior to 10.15 |
| https://bugs.webkit.org/show_bug.cgi?id=206031 |
| <rdar://problem/58455467> |
| |
| Reviewed by Per Arne Vollan. |
| |
| The mach name of 'com.apple.nesessionmanager' changed between macOS 10.14 and 10.15. |
| We should continue to issue the old name when building for older operating systems." |
| |
| Covered by existing tests. |
| |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): |
| |
| 2020-01-10 Alex Christensen <achristensen@webkit.org> |
| |
| Remove WebsiteDataStore::setCacheStorageDirectory which has been replaced by WebsiteDataStoreConfiguration::setCacheStorageDirectory |
| https://bugs.webkit.org/show_bug.cgi?id=205841 |
| |
| Reviewed by Youenn Fablet. |
| |
| * UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.cpp: |
| (WKWebsiteDataStoreConfigurationCopyCacheStorageDirectory): |
| (WKWebsiteDataStoreConfigurationSetCacheStorageDirectory): |
| * UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.h: |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _cacheStorageDirectory]): Deleted. |
| (-[WKWebsiteDataStore _setCacheStorageDirectory:]): Deleted. |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::retrieveCacheStorageParameters): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| (WebKit::WebsiteDataStore::cacheStorageDirectory const): |
| (WebKit::WebsiteDataStore::setCacheStorageDirectory): Deleted. |
| |
| 2020-01-10 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Update OptionsGTK.cmake and NEWS for 2.27.4 release |
| |
| * gtk/NEWS: Add release notes for 2.27.4. |
| |
| 2020-01-10 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Fix GTK and WPE API docs generation |
| |
| Fix the name of the new class. WebKitInputMethodFilter -> WebKitInputMethodContext. |
| |
| * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: |
| * UIProcess/API/wpe/docs/wpe-docs.sgml: |
| |
| 2020-01-10 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Automation: resolveChildFrameWithNodeHandle should return NodeNotFound when node doesn't exist |
| https://bugs.webkit.org/show_bug.cgi?id=205993 |
| |
| Reviewed by Brian Burg. |
| |
| According to the spec: |
| |
| "If element is stale, return error with error code stale element reference." |
| https://w3c.github.io/webdriver/#switch-to-frame |
| |
| Fixes: imported/w3c/webdriver/tests/switch_to_frame/switch.py::test_frame_id_webelement_stale_reference |
| |
| * WebProcess/Automation/WebAutomationSessionProxy.cpp: |
| (WebKit::WebAutomationSessionProxy::resolveChildFrameWithNodeHandle): |
| |
| 2020-01-10 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Automation: evaluateJavaScriptFunction should use Promises |
| https://bugs.webkit.org/show_bug.cgi?id=204151 |
| |
| Reviewed by Brian Burg. |
| |
| Make the function to run scripts async and handle the result as a promise. To implement the script timeout we |
| use another promise that starts the timer and then we run a Promise.race() with both promises. To simplify the |
| results reporting, all exceptions (including timeout errors that are now handled as exceptions) are now handled |
| as errors passed to the resultCallback. The boolean parameter has been removed, we can simply check the type of |
| the value received because results are always strings and errors are always exception objects. |
| |
| * WebProcess/Automation/WebAutomationSessionProxy.cpp: |
| (WebKit::evaluateJavaScriptCallback): Handle the script result, including all possible errors now (not only timeouts). |
| (WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction): Any exception running the script should be an |
| internal error now. The code to handle error has been moved to evaluateJavaScriptCallback(). |
| * WebProcess/Automation/WebAutomationSessionProxy.js: |
| (WebKitAutomation.AutomationSessionProxy.prototype.evaluateJavaScriptFunction): Call _execute and handle the |
| promise result to call resultCallback wityh either the result or the error. |
| (WebKitAutomation.AutomationSessionProxy.prototype._execute): Make the function to run the script async and |
| handle the result as a promise. |
| |
| 2020-01-10 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Automation: scripts are executed in the wrong js context after a history navigation |
| https://bugs.webkit.org/show_bug.cgi?id=204880 |
| <rdar://problem/58413615> |
| |
| Reviewed by Brian Burg. |
| |
| After a history navigation we use the script object from the previous frame js context because |
| didClearWindowObjectForFrame() is not called in that case. We are caching the script object for every frame ID, |
| and after a history navigation the frame ID is the same, but the frame js context isn't. That also means we might |
| be leaking the script objects in those cases, because we end up calling JSValueUnprotect with the wrong |
| context. It would be easier to set the script object as a property of the global object and let JSC handle the |
| lifetime. Instead of caching the script object and protect/unprotect it, we just check if the global object of |
| the current js context has the property or not to get or create it. We use a private symbol as the key of the |
| global object property to ensure it's not visible. |
| |
| * WebProcess/Automation/WebAutomationSessionProxy.cpp: |
| (WebKit::WebAutomationSessionProxy::WebAutomationSessionProxy): Initialize m_scriptObjectIdentifier. |
| (WebKit::WebAutomationSessionProxy::scriptObject): Helper function to get the script object for the given |
| JavaScript context. |
| (WebKit::WebAutomationSessionProxy::setScriptObject): Helper function to set the script object for the given |
| JavaScript context. |
| (WebKit::WebAutomationSessionProxy::scriptObjectForFrame): Get or create the script object. |
| (WebKit::WebAutomationSessionProxy::elementForNodeHandle): Get the script object from global object. |
| (WebKit::WebAutomationSessionProxy::didClearWindowObjectForFrame): Remove the code to unprotect script objects |
| of the frame. |
| * WebProcess/Automation/WebAutomationSessionProxy.h: Add m_scriptObjectIdentifier and remove m_webFrameScriptObjectMap. |
| |
| 2020-01-09 Ross Kirsling <ross.kirsling@sony.com> |
| |
| REGRESSION(r253868): Socket-based remote inspector cannot inspect any target |
| https://bugs.webkit.org/show_bug.cgi?id=206045 |
| |
| Reviewed by Don Olmstead. |
| |
| Revert part of patch, ensuring Target struct stays consistent with socket inspector's messaging protocol. |
| |
| * UIProcess/socket/RemoteInspectorClient.cpp: |
| (WebKit::RemoteInspectorClient::setTargetList): |
| (WebKit::debuggableTypeToString): Deleted. |
| * UIProcess/socket/RemoteInspectorClient.h: |
| * UIProcess/socket/RemoteInspectorProtocolHandler.cpp: |
| (WebKit::RemoteInspectorProtocolHandler::targetListChanged): |
| (WebKit::debuggableTypeToString): Deleted. |
| |
| 2020-01-09 Tim Horton <timothy_horton@apple.com> |
| |
| Adopt TARGET_OS_MACCATALYST in more places |
| https://bugs.webkit.org/show_bug.cgi?id=206040 |
| <rdar://problem/57127108> |
| |
| Reviewed by Simon Fraser. |
| |
| * Shared/API/Cocoa/WebKit.h: |
| |
| 2020-01-09 Simon Fraser <simon.fraser@apple.com> |
| |
| Clean up -[WKWebView _initializeWithConfiguration:] |
| https://bugs.webkit.org/show_bug.cgi?id=206039 |
| |
| Reviewed by Tim Horton. |
| |
| -[WKWebView _initializeWithConfiguration:] is full of platform #ifdefs so needs |
| cleaning up before adding more code. Factor out WKScrollView and view hookup, |
| pageConfiguration setup, and notification registration. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| (-[WKWebView _setupPageConfiguration:]): |
| * UIProcess/API/ios/WKWebViewIOS.h: |
| * UIProcess/API/ios/WKWebViewIOS.mm: |
| (-[WKWebView _setupScrollAndContentViews]): |
| (-[WKWebView _registerForNotifications]): |
| |
| 2020-01-09 John Wilander <wilander@apple.com> |
| |
| Check the existence of the optional m_sessionID before using it in WebProcess::setResourceLoadStatisticsEnabled() |
| https://bugs.webkit.org/show_bug.cgi?id=206035 |
| <rdar://problem/58455306> |
| |
| Reviewed by Brent Fulgham. |
| |
| No new tests. |
| |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::setResourceLoadStatisticsEnabled): |
| Added a check that m_sessionID exists. |
| |
| 2020-01-09 Tim Horton <timothy_horton@apple.com> |
| |
| Install WebKit framework symlink for more iOS-derived platforms |
| https://bugs.webkit.org/show_bug.cgi?id=206030 |
| |
| Reviewed by Andy Estes. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2020-01-09 Brent Fulgham <bfulgham@apple.com> |
| |
| Remove AGXCompilerService access from the WebContent sandbox |
| https://bugs.webkit.org/show_bug.cgi?id=206020 |
| <rdar://problem/58451395> |
| |
| Reviewed by Per Arne Vollan. |
| |
| Now that we generate a dynamic extension for 'com.apple.AGXCompilerService', we should remove the |
| blanket allow rule from the sandbox. |
| |
| Covered by existing tests. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2020-01-09 Simon Fraser <simon.fraser@apple.com> |
| |
| Use HAVE(TOUCH_BAR) instead of PLATFORM(COCOA) in more places |
| https://bugs.webkit.org/show_bug.cgi?id=205975 |
| |
| Reviewed by Wenson Hsieh. |
| |
| Protect Touch Bar-related code with HAVE(TOUCH_BAR) instead of PLATFORM(COCOA). |
| |
| * Shared/TouchBarMenuData.cpp: |
| * Shared/TouchBarMenuData.h: |
| * Shared/TouchBarMenuItemData.cpp: |
| * Shared/TouchBarMenuItemData.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::forceRequestCandidatesForTesting): |
| (WebKit::WebViewImpl::setEditableElementIsFocused): |
| * UIProcess/WebPageProxy.cpp: |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::didStartPageTransition): |
| (WebKit::WebPage::didChangeSelectionOrOverflowScrollPosition): |
| (WebKit::WebPage::didInsertMenuElement): |
| (WebKit::WebPage::didRemoveMenuElement): |
| (WebKit::WebPage::didInsertMenuItemElement): |
| (WebKit::WebPage::didRemoveMenuItemElement): |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2020-01-09 Simon Fraser <simon.fraser@apple.com> |
| |
| Add ENABLE_UI_SIDE_COMPOSITING and use it in a few places |
| https://bugs.webkit.org/show_bug.cgi?id=205982 |
| |
| Reviewed by Jon Lee. |
| |
| All Remote* things should get wrapped in ENABLE(UI_SIDE_COMPOSITING) |
| if other platforms build the files, so do some of that. VisibleContentRect* |
| and ViewUpdateDispatcher* stuff is also UI-side compositing only. |
| |
| * Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp: |
| * Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.h: |
| (WebKit::RemoteScrollingCoordinatorTransaction::scrollingStateTree): |
| * Shared/VisibleContentRectUpdateInfo.cpp: |
| * Shared/VisibleContentRectUpdateInfo.h: |
| * UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp: |
| * UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h: |
| * UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp: |
| (WebKit::RemoteScrollingTree::handleMouseEvent): |
| * UIProcess/RemoteLayerTree/RemoteScrollingTree.h: |
| * UIProcess/WebPageProxy.h: |
| * WebProcess/WebPage/ViewUpdateDispatcher.cpp: |
| * WebProcess/WebPage/ViewUpdateDispatcher.h: |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2020-01-09 Tim Horton <timothy_horton@apple.com> |
| |
| Fix a tiny logging mistake in launchProcess |
| https://bugs.webkit.org/show_bug.cgi?id=206026 |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::launchProcess): |
| |
| 2020-01-09 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Add timing information to WebPageProxy::logFrameNavigation() to detect delayed client-side redirects |
| https://bugs.webkit.org/show_bug.cgi?id=205522 |
| <rdar://problem/58125759> |
| |
| Reviewed by Chris Dumez. |
| |
| The purpose of this patch is to capture navigations that happen programmatically |
| after the document has loaded. These are delayed redirects and should be counted |
| as redirects in ITP. |
| |
| To achieve this, a timestamp is captured in |
| WebPageProxy::didFinishDocumentLoadForFrame() to be able to calculate how much time |
| has passed since that timestamp in the IPC sent from |
| WebPageProxy::logFrameNavigation(). The IPC also gets information on whether |
| userInitiatedActivity exists so that ITP can decide whether to treat the navigation |
| as triggered by the user or not. |
| |
| A new test was added and existing test expectations were updated. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: |
| (WebKit::ResourceLoadStatisticsDatabaseStore::logFrameNavigation): |
| Now takes the extra parameters delayAfterMainFrameDocumentLoad |
| and wasPotentiallyInitiatedByUser. |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h: |
| * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ResourceLoadStatisticsMemoryStore::logFrameNavigation): |
| Now takes the extra parameters delayAfterMainFrameDocumentLoad |
| and wasPotentiallyInitiatedByUser. |
| * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h: |
| * NetworkProcess/Classifier/ResourceLoadStatisticsStore.h: |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::logFrameNavigation): |
| Now takes the extra parameters delayAfterMainFrameDocumentLoad |
| and wasPotentiallyInitiatedByUser. |
| The deleted WebResourceLoadStatisticsStore::logFrameNavigation() was dead code. |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h: |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::logFrameNavigation): |
| Now takes the extra parameters delayAfterMainFrameDocumentLoad |
| and wasPotentiallyInitiatedByUser. |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetShouldSubmitTelemetry:]): Deleted. |
| Dead code. |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didFinishDocumentLoadForFrame): |
| Now captures a timestamp. |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| Removed dead code. |
| (WebKit::WebPageProxy::logFrameNavigation): |
| Now sends the diff between now and the timestamp captured in |
| WebPageProxy::didFinishDocumentLoadForFrame(). |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::platformInitialize): |
| Removed dead code. |
| (WebKit::WebsiteDataStore::platformDestroy): |
| Removed dead code. |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| (WebKit::WebsiteDataStore::resourceLoadStatistics const): Deleted. |
| Dead code. |
| |
| 2020-01-09 Andres Gonzalez <andresg_22@apple.com> |
| |
| WKAccessibilityWebPageObject should use Accessibility::retrieveValueFromMainThread. |
| https://bugs.webkit.org/show_bug.cgi?id=206009 |
| |
| Reviewed by Chris Fleizach. |
| |
| - WKAccessibilityWebPageObject now uses Accessibility::retrieveValueFromMainThread, |
| which is consistent with WebAccessibilityObjectWrapper. |
| - It also uses a captured protectedSelf to ensure the object is alive |
| when the lambda is invoked on the main thread. |
| - Added nullity check for m_page in accessibilityAttributeSizeValue, |
| which is a potential crasher in the multithreaded mode. |
| |
| * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm: |
| (-[WKAccessibilityWebPageObject ALLOW_DEPRECATED_IMPLEMENTATIONS_END]): |
| (-[WKAccessibilityWebPageObject convertScreenPointToRootView:]): |
| (-[WKAccessibilityWebPageObject accessibilityAttributeSizeValue]): |
| (-[WKAccessibilityWebPageObject accessibilityAttributePositionValue]): |
| (-[WKAccessibilityWebPageObject accessibilityDataDetectorValue:point:]): |
| (-[WKAccessibilityWebPageObject accessibilityHitTest:]): |
| (retrieveAccessibilityValueFromMainThread): Not needed since it uses now the one in Accessibility nasespace. |
| |
| 2020-01-09 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Flip experimental website data removal setting from an enable to a disable |
| https://bugs.webkit.org/show_bug.cgi?id=205966 |
| <rdar://problem/58425000> |
| |
| Reviewed by Brent Fulgham. |
| |
| To get default on behavior, experimental features in the network process need to be |
| turned from enable flags to disable flags. This patch does that for the experimental |
| website data removal flag. |
| |
| This change also aligns the init values of the setting to match the default. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsStore.h: |
| * NetworkProcess/NetworkSession.h: |
| * NetworkProcess/NetworkSessionCreationParameters.h: |
| * Shared/WebPreferences.yaml: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| |
| 2020-01-09 Megan Gardner <megan_gardner@apple.com> |
| |
| Set the title for images so it will be correctly displayed in UIContextMenus |
| https://bugs.webkit.org/show_bug.cgi?id=205980 |
| <rdar://problem/57701988> |
| |
| Reviewed by Dean Jackson. |
| |
| Need to set the title text for images. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView continueContextMenuInteraction:]): |
| |
| 2020-01-09 Peng Liu <peng.liu6@apple.com> |
| |
| Fullscreen videos do not enter PiP in first tap |
| https://bugs.webkit.org/show_bug.cgi?id=205986 |
| |
| Reviewed by Eric Carlson. |
| |
| This patch essentially reverts the fix for webkit.org/b/204461. |
| The fix for webkit.org/b/204461 depends on a fix in AVKit along |
| with a corresponding update in WebKit (webkit.org/b/204979). |
| We will need to reapply the fix for webkit.org/b/204461 after they are landed. |
| |
| * WebProcess/cocoa/VideoFullscreenManager.mm: |
| (WebKit::VideoFullscreenManager::enterVideoFullscreenForVideoElement): |
| (WebKit::VideoFullscreenManager::exitVideoFullscreenForVideoElement): |
| |
| 2020-01-09 Kate Cheney <katherine_cheney@apple.com> |
| |
| ITP API classes need WK_CLASS_AVAILABLE tags |
| https://bugs.webkit.org/show_bug.cgi?id=205969 |
| <rdar://problem/58427147> |
| |
| Reviewed by Dean Jackson. |
| |
| * UIProcess/API/Cocoa/_WKResourceLoadStatisticsFirstParty.h: |
| * UIProcess/API/Cocoa/_WKResourceLoadStatisticsThirdParty.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| This updates the header file targets from Project to Private. |
| |
| 2020-01-09 youenn fablet <youenn@apple.com> |
| |
| REGRESSION: [ Mac wk2 ] fast/mediastream/captureInGPUProcess.html is a flaky failure |
| https://bugs.webkit.org/show_bug.cgi?id=205873 |
| <rdar://problem/58380638> |
| |
| Reviewed by Eric Carlson. |
| |
| GPUProcess and UIProcess were sometimes getting out of sync with regards to using mock devices or real capture devices. |
| This ended up in GPUProcess trying to find mock devices based on real device IDs. |
| Fix this issue by storing this bool value in GPUProcessProxy and send IPC to GPUProcess whenver this value is changed. |
| Update GPUProcessProxy value whenever UserMediaPermissionRequestManagerProxy is asked to sync this value. |
| |
| * UIProcess/GPU/GPUProcessProxy.cpp: |
| (WebKit::GPUProcessProxy::singleton): |
| (WebKit::GPUProcessProxy::GPUProcessProxy): |
| (WebKit::GPUProcessProxy::setUseMockCaptureDevices): |
| * UIProcess/GPU/GPUProcessProxy.h: |
| * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: |
| (WebKit::UserMediaPermissionRequestManagerProxy::syncWithWebCorePrefs const): |
| |
| 2020-01-09 David Kilzer <ddkilzer@apple.com> |
| |
| WebKitTestRunner leaks objects in a top-level autoreleasePool that's never cleared |
| <https://webkit.org/b/205950> |
| <rdar://problem/50987831> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UIProcess/mac/WebPreferencesMac.mm: |
| (WebKit::WebPreferences::platformInitializeStore): |
| - Add an @autoreleasepool block around the contents of |
| this method since it generates numerous autoreleased |
| objects when run. |
| |
| 2020-01-08 Yusuke Suzuki <ysuzuki@apple.com> |
| |
| Reduce binary size by purging C++ type information in Objective-C fields and parameters |
| https://bugs.webkit.org/show_bug.cgi?id=205905 |
| |
| Reviewed by Saam Barati. |
| |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (-[WKNetworkSessionDelegate initWithNetworkSession:wrapper:withCredentials:]): |
| * Shared/API/Cocoa/WKBrowsingContextHandle.mm: |
| (-[WKBrowsingContextHandle _initWithPageProxy:]): |
| (-[WKBrowsingContextHandle _initWithPage:]): |
| * Shared/API/Cocoa/WKBrowsingContextHandleInternal.h: |
| * Shared/API/Cocoa/_WKRemoteObjectRegistry.mm: |
| (-[_WKRemoteObjectRegistry _initWithWebPage:]): |
| (-[_WKRemoteObjectRegistry _initWithWebPageProxy:]): |
| * Shared/API/Cocoa/_WKRemoteObjectRegistryInternal.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _page]): |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _getAllStorageAccessEntriesFor:completionHandler:]): |
| * UIProcess/API/Cocoa/_WKThumbnailView.mm: |
| * UIProcess/API/mac/WKView.mm: |
| (-[WKView initWithFrame:processPool:configuration:]): |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::WebViewImpl): |
| (WebKit::WebViewImpl::setLayoutMode): |
| (WebKit::WebViewImpl::fullScreenWindowController): |
| (WebKit::WebViewImpl::remoteObjectRegistry): |
| * UIProcess/ios/WKApplicationStateTrackingView.mm: |
| (-[WKApplicationStateTrackingView willMoveToWindow:]): |
| (-[WKApplicationStateTrackingView didMoveToWindow]): |
| * UIProcess/ios/WKContentView.h: |
| * UIProcess/ios/WKContentView.mm: |
| (-[WKContentView initWithFrame:processPool:configuration:webView:]): |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.mm: |
| (-[WKFullScreenViewController videoControlsManagerDidChange]): |
| (-[WKFullScreenViewController _manager]): |
| (-[WKFullScreenViewController _togglePiPAction:]): |
| (-[WKFullScreenViewController _showPhishingAlert]): |
| * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm: |
| (WebKit::WKWebViewState::applyTo): |
| (WebKit::WKWebViewState::store): |
| (-[WKFullScreenWindowController enterFullScreen]): |
| (-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]): |
| (-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:finalFrame:]): |
| (-[WKFullScreenWindowController _completedExitFullScreen]): |
| (-[WKFullScreenWindowController _exitFullscreenImmediately]): |
| (-[WKFullScreenWindowController _manager]): |
| * UIProcess/mac/WKFullScreenWindowController.h: |
| * UIProcess/mac/WKFullScreenWindowController.mm: |
| (-[WKFullScreenWindowController initWithWindow:webView:page:]): |
| * UIProcess/mac/WKImmediateActionController.h: |
| * UIProcess/mac/WKImmediateActionController.mm: |
| (-[WKImmediateActionController initWithPage:view:viewImpl:recognizer:]): |
| (-[WKImmediateActionController _animationControllerForDataDetectedText]): |
| (-[WKImmediateActionController _animationControllerForDataDetectedLink]): |
| * UIProcess/mac/WKInspectorViewController.h: |
| * UIProcess/mac/WKInspectorViewController.mm: |
| (-[WKInspectorViewController initWithInspectedPage:]): |
| * UIProcess/mac/WKTextFinderClient.h: |
| * UIProcess/mac/WKTextFinderClient.mm: |
| (-[WKTextFinderClient initWithPage:view:usePlatformFindUI:]): |
| * UIProcess/mac/WKViewLayoutStrategy.h: |
| * 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:]): |
| * WebProcess/InjectedBundle/API/mac/WKDOMDocument.mm: |
| (-[WKDOMDocumentParserYieldToken initWithDocument:]): |
| * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.h: |
| * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm: |
| (-[WKAccessibilityWebPageObjectBase axObjectCache]): |
| (-[WKAccessibilityWebPageObjectBase setWebPage:]): |
| |
| 2020-01-08 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Flip experimental cookie blocking setting from an enable to a disable |
| https://bugs.webkit.org/show_bug.cgi?id=205963 |
| <rdar://problem/58424136> |
| |
| Reviewed by Brent Fulgham. |
| |
| To get default on behavior, experimental features in the network process need to be |
| turned from enable flags to disable flags. This patch does that for the experimental |
| cookie blocking flag. |
| |
| This change also aligns the init values of the setting to match the default. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsStore.h: |
| * NetworkProcess/NetworkSession.h: |
| * NetworkProcess/NetworkSessionCreationParameters.h: |
| * Shared/WebPreferences.yaml: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| |
| 2020-01-08 Brent Fulgham <bfulgham@apple.com> |
| |
| Allow some sysctl-read calls needed by WebRTC |
| https://bugs.webkit.org/show_bug.cgi?id=205946 |
| <rdar://problem/58416475> |
| |
| Reviewed by Per Arne Vollan. |
| |
| This patch allows some sysctl-read calls that are needed when running WebRTC tests. |
| It also removes telemetry and logging from a UIKit class that was confirmed to be |
| needed by Performance and PowerLogging code. |
| |
| * 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: |
| |
| 2020-01-08 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, fix some IOS_FAMILY builds after r254210. |
| |
| * Shared/AuxiliaryProcess.h: |
| |
| 2020-01-08 Dean Jackson <dino@apple.com> |
| |
| [WebGL] More GraphicsContext3D to GraphicsContextGL renaming |
| https://bugs.webkit.org/show_bug.cgi?id=205949 |
| <rdar://problem/58416989> |
| |
| Reviewed by Antoine Quint. |
| |
| * WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp: |
| (WebKit::MediaPlayerPrivateRemote::copyVideoTextureToPlatformTexture): |
| * WebProcess/GPU/media/MediaPlayerPrivateRemote.h: |
| |
| 2020-01-08 Simon Fraser <simon.fraser@apple.com> |
| |
| Remove NATIVE_MOUSE_EVENT_HANDLER macros |
| https://bugs.webkit.org/show_bug.cgi?id=205897 |
| |
| Reviewed by Tim Horton. |
| |
| Remove the NATIVE_MOUSE_EVENT_HANDLER and NATIVE_MOUSE_EVENT_HANDLER_INTERNAL which are almost identical, |
| calling a couple of shared functions instead. The only reason the eventName was used was for logging, so just |
| log the -[NSEvent type] instead. |
| |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::operator<<): |
| (WebKit::WebViewImpl::nativeMouseEventHandler): |
| (WebKit::WebViewImpl::nativeMouseEventHandlerInternal): |
| (WebKit::WebViewImpl::mouseEntered): |
| (WebKit::WebViewImpl::mouseExited): |
| (WebKit::WebViewImpl::otherMouseDown): |
| (WebKit::WebViewImpl::otherMouseDragged): |
| (WebKit::WebViewImpl::otherMouseUp): |
| (WebKit::WebViewImpl::rightMouseDown): |
| (WebKit::WebViewImpl::rightMouseDragged): |
| (WebKit::WebViewImpl::rightMouseUp): |
| (WebKit::WebViewImpl::mouseMovedInternal): |
| (WebKit::WebViewImpl::mouseDownInternal): |
| (WebKit::WebViewImpl::mouseUpInternal): |
| (WebKit::WebViewImpl::mouseDraggedInternal): |
| |
| 2020-01-08 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Remove an unused variable in WebCoreArgumentCodersCocoa.mm after r254202 |
| https://bugs.webkit.org/show_bug.cgi?id=205939 |
| |
| Reviewed by Tim Horton. |
| |
| Remove an unused temporary variable that was only used for debugging. |
| |
| * Shared/Cocoa/WebCoreArgumentCodersCocoa.mm: |
| (IPC::ArgumentCoder<FontHandle>::decodePlatformData): |
| |
| 2020-01-08 Chris Dumez <cdumez@apple.com> |
| |
| Move UIProcess DependencyProcessAssertion from WebContent to AuxiliaryProcess |
| https://bugs.webkit.org/show_bug.cgi?id=205836 |
| |
| Reviewed by Alex Christensen. |
| |
| Move UIProcess DependencyProcessAssertion from WebContent to AuxiliaryProcess, so that other auxiliary |
| processes (Network Process, GPU Process) also benefit from it. |
| |
| * Shared/AuxiliaryProcess.cpp: |
| (WebKit::AuxiliaryProcess::initializeConnection): |
| * Shared/AuxiliaryProcess.h: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeConnection): |
| * WebProcess/WebProcess.h: |
| |
| 2020-01-08 Brent Fulgham <bfulgham@apple.com> |
| |
| Network process sandboxes should not include 'common.sb' or 'system.sb' |
| https://bugs.webkit.org/show_bug.cgi?id=205521 |
| <rdar://problem/58095870> |
| |
| Reviewed by Per Arne Vollan. |
| |
| This patch replaces the 'include' with a copy/paste of the contents of the relevant |
| sandbox include file. I removed definitions that were not referenced in the existing |
| Network sandbox, but did not otherwise edit the contents. There are duplicates and |
| redundancies after this patch, which I will remove as a follow-up step once we confirm |
| that this has no regressions. |
| |
| I also updated the sandbox to generate telemetry for some mach connections that we think |
| are unneeded, or that should be targeted for removal. |
| |
| No new tests. There should be no change in behavior. |
| |
| * NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in: |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb: |
| |
| 2020-01-08 David Kilzer <ddkilzer@apple.com> |
| |
| IPC::Connection::sendMessage() should use CRASH_WITH_INFO() |
| <https://webkit.org/b/205419> |
| <rdar://problem/58058661> |
| |
| Reviewed by Mark Lam. |
| |
| * Platform/IPC/cocoa/ConnectionCocoa.mm: |
| (IPC::Connection::sendMessage): |
| - Switch from CRASH() to CRASH_WITH_INFO(). |
| |
| 2020-01-08 Truitt Savell <tsavell@apple.com> |
| |
| Unreviewed, rolling out r254174. |
| |
| Broke 80 tests on Catalina |
| |
| Reverted changeset: |
| |
| "Network process sandboxes should not include 'common.sb' or |
| 'system.sb'" |
| https://bugs.webkit.org/show_bug.cgi?id=205521 |
| https://trac.webkit.org/changeset/254174 |
| |
| 2020-01-08 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Add support for encoding WebCore::Font over IPC for DisplayList::DrawGlyphs |
| https://bugs.webkit.org/show_bug.cgi?id=205830 |
| <rdar://problem/57347719> |
| |
| Reviewed by Dean Jackson. |
| |
| Add basic support for encoding and decoding a FontHandle. |
| |
| * Shared/Cocoa/WebCoreArgumentCodersCocoa.mm: |
| (IPC::ArgumentCoder<FontHandle>::encodePlatformData): |
| (IPC::ArgumentCoder<FontHandle>::decodePlatformData): |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<FontHandle>::encode): |
| (IPC::ArgumentCoder<FontHandle>::decode): |
| |
| When encoding a Font on Cocoa platforms, send across the font face data (if present); otherwise, fall back to |
| sending the font descriptor for the UIFont or NSFont (as is the case for installed fonts). |
| |
| * Shared/WebCoreArgumentCoders.h: |
| * Shared/curl/WebCoreArgumentCodersCurl.cpp: |
| (IPC::ArgumentCoder<FontHandle>::encodePlatformData): |
| (IPC::ArgumentCoder<FontHandle>::decodePlatformData): |
| * Shared/soup/WebCoreArgumentCodersSoup.cpp: |
| (IPC::ArgumentCoder<FontHandle>::encodePlatformData): |
| (IPC::ArgumentCoder<FontHandle>::decodePlatformData): |
| |
| 2020-01-08 Milan Crha <mcrha@redhat.com> |
| |
| [GTK] Editing: Allow line breaks in lists |
| https://bugs.webkit.org/show_bug.cgi?id=205913 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * UIProcess/gtk/KeyBindingTranslator.cpp: |
| Treat Shift+Enter as "InsertLineBreak", instead of "InsertNewLine". |
| |
| 2020-01-08 youenn fablet <youenn@apple.com> |
| |
| Implement MediaRecorder backend in GPUProcess |
| https://bugs.webkit.org/show_bug.cgi?id=205802 |
| |
| Reviewed by Eric Carlson. |
| |
| Add support for sending audio/video tracks to record from WebProcess to GPUProcess. |
| Add a MediaRecorderPrivate implementation that supports sending one audio track and/or one video track to GPUProcess |
| and stopping/fetching data from the remote recorder in GPUProcess. |
| |
| In GPUProcess, implement the remote recorder using the existing WebCore recorder writer. |
| |
| * CMakeLists.txt: |
| * DerivedSources-input.xcfilelist: |
| * DerivedSources-output.xcfilelist: |
| * DerivedSources.make: |
| * GPUProcess/GPUConnectionToWebProcess.cpp: |
| (WebKit::GPUConnectionToWebProcess::userMediaCaptureManagerProxy): |
| (WebKit::GPUConnectionToWebProcess::mediaRecorderManager): |
| (WebKit::GPUConnectionToWebProcess::didReceiveMessage): |
| * GPUProcess/GPUConnectionToWebProcess.h: |
| * GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in: |
| * GPUProcess/webrtc/RemoteMediaRecorder.cpp: Added. |
| (WebKit::RemoteMediaRecorder::create): |
| (WebKit::RemoteMediaRecorder::RemoteMediaRecorder): |
| (WebKit::RemoteMediaRecorder::~RemoteMediaRecorder): |
| (WebKit::RemoteMediaRecorder::storage): |
| (WebKit::RemoteMediaRecorder::audioSamplesStorageChanged): |
| (WebKit::RemoteMediaRecorder::audioSamplesAvailable): |
| (WebKit::RemoteMediaRecorder::videoSampleAvailable): |
| (WebKit::RemoteMediaRecorder::fetchData): |
| (WebKit::RemoteMediaRecorder::stopRecording): |
| * GPUProcess/webrtc/RemoteMediaRecorder.h: Added. |
| * GPUProcess/webrtc/RemoteMediaRecorder.messages.in: Added. |
| * GPUProcess/webrtc/RemoteMediaRecorderManager.cpp: Added. |
| (WebKit::RemoteMediaRecorderManager::RemoteMediaRecorderManager): |
| (WebKit::RemoteMediaRecorderManager::~RemoteMediaRecorderManager): |
| (WebKit::RemoteMediaRecorderManager::didReceiveRemoteMediaRecorderMessage): |
| (WebKit::RemoteMediaRecorderManager::createRecorder): |
| (WebKit::RemoteMediaRecorderManager::releaseRecorder): |
| * GPUProcess/webrtc/RemoteMediaRecorderManager.h: Added. |
| (WebKit::RemoteMediaRecorderManager::didReceiveMessageFromWebProcess): |
| * GPUProcess/webrtc/RemoteMediaRecorderManager.messages.in: Added. |
| * Scripts/webkit/messages.py: |
| * Sources.txt: |
| * SourcesCocoa.txt: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/GPU/media/MediaRecorderProvider.cpp: Added. |
| (WebCore::MediaRecorderProvider::createMediaRecorderPrivate): |
| * WebProcess/GPU/media/MediaRecorderProvider.h: Added. |
| * WebProcess/GPU/webrtc/MediaRecorderIdentifier.h: Added. |
| * WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp: Added. |
| (WebKit::MediaRecorderPrivate::MediaRecorderPrivate): |
| (WebKit::MediaRecorderPrivate::~MediaRecorderPrivate): |
| (WebKit::MediaRecorderPrivate::sampleBufferUpdated): |
| (WebKit::MediaRecorderPrivate::audioSamplesAvailable): |
| (WebKit::MediaRecorderPrivate::storageChanged): |
| (WebKit::MediaRecorderPrivate::fetchData): |
| (WebKit::MediaRecorderPrivate::stopRecording): |
| * WebProcess/GPU/webrtc/MediaRecorderPrivate.h: Added. |
| * WebProcess/GPU/webrtc/MediaRecorderProvider.cpp: Added. |
| (WebKit::MediaRecorderProvider::createMediaRecorderPrivate): |
| * WebProcess/GPU/webrtc/MediaRecorderProvider.h: Added. |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_overriddenMediaType): |
| |
| 2020-01-08 youenn fablet <youenn@apple.com> |
| |
| Improve logging of creating a service worker |
| https://bugs.webkit.org/show_bug.cgi?id=205849 |
| |
| Reviewed by Chris Dumez. |
| |
| Add some release logging to identify which service worker is created in which process. |
| No change of observable behavior. |
| |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::installServiceWorker): |
| |
| 2020-01-07 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| Implement css3-images image-orientation |
| https://bugs.webkit.org/show_bug.cgi?id=89052 |
| |
| Reviewed by Simon Fraser. |
| |
| Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2020-01-07 Alex Christensen <achristensen@webkit.org> |
| |
| Introduce _WKResourceLoadDelegate |
| https://bugs.webkit.org/show_bug.cgi?id=205887 |
| |
| Reviewed by Dean Jackson. |
| |
| Add a new delegate that will be informed about main and subresource requests. |
| This is distinct from the WKNavigationDelegate, which primarily receives callbacks about main resource requests. |
| Because the IPC churn can be a significant performance reduction, only send the IPC messages if the page has such a client. |
| This client will need to be expanded to implement <rdar://problem/57132290> but this is a minimal testable start. |
| The simple case is covered by an API test. |
| |
| * NetworkProcess/NetworkResourceLoadParameters.cpp: |
| (WebKit::NetworkResourceLoadParameters::encode const): |
| (WebKit::NetworkResourceLoadParameters::decode): |
| * NetworkProcess/NetworkResourceLoadParameters.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::startNetworkLoad): |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| * SourcesCocoa.txt: |
| * UIProcess/API/APIResourceLoadClient.h: Added. |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| (-[WKWebView _resourceLoadDelegate]): |
| (-[WKWebView _setResourceLoadDelegate:]): |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/API/Cocoa/_WKResourceLoadDelegate.h: Added. |
| * UIProcess/Cocoa/ResourceLoadDelegate.h: Added. |
| * UIProcess/Cocoa/ResourceLoadDelegate.mm: Added. |
| (WebKit::ResourceLoadDelegate::ResourceLoadDelegate): |
| (WebKit::ResourceLoadDelegate::createResourceLoadClient): |
| (WebKit::ResourceLoadDelegate::delegate): |
| (WebKit::ResourceLoadDelegate::setDelegate): |
| (WebKit::ResourceLoadDelegate::ResourceLoadClient::ResourceLoadClient): |
| (WebKit::ResourceLoadDelegate::ResourceLoadClient::willSendRequest const): |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::pageWillSendRequest): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::setResourceLoadClient): |
| * UIProcess/WebPageProxy.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_overriddenMediaType): |
| (WebKit::WebPage::setHasResourceLoadClient): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2020-01-07 Kate Cheney <katherine_cheney@apple.com> |
| |
| Create a mechanism for 'safe by default' web views |
| https://bugs.webkit.org/show_bug.cgi?id=205407 |
| <rdar://problem/58053071> |
| |
| Reviewed by Alex Christensen. |
| |
| Adds common cases to be used as the basis for 'safe by default' web views. |
| The cases are in the form of an NS_ENUM _WKWebViewCategory and |
| its equivalent C++ enum WebViewCategory. The conversion between |
| these happens in WKWebViewConfiguration.mm. |
| |
| * Shared/WebViewCategory.h: Added. |
| * UIProcess/API/APIPageConfiguration.cpp: |
| (API::PageConfiguration::copy const): |
| * UIProcess/API/APIPageConfiguration.h: |
| (API::PageConfiguration::webViewCategory const): |
| (API::PageConfiguration::setWebViewCategory): |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: |
| (convertToAPIWebViewCategory): |
| (convertFromAPIWebViewCategory): |
| (-[WKWebViewConfiguration _webViewCategory]): |
| (-[WKWebViewConfiguration _setWebViewCategory:]): |
| * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2020-01-07 Brent Fulgham <bfulgham@apple.com> |
| |
| Network process sandboxes should not include 'common.sb' or 'system.sb' |
| https://bugs.webkit.org/show_bug.cgi?id=205521 |
| <rdar://problem/58095870> |
| |
| Reviewed by Per Arne Vollan. |
| |
| This patch replaces the 'include' with a copy/paste of the contents of the relevant |
| sandbox include file. I removed definitions that were not referenced in the existing |
| Network sandbox, but did not otherwise edit the contents. There are duplicates and |
| redundancies after this patch, which I will remove as a follow-up step once we confirm |
| that this has no regressions. |
| |
| I also updated the sandbox to generate telemetry for some mach connections that we think |
| are unneeded, or that should be targeted for removal. |
| |
| No new tests. There should be no change in behavior. |
| |
| * NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in: |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb: |
| |
| 2020-01-07 Ross Kirsling <ross.kirsling@sony.com> |
| |
| Unreviewed restabilization of non-unified build. |
| |
| * NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp: |
| * NetworkProcess/IndexedDB/WebIDBServer.cpp: |
| (WebKit::WebIDBServer::create): |
| (WebKit::WebIDBServer::WebIDBServer): |
| (WebKit::WebIDBServer::closeAndDeleteDatabasesForOrigins): |
| (WebKit::WebIDBServer::suspend): |
| (WebKit::WebIDBServer::didFireVersionChangeEvent): |
| * UIProcess/WebContextClient.h: |
| |
| 2020-01-07 Daniel Bates <dabates@apple.com> |
| |
| First character in each word-wrapped line has incorrect character rect when requested range spans multiple lines |
| https://bugs.webkit.org/show_bug.cgi?id=205842 |
| <rdar://problem/56884325> |
| |
| Reviewed by Zalan Bujtas. |
| |
| Pass BoundingRectBehavior::IgnoreEmptyTextSelections to Range::absoluteBoundingBox() to compute |
| the glyph bounding box ignoring empty text selections that would typically occur if the start of |
| the range coincide with the edge of a line box. This makes the behavior more consistent with |
| the behavior of NSLayoutManager. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::requestDocumentEditingContext): |
| |
| 2020-01-07 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r254144. |
| |
| Broke the iOS build. |
| |
| Reverted changeset: |
| |
| "First character in each word-wrapped line has incorrect |
| character rect when requested range spans multiple lines" |
| https://bugs.webkit.org/show_bug.cgi?id=205842 |
| https://trac.webkit.org/changeset/254144 |
| |
| 2020-01-07 Keith Rollin <krollin@apple.com> |
| |
| Reformat WebFrameLoaderClient logging |
| https://bugs.webkit.org/show_bug.cgi?id=205869 |
| <rdar://problem/58379240> |
| |
| Reviewed by Brent Fulgham. |
| |
| Update the format used by WebFrameLoaderClient in its RELEASE_LOG |
| logging. Use the format used by WebPageProxy and |
| NetworkResourceLoader, which is generally of the form: |
| |
| <object-address> - [<values that help thread together operations>] <class>::<method>: <message and other useful values> |
| |
| So, for example: |
| |
| 0x4a1d7c310 - WebFrameLoaderClient::dispatchDidReachLayoutMilestone: dispatching didCompletePageTransition, page = 0x7f83ba009208 |
| |
| becomes: |
| |
| 0x4a1d7c310 - [webFrame=0x7ff703f03b68, webFrameID=3, webPage=0x7ff704831808, webPageID=15] WebFrameLoaderClient::dispatchDidReachLayoutMilestone: dispatching didCompletePageTransition |
| |
| No new tests - no added or changed functionality. |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad): |
| (WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad): |
| (WebKit::WebFrameLoaderClient::dispatchDidFailLoad): |
| (WebKit::WebFrameLoaderClient::dispatchDidReachLayoutMilestone): |
| |
| 2020-01-07 Daniel Bates <dabates@apple.com> |
| |
| First character in each word-wrapped line has incorrect character rect when requested range spans multiple lines |
| https://bugs.webkit.org/show_bug.cgi?id=205842 |
| <rdar://problem/56884325> |
| |
| Reviewed by Zalan Bujtas. |
| |
| Pass BoundingRectBehavior::IgnoreEmptyTextSelections to Range::absoluteBoundingBox() to compute |
| the glyph bounding box ignoring empty text selections that would typically occur if the start of |
| the range coincide with the edge of a line box. This makes the behavior more consistent with |
| the behavior of NSLayoutManager. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::requestDocumentEditingContext): |
| |
| 2020-01-07 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r254132. |
| https://bugs.webkit.org/show_bug.cgi?id=205868 |
| |
| It is breaking WinCairo build and internal builds. (Requested |
| by youenn on #webkit). |
| |
| Reverted changeset: |
| |
| "Implement MediaRecorder backend in GPUProcess" |
| https://bugs.webkit.org/show_bug.cgi?id=205802 |
| https://trac.webkit.org/changeset/254132 |
| |
| 2020-01-07 youenn fablet <youenn@apple.com> |
| |
| Implement MediaRecorder backend in GPUProcess |
| https://bugs.webkit.org/show_bug.cgi?id=205802 |
| |
| Reviewed by Eric Carlson. |
| |
| Add support for sending audio/video tracks to record from WebProcess to GPUProcess. |
| Add a MediaRecorderPrivate implementation that supports sending one audio track and/or one video track to GPUProcess |
| and stopping/fetching data from the remote recorder in GPUProcess. |
| |
| In GPUProcess, implement the remote recorder using the existing WebCore recorder writer. |
| |
| * CMakeLists.txt: |
| * DerivedSources-input.xcfilelist: |
| * DerivedSources-output.xcfilelist: |
| * DerivedSources.make: |
| * GPUProcess/GPUConnectionToWebProcess.cpp: |
| (WebKit::GPUConnectionToWebProcess::userMediaCaptureManagerProxy): |
| (WebKit::GPUConnectionToWebProcess::mediaRecorderManager): |
| (WebKit::GPUConnectionToWebProcess::didReceiveMessage): |
| * GPUProcess/GPUConnectionToWebProcess.h: |
| * GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in: |
| * GPUProcess/webrtc/RemoteMediaRecorder.cpp: Added. |
| (WebKit::RemoteMediaRecorder::create): |
| (WebKit::RemoteMediaRecorder::RemoteMediaRecorder): |
| (WebKit::RemoteMediaRecorder::~RemoteMediaRecorder): |
| (WebKit::RemoteMediaRecorder::storage): |
| (WebKit::RemoteMediaRecorder::audioSamplesStorageChanged): |
| (WebKit::RemoteMediaRecorder::audioSamplesAvailable): |
| (WebKit::RemoteMediaRecorder::videoSampleAvailable): |
| (WebKit::RemoteMediaRecorder::fetchData): |
| (WebKit::RemoteMediaRecorder::stopRecording): |
| * GPUProcess/webrtc/RemoteMediaRecorder.h: Added. |
| * GPUProcess/webrtc/RemoteMediaRecorder.messages.in: Added. |
| * GPUProcess/webrtc/RemoteMediaRecorderManager.cpp: Added. |
| (WebKit::RemoteMediaRecorderManager::RemoteMediaRecorderManager): |
| (WebKit::RemoteMediaRecorderManager::~RemoteMediaRecorderManager): |
| (WebKit::RemoteMediaRecorderManager::didReceiveRemoteMediaRecorderMessage): |
| (WebKit::RemoteMediaRecorderManager::createRecorder): |
| (WebKit::RemoteMediaRecorderManager::releaseRecorder): |
| * GPUProcess/webrtc/RemoteMediaRecorderManager.h: Added. |
| (WebKit::RemoteMediaRecorderManager::didReceiveMessageFromWebProcess): |
| * GPUProcess/webrtc/RemoteMediaRecorderManager.messages.in: Added. |
| * Scripts/webkit/messages.py: |
| * Sources.txt: |
| * SourcesCocoa.txt: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/GPU/media/MediaRecorderProvider.cpp: Added. |
| (WebCore::MediaRecorderProvider::createMediaRecorderPrivate): |
| * WebProcess/GPU/media/MediaRecorderProvider.h: Added. |
| * WebProcess/GPU/webrtc/MediaRecorderIdentifier.h: Added. |
| * WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp: Added. |
| (WebKit::MediaRecorderPrivate::MediaRecorderPrivate): |
| (WebKit::MediaRecorderPrivate::~MediaRecorderPrivate): |
| (WebKit::MediaRecorderPrivate::sampleBufferUpdated): |
| (WebKit::MediaRecorderPrivate::audioSamplesAvailable): |
| (WebKit::MediaRecorderPrivate::storageChanged): |
| (WebKit::MediaRecorderPrivate::fetchData): |
| (WebKit::MediaRecorderPrivate::stopRecording): |
| * WebProcess/GPU/webrtc/MediaRecorderPrivate.h: Added. |
| * WebProcess/GPU/webrtc/MediaRecorderProvider.cpp: Added. |
| (WebKit::MediaRecorderProvider::createMediaRecorderPrivate): |
| * WebProcess/GPU/webrtc/MediaRecorderProvider.h: Added. |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_overriddenMediaType): |
| |
| 2020-01-07 youenn fablet <youenn@apple.com> |
| |
| Add an option to make video capture in GPUProcess |
| https://bugs.webkit.org/show_bug.cgi?id=205853 |
| |
| Reviewed by Eric Carlson. |
| |
| Add an option to make video capture in GPU process. |
| Pass this option at creation of the web page so that the process can be updated after launch time. |
| Apply the same principle to other audio/video capture parameters. |
| Add SPI to update this preference. |
| Fix bug in the passing of preference to process pool for the video capture in UIProcess parameter, which is now an experimental flag and not an internal one. |
| |
| Test: fast/mediastream/captureInGPUProcess.html |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| * Shared/WebPreferences.yaml: |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::encode const): |
| (WebKit::WebProcessCreationParameters::decode): |
| * Shared/WebProcessCreationParameters.h: |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetCaptureVideoInGPUProcessEnabled): |
| (WKPreferencesGetCaptureVideoInGPUProcessEnabled): |
| * UIProcess/API/C/WKPreferencesRef.h: |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): |
| * UIProcess/WebPageProxy.cpp: |
| * UIProcess/WebPreferences.cpp: |
| (WebKit::WebPreferences::updateBoolValueForInternalDebugFeatureKey): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::initializeNewWebProcess): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_overriddenMediaType): |
| * WebProcess/cocoa/UserMediaCaptureManager.cpp: |
| (WebKit::UserMediaCaptureManager::setupCaptureProcesses): |
| (WebKit::UserMediaCaptureManager::VideoFactory::createVideoCaptureSource): |
| * WebProcess/cocoa/UserMediaCaptureManager.h: |
| (WebKit::UserMediaCaptureManager::VideoFactory::setShouldCaptureInGPUProcess): |
| |
| 2020-01-07 youenn fablet <youenn@apple.com> |
| |
| Fix non GPUProcess build issue in UserMediaCaptureManager |
| https://bugs.webkit.org/show_bug.cgi?id=205851 |
| |
| Reviewed by Eric Carlson. |
| |
| Build fix, no change of behavior. |
| |
| * WebProcess/cocoa/UserMediaCaptureManager.cpp: |
| (WebKit::UserMediaCaptureManager::Source::connection): |
| |
| 2020-01-07 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK][WPE] Add API to retrieve and delete surrounding text for input methods |
| https://bugs.webkit.org/show_bug.cgi?id=205716 |
| |
| Reviewed by Žan Doberšek. |
| |
| Extend WebKitInputMethodContext to be able to retrieve and delete surrounding text. |
| |
| * Shared/EditorState.cpp: |
| (WebKit::EditorState::PostLayoutData::encode const): Encode paragraphContext and paragraphContextCursorPosition. |
| (WebKit::EditorState::PostLayoutData::decode): Decode paragraphContext and paragraphContextCursorPosition. |
| * Shared/EditorState.h: Add paragraphContext and paragraphContextCursorPosition. |
| * UIProcess/API/glib/InputMethodFilter.cpp: |
| (WebKit::InputMethodFilter::deleteSurroundingCallback): Callback to handle |
| WebKitInputMethodContext::delete-surrounding signal. |
| (WebKit::InputMethodFilter::setContext): Connect to WebKitInputMethodContext::delete-surrounding signal. |
| (WebKit::InputMethodFilter::notifySurrounding): Save the new surrounding text and position and call |
| webkit_input_method_context_notify_surrounding(). |
| (WebKit::InputMethodFilter::deleteSurrounding): Ask WebKitWebView to delete the surrounding text. |
| * UIProcess/API/glib/InputMethodFilter.h: |
| * UIProcess/API/glib/WebKitInputMethodContext.cpp: |
| (webkit_input_method_context_class_init): Add delete-surrounding signal. |
| (webkit_input_method_context_notify_surrounding): Call the virtual method notify_surrounding if implemented. |
| * UIProcess/API/glib/WebKitWebView.cpp: |
| (webkitWebViewDeleteSurrounding): Call WebPageProxy::deleteSurrounding(). |
| * UIProcess/API/glib/WebKitWebViewPrivate.h: |
| * UIProcess/API/gtk/WebKitInputMethodContext.h: |
| * UIProcess/API/gtk/WebKitInputMethodContextImplGtk.cpp: |
| (contextRetrieveSurrounding): Call gtk_im_context_set_surrounding() with the current surrounding text and position. |
| (webkitInputMethodContextImplGtkConstructed): Connect to GtkIMContext::retrieve-surrounding signal. |
| (webkitInputMethodContextImplGtkNotifySurrounding): Save the new surrounding text and position. |
| (webkit_input_method_context_impl_gtk_class_init): Add implementation for notify_surrounding vfunc. |
| * UIProcess/API/gtk/WebKitWebViewBase.cpp: |
| (webkitWebViewBaseUpdateTextInputState): Also notify the context about surrounding text and position. |
| * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: |
| * UIProcess/API/wpe/WPEView.cpp: |
| (WKWPE::View::selectionDidChange): Ditto. |
| * UIProcess/API/wpe/WebKitInputMethodContext.h: |
| * UIProcess/API/wpe/docs/wpe-1.0-sections.txt: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::deleteSurrounding): Send DeleteSurrounding message to web process. |
| * UIProcess/WebPageProxy.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::deleteSurrounding): Delete the given range. |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: Add DeleteSurrounding message. |
| * WebProcess/WebPage/glib/WebPageGLib.cpp: |
| (WebKit::WebPage::platformEditorState const): Moved from GTK and WPE here and also added paragraphContext and |
| paragraphContextCursorPosition initialization. |
| * WebProcess/WebPage/gtk/WebPageGtk.cpp: Remove platformEditorState(). |
| * WebProcess/WebPage/wpe/WebPageWPE.cpp: Ditto. |
| |
| 2020-01-07 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK][WPE] Add API to set purpose and hints of active editable element to input methods |
| https://bugs.webkit.org/show_bug.cgi?id=205605 |
| |
| Reviewed by Žan Doberšek. |
| |
| Add input-purpose and input-hints properties to WebKitInputMethodContext. The message SetInputMethodState now |
| receives an optional InputMethodState struct with information about the purpose and hints of the active editable |
| element. |
| |
| * Scripts/webkit/messages.py: Only include InputMethodState.h for GTK and WPE. |
| * Shared/glib/InputMethodState.cpp: Added. |
| (WebKit::InputMethodState::setPurposeOrHintForInputMode): |
| (WebKit::inputElementHasDigitsPattern): |
| (WebKit::InputMethodState::setPurposeForInputElement): |
| (WebKit::InputMethodState::addHintsForAutocapitalizeType): |
| (WebKit::InputMethodState::encode const): |
| (WebKit::InputMethodState::decode): |
| * Shared/glib/InputMethodState.h: Added. |
| (WebKit::operator==): |
| * SourcesGTK.txt: |
| * SourcesWPE.txt: |
| * UIProcess/API/glib/InputMethodFilter.cpp: |
| (WebKit::InputMethodFilter::setContext): Use isEnabled() instead of m_enabled. |
| (WebKit::InputMethodFilter::setState): Now receives an optional InputMethodState struct. |
| (WebKit::InputMethodFilter::filterKeyEvent): Use isEnabled() instead of m_enabled. |
| (WebKit::InputMethodFilter::isViewFocused const): Ditto. |
| (WebKit::toWebKitPurpose): Helper to convert InputMethodState::Purpose to WebKitInputPurpose. |
| (WebKit::toWebKitHints): Helper to convert InputMethodState::Hint to WebKitInputHints. |
| (WebKit::InputMethodFilter::notifyFocusedIn): Set the purpose and hints to the context. |
| (WebKit::InputMethodFilter::notifyFocusedOut): Use isEnabled() instead of m_enabled. |
| (WebKit::InputMethodFilter::notifyCursorRect): Ditto. |
| (WebKit::InputMethodFilter::preeditStarted): Ditto. |
| (WebKit::InputMethodFilter::preeditChanged): Ditto. |
| (WebKit::InputMethodFilter::preeditFinished): Ditto. |
| (WebKit::InputMethodFilter::committed): Ditto. |
| * UIProcess/API/glib/InputMethodFilter.h: |
| (WebKit::InputMethodFilter::isEnabled const): Return true if we have a state. |
| * UIProcess/API/glib/WebKitInputMethodContext.cpp: |
| (webkitInputMethodContextSetProperty): Properties setter. |
| (webkitInputMethodContextGetProperty): Properties getter. |
| (webkit_input_method_context_class_init): Add implementation for properties getter and setter. |
| (webkit_input_method_context_get_input_purpose): |
| (webkit_input_method_context_set_input_purpose): |
| (webkit_input_method_context_get_input_hints): |
| (webkit_input_method_context_set_input_hints): |
| * UIProcess/API/gtk/WebKitInputMethodContext.h: |
| * UIProcess/API/gtk/WebKitInputMethodContextImplGtk.cpp: |
| (toGtkInputPurpose): Helper to convert WebKitInputPurpose to GtkInputPurpose. |
| (toGtkInputHints): Helper to convert WebKitInputHints to GtkInputHints. |
| (inputPurposeChangedCallback): Set the purpose on GtkIMContext. |
| (inputHintsChangedCallback): Set the hints on GtkIMContext. |
| (webkitInputMethodContextImplGtkConstructed): Connect to notify signal for input-purpose and input-hints |
| properties of the context. |
| * UIProcess/API/gtk/WebKitWebViewBase.cpp: |
| (webkitWebViewBaseSetInputMethodState): |
| * UIProcess/API/gtk/WebKitWebViewBasePrivate.h: |
| * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: |
| * UIProcess/API/wpe/PageClientImpl.cpp: |
| (WebKit::PageClientImpl::setInputMethodState): |
| * UIProcess/API/wpe/PageClientImpl.h: |
| * UIProcess/API/wpe/WPEView.cpp: |
| (WKWPE::View::setInputMethodState): |
| * UIProcess/API/wpe/WPEView.h: |
| * UIProcess/API/wpe/WebKitInputMethodContext.h: |
| * UIProcess/API/wpe/docs/wpe-1.0-sections.txt: |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/gtk/WebPageProxyGtk.cpp: |
| (WebKit::WebPageProxy::setInputMethodState): |
| * UIProcess/wpe/WebPageProxyWPE.cpp: |
| (WebKit::WebPageProxy::setInputMethodState): |
| * WebProcess/WebCoreSupport/WebEditorClient.cpp: |
| (WebKit::WebEditorClient::setInputMethodState): |
| * WebProcess/WebCoreSupport/WebEditorClient.h: |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/glib/WebPageGLib.cpp: |
| (WebKit::inputMethodSateForElement): Build an InputMethodState for the given element. |
| (WebKit::WebPage::setInputMethodState): |
| |
| 2020-01-07 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| WebDriver: several w3c collections tests added in r230953 are failing |
| https://bugs.webkit.org/show_bug.cgi?id=184966 |
| |
| Reviewed by Brian Burg. |
| |
| This is because JSON.stringify() is not enough, we need to first clone the value using the internal JSON clone |
| algorithm explained in the spec. See https://w3c.github.io/webdriver/#dfn-internal-json-clone-algorithm. |
| |
| Fixes: imported/w3c/webdriver/tests/execute_script/collections.py::test_arguments |
| imported/w3c/webdriver/tests/execute_script/collections.py::test_file_list |
| imported/w3c/webdriver/tests/execute_script/collections.py::test_html_all_collection |
| imported/w3c/webdriver/tests/execute_async_script/collections.py::test_arguments |
| imported/w3c/webdriver/tests/execute_async_script/collections.py::test_file_list |
| imported/w3c/webdriver/tests/execute_async_script/collections.py::test_html_all_collection |
| |
| * WebProcess/Automation/WebAutomationSessionProxy.js: |
| (WebKitAutomation.AutomationSessionProxy.prototype._jsonStringify): Call JSON.stringify(), but without the |
| replacer and passing the result of _jsonClone(). |
| (WebKitAutomation.AutomationSessionProxy.prototype._isCollection): Helper to check if the value is a collection. |
| (WebKitAutomation.AutomationSessionProxy.prototype._checkCyclic): Throw an error if the value is a cyclic structure. |
| (WebKitAutomation.AutomationSessionProxy.prototype._jsonClone): Implement the internal JSON clone algorithm. |
| (WebKitAutomation.AutomationSessionProxy.prototype._createNodeHandle): Trhow an error if the node is stale. |
| |
| 2020-01-07 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [SOUP] HSTS Support causes page loading to fail with "Operation was cancelled" |
| https://bugs.webkit.org/show_bug.cgi?id=203620 |
| |
| Reviewed by Michael Catanzaro. |
| |
| The problem is that we are assuming that request cancellation happens synchronously, but it can happen that the |
| async ready callback for the previous request is called after the new one has started. |
| |
| * NetworkProcess/soup/NetworkDataTaskSoup.cpp: |
| (WebKit::NetworkDataTaskSoup::sendRequestCallback): Return early if this is a previous request already cancelled. |
| |
| 2020-01-07 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| WebDriver: handle no such element errors |
| https://bugs.webkit.org/show_bug.cgi?id=204684 |
| |
| Reviewed by Brian Burg. |
| |
| Add InvalidNodeIdentifier to be generated when the elementID provided by WebDriver is not a valid node identifier. |
| |
| * UIProcess/Automation/Automation.json: Add InvalidNodeIdentifier error. |
| * WebProcess/Automation/WebAutomationSessionProxy.cpp: |
| (WebKit::isValidNodeHandle): Helper function to check the given node handle is valid. |
| (WebKit::isValidNodeIdentifier): JavaScript callback function to check the node identifier is valid. |
| (WebKit::WebAutomationSessionProxy::scriptObjectForFrame): Add isValidNodeIdentifier function. |
| (WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction): Handle InvalidNodeIdentifier errors. |
| (WebKit::WebAutomationSessionProxy::resolveChildFrameWithNodeHandle): Call isValidNodeHandle() and generate |
| InvalidNodeIdentifier error if it fails. |
| (WebKit::WebAutomationSessionProxy::computeElementLayout): Ditto. |
| (WebKit::WebAutomationSessionProxy::selectOptionElement): Ditto. |
| (WebKit::WebAutomationSessionProxy::takeScreenshot): Ditto. |
| * WebProcess/Automation/WebAutomationSessionProxy.js: |
| (let.AutomationSessionProxy.prototype._nodeForIdentifier): Call isValidNodeIdentifier() and throw |
| InvalidNodeIdentifier if it fails. |
| |
| 2020-01-07 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| WebDriver: several tests in imported/w3c/webdriver/tests/state/get_element_attribute.py are failing |
| https://bugs.webkit.org/show_bug.cgi?id=180415 |
| |
| Reviewed by Brian Burg. |
| |
| Update the ElementAttribute atom to properly handle boolean attributes, following what the selenium original |
| atom does. |
| |
| * UIProcess/Automation/atoms/ElementAttribute.js: |
| (getAttribute): |
| (tagName.string_appeared_here.lowercaseAttributeName.string_appeared_here): |
| (isBooleanAttribute): |
| |
| 2020-01-07 Chris Fleizach <cfleizach@apple.com> |
| |
| AX: Enable ACCESSIBILITY_ISOLATED_TREE |
| https://bugs.webkit.org/show_bug.cgi?id=205535 |
| <rdar://problem/58131075> |
| |
| Reviewed by Zalan Bujtas. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetIsAccessibilityIsolatedTreeEnabled): |
| (WKPreferencesGetIsAccessibilityIsolatedTreeEnabled): |
| * UIProcess/API/C/WKPreferencesRefPrivate.h: |
| |
| 2020-01-06 Per Arne Vollan <pvollan@apple.com> |
| |
| [iOS] Get display level in the UI process for all iOS platforms |
| https://bugs.webkit.org/show_bug.cgi?id=205835 |
| <rdar://problem/58116883> |
| |
| Reviewed by Brent Fulgham. |
| |
| This was previously only done for iOS, but should be done for all iOS platforms. |
| |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::registerNotificationObservers): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::initializeNewWebProcess): |
| * UIProcess/WebProcessPool.h: |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| |
| 2020-01-06 Eric Carlson <eric.carlson@apple.com> |
| |
| Add some of the remote media player messages needed for video playback |
| https://bugs.webkit.org/show_bug.cgi?id=205812 |
| <rdar://problem/58346531> |
| |
| Reviewed by Jer Noble. |
| |
| No new tests, it isn't possible to play video yet. |
| |
| * GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp: |
| (WebKit::RemoteMediaPlayerManagerProxy::prepareForRendering): |
| (WebKit::RemoteMediaPlayerManagerProxy::setSize): |
| (WebKit::RemoteMediaPlayerManagerProxy::setVisible): |
| (WebKit::RemoteMediaPlayerManagerProxy::setShouldMaintainAspectRatio): |
| (WebKit::RemoteMediaPlayerManagerProxy::setVideoFullscreenFrame): |
| (WebKit::RemoteMediaPlayerManagerProxy::setVideoFullscreenGravity): |
| (WebKit::RemoteMediaPlayerManagerProxy::acceleratedRenderingStateChanged): |
| (WebKit::RemoteMediaPlayerManagerProxy::setShouldDisableSleep): |
| (WebKit::RemoteMediaPlayerManagerProxy::setRate): |
| * GPUProcess/media/RemoteMediaPlayerManagerProxy.h: |
| * GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in: |
| * GPUProcess/media/RemoteMediaPlayerProxy.cpp: |
| (WebKit::RemoteMediaPlayerProxy::getConfiguration): |
| (WebKit::RemoteMediaPlayerProxy::prepareForRendering): |
| (WebKit::RemoteMediaPlayerProxy::setSize): |
| (WebKit::RemoteMediaPlayerProxy::setVisible): |
| (WebKit::RemoteMediaPlayerProxy::setShouldMaintainAspectRatio): |
| (WebKit::RemoteMediaPlayerProxy::setVideoFullscreenFrame): |
| (WebKit::RemoteMediaPlayerProxy::setVideoFullscreenGravity): |
| (WebKit::RemoteMediaPlayerProxy::acceleratedRenderingStateChanged): |
| (WebKit::RemoteMediaPlayerProxy::setShouldDisableSleep): |
| (WebKit::RemoteMediaPlayerProxy::setRate): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerReadyStateChanged): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerRenderingCanBeAccelerated): |
| * GPUProcess/media/RemoteMediaPlayerProxy.h: |
| * WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp: |
| (WebKit::MediaPlayerPrivateRemote::sizeChanged): |
| (WebKit::MediaPlayerPrivateRemote::updateCachedState): |
| (WebKit::MediaPlayerPrivateRemote::shouldIgnoreIntrinsicSize): |
| (WebKit::MediaPlayerPrivateRemote::prepareForRendering): |
| (WebKit::MediaPlayerPrivateRemote::setSize): |
| (WebKit::MediaPlayerPrivateRemote::setVisible): |
| (WebKit::MediaPlayerPrivateRemote::setShouldMaintainAspectRatio): |
| (WebKit::MediaPlayerPrivateRemote::setVideoFullscreenFrame): |
| (WebKit::MediaPlayerPrivateRemote::setVideoFullscreenGravity): |
| (WebKit::MediaPlayerPrivateRemote::acceleratedRenderingStateChanged): |
| (WebKit::MediaPlayerPrivateRemote::setShouldDisableSleep): |
| (WebKit::MediaPlayerPrivateRemote::naturalSize const): |
| * WebProcess/GPU/media/MediaPlayerPrivateRemote.h: |
| * WebProcess/GPU/media/RemoteMediaPlayerConfiguration.h: |
| (WebKit::RemoteMediaPlayerConfiguration::encode const): |
| (WebKit::RemoteMediaPlayerConfiguration::decode): |
| * WebProcess/GPU/media/RemoteMediaPlayerManager.cpp: |
| (WebKit::RemoteMediaPlayerManager::sizeChanged): |
| * WebProcess/GPU/media/RemoteMediaPlayerManager.h: |
| * WebProcess/GPU/media/RemoteMediaPlayerManager.messages.in: |
| * WebProcess/GPU/media/RemoteMediaPlayerState.h: |
| (WebKit::RemoteMediaPlayerState::encode const): |
| (WebKit::RemoteMediaPlayerState::decode): |
| |
| 2020-01-06 Chris Dumez <cdumez@apple.com> |
| |
| Improve logging for when a synchronous IPC times out |
| https://bugs.webkit.org/show_bug.cgi?id=205829 |
| |
| Reviewed by Tim Horton. |
| |
| * Platform/IPC/Connection.cpp: |
| (IPC::Connection::sendSyncMessage): |
| (IPC::Connection::waitForSyncReply): |
| * Platform/IPC/Connection.h: |
| |
| 2020-01-06 Peng Liu <peng.liu6@apple.com> |
| |
| Build (unified) failure after adding source files to support media in GPU process |
| https://bugs.webkit.org/show_bug.cgi?id=205616 |
| |
| Reviewed by Darin Adler. |
| |
| No new tests, no functional change. |
| |
| * Sources.txt: |
| * SourcesGTK.txt: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2020-01-06 Alex Christensen <achristensen@webkit.org> |
| |
| NetworkSessionCocoa::isolatedSession should not use iterator after mutating m_isolatedSessions |
| https://bugs.webkit.org/show_bug.cgi?id=205824 |
| <rdar://problem/55107625> |
| |
| Reviewed by Chris Dumez. |
| |
| Classic iterator use after mutating iterated container was causing crashes by returning a null SessionWrapper& |
| This was introduced in r252185 or r248640. |
| |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::NetworkSessionCocoa::isolatedSession): |
| |
| 2020-01-06 Mark Lam <mark.lam@apple.com> |
| |
| Convert ASSERT_DISABLED to ASSERT_ENABLED, and fix some tests of NDEBUG that should actually test for ASSERT_ENABLED. |
| https://bugs.webkit.org/show_bug.cgi?id=205776 |
| |
| Reviewed by Saam Barati. |
| |
| * NetworkProcess/NetworkSession.cpp: |
| (WebKit::NetworkSession::invalidateAndCancel): |
| * NetworkProcess/NetworkSession.h: |
| * NetworkProcess/cache/NetworkCacheStorage.cpp: |
| (WebKit::NetworkCache::Storage::setCapacity): |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (toNSURLSessionResponseDisposition): |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| * Platform/IPC/Connection.cpp: |
| (IPC::Connection::waitForMessage): |
| * Platform/IPC/MessageReceiver.h: |
| (IPC::MessageReceiver::willBeAddedToMessageReceiverMap): |
| (IPC::MessageReceiver::willBeRemovedFromMessageReceiverMap): |
| * Platform/IPC/cocoa/ConnectionCocoa.mm: |
| (IPC::readFromMachPort): |
| * Platform/mac/MachUtilities.cpp: |
| (setMachExceptionPort): |
| * Shared/API/APIClient.h: |
| (API::Client::Client): |
| * Shared/API/Cocoa/WKRemoteObjectCoder.mm: |
| * Shared/Cocoa/ArgumentCodersCocoa.h: |
| * Shared/SharedStringHashTableReadOnly.cpp: |
| * UIProcess/BackingStore.cpp: |
| (WebKit::BackingStore::incorporateUpdate): |
| * UIProcess/GenericCallback.h: |
| * UIProcess/Launcher/mac/ProcessLauncherMac.mm: |
| (WebKit::ProcessLauncher::launchProcess): |
| * UIProcess/PageLoadState.h: |
| (WebKit::PageLoadState::Transaction::Token::Token): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::~WebPageProxy): |
| * WebProcess/Network/WebResourceLoader.cpp: |
| (WebKit::WebResourceLoader::didReceiveResponse): |
| * WebProcess/Network/WebResourceLoader.h: |
| * WebProcess/Plugins/Netscape/NetscapePluginStream.cpp: |
| (WebKit::NetscapePluginStream::NetscapePluginStream): |
| (WebKit::NetscapePluginStream::notifyAndDestroyStream): |
| * WebProcess/Plugins/Netscape/NetscapePluginStream.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::runModal): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::checkDocumentsCaptureStateConsistency): |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::updateProcessName): |
| |
| 2020-01-06 Alex Christensen <achristensen@webkit.org> |
| |
| Remove WebsiteDataStore::setServiceWorkerRegistrationDirectory |
| https://bugs.webkit.org/show_bug.cgi?id=205754 |
| |
| Reviewed by Youenn Fablet. |
| |
| The directory is now only set in the configuration, which will prevent misuse of the misplaced SPI. |
| Updated API tests, which still work. |
| |
| * UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.cpp: |
| (WKWebsiteDataStoreConfigurationCopyServiceWorkerRegistrationDirectory): |
| (WKWebsiteDataStoreConfigurationSetServiceWorkerRegistrationDirectory): |
| * UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.h: |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreCopyServiceWorkerRegistrationDirectory): Deleted. |
| (WKWebsiteDataStoreSetServiceWorkerRegistrationDirectory): Deleted. |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _hasRegisteredServiceWorker]): |
| (-[WKWebsiteDataStore _serviceWorkerRegistrationDirectory]): Deleted. |
| (-[WKWebsiteDataStore _setServiceWorkerRegistrationDirectory:]): Deleted. |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| (WebKit::WebsiteDataStore::setCacheStorageDirectory): |
| (WebKit::WebsiteDataStore::serviceWorkerRegistrationDirectory const): Deleted. |
| (WebKit::WebsiteDataStore::setServiceWorkerRegistrationDirectory): Deleted. |
| |
| 2020-01-06 Alex Christensen <achristensen@webkit.org> |
| |
| Remove _WKProcessPoolConfiguration.CTDataConnectionServiceType and suppressesConnectionTerminationOnSystemChange |
| https://bugs.webkit.org/show_bug.cgi?id=205751 |
| |
| Reviewed by Darin Adler. |
| |
| Their replacements on _WKWebViewConfiguration have been adopted. |
| |
| * NetworkProcess/NetworkProcess.h: |
| (WebKit::NetworkProcess::suppressesConnectionTerminationOnSystemChange const): Deleted. |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa): |
| * NetworkProcess/cocoa/NetworkSessionCocoa.h: |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::NetworkSessionCocoa::dataConnectionServiceType const): |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| (WebKit::globalCTDataConnectionServiceType): Deleted. |
| (WebKit::NetworkSessionCocoa::setCTDataConnectionServiceType): Deleted. |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| (API::ProcessPoolConfiguration::copy): |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: |
| (-[_WKProcessPoolConfiguration suppressesConnectionTerminationOnSystemChange]): Deleted. |
| (-[_WKProcessPoolConfiguration setSuppressesConnectionTerminationOnSystemChange:]): Deleted. |
| (-[_WKProcessPoolConfiguration CTDataConnectionServiceType]): Deleted. |
| (-[_WKProcessPoolConfiguration setCTDataConnectionServiceType:]): Deleted. |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeNetworkProcess): |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::paymentCoordinatorCTDataConnectionServiceType): |
| |
| 2020-01-06 Keith Rollin <krollin@apple.com> |
| |
| Reformat WebPage logging |
| https://bugs.webkit.org/show_bug.cgi?id=205709 |
| <rdar://problem/58290285> |
| |
| Reviewed by Brent Fulgham. |
| |
| Update the format used by WebPage in its RELEASE_LOG logging. Use the |
| format used by WebPageProxy and NetworkResourceLoader, which is |
| generally of the form: |
| |
| <object-address> - [<values that help thread together operations>] <class>::<method>: <message and other useful values> |
| |
| So, for example: |
| |
| 0x4a1df5000 - WebLoaderStrategy::scheduleLoad: Resource is being scheduled with the NetworkProcess (frame=0x4a1db0220, priority=0, webPageID=15, frameID=3, resourceID=32)', |
| |
| becomes: |
| |
| 0x4a1df5000 - [resourceLoader=0x1418b7200, frameLoader=0x1326d7340, frame=0x4a1db0220, webPageID=15, frameID=3, resourceID=32] WebLoaderStrategy::scheduleLoad: Resource is being scheduled with the NetworkProcess (priority=2) |
| |
| This new form is a lot more verbose, but it really helps in tracing |
| activity from the top of our page/frame/resource load stack to the |
| bottom. |
| |
| No new tests - no added or changed functionality. |
| |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::scheduleLoad): |
| (WebKit::WebLoaderStrategy::tryLoadingUsingURLSchemeHandler): |
| (WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess): |
| (WebKit::WebLoaderStrategy::networkProcessCrashed): |
| (WebKit::WebLoaderStrategy::loadResourceSynchronously): |
| * WebProcess/Network/WebLoaderStrategy.h: |
| |
| 2020-01-06 Luming Yin <luming_yin@apple.com> |
| |
| Add WKWebView SPI to query _WKMediaMutedState |
| https://bugs.webkit.org/show_bug.cgi?id=205789 |
| <rdar://problem/58335241> |
| |
| Reviewed by Eric Carlson. |
| |
| Add plumbing for clients to query the media muted state on WKWebView. |
| |
| * SourcesCocoa.txt: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _mediaMutedState]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/Cocoa/MediaUtilities.h: Renamed from Source/WebKit/UIProcess/Cocoa/MediaCaptureUtilities.h. |
| * UIProcess/Cocoa/MediaUtilities.mm: Renamed from Source/WebKit/UIProcess/Cocoa/MediaCaptureUtilities.mm. |
| (WebKit::toWKMediaCaptureState): |
| (WebKit::toWKMediaMutedState): |
| * UIProcess/Cocoa/UIDelegate.mm: |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::mutedStateFlags const): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2020-01-05 Dean Jackson <dino@apple.com> |
| |
| Rename GraphicsContext3D to GraphicsContextGL |
| https://bugs.webkit.org/show_bug.cgi?id=205778 |
| <rdar://problem/58327597> |
| |
| Reviewed by Sam Weinig. |
| |
| Rename all the GraphicsContext3D things to GraphicsContextGL |
| (includes Extensions3D and GRAPHICS_CONTEXT_3D). |
| |
| GraphicsContext3DBase now becomes GraphicsContextGL. |
| GraphicsContext3D is now GraphicsContextGLOpenGL (since it represents |
| the OpenGL implementation of the API). |
| |
| * CMakeLists.txt: |
| * UIProcess/gtk/WaylandCompositor.cpp: |
| (WebKit::WaylandCompositor::initializeEGL): |
| * UIProcess/mac/HighPerformanceGPUManager.cpp: |
| * WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp: |
| (WebKit::MediaPlayerPrivateRemote::copyVideoTextureToPlatformTexture): |
| * WebProcess/GPU/media/MediaPlayerPrivateRemote.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| * WebProcess/WebPage/mac/WebPageMac.mm: |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::displayConfigurationChanged): |
| |
| 2020-01-06 Rob Buis <rbuis@igalia.com> |
| |
| Remove unused GlobalFrameID from NetworkCacheSpeculativeLoad |
| https://bugs.webkit.org/show_bug.cgi?id=205796 |
| |
| Reviewed by Chris Dumez. |
| |
| Remove unused GlobalFrameID from NetworkCacheSpeculativeLoad |
| and NetworkCache::update. |
| |
| No change in behavior. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::didReceiveResponse): |
| * NetworkProcess/cache/NetworkCache.cpp: |
| (WebKit::NetworkCache::Cache::update): |
| * NetworkProcess/cache/NetworkCache.h: |
| * NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp: |
| (WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad): |
| (WebKit::NetworkCache::SpeculativeLoad::didReceiveResponse): |
| * NetworkProcess/cache/NetworkCacheSpeculativeLoad.h: |
| |
| 2020-01-06 Per Arne Vollan <pvollan@apple.com> |
| |
| [iOS] Issue mach lookup extension to launch services daemon for Mail |
| https://bugs.webkit.org/show_bug.cgi?id=205316 |
| |
| Reviewed by Brent Fulgham. |
| |
| Issue mach lookup extension to "com.apple.lsd.open" for Mail, since this service will be removed from the WebContent sandbox. |
| |
| Test: fast/sandbox/ios/sandbox-mach-lookup-mail.html |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::encode const): |
| (WebKit::WebProcessCreationParameters::decode): |
| * Shared/WebProcessCreationParameters.h: |
| * UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h: |
| * UIProcess/API/Cocoa/WKWebViewTesting.mm: |
| (+[WKWebView _setApplicationBundleIdentifier:]): |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): |
| (WebKit::WebProcessPool::platformInitializeNetworkProcess): |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::platformInitializeWebProcess): |
| |
| 2020-01-06 Youenn Fablet <youenn@apple.com> |
| |
| RemoteVideoSample::create does not need to take a MediaSample r value |
| https://bugs.webkit.org/show_bug.cgi?id=205793 |
| |
| Reviewed by Eric Carlson. |
| |
| * UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp: |
| |
| 2020-01-06 youenn fablet <youenn@apple.com> |
| |
| Implement RTC VTB encoders in GPUProcess |
| https://bugs.webkit.org/show_bug.cgi?id=205713 |
| |
| Reviewed by Eric Carlson. |
| |
| Add support for remote video encoders in GPUProcess based on libwebrtc exposed routines. |
| WebProcess sets callbacks in the webrtc backend to implement H264 encoding as a remote video encoder. |
| In addition to video frames, we also need to send rate setting orders. |
| |
| * Configurations/WebKit.xcconfig: |
| * GPUProcess/webrtc/LibWebRTCCodecsProxy.h: |
| * GPUProcess/webrtc/LibWebRTCCodecsProxy.messages.in: |
| * GPUProcess/webrtc/LibWebRTCCodecsProxy.mm: |
| (WebKit::LibWebRTCCodecsProxy::~LibWebRTCCodecsProxy): |
| (WebKit::LibWebRTCCodecsProxy::createEncoder): |
| (WebKit::LibWebRTCCodecsProxy::releaseEncoder): |
| (WebKit::LibWebRTCCodecsProxy::initializeEncoder): |
| (WebKit::toWebRTCVideoRotation): |
| (WebKit::LibWebRTCCodecsProxy::encodeFrame): |
| (WebKit::LibWebRTCCodecsProxy::setEncodeRates): |
| * Scripts/webkit/messages.py: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp: |
| (WebKit::createVideoEncoder): |
| (WebKit::releaseVideoEncoder): |
| (WebKit::initializeVideoEncoder): |
| (WebKit::toMediaSampleVideoRotation): |
| (WebKit::encodeVideoFrame): |
| (WebKit::registerEncodeCompleteCallback): |
| (WebKit::setEncodeRatesCallback): |
| (WebKit::LibWebRTCCodecs::setCallbacks): |
| (WebKit::LibWebRTCCodecs::createDecoder): |
| (WebKit::LibWebRTCCodecs::releaseDecoder): |
| (WebKit::LibWebRTCCodecs::failedDecoding): |
| (WebKit::LibWebRTCCodecs::completedDecoding): |
| (WebKit::LibWebRTCCodecs::createEncoder): |
| (WebKit::LibWebRTCCodecs::releaseEncoder): |
| (WebKit::LibWebRTCCodecs::initializeEncoder): |
| (WebKit::LibWebRTCCodecs::encodeFrame): |
| (WebKit::LibWebRTCCodecs::registerEncodeFrameCallback): |
| (WebKit::LibWebRTCCodecs::setEncodeRates): |
| (WebKit::LibWebRTCCodecs::completedEncoding): |
| (WebKit::LibWebRTCCodecs::pixelBufferPool): |
| * WebProcess/GPU/webrtc/LibWebRTCCodecs.h: |
| * WebProcess/GPU/webrtc/LibWebRTCCodecs.messages.in: |
| * WebProcess/GPU/webrtc/RTCEncoderIdentifier.h: Added. |
| * WebProcess/Network/webrtc/LibWebRTCProvider.cpp: |
| (WebKit::LibWebRTCProvider::createDecoderFactory): |
| |
| 2020-01-05 Eric Carlson <eric.carlson@apple.com> |
| |
| [Media in GPU process] Add remote MIME type cache |
| https://bugs.webkit.org/show_bug.cgi?id=205763 |
| <rdar://problem/58312152> |
| |
| Reviewed by Dean Jackson. |
| |
| * GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp: |
| (WebKit::RemoteMediaPlayerManagerProxy::supportsTypeAndCodecs): |
| (WebKit::RemoteMediaPlayerManagerProxy::canDecodeExtendedType): |
| (WebKit::RemoteMediaPlayerManagerProxy::supportsType): Deleted. |
| |
| * GPUProcess/media/RemoteMediaPlayerManagerProxy.h: |
| * GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in: |
| * Sources.txt: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| * WebProcess/GPU/media/RemoteMediaPlayerMIMETypeCache.cpp: Added. |
| (WebKit::RemoteMediaPlayerMIMETypeCache::RemoteMediaPlayerMIMETypeCache): |
| (WebKit::RemoteMediaPlayerMIMETypeCache::mimeCache const): |
| (WebKit::RemoteMediaPlayerMIMETypeCache::isAvailable const): |
| (WebKit::RemoteMediaPlayerMIMETypeCache::staticContainerTypeList): |
| (WebKit::RemoteMediaPlayerMIMETypeCache::isUnsupportedContainerType): |
| (WebKit::RemoteMediaPlayerMIMETypeCache::canDecodeExtendedType): |
| (WebKit::RemoteMediaPlayerMIMETypeCache::supportsTypeAndCodecs): |
| (WebKit::RemoteMediaPlayerMIMETypeCache::initializeCache): |
| * WebProcess/GPU/media/RemoteMediaPlayerMIMETypeCache.h: Added. |
| |
| * WebProcess/GPU/media/RemoteMediaPlayerManager.cpp: |
| (WebKit::mimeCaches): |
| (WebKit::RemoteMediaPlayerManager::typeCache): |
| (WebKit::RemoteMediaPlayerManager::initialize): |
| (WebKit::RemoteMediaPlayerManager::getSupportedTypes): |
| (WebKit::RemoteMediaPlayerManager::supportsTypeAndCodecs): |
| |
| * WebProcess/GPU/media/RemoteMediaPlayerManager.h: |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::setMediaMIMETypes): |
| |
| 2020-01-05 Sam Weinig <weinig@apple.com> |
| |
| Further simplify StringBuilder usage by standardizing hex formating to a single hex() function |
| https://bugs.webkit.org/show_bug.cgi?id=205759 |
| |
| Reviewed by Dean Jackson. |
| |
| * UIProcess/DeviceIdHashSaltStorage.cpp: |
| (WebKit::DeviceIdHashSaltStorage::completeDeviceIdHashSaltForOriginCall): |
| * UIProcess/WebBackForwardList.cpp: |
| (WebKit::WebBackForwardList::loggingString): |
| Replace appendUnsignedAsHex() with append(hex()). |
| |
| 2020-01-05 Simon Fraser <simon.fraser@apple.com> |
| |
| DumpRenderTree doesn't always call updateRendering() when a test completes |
| https://bugs.webkit.org/show_bug.cgi?id=205761 |
| |
| Reviewed by Darin Adler. |
| |
| Use the QuartzCore SPI header. |
| |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: |
| |
| 2020-01-04 Keith Rollin <krollin@apple.com> |
| |
| Reformat WebPage logging |
| https://bugs.webkit.org/show_bug.cgi?id=205705 |
| <rdar://problem/58288704> |
| |
| Reviewed by Alex Christensen. |
| |
| Update the format used by WebPage in its RELEASE_LOG logging. Use the |
| format used by WebPageProxy and NetworkResourceLoader, which is |
| generally of the form: |
| |
| <object-address> - [<values that help thread together operations>] <class>::<method>: <message and other useful values> |
| |
| So, for example: |
| |
| 0x7f83ba009208 - WebPage (webPageID=15) - Adding a reason 1 to freeze layer tree (now 1); old reasons were 0 |
| |
| becomes: |
| |
| 0x7f83ba009208 - [webPageID=15] WebPage::freezeLayerTree: Adding a reason to freeze layer tree (reason=1, new=1, old=0) |
| |
| No new tests - no added or changed functionality. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_overriddenMediaType): |
| (WebKit::WebPage::createPlugin): |
| (WebKit::WebPage::freezeLayerTree): |
| (WebKit::WebPage::unfreezeLayerTree): |
| (WebKit::WebPage::markLayersVolatile): |
| (WebKit::WebPage::cancelMarkLayersVolatile): |
| (WebKit::WebPage::touchEventSync): |
| |
| 2020-01-03 Chris Dumez <cdumez@apple.com> |
| |
| Add support for DragEvent |
| https://bugs.webkit.org/show_bug.cgi?id=205758 |
| |
| Reviewed by Darin Adler. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::navigateToPDFLinkWithSimulatedClick): |
| |
| 2020-01-03 Garrett Davidson <garrett_davidson@apple.com> |
| |
| IconLoadingClient::getLoadDecisionForIcon() leaks an Objective-C block |
| https://bugs.webkit.org/show_bug.cgi?id=205750 |
| <rdar://problem/57981723> |
| |
| Reviewed by Wenson Hsieh. |
| |
| Replace a Block_copy with makeBlockPtr to prevent leaking the ObjC block. |
| |
| * UIProcess/Cocoa/IconLoadingDelegate.mm: |
| (WebKit::IconLoadingDelegate::IconLoadingClient::getLoadDecisionForIcon): |
| |
| 2020-01-03 Tim Horton <timothy_horton@apple.com> |
| |
| Crashes under -[WKWebView _addUpdateVisibleContentRectPreCommitHandler]_block_invoke |
| https://bugs.webkit.org/show_bug.cgi?id=205749 |
| <rdar://problem/56433624> |
| |
| Reviewed by Simon Fraser. |
| |
| Implement a speculative fix for a common crash. We believe that this is due to |
| a mechanism UIKit uses to bounce -dealloc (in our case, of WKWebView and/or WKContentView) |
| to the main thread when the last reference is dropped on a background thread. |
| At that point, deallocation has already begun, -retain cannot revive the object, |
| but -dealloc has not yet been called (because of the nature of this mechanism). |
| |
| To avoid this, make PageClientImpl -> WKContentView and WKContentView -> WKWebView |
| weak instead of raw references. This way, we won't even get to _addUpdateVisibleContentRectPreCommitHandler |
| with a deallocating WKWebView, nor try (and fail) to retain it for later use in the block. |
| |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::viewSize): |
| (WebKit::PageClientImpl::didPerformDictionaryLookup): |
| (WebKit::PageClientImpl::createValidationBubble): |
| (WebKit::PageClientImpl::createDataListSuggestionsDropdown): |
| (WebKit::PageClientImpl::createDrawingView): |
| * UIProcess/ios/WKContentView.h: |
| * UIProcess/ios/WKContentView.mm: |
| (-[WKContentView _commonInitializationWithProcessPool:configuration:]): |
| (-[WKContentView webView]): |
| (-[WKContentView didUpdateVisibleRect:unobscuredRect:contentInsets:unobscuredRectInScrollViewCoordinates:obscuredInsets:unobscuredSafeAreaInsets:inputViewBounds:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollableAncestorView:]): |
| (-[WKContentView _didCommitLayerTree:]): |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView setupInteraction]): |
| (-[WKContentView _updateLongPressAndHighlightLongPressGestures]): |
| (-[WKContentView endEditingAndUpdateFocusAppearanceWithReason:]): |
| (-[WKContentView gestureRecognizerMayPinchToZoomWebView:]): |
| (-[WKContentView _showAttachmentSheet]): |
| (-[WKContentView _actionForLongPressFromPositionInformation:]): |
| (-[WKContentView gestureRecognizerShouldBegin:]): |
| (-[WKContentView hasSelectablePositionAtPoint:]): |
| (-[WKContentView pointIsNearMarkedText:]): |
| (-[WKContentView textInteractionGesture:shouldBeginAtPoint:]): |
| (-[WKContentView _stylusSingleTapRecognized:]): |
| (-[WKContentView _endPotentialTapAndEnableDoubleTapGesturesIfNecessary]): |
| (-[WKContentView _updateInteractionTintColor]): |
| (-[WKContentView canPerformActionForWebView:withSender:]): |
| (-[WKContentView accessibilityRetrieveSpeakSelectionContent]): |
| (-[WKContentView requestRectsToEvadeForSelectionCommandsWithCompletionHandler:]): |
| (-[WKContentView accessoryAutoFill]): |
| (-[WKContentView _updateAccessory]): |
| (-[WKContentView _didChangeWebViewEditability]): |
| (-[WKContentView insertTextSuggestion:]): |
| (-[WKContentView isScrollableForKeyboardScrollViewAnimator:]): |
| (-[WKContentView keyboardScrollViewAnimator:distanceForIncrement:inDirection:]): |
| (-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:activityStateChanges:userObject:]): |
| (-[WKContentView addFocusedFormControlOverlay]): |
| (-[WKContentView presentViewControllerForCurrentFocusedElement]): |
| (-[WKContentView dismissAllInputViewControllers:]): |
| (-[WKContentView _showShareSheet:inRect:completionHandler:]): |
| (-[WKContentView actionSheetAssistant:shareElementWithURL:rect:]): |
| (-[WKContentView actionSheetAssistant:showCustomSheetForElement:]): |
| (-[WKContentView dataDetectionContextForPositionInformation:]): |
| (-[WKContentView actionSheetAssistant:getAlternateURLForImage:completion:]): |
| (-[WKContentView _didChangeDragInteractionPolicy]): |
| (-[WKContentView dragLiftDelay]): |
| (-[WKContentView setupDragAndDropInteractions]): |
| (-[WKContentView _didPerformDragOperation:]): |
| (-[WKContentView _dragDestinationActionForDropSession:]): |
| (-[WKContentView _itemsForBeginningOrAddingToSessionWithRegistrationLists:stagedDragSource:]): |
| (-[WKContentView _handleDropByInsertingImagePlaceholders:session:]): |
| (-[WKContentView _dragInteraction:dataOwnerForSession:]): |
| (-[WKContentView dragInteraction:previewForLiftingItem:session:]): |
| (-[WKContentView dragInteraction:sessionWillBegin:]): |
| (-[WKContentView dragInteraction:session:didEndWithOperation:]): |
| (-[WKContentView dragInteraction:previewForCancellingItem:withDefault:]): |
| (-[WKContentView _dropInteraction:dataOwnerForSession:]): |
| (-[WKContentView dropInteraction:sessionDidUpdate:]): |
| (-[WKContentView dropInteraction:performDrop:]): |
| (-[WKContentView dismissQuickboardViewControllerAndRevealFocusedFormOverlayIfNecessary:]): |
| (-[WKContentView viewController:inputContextViewHeightForSize:]): |
| (-[WKContentView inputContextViewForViewController:]): |
| (-[WKContentView _registerPreview]): |
| (-[WKContentView assignLegacyDataForContextMenuInteraction]): |
| (-[WKContentView _contextMenuInteraction:configurationForMenuAtLocation:completion:]): |
| (-[WKContentView continueContextMenuInteraction:]): |
| (-[WKContentView _createTargetedPreviewIfPossible]): |
| (-[WKContentView contextMenuInteraction:willDisplayMenuForConfiguration:animator:]): |
| (-[WKContentView contextMenuInteraction:willPerformPreviewActionForMenuWithConfiguration:animator:]): |
| (-[WKContentView contextMenuInteraction:willEndForConfiguration:animator:]): |
| (-[WKContentView _interactionShouldBeginFromPreviewItemController:forPosition:]): |
| (-[WKContentView _dataForPreviewItemController:atPosition:type:]): |
| (-[WKContentView _presentedViewControllerForPreviewItemController:]): |
| (-[WKContentView _previewItemController:commitPreview:]): |
| (-[WKContentView _previewItemController:didDismissPreview:committing:]): |
| |
| 2020-01-03 Peng Liu <peng.liu6@apple.com> |
| |
| Update the RemoteMediaPlayerManagerProxy::Load XPC message to provide the updated RemoteMediaPlayerConfiguration to the web process |
| https://bugs.webkit.org/show_bug.cgi?id=205740 |
| |
| Reviewed by Eric Carlson. |
| |
| * GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp: |
| (WebKit::RemoteMediaPlayerManagerProxy::load): |
| * GPUProcess/media/RemoteMediaPlayerManagerProxy.h: |
| * GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in: |
| * GPUProcess/media/RemoteMediaPlayerProxy.cpp: |
| (WebKit::RemoteMediaPlayerProxy::load): |
| * GPUProcess/media/RemoteMediaPlayerProxy.h: |
| * WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp: |
| (WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote::load): |
| |
| 2020-01-03 Andy Estes <aestes@apple.com> |
| |
| [Apple Pay] Provide a better error message when Apple Pay blocks user agent script evaluation |
| https://bugs.webkit.org/show_bug.cgi?id=205730 |
| <rdar://problem/55573484> |
| |
| Reviewed by Brady Eidson. |
| |
| * WebProcess/ApplePay/WebPaymentCoordinator.cpp: |
| (WebKit::WebPaymentCoordinator::userAgentScriptsBlockedErrorMessage const): |
| * WebProcess/ApplePay/WebPaymentCoordinator.h: |
| |
| 2020-01-03 Dean Jackson <dino@apple.com> |
| |
| Provide pid to crashing service worker process and GPU process |
| https://bugs.webkit.org/show_bug.cgi?id=205564 |
| <rdar://problem/58300321> |
| |
| Build fix for TestWebKitAPI. |
| |
| * UIProcess/API/C/WKContext.h: |
| |
| 2020-01-03 Yusuke Suzuki <ysuzuki@apple.com> |
| |
| Put more WebCore/WebKit JS objects into IsoSubspace |
| https://bugs.webkit.org/show_bug.cgi?id=205711 |
| |
| Reviewed by Keith Miller. |
| |
| * WebProcess/Plugins/Netscape/JSNPMethod.h: |
| * WebProcess/Plugins/Netscape/JSNPObject.h: |
| |
| 2020-01-03 Simon Fraser <simon.fraser@apple.com> |
| |
| Add some shared schemes to the WebKit.xcworkspace |
| https://bugs.webkit.org/show_bug.cgi?id=205698 |
| |
| Reviewed by Tim Horton. |
| |
| Make WebKit.xcworkspace show the following schemes by default: |
| All Source |
| All Tools |
| WTF |
| JavaScriptCore |
| WebCore |
| WebKit |
| WebKitLegacy |
| DumpRenderTree |
| WebKitTestRunner |
| TestWebKitAPI |
| MiniBrowser |
| MobileMiniBrowser. |
| |
| Also remove the MobileMiniBrowserUITests scheme. |
| |
| * WebKit.xcodeproj/xcshareddata/xcschemes/WebKit.xcscheme: Copied from Tools/MobileMiniBrowser/MobileMiniBrowser.xcodeproj/xcshareddata/xcschemes/MobileMiniBrowserUITests.xcscheme. |
| |
| 2020-01-03 youenn fablet <youenn@apple.com> |
| |
| Provide pid to crashing service worker process and GPU process |
| https://bugs.webkit.org/show_bug.cgi?id=205564 |
| |
| Reviewed by Alex Christensen. |
| |
| No change of behavior, we provide pids to the WKContext callbacks. |
| |
| * UIProcess/API/C/WKContext.h: |
| * UIProcess/API/C/WKContextPrivate.h: |
| * UIProcess/GPU/GPUProcessProxy.cpp: |
| (WebKit::GPUProcessProxy::gpuProcessCrashed): |
| * UIProcess/WebContextClient.cpp: |
| (WebKit::WebContextClient::serviceWorkerProcessDidCrash): |
| (WebKit::WebContextClient::gpuProcessDidCrash): |
| * UIProcess/WebContextClient.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::serviceWorkerProcessCrashed): |
| (WebKit::WebProcessPool::gpuProcessCrashed): |
| * UIProcess/WebProcessPool.h: |
| |
| 2020-01-03 Alex Christensen <achristensen@webkit.org> |
| |
| Deprecate _WKWebsitePolicies |
| https://bugs.webkit.org/show_bug.cgi?id=205539 |
| |
| Reviewed by Wenson Hsieh. |
| |
| Its last use was removed in rdar://problem/58064847 |
| but we need to keep it in WebKit until the next Safari release |
| to keep Safari working with built versions of open source WebKit with run-safari. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _updateWebsitePolicies:]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/API/Cocoa/_WKWebsitePolicies.h: |
| * UIProcess/API/Cocoa/_WKWebsitePolicies.mm: |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): |
| |
| 2020-01-03 youenn fablet <youenn@apple.com> |
| |
| NetworkResourceLoader::didFinishWithRedirectResponse should not assume the load is coming from network |
| https://bugs.webkit.org/show_bug.cgi?id=205715 |
| |
| Reviewed by Alex Christensen. |
| |
| Covered by updated test. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::didFinishWithRedirectResponse): |
| If redirection is coming from cache, the load is not null. |
| We just need to use the request URL since the redirection mode is manual. |
| |
| 2020-01-03 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, drop new assertion added in r253984 which hits on OpenSource bots |
| |
| * Shared/ios/DependencyProcessAssertionIOS.mm: |
| (WebKit::DependencyProcessAssertion::DependencyProcessAssertion): |
| |
| 2020-01-03 Chris Dumez <cdumez@apple.com> |
| |
| Improve release logging in ServiceWorkerFetchTask |
| https://bugs.webkit.org/show_bug.cgi?id=205692 |
| |
| Reviewed by Youenn Fablet. |
| |
| Improve release logging in ServiceWorkerFetchTask to facilitate debugging. |
| |
| * NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp: |
| (WebKit::ServiceWorkerFetchTask::ServiceWorkerFetchTask): |
| (WebKit::ServiceWorkerFetchTask::~ServiceWorkerFetchTask): |
| (WebKit::ServiceWorkerFetchTask::start): |
| (WebKit::ServiceWorkerFetchTask::contextClosed): |
| (WebKit::ServiceWorkerFetchTask::startFetch): |
| (WebKit::ServiceWorkerFetchTask::didReceiveRedirectResponse): |
| (WebKit::ServiceWorkerFetchTask::didReceiveResponse): |
| (WebKit::ServiceWorkerFetchTask::didFinish): |
| (WebKit::ServiceWorkerFetchTask::didFail): |
| (WebKit::ServiceWorkerFetchTask::didNotHandle): |
| (WebKit::ServiceWorkerFetchTask::cannotHandle): |
| (WebKit::ServiceWorkerFetchTask::cancelFromClient): |
| (WebKit::ServiceWorkerFetchTask::continueDidReceiveFetchResponse): |
| (WebKit::ServiceWorkerFetchTask::continueFetchTaskWith): |
| (WebKit::ServiceWorkerFetchTask::timeoutTimerFired): |
| (WebKit::ServiceWorkerFetchTask::softUpdateIfNeeded): |
| |
| 2020-01-03 youenn fablet <youenn@apple.com> |
| |
| Fix non-libwebrtc builds after r253957 |
| https://bugs.webkit.org/show_bug.cgi?id=205714 |
| |
| Unreviewed. |
| |
| * GPUProcess/webrtc/LibWebRTCCodecsProxy.mm: |
| Move the includes inside the compilation guard. |
| |
| 2020-01-02 Keith Rollin <krollin@apple.com> |
| |
| Reformat WebProcess logging |
| https://bugs.webkit.org/show_bug.cgi?id=205691 |
| <rdar://problem/58283294> |
| |
| Reviewed by Chris Dumez. |
| |
| Update the format used by WebProcess in its RELEASE_LOG logging. Use |
| the format used by WebPageProxy and NetworkResourceLoader, which is |
| generally of the form: |
| |
| <object-address> - [<values that help thread together operations>] <class>::<method>: <message and other useful values> |
| |
| So, for example: |
| |
| 0x6f1df7000 - WebProcess::destroyRenderingResources() took 0.02ms |
| |
| becomes: |
| |
| 0x6f1df7000 - [sessionID=2] WebProcess::destroyRenderingResources: took 0.02ms |
| |
| While we're at it, also convert over to the RELEASE_LOG_IF_ALLOWED |
| style of logging macro. We didn't used to be able to do this since the |
| decision on whether or not to allow logging is typically based on |
| SessionID, which didn't used to be an attribute of WebProcess. Now |
| WebProcesses do (or can) have a SessionID, so use that to support the |
| hiding of logging in private sessions. |
| |
| No new tests - no added or changed functionality. |
| |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeWebProcess): |
| (WebKit::WebProcess::prepareToSuspend): |
| (WebKit::WebProcess::markAllLayersVolatile): |
| (WebKit::WebProcess::freezeAllLayerTrees): |
| (WebKit::WebProcess::unfreezeAllLayerTrees): |
| (WebKit::WebProcess::processDidResume): |
| (WebKit::WebProcess::grantUserMediaDeviceSandboxExtensions): |
| (WebKit::WebProcess::revokeUserMediaDeviceSandboxExtensions): |
| * WebProcess/WebProcess.h: |
| (WebKit::WebProcess::isAlwaysOnLoggingAllowed): |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::updateProcessName): |
| (WebKit::WebProcess::updateCPUMonitorState): |
| (WebKit::WebProcess::destroyRenderingResources): |
| (WebKit::WebProcess::updateFreezerStatus): |
| |
| 2020-01-02 Yusuke Suzuki <ysuzuki@apple.com> and Simon Fraser <simon.fraser@apple.com> |
| |
| Experiment: create lots of different malloc zones for easier accounting of memory use |
| https://bugs.webkit.org/show_bug.cgi?id=186422 |
| |
| Reviewed by Saam Barati. |
| |
| * Shared/ShareableBitmap.cpp: |
| (WebKit::ShareableBitmap::create): |
| (WebKit::ShareableBitmap::~ShareableBitmap): |
| * UIProcess/mac/LegacySessionStateCoding.cpp: |
| (WebKit::HistoryEntryDataEncoder::HistoryEntryDataEncoder): |
| (WebKit::HistoryEntryDataEncoder::finishEncoding): |
| (WebKit::encodeSessionHistoryEntryData): |
| (WebKit::encodeLegacySessionState): |
| |
| 2020-01-02 Chris Dumez <cdumez@apple.com> |
| |
| [iOS] Replace "unexpectedly resumed" observer with RunningBoard suspendible assertions |
| https://bugs.webkit.org/show_bug.cgi?id=205687 |
| <rdar://problem/57890246> |
| |
| Reviewed by Tim Horton. |
| |
| Adopt new RunningBoard process assertion to indicate that WebContent processes depend on their |
| UIProcess (and therefore, the UIProcess must be running if the WebContent process is). This |
| replaces our "Unexpectedly resumed" assertion which was causing unexpected terminations in some |
| cases. |
| |
| * Configurations/WebKit.xcconfig: |
| * Platform/spi/ios/RunningBoardServicesSPI.h: Added. |
| * Scripts/process-entitlements.sh: |
| * Shared/DependencyProcessAssertion.cpp: Added. |
| (WebKit::DependencyProcessAssertion::DependencyProcessAssertion): |
| (WebKit::DependencyProcessAssertion::~DependencyProcessAssertion): |
| * Shared/DependencyProcessAssertion.h: Added. |
| * Shared/ios/DependencyProcessAssertionIOS.mm: Added. |
| (WebKit::DependencyProcessAssertion::DependencyProcessAssertion): |
| (WebKit::DependencyProcessAssertion::~DependencyProcessAssertion): |
| * Sources.txt: |
| * SourcesCocoa.txt: |
| * UIProcess/Cocoa/WebProcessProxyCocoa.mm: |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebProcessProxy.messages.in: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeConnection): |
| * WebProcess/WebProcess.h: |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| |
| 2020-01-02 Keith Rollin <krollin@apple.com> |
| |
| Reformat WebProcessCache logging |
| https://bugs.webkit.org/show_bug.cgi?id=205683 |
| <rdar://problem/58269352> |
| |
| Reviewed by Alex Christensen. |
| |
| Update the format used by WebProcessCache in its RELEASE_LOG logging. |
| Use the format used by WebPageProxy and NetworkResourceLoader, which |
| is generally of the form: |
| |
| <object-address> - [<values that help thread together operations>] <class>::<method>: <message and other useful values> |
| |
| So, for example: |
| |
| 0x1145ed208 - WebProcessCache::canCacheProcess(): Not caching process 83671 because it does not have an associated registrable domain |
| |
| becomes: |
| |
| 0x1145ed208 - [PID=83671] WebProcessCache::canCacheProcess: Not caching process because it does not have an associated registrable domain |
| |
| No new tests - no added or changed functionality. |
| |
| * UIProcess/WebProcessCache.cpp: |
| (WebKit::WebProcessCache::canCacheProcess const): |
| (WebKit::WebProcessCache::addProcessIfPossible): |
| (WebKit::WebProcessCache::addProcess): |
| (WebKit::WebProcessCache::takeProcess): |
| (WebKit::WebProcessCache::updateCapacity): |
| (WebKit::WebProcessCache::clear): |
| (WebKit::WebProcessCache::clearAllProcessesForSession): |
| (WebKit::WebProcessCache::setApplicationIsActive): |
| (WebKit::WebProcessCache::removeProcess): |
| |
| 2020-01-02 Keith Rollin <krollin@apple.com> |
| |
| Reformat ProcessThrottler logging |
| https://bugs.webkit.org/show_bug.cgi?id=205679 |
| <rdar://problem/58265958> |
| |
| Reviewed by Alex Christensen. |
| |
| Update the format used by ProcessThrottler in its RELEASE_LOG logging. |
| Use the format used by WebPageProxy and NetworkResourceLoader, which |
| is generally of the form: |
| |
| <object-address> - [<values that help thread together operations>] <class>::<method>: <message and other useful values> |
| |
| So, for example: |
| |
| [PID: 0] 0x1145ce5e8 - ProcessThrottler::invalidateAllActivities() BEGIN |
| |
| becomes: |
| |
| 0x1145ce5e8 - [PID: 0] ProcessThrottler::invalidateAllActivities: BEGIN |
| |
| No new tests - no added or changed functionality. |
| |
| * UIProcess/ProcessThrottler.cpp: |
| (WebKit::ProcessThrottler::invalidateAllActivities): |
| (WebKit::ProcessThrottler::setAssertionState): |
| (WebKit::ProcessThrottler::updateAssertionIfNeeded): |
| (WebKit::ProcessThrottler::didConnectToProcess): |
| (WebKit::ProcessThrottler::prepareToSuspendTimeoutTimerFired): |
| (WebKit::ProcessThrottler::processReadyToSuspend): |
| (WebKit::ProcessThrottler::sendPrepareToSuspendIPC): |
| (WebKit::ProcessThrottler::uiAssertionWillExpireImminently): |
| * UIProcess/ProcessThrottler.h: |
| (WebKit::ProcessThrottler::Activity::Activity): |
| (WebKit::ProcessThrottler::Activity::invalidate): |
| |
| 2020-01-02 Keith Rollin <krollin@apple.com> |
| |
| Reformat WebResourceLoader logging |
| https://bugs.webkit.org/show_bug.cgi?id=205680 |
| <rdar://problem/58266105> |
| |
| Reviewed by Alex Christensen. |
| |
| Update the format used by WebResourceLoader in its RELEASE_LOG |
| logging. Use the format used by WebPageProxy and |
| NetworkResourceLoader, which is generally of the form: |
| |
| <object-address> - [<values that help thread together operations>] <class>::<method>: <message and other useful values> |
| |
| So, for example: |
| |
| 0x4a1dbcb58 - WebResourceLoader::didFinishResourceLoad: (webPageID=15, frameID=3, resourceID=1, length=212132) |
| |
| becomes: |
| |
| 0x4a1dbcb58 - [webPageID=15, frameID=3, resourceID=1] WebResourceLoader::didFinishResourceLoad: (length=212132) |
| |
| No new tests - no added or changed functionality. |
| |
| * WebProcess/Network/WebResourceLoader.cpp: |
| (WebKit::WebResourceLoader::willSendRequest): |
| (WebKit::WebResourceLoader::didReceiveResponse): |
| (WebKit::WebResourceLoader::didReceiveData): |
| (WebKit::WebResourceLoader::didFinishResourceLoad): |
| (WebKit::WebResourceLoader::serviceWorkerDidNotHandle): |
| (WebKit::WebResourceLoader::didFailResourceLoad): |
| (WebKit::WebResourceLoader::didBlockAuthenticationChallenge): |
| (WebKit::WebResourceLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied): |
| (WebKit::WebResourceLoader::didReceiveResource): |
| |
| 2020-01-02 Alex Christensen <achristensen@webkit.org> |
| |
| Add SPI to disable CORS on requests to URLs matching a pattern |
| https://bugs.webkit.org/show_bug.cgi?id=205534 |
| <rdar://problem/58011337> |
| |
| Reviewed by Chris Dumez. |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| * UIProcess/API/APIPageConfiguration.cpp: |
| (API::PageConfiguration::copy const): |
| (API::PageConfiguration::PageConfiguration): Deleted. |
| (API::PageConfiguration::~PageConfiguration): Deleted. |
| * UIProcess/API/APIPageConfiguration.h: |
| (API::PageConfiguration::corsDisablingPatterns const): |
| (API::PageConfiguration::setCORSDisablingPatterns): |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: |
| (-[WKWebViewConfiguration _corsDisablingPatterns]): |
| (-[WKWebViewConfiguration _setCORSDisablingPatterns:]): |
| * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: |
| * UIProcess/WebPageProxy.cpp: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_overriddenMediaType): |
| |
| 2020-01-02 Sam Weinig <weinig@apple.com> |
| |
| Simplify StringBuilder API/align with makeString by removing appendFixed* functions and using FormatNumber struct instead |
| https://bugs.webkit.org/show_bug.cgi?id=205671 |
| |
| Reviewed by Alex Christensen. |
| |
| * NetworkProcess/cache/NetworkCache.cpp: |
| (WebKit::NetworkCache::Cache::dumpContentsToFile): |
| * NetworkProcess/cache/NetworkCacheEntry.cpp: |
| (WebKit::NetworkCache::Entry::asJSON const): |
| * Shared/Gamepad/GamepadData.cpp: |
| (WebKit::GamepadData::loggingString const): |
| Replace all uses of builder.appendFixedPrecisionNumber(...) with builder.append(FormattedNumber::fixedPrecision(...)). |
| |
| 2020-01-02 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Make ondemand hardware acceleration policy never leave AC mode |
| https://bugs.webkit.org/show_bug.cgi?id=205558 |
| |
| Reviewed by Sergio Villar Senin. |
| |
| We still enter AC mode on demand but we never leave it for the same drawing area. This avoids scrolling |
| performance problems with some websites that start small accelerated animation while scrolling (like WebKit |
| bugzilla review tool), due to constant enter/leave AC mode. |
| |
| * UIProcess/API/glib/WebKitSettings.cpp: |
| (webkit_settings_class_init): Update API documentation. |
| * WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp: |
| (WebKit::DrawingAreaCoordinatedGraphics::enterAcceleratedCompositingMode): Force AC mode the first time we enter it. |
| |
| 2019-12-22 Jeff Miller <jeffm@apple.com> |
| |
| Update user-visible copyright strings to include 2020 |
| https://bugs.webkit.org/show_bug.cgi?id=205552 |
| |
| Reviewed by Darin Adler. |
| |
| * GPUProcess/EntryPoint/Cocoa/XPCService/GPUService/Info-OSX.plist: |
| * GPUProcess/EntryPoint/Cocoa/XPCService/GPUService/Info-iOS.plist: |
| * Info.plist: |
| * NetworkProcess/EntryPoint/Cocoa/XPCService/NetworkService/Info-OSX.plist: |
| * NetworkProcess/EntryPoint/Cocoa/XPCService/NetworkService/Info-iOS.plist: |
| * PluginProcess/EntryPoint/Cocoa/XPCService/PluginService.64.Info.plist: |
| * WebProcess/EntryPoint/Cocoa/XPCService/WebContentService/Info-OSX.plist: |
| * WebProcess/EntryPoint/Cocoa/XPCService/WebContentService/Info-iOS.plist: |
| |
| 2019-12-31 Peng Liu <peng.liu6@apple.com> |
| |
| Add remote media resource loader for the GPU process |
| https://bugs.webkit.org/show_bug.cgi?id=205379 |
| |
| Reviewed by Youenn Fablet. |
| |
| In the GPU process, the RemoteMediaResourceLoader creates RemoteMediaResource(s), |
| which will notify the media resource clients (WebCoreNSURLSessionDataTaskClient). |
| Then the data will be forwarded to AVFoundation. |
| |
| In the Web process, MeidaResourceLoader creates MediaResource(s), which take care of |
| downloading media data through the network process. The received data will be forwarded to |
| RemoteMediaResourceProxy, which will forward the data to the corresponding RemoteMediaResource |
| through XPC messages. |
| |
| (WebKit::GPUConnectionToWebProcess::remoteMediaResourceManager): |
| (WebKit::GPUConnectionToWebProcess::didReceiveMessage): |
| * GPUProcess/GPUConnectionToWebProcess.h: |
| * GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp: |
| * GPUProcess/media/RemoteMediaPlayerManagerProxy.h: |
| * GPUProcess/media/RemoteMediaPlayerProxy.cpp: |
| (WebKit::RemoteMediaPlayerProxy::~RemoteMediaPlayerProxy): |
| (WebKit::RemoteMediaPlayerProxy::requestResource): |
| (WebKit::RemoteMediaPlayerProxy::removeResource): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerCreateResourceLoader): |
| * GPUProcess/media/RemoteMediaPlayerProxy.h: |
| (WebKit::RemoteMediaPlayerProxy::~RemoteMediaPlayerProxy): Deleted. |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerLogIdentifier): Deleted. |
| * GPUProcess/media/RemoteMediaResource.cpp: Added. |
| (WebKit::RemoteMediaResource::create): |
| (WebKit::RemoteMediaResource::RemoteMediaResource): |
| (WebKit::RemoteMediaResource::~RemoteMediaResource): |
| (WebKit::RemoteMediaResource::stop): |
| (WebKit::RemoteMediaResource::didPassAccessControlCheck const): |
| (WebKit::RemoteMediaResource::responseReceived): |
| (WebKit::RemoteMediaResource::redirectReceived): |
| (WebKit::RemoteMediaResource::shouldCacheResponse): |
| (WebKit::RemoteMediaResource::dataSent): |
| (WebKit::RemoteMediaResource::dataReceived): |
| (WebKit::RemoteMediaResource::accessControlCheckFailed): |
| (WebKit::RemoteMediaResource::loadFailed): |
| (WebKit::RemoteMediaResource::loadFinished): |
| * GPUProcess/media/RemoteMediaResource.h: Added. |
| (WebKit::RemoteMediaResource::ready const): |
| (WebKit::RemoteMediaResource::setReady): |
| * GPUProcess/media/RemoteMediaResourceIdentifier.h: Added. |
| * GPUProcess/media/RemoteMediaResourceLoader.cpp: Added. |
| (WebKit::RemoteMediaResourceLoader::RemoteMediaResourceLoader): |
| (WebKit::RemoteMediaResourceLoader::~RemoteMediaResourceLoader): |
| (WebKit::RemoteMediaResourceLoader::requestResource): |
| * GPUProcess/media/RemoteMediaResourceLoader.h: Added. |
| * GPUProcess/media/RemoteMediaResourceManager.cpp: Added. |
| (WebKit::RemoteMediaResourceManager::RemoteMediaResourceManager): |
| (WebKit::RemoteMediaResourceManager::~RemoteMediaResourceManager): |
| (WebKit::RemoteMediaResourceManager::addMediaResource): |
| (WebKit::RemoteMediaResourceManager::removeMediaResource): |
| (WebKit::RemoteMediaResourceManager::responseReceived): |
| (WebKit::RemoteMediaResourceManager::redirectReceived): |
| (WebKit::RemoteMediaResourceManager::dataSent): |
| (WebKit::RemoteMediaResourceManager::dataReceived): |
| (WebKit::RemoteMediaResourceManager::accessControlCheckFailed): |
| (WebKit::RemoteMediaResourceManager::loadFailed): |
| (WebKit::RemoteMediaResourceManager::loadFinished): |
| * GPUProcess/media/RemoteMediaResourceManager.h: Added. |
| * GPUProcess/media/RemoteMediaResourceManager.messages.in: Added. |
| * WebProcess/GPU/GPUProcessConnection.h: |
| * WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp: |
| (WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote): |
| (WebKit::MediaPlayerPrivateRemote::requestResource): |
| (WebKit::MediaPlayerPrivateRemote::removeResource): |
| * WebProcess/GPU/media/MediaPlayerPrivateRemote.h: |
| * WebProcess/GPU/media/MediaPlayerPrivateRemoteIdentifier.h: |
| * WebProcess/GPU/media/RemoteMediaPlayerManager.cpp: |
| (WebKit::RemoteMediaPlayerManager::supportsTypeAndCodecs): |
| (WebKit::RemoteMediaPlayerManager::originsInMediaCache): |
| (WebKit::RemoteMediaPlayerManager::clearMediaCacheForOrigins): |
| (WebKit::RemoteMediaPlayerManager::networkStateChanged): |
| (WebKit::RemoteMediaPlayerManager::readyStateChanged): |
| (WebKit::RemoteMediaPlayerManager::volumeChanged): |
| (WebKit::RemoteMediaPlayerManager::muteChanged): |
| (WebKit::RemoteMediaPlayerManager::timeChanged): |
| (WebKit::RemoteMediaPlayerManager::durationChanged): |
| (WebKit::RemoteMediaPlayerManager::rateChanged): |
| (WebKit::RemoteMediaPlayerManager::playbackStateChanged): |
| (WebKit::RemoteMediaPlayerManager::engineFailedToLoad): |
| (WebKit::RemoteMediaPlayerManager::requestResource): |
| (WebKit::RemoteMediaPlayerManager::removeResource): |
| * WebProcess/GPU/media/RemoteMediaPlayerManager.h: |
| (WebKit::RemoteMediaPlayerManager::didReceiveMessageFromGPUProcess): |
| (WebKit::RemoteMediaPlayerManager::didReceiveMessageFromWebProcess): Deleted. |
| * WebProcess/GPU/media/RemoteMediaPlayerManager.messages.in: |
| * WebProcess/GPU/media/RemoteMediaResourceProxy.cpp: Added. |
| (WebKit::RemoteMediaResourceProxy::RemoteMediaResourceProxy): |
| (WebKit::RemoteMediaResourceProxy::~RemoteMediaResourceProxy): |
| (WebKit::RemoteMediaResourceProxy::responseReceived): |
| (WebKit::RemoteMediaResourceProxy::redirectReceived): |
| (WebKit::RemoteMediaResourceProxy::shouldCacheResponse): |
| (WebKit::RemoteMediaResourceProxy::dataSent): |
| (WebKit::RemoteMediaResourceProxy::dataReceived): |
| (WebKit::RemoteMediaResourceProxy::accessControlCheckFailed): |
| (WebKit::RemoteMediaResourceProxy::loadFailed): |
| (WebKit::RemoteMediaResourceProxy::loadFinished): |
| * WebProcess/GPU/media/RemoteMediaResourceProxy.h: Added. |
| |
| 2019-12-31 youenn fablet <youenn@apple.com> |
| |
| Implement RTC VTB decoders in GPUProcess |
| https://bugs.webkit.org/show_bug.cgi?id=205607 |
| |
| Reviewed by Eric Carlson. |
| |
| Implement decoder factory callbacks. |
| Implement WebProcess codecs by sending IPC for creating/releasing/decoding a frame. |
| WebProcess receives IPC messages from GPU Process whenever a frame is decoded. |
| |
| * Configurations/WebKit.xcconfig: |
| * DerivedSources-input.xcfilelist: |
| * DerivedSources-output.xcfilelist: |
| * DerivedSources.make: |
| * GPUProcess/GPUConnectionToWebProcess.cpp: |
| (WebKit::GPUConnectionToWebProcess::libWebRTCCodecsProxy): |
| (WebKit::GPUConnectionToWebProcess::didReceiveMessage): |
| * GPUProcess/GPUConnectionToWebProcess.h: |
| * GPUProcess/webrtc/LibWebRTCCodecsProxy.h: Added. |
| (WebKit::LibWebRTCCodecsProxy::didReceiveMessageFromWebProcess): |
| * GPUProcess/webrtc/LibWebRTCCodecsProxy.messages.in: Added. |
| * GPUProcess/webrtc/LibWebRTCCodecsProxy.mm: Added. |
| (WebKit::LibWebRTCCodecsProxy::LibWebRTCCodecsProxy): |
| (WebKit::LibWebRTCCodecsProxy::~LibWebRTCCodecsProxy): |
| (WebKit::LibWebRTCCodecsProxy::createDecoder): |
| (WebKit::LibWebRTCCodecsProxy::releaseDecoder): |
| (WebKit::LibWebRTCCodecsProxy::decodeFrame): |
| * Scripts/webkit/messages.py: |
| * Sources.txt: |
| * SourcesCocoa.txt: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/GPU/GPUProcessConnection.cpp: |
| (WebKit::GPUProcessConnection::didReceiveMessage): |
| * WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp: Added. |
| (WebKit::createVideoDecoder): |
| (WebKit::releaseVideoDecoder): |
| (WebKit::decodeVideoFrame): |
| (WebKit::registerDecodeCompleteCallback): |
| (WebKit::LibWebRTCCodecs::setVideoDecoderCallbacks): |
| (WebKit::LibWebRTCCodecs::createDecoder): |
| (WebKit::LibWebRTCCodecs::releaseDecoder): |
| (WebKit::LibWebRTCCodecs::decodeFrame): |
| (WebKit::LibWebRTCCodecs::registerDecodeFrameCallback): |
| (WebKit::LibWebRTCCodecs::failedDecoding): |
| (WebKit::LibWebRTCCodecs::completedDecoding): |
| * WebProcess/GPU/webrtc/LibWebRTCCodecs.h: Added. |
| * WebProcess/GPU/webrtc/LibWebRTCCodecs.messages.in: Added. |
| * WebProcess/GPU/webrtc/RTCDecoderIdentifier.h: Added. |
| * WebProcess/Network/webrtc/LibWebRTCProvider.cpp: |
| (WebKit::LibWebRTCProvider::createDecoderFactory): |
| * WebProcess/Network/webrtc/LibWebRTCProvider.h: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::libWebRTCCodecs): |
| * WebProcess/WebProcess.h: |
| |
| 2019-12-30 Brady Eidson <beidson@apple.com> |
| |
| Add WKWebView SPI to evaluate a function with arguments |
| https://bugs.webkit.org/show_bug.cgi?id=205239 |
| |
| Reviewed by Alex Christensen. |
| |
| * Shared/API/APISerializedScriptValue.h: |
| |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageRunJavaScriptInMainFrame): |
| |
| * UIProcess/API/Cocoa/APISerializedScriptValueCocoa.mm: |
| (API::sharedContext): |
| (API::SerializedScriptValue::deserialize): |
| (API::SerializedScriptValue::wireBytesFromNSObject): |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView evaluateJavaScript:completionHandler:]): |
| (validateArgument): |
| (-[WKWebView _evaluateJavaScript:asAsyncFunction:withArguments:forceUserGesture:completionHandler:]): |
| (-[WKWebView _callAsyncFunction:withArguments:completionHandler:]): |
| (-[WKWebView _evaluateJavaScriptWithoutUserGesture:completionHandler:]): |
| (-[WKWebView _evaluateJavaScript:forceUserGesture:completionHandler:]): Deleted. |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| |
| * UIProcess/API/glib/WebKitWebView.cpp: |
| (webkit_web_view_run_javascript): |
| (webkit_web_view_run_javascript_in_world): |
| (resourcesStreamReadCallback): |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::runJavaScriptInMainFrame): |
| (WebKit::WebPageProxy::runJavaScriptInMainFrameScriptWorld): |
| * UIProcess/WebPageProxy.h: |
| |
| * UIProcess/socket/RemoteInspectorProtocolHandler.cpp: |
| (WebKit::RemoteInspectorProtocolHandler::runScript): |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::runJavaScript): |
| (WebKit::WebPage::runJavaScriptInMainFrameScriptWorld): |
| (WebKit::WebPage::runJavaScriptInFrame): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2019-12-29 Peng Liu <peng.liu6@apple.com> |
| |
| Tweak the format and comment in the code to support media in GPU process |
| https://bugs.webkit.org/show_bug.cgi?id=205631 |
| |
| Reviewed by Eric Carlson. |
| |
| No new tests, no functional change. |
| |
| * GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp: |
| (WebKit::RemoteMediaPlayerManagerProxy::logChannel const): |
| * GPUProcess/media/RemoteMediaPlayerManagerProxy.h: |
| * GPUProcess/media/RemoteMediaPlayerProxy.h: |
| * GPUProcess/media/RemoteMediaPlayerProxyConfiguration.h: |
| * WebProcess/GPU/GPUProcessConnectionInfo.h: |
| * WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp: |
| * WebProcess/GPU/media/MediaPlayerPrivateRemoteIdentifier.h: |
| * WebProcess/GPU/media/RemoteMediaPlayerConfiguration.h: |
| * WebProcess/GPU/media/RemoteMediaPlayerManager.cpp: |
| * WebProcess/GPU/media/RemoteMediaPlayerManager.messages.in: |
| * WebProcess/GPU/media/RemoteMediaPlayerState.h: |
| |
| 2019-12-29 Eric Carlson <eric.carlson@apple.com> |
| |
| Cleanup media IPC encoders |
| https://bugs.webkit.org/show_bug.cgi?id=205630 |
| <rdar://problem/58232173> |
| |
| Reviewed by Anders Carlsson. |
| |
| * GPUProcess/media/RemoteMediaPlayerProxyConfiguration.h: |
| (WebKit::RemoteMediaPlayerProxyConfiguration::decode): |
| * WebProcess/GPU/media/RemoteMediaPlayerConfiguration.h: |
| (WebKit::RemoteMediaPlayerConfiguration::decode): |
| |
| 2019-12-28 Antti Koivisto <antti@apple.com> |
| |
| Make simple line layout an internal feature |
| https://bugs.webkit.org/show_bug.cgi?id=205615 |
| |
| Reviewed by Zalan Bujtas. |
| |
| So it can be enabled/disabled from run-webkit-tests command line. |
| |
| This also adds it to the internal feature menus, allowing removal of hardcoded menu entries. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2019-12-23 Darin Adler <darin@apple.com> |
| |
| Refactor to simplify broadcasting to all media elements |
| https://bugs.webkit.org/show_bug.cgi?id=205567 |
| |
| Reviewed by Eric Carlson. |
| |
| * WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp: |
| (WebKit::InjectedBundleHitTestResult::mediaType const): Use is<HTMLMediaElement>. |
| |
| 2019-12-26 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK][WPE] Remove duplicated code |
| https://bugs.webkit.org/show_bug.cgi?id=205560 |
| |
| Reviewed by Sergio Villar Senin. |
| |
| Remove duplicated code related to IME between GTK and WPE that can be shared. |
| |
| * SourcesGTK.txt: |
| * SourcesWPE.txt: |
| * WebProcess/WebCoreSupport/glib/WebEditorClientGLib.cpp: Added. |
| (WebKit::WebEditorClient::handleInputMethodKeydown): |
| (WebKit::WebEditorClient::didDispatchInputMethodKeydown): |
| * WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp: |
| * WebProcess/WebCoreSupport/wpe/WebEditorClientWPE.cpp: |
| * WebProcess/WebPage/glib/WebPageGLib.cpp: |
| (WebKit::WebPage::setInputMethodState): |
| * WebProcess/WebPage/gtk/WebPageGtk.cpp: |
| * WebProcess/WebPage/wpe/WebPageWPE.cpp: |
| |
| 2019-12-24 Eric Carlson <eric.carlson@apple.com> |
| |
| [Media in GPU process] Enable media player proxy logging |
| https://bugs.webkit.org/show_bug.cgi?id=205557 |
| <rdar://problem/58160932> |
| |
| Reviewed by Youenn Fablet. |
| |
| * GPUProcess/GPUConnectionToWebProcess.cpp: |
| (WebKit::GPUConnectionToWebProcess::create): |
| (WebKit::GPUConnectionToWebProcess::GPUConnectionToWebProcess): |
| (WebKit::GPUConnectionToWebProcess::logger): |
| * GPUProcess/GPUConnectionToWebProcess.h: |
| * GPUProcess/GPUProcess.cpp: |
| (WebKit::GPUProcess::createGPUConnectionToWebProcess): |
| * GPUProcess/GPUProcess.h: |
| * GPUProcess/GPUProcess.messages.in: |
| * GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp: |
| (WebKit::RemoteMediaPlayerManagerProxy::logger const): |
| (WebKit::nullLogger): Deleted. |
| * Platform/Logging.h: |
| * UIProcess/GPU/GPUProcessProxy.cpp: |
| (WebKit::GPUProcessProxy::openGPUProcessConnection): |
| * WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp: |
| (WebKit::MediaPlayerPrivateRemote::logChannel const): |
| |
| 2019-12-24 youenn fablet <youenn@apple.com> |
| |
| Service Worker doesn't terminate after a period of time when thread blocking |
| https://bugs.webkit.org/show_bug.cgi?id=202992 |
| <rdar://problem/56298596> |
| |
| Reviewed by Chris Dumez. |
| |
| Add a preference to enable/disable service worker short timeouts. |
| Add IPC handling for passing service worker heart beat failures and to get from WebProcess |
| whether a given service worker is running or not. |
| |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::contextConnectionCreated): |
| (WebKit::WebSWServerConnection::syncTerminateWorkerFromClient): |
| (WebKit::WebSWServerConnection::isServiceWorkerRunning): |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.h: |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.messages.in: |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.messages.in: |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesGetServiceWorkerTestMode): |
| (WKPreferencesSetServiceWorkerTestMode): |
| * UIProcess/API/C/WKPreferencesRef.h: |
| * WebProcess/Storage/WebSWClientConnection.cpp: |
| (WebKit::WebSWClientConnection::isServiceWorkerRunning): |
| * WebProcess/Storage/WebSWClientConnection.h: |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::updatePreferencesStore): |
| (WebKit::WebSWContextManagerConnection::didFailHeartBeatCheck): |
| * WebProcess/Storage/WebSWContextManagerConnection.h: |
| |
| 2019-12-23 Alexey Proskuryakov <ap@apple.com> |
| |
| watchOS build fix attempt |
| |
| Not sure what broke the build, seems like UserInterfaceIdiom.h used to be included |
| via unified build, and no longer is. Added the include. |
| |
| While at it, removed an ancient __IPHONE_OS_VERSION_MIN_REQUIRED version check. |
| |
| * UIProcess/ios/forms/WKAirPlayRoutePicker.mm: |
| |
| 2019-12-23 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Unreviewed, fix the macCatalyst build after r253866 |
| |
| * WebProcess/GPU/media/RemoteMediaPlayerManager.cpp: |
| (WebKit::RemoteMediaPlayerManager::createRemoteMediaPlayer): |
| |
| MediaPlayer::mediaKeysStorageDirectory() is guarded by ENABLE(LEGACY_ENCRYPTED_MEDIA). |
| |
| 2019-12-23 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| WebDriver: fix handling of session timeouts for values higher than MAX_INT |
| https://bugs.webkit.org/show_bug.cgi?id=204114 |
| |
| Reviewed by Brian Burg. |
| |
| Use number instead of integer for all optional timeout parameters. In the case of script timeout, not passing a |
| value means a timeout should not be used, so use Optional<double> also for the IPC message and handle the |
| optional value in the web process to not set any timeout in that case. |
| |
| * UIProcess/Automation/Automation.json: |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::waitForNavigationToComplete): |
| (WebKit::WebAutomationSession::navigateBrowsingContext): |
| (WebKit::WebAutomationSession::goBackInBrowsingContext): |
| (WebKit::WebAutomationSession::goForwardInBrowsingContext): |
| (WebKit::WebAutomationSession::reloadBrowsingContext): |
| (WebKit::WebAutomationSession::evaluateJavaScriptFunction): |
| * UIProcess/Automation/WebAutomationSession.h: |
| * WebProcess/Automation/WebAutomationSessionProxy.cpp: |
| (WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction): |
| * WebProcess/Automation/WebAutomationSessionProxy.h: |
| * WebProcess/Automation/WebAutomationSessionProxy.js: |
| (let.AutomationSessionProxy.prototype.evaluateJavaScriptFunction): |
| * WebProcess/Automation/WebAutomationSessionProxy.messages.in: |
| |
| 2019-12-23 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] InputMethod API unit tests don't work under X11 |
| https://bugs.webkit.org/show_bug.cgi?id=205497 |
| |
| Reviewed by Žan Doberšek. |
| |
| Assume the web view is always focused when running tests under Xvfb, since there isn't a window manager to focus |
| the toplevel window in that case. |
| |
| * UIProcess/API/glib/InputMethodFilter.cpp: |
| (WebKit::InputMethodFilter::isViewFocused const): |
| |
| 2019-12-23 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK][WPE] Special combination characters doesn't respect the keystroke order when high CPU load |
| https://bugs.webkit.org/show_bug.cgi?id=185248 |
| |
| Reviewed by Žan Doberšek. |
| |
| Key events are queued by the WebPageProxy so that the next event is not sent to the web process until the |
| previous one has been handled by the web process already. However, the composition results generated by key |
| events are sent to the web process using IPC messages when they happen. In case of high CPU load it can happen |
| that the composition results are sent to the web process even before the associated keys, that are still in the |
| queue waiting to be sent. We need to ensure that composition results are always processed right after its |
| associated key press event. So, instead of sending the results independently, we now include them as part of the |
| key event. |
| |
| * Shared/NativeWebKeyboardEvent.h: Add optional preeditUnderlines and preeditSelectionRange parameters to constructor. |
| * Shared/WebEvent.h: |
| (WebKit::WebKeyboardEvent::preeditUnderlines const): Return the optional preeditUnderlines. |
| (WebKit::WebKeyboardEvent::preeditSelectionRange const): Return the optional preeditSelectionRange. |
| * Shared/WebEventConversion.cpp: |
| (WebKit::WebKit2PlatformKeyboardEvent::WebKit2PlatformKeyboardEvent): Copy preeditUnderlines and |
| preeditSelectionRange too. |
| * Shared/WebKeyboardEvent.cpp: |
| (WebKit::WebKeyboardEvent::WebKeyboardEvent): Add optional preeditUnderlines and preeditSelectionRange |
| parameters and initialize them. |
| (WebKit::WebKeyboardEvent::encode const): Encode preeditUnderlines and preeditSelectionRange. |
| (WebKit::WebKeyboardEvent::decode): Decode preeditUnderlines and preeditSelectionRange. |
| * Shared/gtk/NativeWebKeyboardEventGtk.cpp: |
| (WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent): Add optional preeditUnderlines and |
| preeditSelectionRange parameters and initialize them. |
| * Shared/gtk/WebEventFactory.cpp: |
| (WebKit::WebEventFactory::createWebKeyboardEvent): Add optional preeditUnderlines and preeditSelectionRange |
| parameters and pass them to WebKeyboardEvent constructor. |
| * Shared/gtk/WebEventFactory.h: |
| * Shared/libwpe/NativeWebKeyboardEventLibWPE.cpp: |
| (WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent): Add optional preeditUnderlines and |
| preeditSelectionRange parameters and initialize them. |
| * Shared/libwpe/WebEventFactory.cpp: |
| (WebKit::WebEventFactory::createWebKeyboardEvent): Add optional preeditUnderlines and preeditSelectionRang |
| parameters and pass them to WebKeyboardEvent constructor. |
| * Shared/libwpe/WebEventFactory.h: Add optional preeditUnderlines and preeditSelectionRange parameters to constructor. |
| * UIProcess/API/glib/WebKitWebView.cpp: |
| (webkitWebViewSynthesizeCompositionKeyPress): Pass the preeditUnderlines and preeditSelectionRange to platform |
| implementation. |
| (webkitWebViewSetComposition): Remove the call to WebPageProxy::setComposition(). |
| (webkitWebViewConfirmComposition): Remove the call to WebPageProxy::confirmComposition(). |
| (webkitWebViewCancelComposition): Call WebPageProxy::cancelComposition(); |
| * UIProcess/API/gtk/WebKitWebViewBase.cpp: |
| (webkitWebViewBaseKeyPressEvent): Pass the preeditUnderlines and preeditSelectionRange to NativeWebKeyboardEvent constructor. |
| (webkitWebViewBaseKeyReleaseEvent): Ditto. |
| (webkitWebViewBaseSynthesizeCompositionKeyPress): Ditto. |
| * UIProcess/API/gtk/WebKitWebViewBasePrivate.h: |
| * UIProcess/API/wpe/WPEView.cpp: |
| (WKWPE::View::handleKeyboardEvent): Ditto. |
| (WKWPE::View::synthesizeCompositionKeyPress): Ditto. |
| * UIProcess/API/wpe/WPEView.h: |
| * UIProcess/WebPageProxy.cpp: |
| * UIProcess/WebPageProxy.h: |
| * WebProcess/WebCoreSupport/WebEditorClient.h: |
| * WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp: |
| (WebKit::WebEditorClient::didDispatchInputMethodKeydown): Handle the composition results here, right after the |
| associated key events has been dispatched. |
| * WebProcess/WebCoreSupport/wpe/WebEditorClientWPE.cpp: |
| (WebKit::WebEditorClient::didDispatchInputMethodKeydown): Ditto. |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::cancelComposition): Confirm the given string to cancel the composition. |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: Remove SetComposition message and rename ConfirmComposition as |
| CancelComposition since it's now only used for canceling. |
| |
| 2019-12-22 Simon Fraser <simon.fraser@apple.com> |
| |
| Make support for <dialog> an internal feature, off by default |
| https://bugs.webkit.org/show_bug.cgi?id=205542 |
| |
| Reviewed by Antti Koivisto. |
| |
| Make DialogElementEnabled an internal feature so it shows up in the menus and |
| can be toggled on for experimentation. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2019-12-21 Simon Fraser <simon.fraser@apple.com> |
| |
| Make support for <dialog> an experimental feature, off by default |
| https://bugs.webkit.org/show_bug.cgi?id=205542 |
| |
| Reviewed by Dean Jackson. |
| |
| Make DialogElementEnabled an experimental feature (off by default). |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2019-12-21 Simon Fraser <simon.fraser@apple.com> |
| |
| Make support for <dialog> an experimental feature, off by default |
| https://bugs.webkit.org/show_bug.cgi?id=205542 |
| |
| Reviewed by Dean Jackson. |
| |
| Make DialogElementEnabled an experimental feature (off by default). |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2019-12-22 Eric Carlson <eric.carlson@apple.com> |
| |
| [Media in GPU process] Add remote media player proxy configuration |
| https://bugs.webkit.org/show_bug.cgi?id=205547 |
| <rdar://problem/58139762> |
| |
| Reviewed by Tim Horton. |
| |
| * GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp: |
| (WebKit::RemoteMediaPlayerManagerProxy::createMediaPlayer): |
| * GPUProcess/media/RemoteMediaPlayerManagerProxy.h: |
| * GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in: |
| * GPUProcess/media/RemoteMediaPlayerProxy.cpp: |
| (WebKit::RemoteMediaPlayerProxy::RemoteMediaPlayerProxy): |
| (WebKit::RemoteMediaPlayerProxy::getConfiguration): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerMediaKeysStorageDirectory const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerReferrer const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerUserAgent const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerSourceApplicationIdentifier const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerNetworkInterfaceName const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerMediaCacheDirectory const): |
| (WebKit::RemoteMediaPlayerProxy::mediaContentTypesRequiringHardwareSupport const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerPreferredAudioCharacteristics const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerShouldUsePersistentCache const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerIsVideo const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerKeyNeeded): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerGetRawCookies const): |
| * GPUProcess/media/RemoteMediaPlayerProxy.h: |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerLogIdentifier): |
| * GPUProcess/media/RemoteMediaPlayerProxyConfiguration.h: Added. |
| (WebKit::RemoteMediaPlayerProxyConfiguration::encode const): |
| (WebKit::RemoteMediaPlayerProxyConfiguration::decode): |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp: |
| (WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote): |
| (WebKit::MediaPlayerPrivateRemote::engineDescription const): |
| (WebKit::MediaPlayerPrivateRemote::supportsScanning const): |
| (WebKit::MediaPlayerPrivateRemote::supportsPictureInPicture const): |
| (WebKit::MediaPlayerPrivateRemote::supportsAcceleratedRendering const): |
| (WebKit::MediaPlayerPrivateRemote::canPlayToWirelessPlaybackTarget const): |
| * WebProcess/GPU/media/MediaPlayerPrivateRemote.h: |
| * WebProcess/GPU/media/RemoteMediaPlayerConfiguration.h: Added. |
| (WebKit::RemoteMediaPlayerConfiguration::encode const): |
| (WebKit::RemoteMediaPlayerConfiguration::decode): |
| * WebProcess/GPU/media/RemoteMediaPlayerManager.cpp: |
| (WebKit::RemoteMediaPlayerManager::createRemoteMediaPlayer): |
| |
| 2019-12-21 Brian Burg <bburg@apple.com> |
| |
| Web Inspector: add InspectedTargetTypes diagnostic event and related hooks |
| https://bugs.webkit.org/show_bug.cgi?id=205174 |
| <rdar://problem/57887953> |
| |
| Reviewed by Devin Rousso. |
| |
| This change supplies Web Inspector with information about the debuggable that |
| it is connected to. This is used for diagnostics and to customize the UI based |
| on the target type being inspected. |
| |
| For remote Web Inspector, WebKit clients can populate an instance of |
| _WKInspectorDebuggableInfo and use it when calling into |
| -[_WKRemoteWebInspectorViewController loadForDebuggable:backendCommandsURL:]. |
| |
| For local Web Inspector, WebInspectorProxy fills in information for the local |
| debuggable by consulting SystemVersion.plist (on Mac port). |
| |
| The new enum _WKInspectorDebuggableType replaces _WKRemoteWebInspectorDebuggableType. |
| Its WebCore equivalent is Inspector::DebuggableType. The type and other information |
| are carried around in a _WKInspectorDebuggableInfo class. The equivalents for this |
| class are API::DebuggableInfo and DebuggableInfoData (for sending over IPC). |
| |
| The DebuggableInfoData is sent as part of the initial message from UIProcess |
| to an Inspector WebProcess, similar to how a debuggableType string was sent before. |
| |
| * Sources.txt: |
| * SourcesCocoa.txt: |
| * WebKit.xcodeproj/project.pbxproj: |
| Add new files. |
| |
| * Shared/API/APIObject.h: |
| * Shared/Cocoa/APIObject.mm: |
| (API::Object::newObject): Add new object type. |
| * Shared/WebCoreArgumentCoders.h: Add EnumTraits for Inspector::DebuggableType. |
| |
| * UIProcess/API/Cocoa/_WKRemoteWebInspectorViewControllerPrivate.h: |
| * UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm: |
| (legacyDebuggableTypeToModernDebuggableType): |
| (-[_WKRemoteWebInspectorViewController loadForDebuggableType:backendCommandsURL:]): |
| (-[_WKRemoteWebInspectorViewController loadForDebuggable:backendCommandsURL:]): |
| (debuggableTypeString): Deleted. |
| Use the new enum in a new method that clients can switch over to. The old method |
| can be removed when it is no longer being used. |
| |
| * UIProcess/RemoteWebInspectorProxy.h: |
| * UIProcess/RemoteWebInspectorProxy.cpp: |
| (WebKit::RemoteWebInspectorProxy::RemoteWebInspectorProxy): |
| (WebKit::RemoteWebInspectorProxy::load): |
| (WebKit::RemoteWebInspectorProxy::reopen): |
| Send DebuggableInfoData struct to RemoteWebInspectorUI. |
| |
| * UIProcess/WebInspectorProxy.h: |
| * UIProcess/WebInspectorProxy.cpp: |
| (WebKit::WebInspectorProxy::openLocalInspectorFrontend): |
| (WebKit::WebInspectorProxy::infoForLocalDebuggable): |
| Send DebuggableInfoData struct to WebInspectorUI. |
| |
| * UIProcess/mac/WebInspectorProxyMac.mm: |
| (WebKit::systemVersionPlist): |
| (WebKit::WebInspectorProxy::infoForLocalDebuggable): |
| Add Mac implementation for local debuggables. |
| |
| * UIProcess/gtk/WebInspectorProxyGtk.cpp: |
| (WebKit::WebInspectorProxy::infoForLocalDebuggable): |
| * UIProcess/win/WebInspectorProxyWin.cpp: |
| (WebKit::WebInspectorProxy::infoForLocalDebuggable): |
| * UIProcess/wpe/WebInspectorProxyWPE.cpp: |
| (WebKit::WebInspectorProxy::infoForLocalDebuggable): |
| Add stubs for other platforms. |
| |
| * UIProcess/glib/RemoteInspectorClient.cpp: |
| * UIProcess/socket/RemoteInspectorClient.h: |
| * UIProcess/socket/RemoteInspectorClient.cpp: |
| (WebKit::RemoteInspectorClient::inspect): |
| (WebKit::debuggableTypeToString): |
| (WebKit::RemoteInspectorClient::setTargetList): |
| Use Inspector::DebuggableType instead of String for debuggable type. |
| |
| * WebProcess/WebPage/RemoteWebInspectorUI.messages.in: |
| * WebProcess/WebPage/RemoteWebInspectorUI.h: |
| * WebProcess/WebPage/RemoteWebInspectorUI.cpp: |
| (WebKit::RemoteWebInspectorUI::initialize): |
| (WebKit::RemoteWebInspectorUI::debuggableType const): |
| (WebKit::RemoteWebInspectorUI::targetPlatformName const): |
| (WebKit::RemoteWebInspectorUI::targetBuildVersion const): |
| (WebKit::RemoteWebInspectorUI::targetProductVersion const): |
| (WebKit::RemoteWebInspectorUI::targetIsSimulator const): |
| Implement new methods needed by InspectorFrontendClient / InspectorFrontendHost. |
| |
| * WebProcess/WebPage/WebInspectorUI.messages.in: |
| * WebProcess/WebPage/WebInspectorUI.h: |
| * WebProcess/WebPage/WebInspectorUI.cpp: |
| (WebKit::WebInspectorUI::establishConnection): |
| (WebKit::WebInspectorUI::targetPlatformName const): |
| (WebKit::WebInspectorUI::targetBuildVersion const): |
| (WebKit::WebInspectorUI::targetProductVersion const): |
| Implement new methods needed by InspectorFrontendClient / InspectorFrontendHost. |
| |
| 2019-12-21 Eric Carlson <eric.carlson@apple.com> |
| |
| [Media in GPU process] Add remote media player configuration |
| https://bugs.webkit.org/show_bug.cgi?id=205541 |
| <rdar://problem/58137418> |
| |
| Reviewed by Simon Fraser. |
| |
| * GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp: |
| (WebKit::RemoteMediaPlayerManagerProxy::createMediaPlayer): |
| * GPUProcess/media/RemoteMediaPlayerManagerProxy.h: |
| * GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in: |
| * GPUProcess/media/RemoteMediaPlayerProxy.cpp: |
| (WebKit::RemoteMediaPlayerProxy::RemoteMediaPlayerProxy): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerMediaKeysStorageDirectory const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerReferrer const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerUserAgent const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerSourceApplicationIdentifier const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerNetworkInterfaceName const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerMediaCacheDirectory const): |
| (WebKit::RemoteMediaPlayerProxy::mediaContentTypesRequiringHardwareSupport const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerPreferredAudioCharacteristics const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerShouldUsePersistentCache const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerIsVideo const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerKeyNeeded): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerGetRawCookies const): |
| * GPUProcess/media/RemoteMediaPlayerProxy.h: |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerLogIdentifier): |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/GPU/media/RemoteMediaPlayerManager.cpp: |
| (WebKit::RemoteMediaPlayerManager::createRemoteMediaPlayer): |
| |
| 2019-12-21 Kate Cheney <katherine_cheney@apple.com> |
| |
| Add timeStamp to ITP database |
| https://bugs.webkit.org/show_bug.cgi?id=205121 |
| <rdar://problem/57633021> |
| |
| Reviewed by John Wilander. |
| |
| This patch adds support for collecting most-recently-updated |
| timestamps for third-party/first-party domain pairs in the ITP database. |
| It updates the timestamp when new statistics are merged into the |
| database. It then exposes the timestamp via the |
| _getResourceLoadStatisticsDataSummary API. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: |
| (WebKit::ResourceLoadStatisticsDatabaseStore::ResourceLoadStatisticsDatabaseStore): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::prepareStatements): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::insertDomainRelationshipList): |
| Changed INSERT OR IGNORE queries to be INSERT OR REPLACE so the timestamp |
| will be replaced upon a new attempted insert into one of the |
| third-party/first-party relationship tables. |
| ResourceLoadStatisticsDatabaseStore::insertDomainRelationshipList now |
| checks for the keyword "REPLACE" to know if another bind is needed |
| to update the timestamp. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::getMostRecentlyUpdatedTimestamp): |
| Queries the most recent time that the third party has appeared as a |
| subframe or subresource under the first party or redirected to the first party. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h: |
| * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h: |
| (WebKit::ThirdPartyDataForSpecificFirstParty::toString const): |
| Updated the toString to check if the timestamp occured in the last |
| 24 hours for testing purposes. It doesn't print the specific time |
| because it would change for every run and could not be tested. |
| |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _setUseITPDatabase:completionHandler:]): |
| Added new function that enables the ITP Database backend so the |
| timestamp parameter can be tested in in TestWebKitAPI. |
| |
| * UIProcess/API/APIResourceLoadStatisticsFirstParty.h: |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| * UIProcess/API/Cocoa/_WKResourceLoadStatisticsFirstParty.h: |
| * UIProcess/API/Cocoa/_WKResourceLoadStatisticsFirstParty.mm: |
| (-[_WKResourceLoadStatisticsFirstParty timeLastUpdated]): |
| Added the new timestamp parameter to the _WKResourceLoadStatisticsFirstParty.mm |
| class and its wrapper to be sent via API call. |
| |
| 2019-12-20 Eric Carlson <eric.carlson@apple.com> |
| |
| [Media in GPU process] Get audio playing |
| https://bugs.webkit.org/show_bug.cgi?id=205511 |
| <rdar://problem/58120354> |
| |
| Reviewed by Jer Noble. |
| |
| * GPUProcess/media/RemoteMediaPlayerManagerProxy.h: |
| * GPUProcess/media/RemoteMediaPlayerProxy.h: |
| * WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp: |
| (WebKit::MediaPlayerPrivateRemote::updateCachedState): |
| (WebKit::MediaPlayerPrivateRemote::maximumDurationToCacheMediaTime const): |
| * WebProcess/GPU/media/MediaPlayerPrivateRemote.h: |
| * WebProcess/GPU/media/RemoteMediaPlayerManager.h: |
| |
| 2019-12-20 Jer Noble <jer.noble@apple.com> |
| |
| Enable HDR Media Capabilities by default |
| https://bugs.webkit.org/show_bug.cgi?id=205518 |
| <rdar://problem/57674289> |
| |
| Reviewed by Eric Carlson. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2019-12-20 Tim Horton <timothy_horton@apple.com> |
| |
| Clean up and generalize some interaction additions |
| https://bugs.webkit.org/show_bug.cgi?id=205430 |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView setupInteraction]): |
| (-[WKContentView cleanupInteraction]): |
| |
| 2019-12-20 Tim Horton <timothy_horton@apple.com> |
| |
| Expose approximate caret extents for the hit line via InteractionInformationAtPosition |
| https://bugs.webkit.org/show_bug.cgi?id=205526 |
| <rdar://problem/57983076> |
| |
| Reviewed by Dean Jackson. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::positionInformation): |
| Compute and expose the union of first and last caret rects on the line. |
| |
| * Shared/ios/InteractionInformationAtPosition.h: |
| * Shared/ios/InteractionInformationAtPosition.mm: |
| (WebKit::InteractionInformationAtPosition::encode const): |
| (WebKit::InteractionInformationAtPosition::decode): |
| * Shared/ios/InteractionInformationRequest.cpp: |
| (WebKit::InteractionInformationRequest::encode const): |
| (WebKit::InteractionInformationRequest::decode): |
| (WebKit::InteractionInformationRequest::isValidForRequest): |
| * Shared/ios/InteractionInformationRequest.h: |
| Also, add a bit so that we can only fetch this data when needed. |
| |
| 2019-12-20 Brent Fulgham <bfulgham@apple.com> |
| |
| Remove access to 'com.apple.cfprefsd.agent' from the macOS sandbox |
| https://bugs.webkit.org/show_bug.cgi?id=205478 |
| <rdar://problem/57915066> |
| |
| Reviewed by Darin Adler. |
| |
| Telemetry and thorough testing has confirmed that we do not need access to this |
| mach service, and so should remove it. |
| |
| Tested by fast/sandboxing/mac |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2019-12-20 Brian Burg <bburg@apple.com> |
| |
| Unreviewed, try to fix the non-unified sources build. |
| |
| * UIProcess/WebAuthentication/Mock/MockAuthenticatorManager.cpp: |
| (WebKit::MockAuthenticatorManager::filterTransports const): |
| The current chunking of unified source files seems to provide a |
| 'using namespace WebCore' for these references to AuthenticatorTransport. |
| Add a namespace qualification so that this file compiles by itself. |
| |
| 2019-12-20 James Savage <james.savage@apple.com> |
| |
| Include WKPDFConfiguration, WKFindConfiguration, and WKFindResult in umbrella header |
| https://bugs.webkit.org/show_bug.cgi?id=205432 |
| <rdar://problem/58067946> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * Shared/API/Cocoa/WebKit.h: Include new headers. |
| |
| 2019-12-20 Brian Burg <bburg@apple.com> |
| |
| Web Inspector: convert some InspectorFrontendHost methods to getters |
| https://bugs.webkit.org/show_bug.cgi?id=205475 |
| |
| Reviewed by Devin Rousso. |
| |
| No reason for these to be method calls, so expose as getters / attributes instead. |
| |
| * WebProcess/WebPage/gtk/WebInspectorUIGtk.cpp: |
| (WebKit::WebInspectorUI::localizedStringsURL const): |
| (WebKit::RemoteWebInspectorUI::localizedStringsURL const): |
| (WebKit::WebInspectorUI::localizedStringsURL): Deleted. |
| (WebKit::RemoteWebInspectorUI::localizedStringsURL): Deleted. |
| * WebProcess/WebPage/mac/WebInspectorUIMac.mm: |
| (WebKit::WebInspectorUI::localizedStringsURL const): |
| (WebKit::RemoteWebInspectorUI::localizedStringsURL const): |
| (WebKit::WebInspectorUI::localizedStringsURL): Deleted. |
| (WebKit::RemoteWebInspectorUI::localizedStringsURL): Deleted. |
| * WebProcess/WebPage/win/WebInspectorUIWin.cpp: |
| (WebKit::WebInspectorUI::localizedStringsURL const): |
| (WebKit::RemoteWebInspectorUI::localizedStringsURL const): |
| (WebKit::WebInspectorUI::localizedStringsURL): Deleted. |
| (WebKit::RemoteWebInspectorUI::localizedStringsURL): Deleted. |
| * WebProcess/WebPage/wpe/WebInspectorUIWPE.cpp: |
| (WebKit::WebInspectorUI::localizedStringsURL const): |
| (WebKit::RemoteWebInspectorUI::localizedStringsURL const): |
| (WebKit::WebInspectorUI::localizedStringsURL): Deleted. |
| (WebKit::RemoteWebInspectorUI::localizedStringsURL): Deleted. |
| |
| 2019-12-20 Alex Christensen <achristensen@webkit.org> |
| |
| Allow a managed configuration to re-enable TLS 1.0 and 1.1 |
| https://bugs.webkit.org/show_bug.cgi?id=205479 |
| <rdar://problem/54493516> |
| |
| Reviewed by Geoffrey Garen. |
| |
| * Platform/spi/ios/ManagedConfigurationSPI.h: Removed. |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeNetworkProcess): |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView canPerformActionForWebView:withSender:]): |
| (-[WKContentView _defineForWebView:]): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-12-20 youenn fablet <youenn@apple.com> |
| |
| Set whether to use mock capture devices at GPUProcess creation time. |
| https://bugs.webkit.org/show_bug.cgi?id=205492 |
| |
| Reviewed by Eric Carlson. |
| |
| This ensures UIProcess remains always in sync with GPUProcess. |
| Covered by fast/mediastream/captureAudioInGPUProcess.html. |
| |
| * GPUProcess/GPUProcess.cpp: |
| (WebKit::GPUProcess::initializeGPUProcess): |
| (WebKit::GPUProcess::setMockCaptureDevicesEnabled): |
| * GPUProcess/GPUProcess.h: |
| * GPUProcess/GPUProcessCreationParameters.cpp: |
| (WebKit::GPUProcessCreationParameters::encode const): |
| (WebKit::GPUProcessCreationParameters::decode): |
| * GPUProcess/GPUProcessCreationParameters.h: |
| * UIProcess/GPU/GPUProcessProxy.cpp: |
| (WebKit::GPUProcessProxy::singleton): |
| |
| 2019-12-19 Brent Fulgham <bfulgham@apple.com> |
| |
| Log telemetry for IOUserClient lookups |
| https://bugs.webkit.org/show_bug.cgi?id=205463 |
| <rdar://problem/57987372> |
| |
| Reviewed by Per Arne Vollan. |
| |
| This patch adds some telemetry for IOKit classes. |
| |
| No new tests. No change in behavior. |
| |
| * 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: |
| |
| 2019-12-19 Chris Dumez <cdumez@apple.com> |
| |
| Use a WeakHashSet for WKProcessAssertionBackgroundTaskManager._assertionsNeedingBackgroundTask |
| https://bugs.webkit.org/show_bug.cgi?id=205471 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Use a WeakHashSet for WKProcessAssertionBackgroundTaskManager._assertionsNeedingBackgroundTask, instead |
| of a HashSet of raw pointers, for extra safety. |
| |
| * UIProcess/ios/ProcessAssertionIOS.mm: |
| (-[WKProcessAssertionBackgroundTaskManager removeAssertionNeedingBackgroundTask:]): |
| (-[WKProcessAssertionBackgroundTaskManager _notifyAssertionsOfImminentSuspension]): |
| (-[WKProcessAssertionBackgroundTaskManager _updateBackgroundTask]): |
| |
| 2019-12-19 Brent Fulgham <bfulgham@apple.com> |
| |
| Unblock iokit-get-property needed for frame buffer initialization |
| https://bugs.webkit.org/show_bug.cgi?id=205468 |
| <rdar://problem/57897684> |
| |
| Reviewed by Per Arne Vollan. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2019-12-19 Brent Fulgham <bfulgham@apple.com> |
| |
| Add telemetry to macOS WebContent sandbox |
| https://bugs.webkit.org/show_bug.cgi?id=205464 |
| <rdar://problem/58087833> |
| |
| Reviewed by Per Arne Vollan. |
| |
| Add telemetry to various mach lookups, like we did for iOS. |
| |
| No new tests. No change in behavior. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2019-12-19 Per Arne Vollan <pvollan@apple.com> |
| |
| REGRESSION (r253530): Incorrect colors in Dark Mode |
| https://bugs.webkit.org/show_bug.cgi?id=205457 |
| |
| Unreviewed rollout of r253530. |
| |
| * 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): |
| |
| 2019-12-19 Alex Christensen <achristensen@webkit.org> |
| |
| Deprecate _WKRemoteObjectInterface methods without ofReply: |
| https://bugs.webkit.org/show_bug.cgi?id=205073 |
| |
| Reviewed by Timothy Hatcher. |
| |
| Using them makes it hard to figure out how to add classes allowed for the reply, |
| and there's a comment saying to deprecate them, so let's do it. |
| |
| * Shared/API/Cocoa/_WKRemoteObjectInterface.h: |
| |
| 2019-12-19 Brent Fulgham <bfulgham@apple.com> |
| |
| WebContent process does not need access to 'com.apple.system.logger' |
| https://bugs.webkit.org/show_bug.cgi?id=205411 |
| <rdar://problem/56966080> |
| |
| Reviewed by Per Arne Vollan. |
| |
| Telemetry and thorough testing has confirmed that we do not need access to this |
| mach service, and so should remove it. |
| |
| Tested by fast/sandbox. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2019-12-19 Brent Fulgham <bfulgham@apple.com> |
| |
| Deny mach lookup access to "com.apple.TextInput" in the WebContent process |
| https://bugs.webkit.org/show_bug.cgi?id=205423 |
| <rdar://problem/56990842> |
| |
| Reviewed by Per Arne Vollan. |
| |
| Telemetry and thorough testing has confirmed that we do not need access to this |
| mach service, and so should remove it. |
| |
| Tested by fast/sandbox/ios/sandbox-mach-lookup.html. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2019-12-19 youenn fablet <youenn@apple.com> |
| |
| CacheStorageEngine should not clear caches memory representation for ephemeral sessions |
| https://bugs.webkit.org/show_bug.cgi?id=205332 |
| |
| Reviewed by Chris Dumez. |
| |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::Caches::dispose): |
| We cannot dispose an ephemeral cache memory representation |
| since it can be reopened by a page with the same session. |
| |
| 2019-12-19 Brent Fulgham <bfulgham@apple.com> |
| |
| Deny mach lookup access to "com.apple.pluginkit.pkd" in the WebContent process |
| https://bugs.webkit.org/show_bug.cgi?id=205421 |
| <rdar://problem/56995585> |
| |
| Reviewed by Per Arne Vollan. |
| |
| Telemetry and thorough testing has confirmed that we do not need access to this |
| mach service, and so should remove it. |
| |
| Tested by fast/sandbox/ios/sandbox-mach-lookup.html. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2019-12-19 Brent Fulgham <bfulgham@apple.com> |
| |
| Remove syscall filtering from GPU Process sandbox |
| https://bugs.webkit.org/show_bug.cgi?id=205456 |
| <rdar://problem/58080834> |
| |
| Reviewed by Tim Horton. |
| |
| We don't have a fully built-out GPU Process yet. Let's not lock down the syscall filter set until |
| we know which are actually needed by the process. The current set is just copied over from the |
| WebContent process, and are not likely to be the correct set. |
| |
| * GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in: |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb: |
| |
| 2019-12-19 Chris Dumez <cdumez@apple.com> |
| |
| imported/w3c/web-platform-tests/service-workers/service-worker/skip-waiting-installed.https.html is flaky |
| https://bugs.webkit.org/show_bug.cgi?id=205408 |
| |
| Reviewed by Youenn Fablet. |
| |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp: |
| (WebKit::WebSWServerToContextConnection::didFinishSkipWaiting): Deleted. |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h: |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.messages.in: |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::skipWaiting): |
| (WebKit::WebSWContextManagerConnection::didFinishSkipWaiting): Deleted. |
| * WebProcess/Storage/WebSWContextManagerConnection.h: |
| * WebProcess/Storage/WebSWContextManagerConnection.messages.in: |
| |
| 2019-12-19 Chris Dumez <cdumez@apple.com> |
| |
| Stop blocking the worker thread in WorkerMessagePortChannelProvider::postMessageToRemote() |
| https://bugs.webkit.org/show_bug.cgi?id=205414 |
| |
| Reviewed by Youenn Fablet. |
| |
| * WebProcess/WebCoreSupport/WebMessagePortChannelProvider.cpp: |
| (WebKit::WebMessagePortChannelProvider::postMessageToRemote): |
| * WebProcess/WebCoreSupport/WebMessagePortChannelProvider.h: |
| |
| 2019-12-19 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK][WPE] Add initial API for input method |
| https://bugs.webkit.org/show_bug.cgi?id=204679 |
| |
| Reviewed by Žan Doberšek. |
| |
| In the case of GTK port, it allows to use a custom IM instead of GtkIMContext that it's still used by |
| default. In the case of WPE it brings IM support, but there's no default implementation so applications need to |
| provide their own. |
| |
| * PlatformGTK.cmake: Add new public header WebKitInputMethodContext.h. |
| * PlatformWPE.cmake: Ditto. |
| * Shared/EditorState.cpp: |
| (WebKit::EditorState::PostLayoutData::encode const): Encode caretRectAtStart for WPE too. |
| (WebKit::EditorState::PostLayoutData::decode): Decode caretRectAtStart for WPE too. |
| (WebKit::operator<<): Dump caretRectAtStart for WPE too. |
| * Shared/EditorState.h: Define caretRectAtStart for WPE too. |
| * Shared/NativeWebKeyboardEvent.h: |
| (WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent): Remove FakedForComposition parameter for GTK and add |
| HandledByInputMethod to WPE. |
| * Shared/WebEvent.h: |
| * Shared/WebKeyboardEvent.cpp: |
| (WebKit::WebKeyboardEvent::WebKeyboardEvent): Add handledByInputMethod parameter for WPE. |
| (WebKit::WebKeyboardEvent::encode const): Encode m_handledByInputMethod in WPE too. |
| (WebKit::WebKeyboardEvent::decode): Decode m_handledByInputMethod in WPE too. |
| * Shared/gtk/NativeWebKeyboardEventGtk.cpp: |
| (WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent): Remove FakedForComposition and the redundant members |
| that are already in the bcase class or no longer needed. |
| * Shared/libwpe/NativeWebKeyboardEventLibWPE.cpp: |
| (WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent): Add text and handledByInputMethod parameters |
| * Shared/libwpe/WebEventFactory.cpp: |
| (WebKit::WebEventFactory::createWebKeyboardEvent): Use the given text if not null and pass handledByInputMethod, |
| to WebKeyboardEvent. |
| * Shared/libwpe/WebEventFactory.h: |
| * SourcesGTK.txt: Add new files to compilation. |
| * SourcesWPE.txt: Ditto. |
| * UIProcess/API/glib/InputMethodFilter.cpp: Added. |
| (WebKit::InputMethodFilter::~InputMethodFilter): |
| (WebKit::InputMethodFilter::preeditStartedCallback): |
| (WebKit::InputMethodFilter::preeditChangedCallback): |
| (WebKit::InputMethodFilter::preeditFinishedCallback): |
| (WebKit::InputMethodFilter::committedCallback): |
| (WebKit::InputMethodFilter::setContext): |
| (WebKit::InputMethodFilter::setEnabled): |
| (WebKit::InputMethodFilter::filterKeyEvent): |
| (WebKit::InputMethodFilter::isViewFocused const): |
| (WebKit::InputMethodFilter::notifyFocusedIn): |
| (WebKit::InputMethodFilter::notifyFocusedOut): |
| (WebKit::InputMethodFilter::notifyCursorRect): |
| (WebKit::InputMethodFilter::preeditStarted): |
| (WebKit::InputMethodFilter::preeditChanged): |
| (WebKit::InputMethodFilter::preeditFinished): |
| (WebKit::InputMethodFilter::committed): |
| (WebKit::InputMethodFilter::cancelComposition): |
| * UIProcess/API/glib/InputMethodFilter.h: Added. |
| (WebKit::InputMethodFilter::context const): |
| * UIProcess/API/glib/WebKitInputMethodContext.cpp: Added. |
| (webkitInputMethodUnderlineGetCompositionUnderline): |
| (webkit_input_method_underline_new): |
| (webkit_input_method_underline_copy): |
| (webkit_input_method_underline_free): |
| (webkitInputMethodContextSetWebView): |
| (webkitInputMethodContextGetWebView): |
| (webkit_input_method_context_set_enable_preedit): |
| (webkit_input_method_context_get_preedit): |
| (webkit_input_method_context_notify_focus_in): |
| (webkit_input_method_context_notify_focus_out): |
| (webkit_input_method_context_notify_cursor_area): |
| (webkit_input_method_context_reset): |
| * UIProcess/API/glib/WebKitInputMethodContextPrivate.h: Added. |
| (_WebKitInputMethodUnderline::_WebKitInputMethodUnderline): |
| * UIProcess/API/glib/WebKitWebView.cpp: |
| (webkitWebViewConstructed): |
| (webkitWebViewSynthesizeCompositionKeyPress): |
| (webkitWebViewSetComposition): |
| (webkitWebViewConfirmComposition): |
| (webkitWebViewCancelComposition): |
| (webkit_web_view_set_input_method_context): |
| (webkit_web_view_get_input_method_context): |
| * UIProcess/API/glib/WebKitWebViewPrivate.h: |
| * UIProcess/API/gtk/InputMethodFilterGtk.cpp: Added. |
| (WebKit::InputMethodFilter::platformTransformCursorRectToViewCoordinates): |
| (WebKit::InputMethodFilter::platformEventKeyIsKeyPress const): |
| * UIProcess/API/gtk/PageClientImpl.cpp: |
| (WebKit::PageClientImpl::doneWithKeyEvent): Remove the early return in case of fake event, composition events |
| are always handled by the web process. |
| * UIProcess/API/gtk/WebKitInputMethodContext.h: Added. |
| * UIProcess/API/gtk/WebKitInputMethodContextGtk.cpp: Added. |
| (webkit_input_method_underline_set_color): |
| (webkit_input_method_context_filter_key_event): |
| * UIProcess/API/gtk/WebKitInputMethodContextImplGtk.cpp: Added. |
| (contextPreeditStartCallback): |
| (contextPreeditChangedCallback): |
| (contextPreeditEndCallback): |
| (contextCommitCallback): |
| (webkitInputMethodContextImplGtkConstructed): |
| (webkitInputMethodContextImplGtkSetEnablePreedit): |
| (webkitInputMethodContextImplGtkGetPreedit): |
| (webkitInputMethodContextImplGtkFilterKeyEvent): |
| (webkitInputMethodContextImplGtkNotifyFocusIn): |
| (webkitInputMethodContextImplGtkNotifyFocusOut): |
| (webkitInputMethodContextImplGtkNotifyCursorArea): |
| (webkitInputMethodContextImplGtkReset): |
| (webkit_input_method_context_impl_gtk_class_init): |
| (webkitInputMethodContextImplGtkNew): |
| (webkitInputMethodContextImplGtkSetClientWindow): |
| * UIProcess/API/gtk/WebKitInputMethodContextImplGtk.h: Added. |
| * UIProcess/API/gtk/WebKitWebView.h: |
| * UIProcess/API/gtk/WebKitWebViewBase.cpp: |
| (webkitWebViewBaseRealize): If current IM filter is the default one, call webkitInputMethodContextImplGtkSetClientWindow(). |
| (webkitWebViewBaseUnrealize): Ditto. |
| (webkitWebViewBaseDispose): Set a nullptr context on IM filter. |
| (webkitWebViewBaseKeyPressEvent): Use the new IM filter that simplifies the code. |
| (webkitWebViewBaseKeyReleaseEvent): Ditto. |
| (webkitWebViewBaseHandleMouseEvent): Cancel composition in case of click. |
| (webkitWebViewBaseCreateWebPage): The new IM filter doesn't need to know the page. |
| (webkitWebViewBaseUpdateTextInputState): Use new IM filter API. |
| (webkitWebViewBaseSetInputMethodContext): Set the IM filter context. |
| (webkitWebViewBaseGetInputMethodContext): Get the IM filter context. |
| (webkitWebViewBaseSynthesizeCompositionKeyPress): Synthesize a key event for composition. |
| * UIProcess/API/gtk/WebKitWebViewBasePrivate.h: |
| * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: |
| * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: |
| * UIProcess/API/gtk/webkit2.h: |
| * UIProcess/API/wpe/InputMethodFilterWPE.cpp: Added. |
| (WebKit::InputMethodFilter::platformTransformCursorRectToViewCoordinates): |
| (WebKit::InputMethodFilter::platformEventKeyIsKeyPress const): |
| * UIProcess/API/wpe/PageClientImpl.cpp: |
| (WebKit::PageClientImpl::setInputMethodState): |
| (WebKit::PageClientImpl::selectionDidChange): |
| * UIProcess/API/wpe/PageClientImpl.h: |
| * UIProcess/API/wpe/WPEView.cpp: |
| (WKWPE::View::setInputMethodContext): Set the IM filter context. |
| (WKWPE::View::inputMethodContext const): Get the IM filter context. |
| (WKWPE::View::setInputMethodState): Enable or disable input methods. |
| (WKWPE::View::selectionDidChange): Notify the IM filter about the cursor position change. |
| (WKWPE::View::setViewState): Notify the IM filter about the focus change. |
| (WKWPE::View::handleKeyboardEvent): Allow the IM filter to handle the key event. |
| (WKWPE::View::synthesizeCompositionKeyPress): Synthesize a key event for composition. |
| * UIProcess/API/wpe/WPEView.h: |
| * UIProcess/API/wpe/WebKitInputMethodContext.h: Added. |
| * UIProcess/API/wpe/WebKitInputMethodContextWPE.cpp: Added. |
| (webkit_input_method_underline_set_color): |
| (webkit_input_method_context_filter_key_event): |
| * UIProcess/API/wpe/WebKitWebView.h: |
| * UIProcess/API/wpe/docs/wpe-1.0-sections.txt: |
| * UIProcess/API/wpe/docs/wpe-docs.sgml: |
| * UIProcess/API/wpe/webkit.h: |
| * UIProcess/PageClient.h: |
| * UIProcess/WebPageProxy.cpp: |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/gtk/InputMethodFilter.cpp: Removed. |
| * UIProcess/gtk/InputMethodFilter.h: Removed. |
| * UIProcess/wpe/WebPageProxyWPE.cpp: |
| (WebKit::WebPageProxy::updateEditorState): Save the editor state and notify about selection change. |
| (WebKit::WebPageProxy::setInputMethodState): Notify the page client about the input method state. |
| * WebProcess/WebCoreSupport/WebEditorClient.cpp: |
| (WebKit::WebEditorClient::setInputMethodState): Implement this for WPE too. |
| * WebProcess/WebCoreSupport/wpe/WebEditorClientWPE.cpp: |
| (WebKit::WebEditorClient::handleInputMethodKeydown): Use handledByInputMethod() now. |
| * WebProcess/WebPage/WebPage.cpp: |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/wpe/WebPageWPE.cpp: |
| (WebKit::WebPage::platformEditorState const): Save the current caret cursor rectangle in post layout data struct. |
| (WebKit::WebPage::setInputMethodState): Send SetInputMethodState message to the UI process if state changed. |
| |
| 2019-12-19 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [CoordinatedGraphics] ThreadedDisplayRefreshMonitor is never released |
| https://bugs.webkit.org/show_bug.cgi?id=205387 |
| |
| Reviewed by Žan Doberšek. |
| |
| Update the window screen ID after creating the layer tree host to ensure that the call to |
| createDisplayRefreshMonitor will create the ThreadedDisplayRefrershMonitor instead of the default one. |
| |
| * WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp: |
| (WebKit::DrawingAreaCoordinatedGraphics::enterAcceleratedCompositingMode): Use the dispalyID of the layer tree host. |
| * WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp: |
| (WebKit::LayerTreeHost::LayerTreeHost): Initialize the display ID. |
| * WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h: |
| |
| 2019-12-18 Sihui Liu <sihui_liu@apple.com> |
| |
| IndexedDB: perform IDBServer work only on background thread |
| https://bugs.webkit.org/show_bug.cgi?id=203690 |
| <rdar://problem/56908496> |
| |
| Reviewed by Alex Christensen. |
| |
| * NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp: |
| (WebKit::WebIDBConnectionToClient::~WebIDBConnectionToClient): |
| * NetworkProcess/IndexedDB/WebIDBServer.cpp: |
| (WebKit::WebIDBServer::create): |
| (WebKit::WebIDBServer::WebIDBServer): |
| (WebKit::WebIDBServer::closeAndDeleteDatabasesModifiedSince): |
| (WebKit::WebIDBServer::closeAndDeleteDatabasesForOrigins): |
| (WebKit::WebIDBServer::suspend): |
| (WebKit::WebIDBServer::resume): |
| (WebKit::WebIDBServer::openDatabase): |
| (WebKit::WebIDBServer::deleteDatabase): |
| (WebKit::WebIDBServer::abortTransaction): |
| (WebKit::WebIDBServer::commitTransaction): |
| (WebKit::WebIDBServer::didFinishHandlingVersionChangeTransaction): |
| (WebKit::WebIDBServer::createObjectStore): |
| (WebKit::WebIDBServer::deleteObjectStore): |
| (WebKit::WebIDBServer::renameObjectStore): |
| (WebKit::WebIDBServer::clearObjectStore): |
| (WebKit::WebIDBServer::createIndex): |
| (WebKit::WebIDBServer::deleteIndex): |
| (WebKit::WebIDBServer::renameIndex): |
| (WebKit::WebIDBServer::putOrAdd): |
| (WebKit::WebIDBServer::getRecord): |
| (WebKit::WebIDBServer::getAllRecords): |
| (WebKit::WebIDBServer::getCount): |
| (WebKit::WebIDBServer::deleteRecord): |
| (WebKit::WebIDBServer::openCursor): |
| (WebKit::WebIDBServer::iterateCursor): |
| (WebKit::WebIDBServer::establishTransaction): |
| (WebKit::WebIDBServer::databaseConnectionPendingClose): |
| (WebKit::WebIDBServer::databaseConnectionClosed): |
| (WebKit::WebIDBServer::abortOpenAndUpgradeNeeded): |
| (WebKit::WebIDBServer::didFireVersionChangeEvent): |
| (WebKit::WebIDBServer::openDBRequestCancelled): |
| (WebKit::WebIDBServer::getAllDatabaseNames): |
| (WebKit::WebIDBServer::addConnection): |
| (WebKit::WebIDBServer::removeConnection): |
| (WebKit::WebIDBServer::postTask): |
| (WebKit::WebIDBServer::dispatchToThread): |
| (WebKit::WebIDBServer::registerConnection): Deleted. |
| (WebKit::WebIDBServer::unregisterConnection): Deleted. |
| (WebKit::WebIDBServer::confirmDidCloseFromServer): Deleted. |
| * NetworkProcess/IndexedDB/WebIDBServer.h: |
| * NetworkProcess/IndexedDB/WebIDBServer.messages.in: |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::didReceiveMessage): |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::prepareToSuspend): |
| * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp: |
| (WebKit::WebIDBConnectionToServer::confirmDidCloseFromServer): Deleted. |
| * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h: |
| |
| 2019-12-18 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r253646. |
| https://bugs.webkit.org/show_bug.cgi?id=205433 |
| |
| "We think this may have caused a membuster regression, so |
| rolling it out." (Requested by nham on #webkit). |
| |
| Reverted changeset: |
| |
| "Navigation from empty page doesn't use cached web process" |
| https://bugs.webkit.org/show_bug.cgi?id=205015 |
| https://trac.webkit.org/changeset/253646 |
| |
| 2019-12-18 Alex Christensen <achristensen@webkit.org> |
| |
| Add SPI WKWebView._updateWebpagePreferences to replace _updateWebsitePolicies |
| https://bugs.webkit.org/show_bug.cgi?id=205427 |
| |
| Reviewed by Wenson Hsieh. |
| |
| This blocks the removal of _WKWebsitePolicies. |
| This change is verified by an API test. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _updateWebsitePolicies:]): |
| (-[WKWebView _updateWebpagePreferences:]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| |
| 2019-12-18 Tim Horton <timothy_horton@apple.com> |
| |
| macCatalyst: Cursor should update when the platform deems it necessary |
| https://bugs.webkit.org/show_bug.cgi?id=205429 |
| <rdar://problem/57983076> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * Shared/ios/InteractionInformationAtPosition.h: |
| * Shared/ios/InteractionInformationAtPosition.mm: |
| (WebKit::InteractionInformationAtPosition::encode const): |
| (WebKit::InteractionInformationAtPosition::decode): |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::positionInformation): |
| Expose the current cursor and caret size on position information so |
| that macCatalyst UIKit can retrieve it out-of-band (in addition to |
| setting it when we do a hit-test, like in r253636. |
| |
| 2019-12-18 Alex Christensen <achristensen@webkit.org> |
| |
| Add ObjC version of WKBundleFrameIsMainFrame |
| https://bugs.webkit.org/show_bug.cgi?id=205415 |
| |
| Reviewed by Brian Weinstein. |
| |
| I need this for rdar://problem/57132290 |
| Covered by API tests. |
| |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.h: |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm: |
| (-[WKWebProcessPlugInFrame isMainFrame]): |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h: |
| |
| 2019-12-18 Eric Carlson <eric.carlson@apple.com> |
| |
| Remove more unused MediaPlayer methods |
| https://bugs.webkit.org/show_bug.cgi?id=205405 |
| <rdar://problem/58049744> |
| |
| Reviewed by Jer Noble. |
| |
| * GPUProcess/media/RemoteMediaPlayerProxy.cpp: |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerHandlePlaybackCommand): Deleted. |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerIsInMediaDocument const): Deleted. |
| * GPUProcess/media/RemoteMediaPlayerProxy.h: |
| |
| 2019-12-18 youenn fablet <youenn@apple.com> |
| |
| Add support for Audio Capture in GPUProcess |
| https://bugs.webkit.org/show_bug.cgi?id=205056 |
| |
| Reviewed by Eric Carlson. |
| |
| Make UserMediaCaptureManager and Proxy able to work with GPU process. |
| Add support for capturing audio in the GPU process, this is limited to mock audio sources for now |
| as we do not support AudioSession in the GPU process. |
| Covered by rebased test. |
| |
| * GPUProcess/GPUConnectionToWebProcess.cpp: |
| (WebKit::GPUConnectionToWebProcess::GPUConnectionToWebProcess): |
| (WebKit::GPUConnectionToWebProcess::didReceiveMessage): |
| (WebKit::GPUConnectionToWebProcess::didReceiveSyncMessage): |
| * GPUProcess/GPUConnectionToWebProcess.h: |
| * GPUProcess/GPUProcess.cpp: |
| (WebKit::GPUProcess::setMockCaptureDevicesEnabled): |
| * GPUProcess/GPUProcess.h: |
| * GPUProcess/GPUProcess.messages.in: |
| * UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp: |
| (WebKit::UserMediaCaptureManagerProxy::UserMediaCaptureManagerProxy): |
| (WebKit::UserMediaCaptureManagerProxy::~UserMediaCaptureManagerProxy): |
| (WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints): |
| (WebKit::UserMediaCaptureManagerProxy::applyConstraints): |
| (WebKit::UserMediaCaptureManagerProxy::clone): |
| * UIProcess/Cocoa/UserMediaCaptureManagerProxy.h: |
| (WebKit::UserMediaCaptureManagerProxy::didReceiveMessageFromGPUProcess): |
| (WebKit::UserMediaCaptureManagerProxy::didReceiveSyncMessageFromGPUProcess): |
| * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: |
| (WebKit::UserMediaPermissionRequestManagerProxy::syncWithWebCorePrefs const): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.cpp: |
| * WebProcess/GPU/GPUProcessConnection.cpp: |
| (WebKit::GPUProcessConnection::didReceiveMessage): |
| * WebProcess/GPU/GPUProcessConnection.h: |
| * WebProcess/cocoa/UserMediaCaptureManager.cpp: |
| (WebKit::UserMediaCaptureManager::Source::setShouldCaptureInGPUProcess): |
| (WebKit::UserMediaCaptureManager::Source::shouldCaptureInGPUProcess const): |
| (WebKit::UserMediaCaptureManager::Source::requestToEnd): |
| (WebKit::UserMediaCaptureManager::createCaptureSource): |
| (WebKit::UserMediaCaptureManager::sourceStopped): |
| (WebKit::UserMediaCaptureManager::captureFailed): |
| (WebKit::UserMediaCaptureManager::Source::connection): |
| (WebKit::UserMediaCaptureManager::Source::startProducingData): |
| (WebKit::UserMediaCaptureManager::Source::stopProducingData): |
| (WebKit::UserMediaCaptureManager::Source::capabilities): |
| (WebKit::UserMediaCaptureManager::Source::applyConstraints): |
| (WebKit::UserMediaCaptureManager::sourceEnded): |
| (WebKit::UserMediaCaptureManager::Source::hasEnded): |
| (WebKit::UserMediaCaptureManager::Source::stopBeingObserved): |
| (WebKit::UserMediaCaptureManager::AudioFactory::createAudioCaptureSource): |
| * WebProcess/cocoa/UserMediaCaptureManager.h: |
| (WebKit::UserMediaCaptureManager::didReceiveMessageFromGPUProcess): |
| |
| 2019-12-18 Ben Nham <nham@apple.com> |
| |
| Add network loading signposts |
| https://bugs.webkit.org/show_bug.cgi?id=204822 |
| <rdar://problem/57608824> |
| |
| Reviewed by Alex Christensen. |
| |
| This adds os_signposts related to network loads to aid in debugging networking performance |
| issues. Since URLs are logged in the signposts, this capability is only enabled on Apple |
| internal builds when an environment variable is set. |
| |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.h: |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::signpostLogHandle): |
| (WebKit::signpostsEnabled): |
| (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): |
| (WebKit::NetworkDataTaskCocoa::didSendData): |
| (WebKit::NetworkDataTaskCocoa::didReceiveChallenge): |
| (WebKit::NetworkDataTaskCocoa::didCompleteWithError): |
| (WebKit::NetworkDataTaskCocoa::didReceiveData): |
| (WebKit::NetworkDataTaskCocoa::didReceiveResponse): |
| (WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection): |
| (WebKit::NetworkDataTaskCocoa::cancel): |
| (WebKit::NetworkDataTaskCocoa::resume): |
| |
| 2019-12-18 youenn fablet <youenn@apple.com> |
| |
| Refine RTCMonitor logging |
| https://bugs.webkit.org/show_bug.cgi?id=205384 |
| |
| Reviewed by Eric Carlson. |
| |
| Catch the case where the rtc thread is blocked in WebProcess and NetworkProcess. |
| Add logging of 'this' so as to disambiguate the case of several pages doing RTC in parallel. |
| No change of behavior. |
| |
| * NetworkProcess/webrtc/NetworkRTCMonitor.cpp: |
| (WebKit::NetworkRTCMonitor::startUpdatingIfNeeded): |
| (WebKit::NetworkRTCMonitor::stopUpdating): |
| (WebKit::NetworkRTCMonitor::onNetworksChanged): |
| * NetworkProcess/webrtc/NetworkRTCProvider.cpp: |
| (WebKit::NetworkRTCProvider::NetworkRTCProvider): |
| (WebKit::NetworkRTCProvider::close): |
| (WebKit::NetworkRTCProvider::createSocket): |
| * NetworkProcess/webrtc/NetworkRTCProvider.h: |
| (WebKit::NetworkRTCProvider::canLog const): |
| * WebProcess/Network/webrtc/WebRTCMonitor.cpp: |
| (WebKit::WebRTCMonitor::StartUpdating): |
| (WebKit::WebRTCMonitor::StopUpdating): |
| (WebKit::WebRTCMonitor::networksChanged): |
| |
| 2019-12-18 Kate Cheney <katherine_cheney@apple.com> |
| |
| Only report prevalent domains in the ResourceLoadStatistics data summary API |
| https://bugs.webkit.org/show_bug.cgi?id=205281 |
| <rdar://problem/57975017> |
| |
| Reviewed by Brent Fulgham. |
| |
| ResourceLoadStatisticsStore::aggregatedThirdPartyData() should only |
| return prevalent third party domains. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: |
| * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: |
| |
| 2019-12-18 Brent Fulgham <bfulgham@apple.com> |
| |
| Add syscall to GPU Process sandbox |
| https://bugs.webkit.org/show_bug.cgi?id=205400 |
| <rdar://problem/58046272> |
| |
| Reviewed by Simon Fraser. |
| |
| This patch temporarily adds a syscall to the sandbox to work around a bug in the |
| system Sandbox framework. We will remove this in Bug 205400 once that issue is |
| resolved. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb: |
| |
| 2019-12-18 Eric Carlson <eric.carlson@apple.com> |
| |
| Enable generic cue API |
| https://bugs.webkit.org/show_bug.cgi?id=205398 |
| <rdar://problem/58044492> |
| |
| Reviewed by Jon Lee. |
| |
| No new tests, covered by existing tests. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2019-12-18 Eric Carlson <eric.carlson@apple.com> |
| |
| Remove unused MediaPlayer methods |
| https://bugs.webkit.org/show_bug.cgi?id=205341 |
| <rdar://problem/58006776> |
| |
| Reviewed by Jer Noble. |
| |
| * GPUProcess/media/RemoteMediaPlayerProxy.cpp: |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerSawUnsupportedTracks): Deleted. |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerRepaint): Deleted. |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerAcceleratedCompositingEnabled): Deleted. |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerSetSize): Deleted. |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerIsPaused const): Deleted. |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerIsLooping const): Deleted. |
| * GPUProcess/media/RemoteMediaPlayerProxy.h: |
| * WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp: |
| (WebKit::MediaPlayerPrivateRemote::canLoadPoster const): Deleted. |
| (WebKit::MediaPlayerPrivateRemote::setPoster): Deleted. |
| * WebProcess/GPU/media/MediaPlayerPrivateRemote.h: |
| |
| 2019-12-18 Simon Fraser <simon.fraser@apple.com> |
| |
| Move m_exposedContentRect into the DelegatedScrollingGeometry optional |
| https://bugs.webkit.org/show_bug.cgi?id=205377 |
| |
| Reviewed by Tim Horton. |
| |
| ScrollView's m_exposedContentRect is only set for delegated scrolling, so move it into |
| DelegatedScrollingGeometry and remove the iOS #ifdefs around it. Move the WAK/NSView-related |
| code into platformExposedContentRect() for iOS WK1. Stub out exposedContentRect() functions |
| on TiledCoreAnimationDrawingArea. |
| |
| * WebProcess/WebPage/DrawingArea.h: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm: |
| (WebKit::RemoteLayerTreeDrawingArea::setExposedContentRect): |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h: |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: |
| (WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea): |
| (WebKit::TiledCoreAnimationDrawingArea::activityStateDidChange): |
| (WebKit::TiledCoreAnimationDrawingArea::setViewExposedRect): |
| (WebKit::TiledCoreAnimationDrawingArea::exposedContentRect const): |
| (WebKit::TiledCoreAnimationDrawingArea::setExposedContentRect): |
| (WebKit::TiledCoreAnimationDrawingArea::adjustLayerFlushThrottling): |
| |
| 2019-12-18 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Enable the async clipboard API by default on macOS and iOS |
| https://bugs.webkit.org/show_bug.cgi?id=205322 |
| <rdar://problem/55861627> |
| |
| Reviewed by Tim Horton. |
| |
| Enables the asynchronous clipboard API by default on Cocoa platforms. |
| |
| * Shared/WebPreferences.yaml: |
| * Shared/WebPreferencesDefaultValues.h: |
| |
| 2019-12-18 Philippe Normand <pnormand@igalia.com> |
| |
| [GTK][WebInspector] Support for saving remote data |
| https://bugs.webkit.org/show_bug.cgi?id=204618 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Similarly to what landed already in r251069, the Remote |
| WebInspector GTK client can now save data coming from the |
| inspector server. |
| |
| * UIProcess/gtk/RemoteWebInspectorProxyGtk.cpp: |
| (WebKit::RemoteWebInspectorProxy::platformSave): |
| |
| 2019-12-17 Joonghun Park <jh718.park@samsung.com> |
| |
| Unreviewed. Remove the build warning below since r253452. |
| warning: unused variable ‘isNewEntry’ [-Wunused-variable] |
| |
| No new tests, no new behavioral changes. |
| |
| * NetworkProcess/IndexedDB/WebIDBServer.cpp: |
| (WebKit::WebIDBServer::addConnection): |
| |
| 2019-12-17 Per Arne Vollan <pvollan@apple.com> |
| |
| Unreviewed build fix after r253661. |
| |
| * UIProcess/ios/forms/WKFileUploadPanel.mm: |
| |
| 2019-12-17 Per Arne Vollan <pvollan@apple.com> |
| |
| [iOS] The WebContent process should not use API to get the user interface idiom |
| https://bugs.webkit.org/show_bug.cgi?id=205236 |
| |
| Reviewed by Brent Fulgham. |
| |
| This should be done in the UI process, since using the API in the WebContent process will connect to daemons |
| we intend to block access to. Add a flag to the process creation parameters which indicates whether the user |
| interface idiom is iPad or not. This flag will be set on the UI process side, and on the WebContent process |
| side, this flag will be read and cached for later use. |
| |
| No new tests, covered by existing tests. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| (currentUserInterfaceIdiomIsPad): Deleted. |
| * Shared/UserInterfaceIdiom.h: Added. |
| * Shared/UserInterfaceIdiom.mm: Added. |
| (WebKit::userInterfaceIdiomIsPad): |
| (WebKit::currentUserInterfaceIdiomIsPad): |
| (WebKit::setCurrentUserInterfaceIdiomIsPad): |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::encode const): |
| (WebKit::WebProcessCreationParameters::decode): |
| * Shared/WebProcessCreationParameters.h: |
| * Shared/ios/WebPreferencesDefaultValuesIOS.mm: |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): |
| * UIProcess/ios/SmartMagnificationController.mm: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKFormInputSession setAccessoryViewCustomButtonTitle:]): |
| (-[WKContentView endEditingAndUpdateFocusAppearanceWithReason:]): |
| (-[WKContentView _shouldShowAutomaticKeyboardUIIgnoringInputMode]): |
| (-[WKContentView _zoomToRevealFocusedElement]): |
| (-[WKContentView requiresAccessoryView]): |
| (-[WKContentView _updateAccessory]): |
| (shouldShowKeyboardForElement): |
| (-[WKContentView _shouldUseLegacySelectPopoverDismissalBehavior]): |
| * UIProcess/ios/WebDataListSuggestionsDropdownIOS.mm: |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| * UIProcess/ios/forms/WKFormColorControl.mm: |
| (-[WKFormColorControl initWithView:]): |
| * UIProcess/ios/forms/WKFormColorPicker.mm: |
| * UIProcess/ios/forms/WKFormInputControl.mm: |
| * UIProcess/ios/forms/WKFormSelectControl.mm: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::platformInitializeWebProcess): |
| |
| 2019-12-17 Eric Carlson <eric.carlson@apple.com> |
| |
| Add remote media player methods for prepareToPlay, preload, private browsing mode, preserves pitch, and failed to load |
| https://bugs.webkit.org/show_bug.cgi?id=205351 |
| <rdar://problem/58018451> |
| |
| Reviewed by Jer Noble. |
| |
| * GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp: |
| (WebKit::RemoteMediaPlayerManagerProxy::prepareToPlay): |
| (WebKit::RemoteMediaPlayerManagerProxy::setPreload): |
| (WebKit::RemoteMediaPlayerManagerProxy::setPrivateBrowsingMode): |
| (WebKit::RemoteMediaPlayerManagerProxy::setPreservesPitch): |
| * GPUProcess/media/RemoteMediaPlayerManagerProxy.h: |
| * GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in: |
| * GPUProcess/media/RemoteMediaPlayerProxy.cpp: |
| (WebKit::RemoteMediaPlayerProxy::prepareToPlay): |
| (WebKit::RemoteMediaPlayerProxy::setPreload): |
| (WebKit::RemoteMediaPlayerProxy::setPrivateBrowsingMode): |
| (WebKit::RemoteMediaPlayerProxy::setPreservesPitch): |
| * GPUProcess/media/RemoteMediaPlayerProxy.h: |
| * WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp: |
| (WebKit::MediaPlayerPrivateRemote::prepareToPlay): |
| (WebKit::MediaPlayerPrivateRemote::setPreservesPitch): |
| (WebKit::MediaPlayerPrivateRemote::setPreload): |
| (WebKit::MediaPlayerPrivateRemote::setPrivateBrowsingMode): |
| (WebKit::MediaPlayerPrivateRemote::engineFailedToLoad): |
| (WebKit::MediaPlayerPrivateRemote::platformErrorCode const): Deleted. |
| (WebKit::MediaPlayerPrivateRemote::requiresImmediateCompositing const): Deleted. |
| * WebProcess/GPU/media/MediaPlayerPrivateRemote.h: |
| * WebProcess/GPU/media/RemoteMediaPlayerManager.cpp: |
| (WebKit::RemoteMediaPlayerManager::engineFailedToLoad): |
| * WebProcess/GPU/media/RemoteMediaPlayerManager.h: |
| * WebProcess/GPU/media/RemoteMediaPlayerManager.messages.in: |
| |
| 2019-12-17 Kate Cheney <katherine_cheney@apple.com> |
| |
| Add run-time flag for in-app browser privacy |
| https://bugs.webkit.org/show_bug.cgi?id=205288 |
| <rdar://problem/57569206> |
| |
| Reviewed by John Wilander. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2019-12-17 Ben Nham <nham@apple.com> |
| |
| Navigation from empty page doesn't use cached web process |
| https://bugs.webkit.org/show_bug.cgi?id=205015 |
| <rdar://problem/57703742> |
| |
| Reviewed by Chris Dumez. |
| |
| When navigating from an empty page to another domain foo.com, we always use the source |
| WebProcess (which is basically uninitialized) rather than using an already-initialized |
| cached WebProcess that has navigated to foo.com. The cached WebProcess should probably be |
| preferred since it has more relevant cached resources available to it (e.g. memory cache, JS |
| bytecode cache, prewarmed fonts, ...). |
| |
| Added an API test. |
| |
| * UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h: |
| * UIProcess/API/Cocoa/WKWebViewTesting.mm: |
| (-[WKWebView _ensureRunningProcessForTesting]): |
| Allows tests to force WebProcess to launch to an empty document for testing purposes. This |
| matches the behavior of how Safari uses WKWebView. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigationInternal): Prefer cached web process over |
| source process if the source process hasn't committed any loads. |
| |
| 2019-12-17 Benjamin Nham <nham@apple.com> |
| |
| Drop support for NSURLCache callbacks in NetworkProcess |
| https://bugs.webkit.org/show_bug.cgi?id=203344 |
| |
| Reviewed by Alex Christensen. |
| |
| Remove the NSURLSession caching policy callback in NetworkProcess. It's no longer necessary since |
| we don't use NSURLCache in NetworkProcess (https://bugs.webkit.org/show_bug.cgi?id=185990). |
| |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (-[WKNetworkSessionDelegate URLSession:dataTask:willCacheResponse:completionHandler:]): Deleted. |
| |
| 2019-12-17 David Kilzer <ddkilzer@apple.com> |
| |
| Remove SafeBrowsingResult |
| <https://webkit.org/b/205296> |
| |
| Reviewed by Anders Carlsson. |
| |
| * UIProcess/Cocoa/SafeBrowsingResultCocoa.mm: Remove. |
| * UIProcess/SafeBrowsingResult.h: Remove. |
| |
| 2019-12-17 youenn fablet <youenn@apple.com> |
| |
| WebKitTestRunner should report GPU process crashes |
| https://bugs.webkit.org/show_bug.cgi?id=205338 |
| |
| Reviewed by Tim Horton. |
| |
| Expose a callback to notify of GPU process crash. |
| No change of behavior. |
| |
| * UIProcess/API/C/WKContext.h: |
| * UIProcess/GPU/GPUProcessProxy.cpp: |
| (WebKit::GPUProcessProxy::gpuProcessCrashed): |
| * UIProcess/WebContextClient.cpp: |
| (WebKit::WebContextClient::gpuProcessDidCrash): |
| * UIProcess/WebContextClient.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::gpuProcessCrashed): |
| * UIProcess/WebProcessPool.h: |
| |
| 2019-12-17 Tim Horton <timothy_horton@apple.com> |
| |
| macCatalyst: Cursor should update on mouse movement and style change |
| https://bugs.webkit.org/show_bug.cgi?id=205317 |
| <rdar://problem/46793696> |
| |
| Reviewed by Anders Carlsson. |
| |
| * Configurations/WebKit.xcconfig: |
| Link AppKit for NSCursor. |
| |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<Cursor>::decode): |
| Enable Cursor encoders. |
| |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::setCursor): |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| Unifdef various things. |
| Implement setCursor(). |
| |
| 2019-12-17 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK][WPE] IndexedDB directory set in WebsiteDataManager is ignored |
| https://bugs.webkit.org/show_bug.cgi?id=205330 |
| |
| Reviewed by Youenn Fablet. |
| |
| There are two problems here: |
| |
| 1- WebKitWebsiteDataManager is no longer setting the indexedDB directory to the WebsiteDatastore |
| configuration. It seems the code was removed by mistake in r249778 when rolling out r249768. |
| 2- The WebProcessPool is not considering the primary WebsiteDataStore for indexedDB configuration. |
| |
| Fixes: /webkit/WebKitWebsiteData/databases |
| /webkit/WebKitWebsiteData/configuration |
| |
| * UIProcess/API/glib/WebKitWebsiteDataManager.cpp: |
| (webkitWebsiteDataManagerGetDataStore): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| |
| 2019-12-17 youenn fablet <youenn@apple.com> |
| |
| Bump the priority of CacheStorageEngine write operations |
| https://bugs.webkit.org/show_bug.cgi?id=205329 |
| |
| Reviewed by Antti Koivisto. |
| |
| Introduce an IOChannel extra optional parameter to set the QOS. |
| Use this parameter for IOChannels created by CacheStorageEngine when writing files to increase the priority to default. |
| Increase the priority of the CacheStorageEngine background queue to default. |
| No observable change of behavior except potential speed increase. |
| |
| * NetworkProcess/cache/CacheStorageEngine.cpp: |
| (WebKit::CacheStorage::Engine::Engine): |
| (WebKit::CacheStorage::Engine::writeFile): |
| * NetworkProcess/cache/NetworkCacheIOChannel.h: |
| (WebKit::NetworkCache::IOChannel::open): |
| * NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm: |
| (WebKit::NetworkCache::dispatchQueueFromPriority): |
| (WebKit::NetworkCache::IOChannel::IOChannel): |
| (WebKit::NetworkCache::IOChannel::open): |
| * NetworkProcess/cache/NetworkCacheIOChannelCurl.cpp: |
| (WebKit::NetworkCache::IOChannel::open): |
| * NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp: |
| (WebKit::NetworkCache::IOChannel::open): |
| |
| 2019-12-17 youenn fablet <youenn@apple.com> |
| |
| WebKitTestRunner should report service worker process crashes |
| https://bugs.webkit.org/show_bug.cgi?id=205267 |
| |
| Reviewed by Chris Dumez. |
| |
| Expose a way for WTR to be notified of service worker process crashes. |
| |
| * UIProcess/API/C/WKContext.h: |
| * UIProcess/WebContextClient.cpp: |
| (WebKit::WebContextClient::serviceWorkerProcessDidCrash): |
| * UIProcess/WebContextClient.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::serviceWorkerProcessCrashed): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch): |
| |
| 2019-12-17 Chris Dumez <cdumez@apple.com> |
| |
| Improve release logging in NetworkResourceLoader |
| https://bugs.webkit.org/show_bug.cgi?id=205295 |
| |
| Reviewed by Youenn Fablet. |
| |
| Improve release logging in NetworkResourceLoader to facilitate debugging of loading-related issues. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::start): |
| (WebKit::NetworkResourceLoader::retrieveCacheEntry): |
| (WebKit::NetworkResourceLoader::retrieveCacheEntryInternal): |
| (WebKit::NetworkResourceLoader::startNetworkLoad): |
| (WebKit::NetworkResourceLoader::cleanup): |
| (WebKit::NetworkResourceLoader::convertToDownload): |
| (WebKit::NetworkResourceLoader::abort): |
| (WebKit::NetworkResourceLoader::didReceiveResponse): |
| (WebKit::NetworkResourceLoader::didReceiveBuffer): |
| (WebKit::NetworkResourceLoader::didFinishLoading): |
| (WebKit::NetworkResourceLoader::didFailLoading): |
| (WebKit::NetworkResourceLoader::didBlockAuthenticationChallenge): |
| (WebKit::NetworkResourceLoader::willSendRedirectedRequest): |
| (WebKit::NetworkResourceLoader::continueWillSendRedirectedRequest): |
| (WebKit::NetworkResourceLoader::didFinishWithRedirectResponse): |
| (WebKit::NetworkResourceLoader::restartNetworkLoad): |
| (WebKit::NetworkResourceLoader::continueWillSendRequest): |
| (WebKit::NetworkResourceLoader::continueDidReceiveResponse): |
| (WebKit::NetworkResourceLoader::tryStoreAsCacheEntry): |
| (WebKit::NetworkResourceLoader::didReceiveMainResourceResponse): |
| (WebKit::NetworkResourceLoader::didRetrieveCacheEntry): |
| (WebKit::NetworkResourceLoader::sendResultForCacheEntry): |
| (WebKit::NetworkResourceLoader::validateCacheEntry): |
| (WebKit::NetworkResourceLoader::dispatchWillSendRequestForCacheEntry): |
| (WebKit::NetworkResourceLoader::startWithServiceWorker): |
| (WebKit::NetworkResourceLoader::serviceWorkerDidNotHandle): |
| |
| 2019-12-16 Simon Fraser <simon.fraser@apple.com> |
| |
| Change 'delegatesPageScaling' from a Setting to a flag on ScrollView |
| https://bugs.webkit.org/show_bug.cgi?id=205319 |
| |
| Reviewed by Tim Horton. |
| |
| delegatesPageScaling() is never toggled at runtime (even by tests), and it should |
| be a flag on FrameView just like delegatesScrolling (maybe in future the flags can merge). |
| |
| So remove the Setting, and have DrawingArea control whether page scaling is delegated. |
| |
| In WebKit1, WebFrameLoaderClient::transitionToCommittedForNewPage() turns on delegated |
| page scaling for iOS. |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage): |
| * WebProcess/WebPage/DrawingArea.h: |
| (WebKit::DrawingArea::usesDelegatedPageScaling const): |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm: |
| (WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea): |
| * WebProcess/WebPage/ios/FindControllerIOS.mm: |
| (WebKit::FindIndicatorOverlayClientIOS::drawRect): |
| |
| 2019-12-16 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| -[UIWKDocumentContext markedTextRange] is wrong when the caret is not at the start of marked text |
| https://bugs.webkit.org/show_bug.cgi?id=205302 |
| |
| Reviewed by Tim Horton. |
| |
| Makes a few minor adjustments around marked text handling in document editing context request code. |
| |
| 1. In the case where markedTextRects are requested, automatically expand the context range (i.e. contextBefore |
| and contextAfter) to encompass the marked text. This fixes UIWKDocumentContext's logic that computes the |
| marked text range by subtracting `contextBefore` string's length from `selectedRangeInMarkedText`'s location. |
| |
| (Note that this still requires an adjustment in UIKit to actually respect `selectedRangeInMarkedText` when |
| computing `markedTextRange`. This is tracked in <rdar://problem/57338528>). |
| |
| 2. Stop clamping compositionStart and compositionEnd to the range of interest (in this case, the selection |
| range, which is a collapsed caret selection). This makes the composition range seem as if it were empty, which |
| prevents us from computing the marked text string (and importantly, its length). |
| |
| 3. Flip the arguments to `distanceBetweenPositions`, such that we end up with a positive value for |
| `selectedRangeInMarkedText` in the case where `compositionStart` is before `startOfRangeOfInterestInSelection`. |
| |
| Test: DocumentEditingContext.RequestMarkedTextRectsAndTextOnly |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::requestDocumentEditingContext): |
| |
| 2019-12-16 Per Arne Vollan <pvollan@apple.com> |
| |
| [iOS] Issue mach lookup extension to diagnostics daemon |
| https://bugs.webkit.org/show_bug.cgi?id=205292 |
| |
| Reviewed by Brent Fulgham. |
| |
| For internal installs, issue a mach lookup extension to the diagnostics daemon. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::encode const): |
| (WebKit::WebProcessCreationParameters::decode): |
| * Shared/WebProcessCreationParameters.h: |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::isInternalInstall): |
| (WebKit::WebProcessPool::platformInitializeWebProcess): |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::platformInitializeWebProcess): |
| |
| 2019-12-16 Daniel Bates <dabates@apple.com> |
| |
| Reproducible case of backwards nextParagraph returning a position ahead of the input position |
| https://bugs.webkit.org/show_bug.cgi?id=196127 |
| <rdar://problem/49135890> |
| |
| Reviewed by Wenson Hsieh. |
| |
| Remove workaround now that WebCore::nextParagraphBoundaryInDirection() behaves correctly. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::moveByGranularityRespectingWordBoundary): |
| |
| 2019-12-16 youenn fablet <youenn@apple.com> |
| |
| Make ServiceWorkerSoftUpdateLoader::loadWithCacheEntry more robust |
| https://bugs.webkit.org/show_bug.cgi?id=205202 |
| rdar://problem/57852910 |
| |
| Reviewed by Chris Dumez. |
| |
| In case loading an entry from the cache, we were calling didReceiveResponse, |
| which may destroy the loader and then continue processing. |
| Instead, add a processResponse method that checks the response and returns an error if needed. |
| didReceiveResponse calls this method and returns early in case of error. |
| So does the method loading data from the cache. |
| |
| Covered by existing tests. |
| |
| * NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.cpp: |
| (WebKit::ServiceWorkerSoftUpdateLoader::loadWithCacheEntry): |
| (WebKit::ServiceWorkerSoftUpdateLoader::didReceiveResponse): |
| (WebKit::ServiceWorkerSoftUpdateLoader::processResponse): |
| * NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.h: |
| |
| 2019-12-16 Antti Koivisto <antti@apple.com> |
| |
| Remove display:contents feature flag |
| https://bugs.webkit.org/show_bug.cgi?id=205276 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetDisplayContentsEnabled): Deleted. |
| (WKPreferencesGetDisplayContentsEnabled): Deleted. |
| * UIProcess/API/C/WKPreferencesRefPrivate.h: |
| |
| 2019-12-16 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Fix API availability for -_getResourceLoadStatisticsDataSummary: after r253484 |
| https://bugs.webkit.org/show_bug.cgi?id=205256 |
| |
| Reviewed by Alex Christensen. |
| |
| Replaces WK_API_AVAILABLE(macos(10.15), ios(13.0)) with WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA)), |
| since this is new WebKit SPI that hasn't made its way into the SDK. |
| |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| |
| 2019-12-16 Daniel Bates <dabates@apple.com> |
| |
| -requestDocumentContext always returns 1 text unit more granularity than requested |
| https://bugs.webkit.org/show_bug.cgi?id=205142 |
| <rdar://problem/57858236> |
| |
| Reviewed by Darin Adler and Wenson Hsieh. |
| |
| Use WebCore::atBoundaryOfGranularity() to identify each boundary so that we return the position |
| exactly granularityCount text units advanced from the specified position. When using sentence |
| granularity we do not need to round the resulting position to the nearest word because it already |
| falls before the next word (if there is one). For all other granularities we do what we do now |
| and round to the nearest word, which may cross that granularity's boundary. |
| |
| Additionally, added assertions to ensure that we are passed a non-zero granularity count and a non- |
| null initial position. The function takes advantage of these assumptions to 1) ensure correct results |
| and 2) make use of a do-while loop. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::moveByGranularityRespectingWordBoundary): |
| |
| 2019-12-16 Simon Fraser <simon.fraser@apple.com> |
| |
| Let the DrawingArea decide whether scrolling is delegated |
| https://bugs.webkit.org/show_bug.cgi?id=205258 |
| |
| Reviewed by Anders Carlsson. |
| |
| Delegated scrolling was hardcoded on for iOS WK2 (as it is for iOS WK1) and off for macOS, |
| but if macOS is using RemoteLayerTreeDrawingArea that should also use delegated scrolling. |
| |
| Also make some DrawingArea functions const, and put m_frame->coreFrame()->view() into |
| a local RefPtr in WebFrameLoaderClient::transitionToCommittedForNewPage(). |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage): |
| * WebProcess/WebPage/DrawingArea.h: |
| (WebKit::DrawingArea::supportsAsyncScrolling const): |
| (WebKit::DrawingArea::usesDelegatedScrolling const): |
| (WebKit::DrawingArea::shouldUseTiledBackingForFrameView const): |
| (WebKit::DrawingArea::supportsAsyncScrolling): Deleted. |
| (WebKit::DrawingArea::shouldUseTiledBackingForFrameView): Deleted. |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm: |
| (WebKit::RemoteLayerTreeDrawingArea::shouldUseTiledBackingForFrameView const): |
| (WebKit::RemoteLayerTreeDrawingArea::shouldUseTiledBackingForFrameView): Deleted. |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h: |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: |
| (WebKit::TiledCoreAnimationDrawingArea::shouldUseTiledBackingForFrameView const): |
| (WebKit::TiledCoreAnimationDrawingArea::shouldUseTiledBackingForFrameView): Deleted. |
| |
| 2019-12-16 Eric Carlson <eric.carlson@apple.com> |
| |
| Log when unimplemented remote MediaPlayer methods are called |
| https://bugs.webkit.org/show_bug.cgi?id=205269 |
| <rdar://problem/57967733> |
| |
| Reviewed by Youenn Fablet. |
| |
| * GPUProcess/media/RemoteMediaPlayerProxy.cpp: |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerPlaybackStateChanged): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerSawUnsupportedTracks): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerResourceNotSupported): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerRepaint): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerSizeChanged): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerEngineUpdated): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerFirstVideoFrameAvailable): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerCharacteristicChanged): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerRenderingCanBeAccelerated): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerRenderingModeChanged): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerAcceleratedCompositingEnabled): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerActiveSourceBuffersChanged): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerCachedKeyForKeyId const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerKeyNeeded): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerMediaKeysStorageDirectory const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerInitializationDataEncountered): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerWaitingForKeyChanged): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerCurrentPlaybackTargetIsWirelessChanged): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerReferrer const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerUserAgent const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerEnterFullscreen): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerExitFullscreen): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerIsFullscreen const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerIsFullscreenPermitted const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerIsVideo const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerContentBoxRect const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerContentsScale const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerSetSize): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerPause): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerPlay): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerPlatformVolumeConfigurationRequired const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerIsPaused const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerIsLooping const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerCachedResourceLoader): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerCreateResourceLoader): |
| (WebKit::RemoteMediaPlayerProxy::doesHaveAttribute const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerShouldUsePersistentCache const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerMediaCacheDirectory const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerDidAddAudioTrack): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerDidAddTextTrack): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerDidAddVideoTrack): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerDidRemoveAudioTrack): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerDidRemoveTextTrack): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerDidRemoveVideoTrack): |
| (WebKit::RemoteMediaPlayerProxy::textTrackRepresentationBoundsChanged): |
| (WebKit::RemoteMediaPlayerProxy::outOfBandTrackSources): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerNetworkInterfaceName const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerGetRawCookies const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerHandlePlaybackCommand): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerSourceApplicationIdentifier const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerIsInMediaDocument const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerEngineFailedToLoad const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerRequestedPlaybackRate const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerFullscreenMode const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerIsVideoFullscreenStandby const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerPreferredAudioCharacteristics const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerShouldDisableSleep const): |
| (WebKit::RemoteMediaPlayerProxy::mediaContentTypesRequiringHardwareSupport const): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerShouldCheckHardwareSupport const): |
| * GPUProcess/media/RemoteMediaPlayerProxy.h: |
| |
| 2019-12-16 Kate Cheney <katherine_cheney@apple.com> |
| |
| Add NS_UNAVAILABLE tags to prevent alloc inits for _WKResourceLoadStatistics* classes |
| https://bugs.webkit.org/show_bug.cgi?id=205221 |
| |
| Reviewed by Anders Carlsson. |
| |
| This patch ensures that no one tries to alloc init |
| _WKResourceLoadStatisticsFirstParty or |
| _WKResourceLoadStatisticsThirdParty. They should only be created via |
| the API call to create(). |
| |
| * UIProcess/API/Cocoa/_WKResourceLoadStatisticsFirstParty.h: |
| * UIProcess/API/Cocoa/_WKResourceLoadStatisticsThirdParty.h: |
| |
| 2019-12-16 youenn fablet <youenn@apple.com> |
| |
| http/wpt/service-workers/postMessage-fetch-order.https.html is a flaky failure after r253528 |
| https://bugs.webkit.org/show_bug.cgi?id=205261 |
| |
| Reviewed by Chris Dumez. |
| |
| Instead of starting the fetch task asynchronously, start it synchronously but make sure that |
| not handling the fetch is either coming from IPC or is done asynchronously. |
| |
| We add a boolean m_isDone that ensures that the loader will only be called once for didFail/didFinish/didNotHandle. |
| This covers the potential case of a task for which cannotHandle is called synchronously at creation but the call to didNotHandle is not yet done. |
| Before the call to didNotHandle is done, a timeout timer is firing and will call didNotHandle a first time. |
| The second didNotHandle should be a no-op. |
| |
| Covered by existing tests and unflakes above test. |
| |
| * NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp: |
| (WebKit::ServiceWorkerFetchTask::contextClosed): |
| (WebKit::ServiceWorkerFetchTask::didReceiveRedirectResponse): |
| (WebKit::ServiceWorkerFetchTask::didReceiveResponse): |
| (WebKit::ServiceWorkerFetchTask::didReceiveData): |
| (WebKit::ServiceWorkerFetchTask::didReceiveFormData): |
| (WebKit::ServiceWorkerFetchTask::didFinish): |
| (WebKit::ServiceWorkerFetchTask::didFail): |
| (WebKit::ServiceWorkerFetchTask::didNotHandle): |
| Make sure to call didNotHandle only once based on m_isDone. |
| (WebKit::ServiceWorkerFetchTask::cannotHandle): |
| Do not expose didNotHandle as a public method. |
| Instead expose cannotHandle that will call didNotHandle asynchronously. |
| (WebKit::ServiceWorkerFetchTask::continueFetchTaskWith): |
| No need to set a timer if we will not create a fetch event. |
| * NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h: |
| (WebKit::ServiceWorkerFetchTask::takeRequest): |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::startFetch): |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp: |
| (WebKit::WebSWServerToContextConnection::fetchTaskTimedOut): |
| Small refactoring to only use contextClosed and not expose whether the task is handled or not. |
| This also potentially allows to call didNotHandle in case the service worker crashed before answering the fetch event. |
| |
| 2019-12-16 Emilio Cobos Álvarez <emilio@crisal.io> |
| |
| [GTK] Build with USE_WPE_RENDERER=No fails with undefined EGL_WAYLAND_BUFFER_WL |
| https://bugs.webkit.org/show_bug.cgi?id=205250 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Define the enum if not present. |
| |
| No new tests, just a build fix. |
| |
| * UIProcess/gtk/WaylandCompositor.cpp: |
| |
| 2019-12-16 youenn fablet <youenn@apple.com> |
| |
| Reset cached getUserMedia queries when calling stopMediaCapture |
| https://bugs.webkit.org/show_bug.cgi?id=205064 |
| |
| Reviewed by Eric Carlson. |
| |
| Reset cached queries when calling stop media capture API allows to trigger again the prompt |
| after the API call. |
| Covered by updated API test. |
| |
| * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: |
| (WebKit::UserMediaPermissionRequestManagerProxy::resetAccess): |
| * UIProcess/UserMediaPermissionRequestManagerProxy.h: |
| (WebKit::UserMediaPermissionRequestManagerProxy::resetAccess): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::stopMediaCapture): |
| |
| 2019-12-15 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| -[WKWebView _detectDataWithTypes:completionHandler:] crashes when there is no running process |
| https://bugs.webkit.org/show_bug.cgi?id=205254 |
| |
| Reviewed by Tim Horton. |
| |
| Bail early and call the completion handler in the case where we don't have a running web process, to avoid a |
| null `Connection*` deref. Speculative fix for <rdar://problem/57463469>. |
| |
| * UIProcess/WebPageProxy.cpp: |
| |
| 2019-12-14 Adrian Perez de Castro <aperez@igalia.com> |
| |
| [GTK][WPE] Fix various non-unified build issues introduced since r251698 |
| https://bugs.webkit.org/show_bug.cgi?id=204891 |
| |
| Reviewed by Alex Christensen. |
| |
| * NetworkProcess/IndexedDB/WebIDBServer.cpp: Add missing WebCore namespace prefixes |
| in function declarations. |
| (WebKit::WebIDBServer::create): |
| (WebKit::WebIDBServer::WebIDBServer): |
| (WebKit::WebIDBServer::closeAndDeleteDatabasesForOrigins): |
| (WebKit::WebIDBServer::suspend): |
| (WebKit::WebIDBServer::idFireVersionChangeEvent): |
| * NetworkProcess/cache/CacheStorageEngine.cpp: |
| (WebKit::CacheStorage::Engine::requestSpace): Add missing namespace prefix for |
| WebCore::ClientOrigin. |
| * NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp: Add missing inclusion of |
| WebCore/RegistrableDomain.h |
| (WebKit::NetworkCache::SubresourceInfo::isFirstParty const): Add missing namespace prefix |
| for WebCore::RegistrableDomain. |
| * WebProcess/Automation/WebAutomationSessionProxy.cpp: |
| (WebKit::WebAutomationSessionProxy::setFilesForInputFileUpload): Add missing namespace |
| prefix for WebCore::File::create() and WebCore::FileList::create() calls. |
| |
| 2019-12-14 Simon Fraser <simon.fraser@apple.com> |
| |
| Rename "customFixedPositionRect" to "layoutViewportRect" |
| https://bugs.webkit.org/show_bug.cgi?id=205241 |
| |
| Reviewed by Dean Jackson. |
| |
| WK2 computes the rect used to layout out position:fixed elements in the UI process. |
| For historical reasons this was called customFixedPositionRect, but rename it to |
| layoutViewportRect since that what it really is. |
| |
| * Shared/VisibleContentRectUpdateInfo.cpp: |
| (WebKit::VisibleContentRectUpdateInfo::encode const): |
| (WebKit::VisibleContentRectUpdateInfo::decode): |
| (WebKit::operator<<): |
| * Shared/VisibleContentRectUpdateInfo.h: |
| (WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo): |
| (WebKit::VisibleContentRectUpdateInfo::layoutViewportRect const): |
| (WebKit::operator==): |
| (WebKit::VisibleContentRectUpdateInfo::customFixedPositionRect const): Deleted. |
| * UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm: |
| (WebKit::RemoteScrollingCoordinatorProxy::currentLayoutViewport const): |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::layoutViewportRect const): |
| (WebKit::WebPageProxy::customFixedPositionRect const): Deleted. |
| * UIProcess/ios/WKContentView.mm: |
| (-[WKContentView didUpdateVisibleRect:unobscuredRect:contentInsets:unobscuredRectInScrollViewCoordinates:obscuredInsets:unobscuredSafeAreaInsets:inputViewBounds:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollableAncestorView:]): |
| (-[WKContentView _didCommitLayerTree:]): |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::computeLayoutViewportRect const): |
| (WebKit::WebPageProxy::unconstrainedLayoutViewportRect const): |
| (WebKit::WebPageProxy::computeCustomFixedPositionRect const): Deleted. |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::updateVisibleContentRects): |
| |
| 2019-12-14 Per Arne Vollan <pvollan@apple.com> |
| |
| Map CSS value ID to system color in the UI process |
| https://bugs.webkit.org/show_bug.cgi?id=204314 |
| <rdar://problem/57295392> |
| |
| Reviewed by Brent Fulgham. |
| |
| Create mapping between CSS value IDs and system colors in the UI process and send to the WebContent process |
| on process startup. |
| |
| No new tests, covered by existing tests. |
| |
| * 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): |
| |
| 2019-12-14 Per Arne Vollan <pvollan@apple.com> |
| |
| [iOS] Deny mach lookup access to "*.viewservice" in the WebContent process |
| https://bugs.webkit.org/show_bug.cgi?id=205240 |
| |
| Reviewed by Brent Fulgham. |
| |
| As part of sandbox hardening in the WebContent process, mach lookup access to “*.viewservice” should be removed. |
| |
| Test: fast/sandbox/ios/sandbox-mach-lookup.html |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2019-12-14 Chris Dumez <cdumez@apple.com> |
| |
| WebSWServerConnection::startFetch() should never fail synchronously |
| https://bugs.webkit.org/show_bug.cgi?id=205225 |
| <rdar://problem/57490508> |
| |
| Reviewed by Geoffrey Garen. |
| |
| WebSWServerConnection::startFetch() should never fail synchronously. If it does, it will |
| confuse the NetworkResourceLoader. NetworkResourceLoader::serviceWorkerDidNotHandle() will |
| get called *before* NetworkResourceLoader::m_serviceWorkerFetchTask has been sent, which |
| means that we would not properly deal with redirects. Worse, the call site which creates |
| the ServiceWorkerFetchTask would then null out m_networkLoad, which would silently cancel |
| the load that WebSWServerConnection::startFetch() started synchronously. |
| |
| No new tests, I am not sure how to test this. It would have to cause a redirect do a URL |
| that has a service worker and then we would have to get WebSWServerConnection::startFetch() |
| to fail synchronously. I think that to fail synchronously, we would have to not find a |
| ServiceWorker with the given ID, or the ServiceWorker's hasTimedOutAnyFetchTasks would have |
| to be set. |
| |
| I added a RELEASE_ASSERT() in NetworkResourceLoader::serviceWorkerDidNotHandle() that would |
| have caught this. |
| |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::startFetch): |
| |
| 2019-12-14 Simon Fraser <simon.fraser@apple.com> |
| |
| Move code out of WKWebView.mm into platform-specific files, for easier navigation |
| https://bugs.webkit.org/show_bug.cgi?id=205233 |
| |
| Reviewed by Tim Horton. |
| |
| Move as much platform-specific code out of WKWebView.mm as possible, moving it to WKWebViewMac/WKWebViewIOS. |
| WKWebView (WKPrivate) is split into WKWebView (WKPrivateIOS) and WKWebView (WKPrivateMac) so the implementations |
| of those functions can move. |
| |
| Code that remains in WKWebView.mm is either Cocoa-generic, or implements API. |
| |
| This is entirely cut/paste, other than the addition of -_takeFindStringFromSelectionInternal: for macOS |
| to allow WKWebView.mm to call -takeFindStringFromSelection:. |
| |
| * SourcesCocoa.txt: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (hardwareKeyboardAvailabilityChangedCallback): |
| (-[WKWebView setAllowsBackForwardNavigationGestures:]): |
| (-[WKWebView allowsBackForwardNavigationGestures]): |
| (-[WKWebView setPageZoom:]): |
| (-[WKWebView pageZoom]): |
| (toFindOptions): |
| (-[WKWebView findString:withConfiguration:completionHandler:]): |
| (+[WKWebView handlesURLScheme:]): |
| (-[WKWebView setMediaType:]): |
| (-[WKWebView mediaType]): |
| (-[WKWebView scrollView]): |
| (-[WKWebView setAllowsMagnification:]): |
| (-[WKWebView allowsMagnification]): |
| (-[WKWebView setMagnification:centeredAtPoint:]): |
| (-[WKWebView setMagnification:]): |
| (-[WKWebView magnification]): |
| (-[WKWebView printOperationWithPrintInfo:]): |
| (-[WKWebView _showSafeBrowsingWarning:completionHandler:]): |
| (-[WKWebView _clearSafeBrowsingWarning]): |
| (-[WKWebView _clearSafeBrowsingWarningIfForMainFrameNavigation]): |
| (-[WKWebView _internalDoAfterNextPresentationUpdate:withoutWaitingForPainting:withoutWaitingForAnimatedResize:]): |
| (dictionaryRepresentationForEditorState): |
| (nsTextAlignment): |
| (selectionAttributes): |
| (-[WKWebView _didChangeEditorState]): |
| (-[WKWebView _toggleStrikeThrough:]): |
| (-[WKWebView _increaseListLevel:]): |
| (-[WKWebView _decreaseListLevel:]): |
| (-[WKWebView _changeListType:]): |
| (-[WKWebView inputAccessoryView]): |
| (-[WKWebView inputView]): |
| (-[WKWebView inputAssistantItem]): |
| (-[WKWebView _selectionAttributes]): |
| (-[WKWebView _viewportSizeForCSSViewportUnits]): |
| (-[WKWebView _setViewportSizeForCSSViewportUnits:]): |
| (-[WKWebView _inspector]): |
| (-[WKWebView _mainFrame]): |
| (-[WKWebView _isEditable]): |
| (-[WKWebView _setEditable:]): |
| (-[WKWebView _executeEditCommand:argument:completion:]): |
| (-[WKWebView _textManipulationDelegate]): |
| (-[WKWebView _setTextManipulationDelegate:]): |
| (-[WKWebView _startTextManipulationsWithConfiguration:completion:]): |
| (-[WKWebView _completeTextManipulation:completion:]): |
| (-[WKWebView _takeFindStringFromSelection:]): |
| (+[WKWebView _stringForFind]): |
| (+[WKWebView _setStringForFind:]): |
| (-[WKWebView _remoteObjectRegistry]): |
| (-[WKWebView _handle]): |
| (-[WKWebView _observedRenderingProgressEvents]): |
| (-[WKWebView _historyDelegate]): |
| (-[WKWebView _setHistoryDelegate:]): |
| (-[WKWebView _updateMediaPlaybackControlsManager]): |
| (-[WKWebView _canTogglePictureInPicture]): |
| (-[WKWebView _isPictureInPictureActive]): |
| (-[WKWebView _togglePictureInPicture]): |
| (-[WKWebView _closeAllMediaPresentations]): |
| (-[WKWebView _stopMediaCapture]): |
| (-[WKWebView _stopAllMediaPlayback]): |
| (-[WKWebView _suspendAllMediaPlayback]): |
| (-[WKWebView _resumeAllMediaPlayback]): |
| (-[WKWebView _unreachableURL]): |
| (-[WKWebView _mainFrameURL]): |
| (-[WKWebView _loadAlternateHTMLString:baseURL:forUnreachableURL:]): |
| (-[WKWebView _loadData:MIMEType:characterEncodingName:baseURL:userData:]): |
| (-[WKWebView _loadRequest:shouldOpenExternalURLs:]): |
| (-[WKWebView _certificateChain]): |
| (-[WKWebView _committedURL]): |
| (-[WKWebView _MIMEType]): |
| (-[WKWebView _userAgent]): |
| (-[WKWebView _applicationNameForUserAgent]): |
| (-[WKWebView _setApplicationNameForUserAgent:]): |
| (-[WKWebView _customUserAgent]): |
| (-[WKWebView _setCustomUserAgent:]): |
| (-[WKWebView _setUserContentExtensionsEnabled:]): |
| (-[WKWebView _userContentExtensionsEnabled]): |
| (-[WKWebView _webProcessIdentifier]): |
| (-[WKWebView _provisionalWebProcessIdentifier]): |
| (-[WKWebView _webProcessIsResponsive]): |
| (-[WKWebView _killWebContentProcess]): |
| (-[WKWebView _reloadWithoutContentBlockers]): |
| (-[WKWebView _reloadExpiredOnly]): |
| (-[WKWebView _killWebContentProcessAndResetState]): |
| (-[WKWebView _convertRectFromRootViewCoordinates:]): |
| (-[WKWebView _convertRectToRootViewCoordinates:]): |
| (-[WKWebView _requestTextInputContextsInRect:completionHandler:]): |
| (-[WKWebView _focusTextInputContext:completionHandler:]): |
| (-[WKWebView _takePDFSnapshotWithConfiguration:completionHandler:]): |
| (-[WKWebView _sessionStateData]): |
| (-[WKWebView _sessionState]): |
| (-[WKWebView _sessionStateWithFilter:]): |
| (-[WKWebView _restoreFromSessionStateData:]): |
| (-[WKWebView _restoreSessionState:andNavigate:]): |
| (-[WKWebView _close]): |
| (-[WKWebView _insertAttachmentWithFilename:contentType:data:options:completion:]): |
| (-[WKWebView _insertAttachmentWithFileWrapper:contentType:options:completion:]): |
| (-[WKWebView _insertAttachmentWithFileWrapper:contentType:completion:]): |
| (-[WKWebView _attachmentForIdentifier:]): |
| (-[WKWebView _simulateDeviceOrientationChangeWithAlpha:beta:gamma:]): |
| (+[WKWebView _handlesSafeBrowsing]): |
| (-[WKWebView _showSafeBrowsingWarningWithTitle:warning:details:completionHandler:]): |
| (-[WKWebView _showSafeBrowsingWarningWithURL:title:warning:details:completionHandler:]): |
| (+[WKWebView _confirmMalwareSentinel]): |
| (+[WKWebView _visitUnsafeWebsiteSentinel]): |
| (-[WKWebView _isJITEnabled:]): |
| (-[WKWebView _evaluateJavaScriptWithoutUserGesture:completionHandler:]): |
| (-[WKWebView _updateWebsitePolicies:]): |
| (-[WKWebView _allowsRemoteInspection]): |
| (-[WKWebView _setAllowsRemoteInspection:]): |
| (-[WKWebView _remoteInspectionNameOverride]): |
| (-[WKWebView _setRemoteInspectionNameOverride:]): |
| (-[WKWebView _addsVisitedLinks]): |
| (-[WKWebView _setAddsVisitedLinks:]): |
| (-[WKWebView _networkRequestsInProgress]): |
| (layoutMilestones): |
| (-[WKWebView _setObservedRenderingProgressEvents:]): |
| (-[WKWebView _getMainResourceDataWithCompletionHandler:]): |
| (-[WKWebView _getWebArchiveDataWithCompletionHandler:]): |
| (-[WKWebView _getContentsAsStringWithCompletionHandler:]): |
| (-[WKWebView _getContentsAsAttributedStringWithCompletionHandler:]): |
| (-[WKWebView _getApplicationManifestWithCompletionHandler:]): |
| (-[WKWebView _paginationMode]): |
| (-[WKWebView _setPaginationMode:]): |
| (-[WKWebView _paginationBehavesLikeColumns]): |
| (-[WKWebView _setPaginationBehavesLikeColumns:]): |
| (-[WKWebView _pageLength]): |
| (-[WKWebView _setPageLength:]): |
| (-[WKWebView _gapBetweenPages]): |
| (-[WKWebView _setGapBetweenPages:]): |
| (-[WKWebView _paginationLineGridEnabled]): |
| (-[WKWebView _setPaginationLineGridEnabled:]): |
| (-[WKWebView _pageCount]): |
| (-[WKWebView _supportsTextZoom]): |
| (-[WKWebView _textZoomFactor]): |
| (-[WKWebView _setTextZoomFactor:]): |
| (-[WKWebView _pageZoomFactor]): |
| (-[WKWebView _setPageZoomFactor:]): |
| (-[WKWebView _diagnosticLoggingDelegate]): |
| (-[WKWebView _setDiagnosticLoggingDelegate:]): |
| (-[WKWebView _findDelegate]): |
| (-[WKWebView _setFindDelegate:]): |
| (-[WKWebView _countStringMatches:options:maxCount:]): |
| (-[WKWebView _findString:options:maxCount:]): |
| (-[WKWebView _hideFindUI]): |
| (-[WKWebView _saveBackForwardSnapshotForItem:]): |
| (-[WKWebView _inputDelegate]): |
| (-[WKWebView _setInputDelegate:]): |
| (-[WKWebView _isDisplayingStandaloneImageDocument]): |
| (-[WKWebView _isDisplayingStandaloneMediaDocument]): |
| (-[WKWebView _isPlayingAudio]): |
| (-[WKWebView _isShowingNavigationGestureSnapshot]): |
| (-[WKWebView _layoutMode]): |
| (-[WKWebView _setLayoutMode:]): |
| (-[WKWebView _fixedLayoutSize]): |
| (-[WKWebView _setFixedLayoutSize:]): |
| (-[WKWebView _setBackgroundExtendsBeyondPage:]): |
| (-[WKWebView _backgroundExtendsBeyondPage]): |
| (-[WKWebView _viewScale]): |
| (-[WKWebView _setViewScale:]): |
| (-[WKWebView _setMinimumEffectiveDeviceWidth:]): |
| (-[WKWebView _minimumEffectiveDeviceWidth]): |
| (-[WKWebView _setScrollPerformanceDataCollectionEnabled:]): |
| (-[WKWebView _scrollPerformanceDataCollectionEnabled]): |
| (-[WKWebView _scrollPerformanceData]): |
| (-[WKWebView _allowsMediaDocumentInlinePlayback]): |
| (-[WKWebView _setAllowsMediaDocumentInlinePlayback:]): |
| (-[WKWebView _setFullscreenDelegate:]): |
| (-[WKWebView _fullscreenDelegate]): |
| (-[WKWebView _isInFullscreen]): |
| (-[WKWebView _mediaCaptureState]): |
| (-[WKWebView _setMediaCaptureEnabled:]): |
| (-[WKWebView _mediaCaptureEnabled]): |
| (-[WKWebView _setPageMuted:]): |
| (-[WKWebView _removeDataDetectedLinks:]): |
| (-[WKWebView _doAfterNextPresentationUpdate:]): |
| (-[WKWebView _doAfterNextPresentationUpdateWithoutWaitingForPainting:]): |
| (toAPIScrollbarStyle): Deleted. |
| (toCoreScrollbarStyle): Deleted. |
| (deviceOrientationForUIInterfaceOrientation): Deleted. |
| (deviceOrientation): Deleted. |
| (-[WKWebView setFrame:]): Deleted. |
| (-[WKWebView setBounds:]): Deleted. |
| (-[WKWebView layoutSubviews]): Deleted. |
| (-[WKWebView _isShowingVideoPictureInPicture]): Deleted. |
| (-[WKWebView _mayAutomaticallyShowVideoPictureInPicture]): Deleted. |
| (-[WKWebView _incrementFocusPreservationCount]): Deleted. |
| (-[WKWebView _decrementFocusPreservationCount]): Deleted. |
| (-[WKWebView _resetFocusPreservationCount]): Deleted. |
| (-[WKWebView _isRetainingActiveFocusedState]): Deleted. |
| (-[WKWebView _effectiveAppearanceIsDark]): Deleted. |
| (-[WKWebView _effectiveUserInterfaceLevelIsElevated]): Deleted. |
| (-[WKWebView _shouldAvoidResizingWhenInputViewBoundsChange]): Deleted. |
| (-[WKWebView _dragInteractionPolicy]): Deleted. |
| (-[WKWebView _setDragInteractionPolicy:]): Deleted. |
| (-[WKWebView _populateArchivedSubviews:]): Deleted. |
| (-[WKWebView _isBackground]): Deleted. |
| (-[WKWebView browsingContextController]): Deleted. |
| (-[WKWebView becomeFirstResponder]): Deleted. |
| (-[WKWebView canBecomeFirstResponder]): Deleted. |
| (-[WKWebView resignFirstResponder]): Deleted. |
| (-[WKWebView canPerformAction:withSender:]): Deleted. |
| (-[WKWebView targetForAction:withSender:]): Deleted. |
| (-[WKWebView willFinishIgnoringCalloutBarFadeAfterPerformingAction]): Deleted. |
| (floorToDevicePixel): Deleted. |
| (pointsEqualInDevicePixels): Deleted. |
| (roundScrollViewContentSize): Deleted. |
| (-[WKWebView _currentContentView]): Deleted. |
| (-[WKWebView _contentProviderRegistry]): Deleted. |
| (-[WKWebView _selectionGranularity]): Deleted. |
| (-[WKWebView _setHasCustomContentView:loadedMIMEType:]): Deleted. |
| (-[WKWebView _didFinishLoadingDataForCustomContentProviderWithSuggestedFilename:data:]): Deleted. |
| (-[WKWebView _handleKeyUIEvent:]): Deleted. |
| (-[WKWebView _willInvokeUIScrollViewDelegateCallback]): Deleted. |
| (-[WKWebView _didInvokeUIScrollViewDelegateCallback]): Deleted. |
| (contentZoomScale): Deleted. |
| (baseScrollViewBackgroundColor): Deleted. |
| (scrollViewBackgroundColor): Deleted. |
| (-[WKWebView _updateScrollViewBackground]): Deleted. |
| (-[WKWebView _videoControlsManagerDidChange]): Deleted. |
| (-[WKWebView _initialContentOffsetForScrollView]): Deleted. |
| (-[WKWebView _contentOffsetAdjustedForObscuredInset:]): Deleted. |
| (-[WKWebView _effectiveObscuredInsetEdgesAffectedBySafeArea]): Deleted. |
| (-[WKWebView _computedObscuredInset]): Deleted. |
| (-[WKWebView _computedContentInset]): Deleted. |
| (-[WKWebView _computedUnobscuredSafeAreaInset]): Deleted. |
| (-[WKWebView _processWillSwapOrDidExit]): Deleted. |
| (-[WKWebView _processWillSwap]): Deleted. |
| (-[WKWebView _processDidExit]): Deleted. |
| (-[WKWebView _didRelaunchProcess]): Deleted. |
| (-[WKWebView _didCommitLoadForMainFrame]): Deleted. |
| (contentOffsetBoundedInValidRange): Deleted. |
| (changeContentOffsetBoundedInValidRange): Deleted. |
| (-[WKWebView visibleRectInViewCoordinates]): Deleted. |
| (areEssentiallyEqualAsFloat): Deleted. |
| (-[WKWebView _didCommitLayerTreeDuringAnimatedResize:]): Deleted. |
| (-[WKWebView _didCommitLayerTree:]): Deleted. |
| (-[WKWebView _layerTreeCommitComplete]): Deleted. |
| (-[WKWebView _couldNotRestorePageState]): Deleted. |
| (-[WKWebView _restorePageScrollPosition:scrollOrigin:previousObscuredInset:scale:]): Deleted. |
| (-[WKWebView _restorePageStateToUnobscuredCenter:scale:]): Deleted. |
| (-[WKWebView _takeViewSnapshot]): Deleted. |
| (-[WKWebView _zoomToPoint:atScale:animated:]): Deleted. |
| (-[WKWebView _zoomToRect:atScale:origin:animated:]): Deleted. |
| (constrainContentOffset): Deleted. |
| (-[WKWebView _scrollToContentScrollPosition:scrollOrigin:]): Deleted. |
| (-[WKWebView _scrollToRect:origin:minimumScrollDistance:]): Deleted. |
| (-[WKWebView _zoomOutWithOrigin:animated:]): Deleted. |
| (-[WKWebView _zoomToInitialScaleWithOrigin:animated:]): Deleted. |
| (-[WKWebView _zoomToFocusRect:selectionRect:insideFixed:fontSize:minimumScale:maximumScale:allowScaling:forceScroll:]): Deleted. |
| (-[WKWebView _initialScaleFactor]): Deleted. |
| (-[WKWebView _contentZoomScale]): Deleted. |
| (-[WKWebView _targetContentZoomScaleForRect:currentScale:fitEntireRect:minimumScale:maximumScale:]): Deleted. |
| (-[WKWebView _zoomToRect:withOrigin:fitEntireRect:minimumScale:maximumScale:minimumScrollDistance:]): Deleted. |
| (-[WKWebView didMoveToWindow]): Deleted. |
| (-[WKWebView _setOpaqueInternal:]): Deleted. |
| (-[WKWebView setOpaque:]): Deleted. |
| (-[WKWebView setBackgroundColor:]): Deleted. |
| (-[WKWebView _allowsDoubleTapGestures]): Deleted. |
| (-[WKWebView _stylusTapGestureShouldCreateEditableImage]): Deleted. |
| (-[WKWebView usesStandardContentView]): Deleted. |
| (-[WKWebView scrollView:contentSizeForZoomScale:withProposedSize:]): Deleted. |
| (-[WKWebView viewForZoomingInScrollView:]): Deleted. |
| (-[WKWebView scrollViewWillBeginZooming:withView:]): Deleted. |
| (-[WKWebView scrollViewWillBeginDragging:]): Deleted. |
| (-[WKWebView _didFinishScrolling]): Deleted. |
| (-[WKWebView scrollViewWillEndDragging:withVelocity:targetContentOffset:]): Deleted. |
| (-[WKWebView scrollViewDidEndDragging:willDecelerate:]): Deleted. |
| (-[WKWebView scrollViewDidEndDecelerating:]): Deleted. |
| (-[WKWebView scrollViewDidScrollToTop:]): Deleted. |
| (-[WKWebView _scrollView:adjustedOffsetForOffset:translation:startPoint:locationInView:horizontalVelocity:verticalVelocity:]): Deleted. |
| (-[WKWebView scrollViewDidScroll:]): Deleted. |
| (-[WKWebView scrollViewDidZoom:]): Deleted. |
| (-[WKWebView scrollViewDidEndZooming:withView:atScale:]): Deleted. |
| (-[WKWebView scrollViewDidEndScrollingAnimation:]): Deleted. |
| (-[WKWebView _scrollViewDidInterruptDecelerating:]): Deleted. |
| (-[WKWebView _enclosingViewForExposedRectComputation]): Deleted. |
| (-[WKWebView _visibleRectInEnclosingView:]): Deleted. |
| (-[WKWebView _visibleContentRect]): Deleted. |
| (-[WKWebView _didScroll]): Deleted. |
| (-[WKWebView _enclosingScrollerScrollingEnded:]): Deleted. |
| (-[WKWebView _scrollViewSystemContentInset]): Deleted. |
| (-[WKWebView activeViewLayoutSize:]): Deleted. |
| (-[WKWebView _dispatchSetViewLayoutSize:]): Deleted. |
| (-[WKWebView _dispatchSetMaximumUnobscuredSize:]): Deleted. |
| (-[WKWebView _dispatchSetDeviceOrientation:]): Deleted. |
| (-[WKWebView _frameOrBoundsChanged]): Deleted. |
| (-[WKWebView _contentRectForUserInteraction]): Deleted. |
| (-[WKWebView _scrollViewIsRubberBanding]): Deleted. |
| (-[WKWebView safeAreaInsetsDidChange]): Deleted. |
| (-[WKWebView _scheduleVisibleContentRectUpdate]): Deleted. |
| (-[WKWebView _scrollViewIsInStableState:]): Deleted. |
| (-[WKWebView _addUpdateVisibleContentRectPreCommitHandler]): Deleted. |
| (-[WKWebView _scheduleVisibleContentRectUpdateAfterScrollInView:]): Deleted. |
| (scrollViewCanScroll): Deleted. |
| (-[WKWebView _contentBoundsExtendedForRubberbandingWithScale:]): Deleted. |
| (-[WKWebView _updateVisibleContentRects]): Deleted. |
| (-[WKWebView _didStartProvisionalLoadForMainFrame]): Deleted. |
| (activeMaximumUnobscuredSize): Deleted. |
| (activeOrientation): Deleted. |
| (-[WKWebView _cancelAnimatedResize]): Deleted. |
| (-[WKWebView _didCompleteAnimatedResize]): Deleted. |
| (-[WKWebView _didFinishLoadForMainFrame]): Deleted. |
| (-[WKWebView _didFailLoadForMainFrame]): Deleted. |
| (-[WKWebView _didSameDocumentNavigationForMainFrame:]): Deleted. |
| (-[WKWebView _keyboardChangedWithInfo:adjustScrollView:]): Deleted. |
| (-[WKWebView _shouldUpdateKeyboardWithInfo:]): Deleted. |
| (-[WKWebView _keyboardWillChangeFrame:]): Deleted. |
| (-[WKWebView _keyboardDidChangeFrame:]): Deleted. |
| (-[WKWebView _keyboardWillShow:]): Deleted. |
| (-[WKWebView _keyboardDidShow:]): Deleted. |
| (-[WKWebView _keyboardWillHide:]): Deleted. |
| (-[WKWebView _windowDidRotate:]): Deleted. |
| (-[WKWebView _contentSizeCategoryDidChange:]): Deleted. |
| (-[WKWebView _contentSizeCategory]): Deleted. |
| (-[WKWebView _accessibilitySettingsDidChange:]): Deleted. |
| (-[WKWebView _isNavigationSwipeGestureRecognizer:]): Deleted. |
| (-[WKWebView _navigationGestureDidBegin]): Deleted. |
| (-[WKWebView _navigationGestureDidEnd]): Deleted. |
| (-[WKWebView _showPasswordViewWithDocumentName:passwordHandler:]): Deleted. |
| (-[WKWebView _hidePasswordView]): Deleted. |
| (-[WKWebView _passwordView]): Deleted. |
| (-[WKWebView _updateScrollViewInsetAdjustmentBehavior]): Deleted. |
| (-[WKWebView _setAvoidsUnsafeArea:]): Deleted. |
| (-[WKWebView _haveSetObscuredInsets]): Deleted. |
| (-[WKWebView acceptsFirstResponder]): Deleted. |
| (-[WKWebView viewWillStartLiveResize]): Deleted. |
| (-[WKWebView viewDidEndLiveResize]): Deleted. |
| (-[WKWebView isFlipped]): Deleted. |
| (-[WKWebView intrinsicContentSize]): Deleted. |
| (-[WKWebView prepareContentInRect:]): Deleted. |
| (-[WKWebView setFrameSize:]): Deleted. |
| (-[WKWebView _web_grantDOMPasteAccess]): Deleted. |
| (-[WKWebView _prepareForImmediateActionAnimation]): Deleted. |
| (-[WKWebView _cancelImmediateActionAnimation]): Deleted. |
| (-[WKWebView _completeImmediateActionAnimation]): Deleted. |
| (-[WKWebView ALLOW_DEPRECATED_IMPLEMENTATIONS_END]): Deleted. |
| (-[WKWebView writeSelectionToPasteboard:types:]): Deleted. |
| (-[WKWebView centerSelectionInVisibleArea:]): Deleted. |
| (-[WKWebView validRequestorForSendType:returnType:]): Deleted. |
| (-[WKWebView readSelectionFromPasteboard:]): Deleted. |
| (-[WKWebView changeFont:]): Deleted. |
| (-[WKWebView changeColor:]): Deleted. |
| (-[WKWebView changeAttributes:]): Deleted. |
| (-[WKWebView startSpeaking:]): Deleted. |
| (-[WKWebView stopSpeaking:]): Deleted. |
| (-[WKWebView showGuessPanel:]): Deleted. |
| (-[WKWebView checkSpelling:]): Deleted. |
| (-[WKWebView changeSpelling:]): Deleted. |
| (-[WKWebView toggleContinuousSpellChecking:]): Deleted. |
| (-[WKWebView isGrammarCheckingEnabled]): Deleted. |
| (-[WKWebView setGrammarCheckingEnabled:]): Deleted. |
| (-[WKWebView toggleGrammarChecking:]): Deleted. |
| (-[WKWebView toggleAutomaticSpellingCorrection:]): Deleted. |
| (-[WKWebView orderFrontSubstitutionsPanel:]): Deleted. |
| (-[WKWebView toggleSmartInsertDelete:]): Deleted. |
| (-[WKWebView isAutomaticQuoteSubstitutionEnabled]): Deleted. |
| (-[WKWebView setAutomaticQuoteSubstitutionEnabled:]): Deleted. |
| (-[WKWebView toggleAutomaticQuoteSubstitution:]): Deleted. |
| (-[WKWebView isAutomaticDashSubstitutionEnabled]): Deleted. |
| (-[WKWebView setAutomaticDashSubstitutionEnabled:]): Deleted. |
| (-[WKWebView toggleAutomaticDashSubstitution:]): Deleted. |
| (-[WKWebView isAutomaticLinkDetectionEnabled]): Deleted. |
| (-[WKWebView setAutomaticLinkDetectionEnabled:]): Deleted. |
| (-[WKWebView toggleAutomaticLinkDetection:]): Deleted. |
| (-[WKWebView isAutomaticTextReplacementEnabled]): Deleted. |
| (-[WKWebView setAutomaticTextReplacementEnabled:]): Deleted. |
| (-[WKWebView toggleAutomaticTextReplacement:]): Deleted. |
| (-[WKWebView uppercaseWord:]): Deleted. |
| (-[WKWebView lowercaseWord:]): Deleted. |
| (-[WKWebView capitalizeWord:]): Deleted. |
| (-[WKWebView _wantsKeyDownForEvent:]): Deleted. |
| (-[WKWebView scrollWheel:]): Deleted. |
| (-[WKWebView swipeWithEvent:]): Deleted. |
| (-[WKWebView mouseMoved:]): Deleted. |
| (-[WKWebView mouseDown:]): Deleted. |
| (-[WKWebView mouseUp:]): Deleted. |
| (-[WKWebView mouseDragged:]): Deleted. |
| (-[WKWebView mouseEntered:]): Deleted. |
| (-[WKWebView mouseExited:]): Deleted. |
| (-[WKWebView otherMouseDown:]): Deleted. |
| (-[WKWebView otherMouseDragged:]): Deleted. |
| (-[WKWebView otherMouseUp:]): Deleted. |
| (-[WKWebView rightMouseDown:]): Deleted. |
| (-[WKWebView rightMouseDragged:]): Deleted. |
| (-[WKWebView rightMouseUp:]): Deleted. |
| (-[WKWebView pressureChangeWithEvent:]): Deleted. |
| (-[WKWebView acceptsFirstMouse:]): Deleted. |
| (-[WKWebView shouldDelayWindowOrderingForEvent:]): Deleted. |
| (-[WKWebView doCommandBySelector:]): Deleted. |
| (-[WKWebView insertText:]): Deleted. |
| (-[WKWebView insertText:replacementRange:]): Deleted. |
| (-[WKWebView inputContext]): Deleted. |
| (-[WKWebView performKeyEquivalent:]): Deleted. |
| (-[WKWebView keyUp:]): Deleted. |
| (-[WKWebView keyDown:]): Deleted. |
| (-[WKWebView flagsChanged:]): Deleted. |
| (-[WKWebView setMarkedText:selectedRange:replacementRange:]): Deleted. |
| (-[WKWebView unmarkText]): Deleted. |
| (-[WKWebView selectedRange]): Deleted. |
| (-[WKWebView hasMarkedText]): Deleted. |
| (-[WKWebView markedRange]): Deleted. |
| (-[WKWebView attributedSubstringForProposedRange:actualRange:]): Deleted. |
| (-[WKWebView characterIndexForPoint:]): Deleted. |
| (-[WKWebView typingAttributesWithCompletionHandler:]): Deleted. |
| (-[WKWebView firstRectForCharacterRange:actualRange:]): Deleted. |
| (-[WKWebView selectedRangeWithCompletionHandler:]): Deleted. |
| (-[WKWebView markedRangeWithCompletionHandler:]): Deleted. |
| (-[WKWebView hasMarkedTextWithCompletionHandler:]): Deleted. |
| (-[WKWebView attributedSubstringForProposedRange:completionHandler:]): Deleted. |
| (-[WKWebView firstRectForCharacterRange:completionHandler:]): Deleted. |
| (-[WKWebView characterIndexForPoint:completionHandler:]): Deleted. |
| (-[WKWebView validAttributesForMarkedText]): Deleted. |
| (-[WKWebView draggedImage:endedAt:operation:]): Deleted. |
| (-[WKWebView draggingEntered:]): Deleted. |
| (-[WKWebView draggingUpdated:]): Deleted. |
| (-[WKWebView draggingExited:]): Deleted. |
| (-[WKWebView prepareForDragOperation:]): Deleted. |
| (-[WKWebView performDragOperation:]): Deleted. |
| (-[WKWebView _hitTest:dragTypes:]): Deleted. |
| (-[WKWebView _windowResizeMouseLocationIsInVisibleScrollerThumb:]): Deleted. |
| (-[WKWebView viewWillMoveToWindow:]): Deleted. |
| (-[WKWebView viewDidMoveToWindow]): Deleted. |
| (-[WKWebView drawRect:]): Deleted. |
| (-[WKWebView isOpaque]): Deleted. |
| (-[WKWebView mouseDownCanMoveWindow]): Deleted. |
| (-[WKWebView viewDidHide]): Deleted. |
| (-[WKWebView viewDidUnhide]): Deleted. |
| (-[WKWebView viewDidChangeBackingProperties]): Deleted. |
| (-[WKWebView _activeSpaceDidChange:]): Deleted. |
| (-[WKWebView accessibilityFocusedUIElement]): Deleted. |
| (-[WKWebView accessibilityHitTest:]): Deleted. |
| (-[WKWebView accessibilityAttributeValue:]): Deleted. |
| (-[WKWebView accessibilityAttributeValue:forParameter:]): Deleted. |
| (-[WKWebView hitTest:]): Deleted. |
| (-[WKWebView conversationIdentifier]): Deleted. |
| (-[WKWebView quickLookWithEvent:]): Deleted. |
| (-[WKWebView addTrackingRect:owner:userData:assumeInside:]): Deleted. |
| (-[WKWebView _addTrackingRect:owner:userData:assumeInside:useTrackingNum:]): Deleted. |
| (-[WKWebView _addTrackingRects:owner:userDataList:assumeInsideList:trackingNums:count:]): Deleted. |
| (-[WKWebView removeTrackingRect:]): Deleted. |
| (-[WKWebView _removeTrackingRects:count:]): Deleted. |
| (-[WKWebView view:stringForToolTip:point:userData:]): Deleted. |
| (-[WKWebView pasteboardChangedOwner:]): Deleted. |
| (-[WKWebView pasteboard:provideDataForType:]): Deleted. |
| (-[WKWebView namesOfPromisedFilesDroppedAtDestination:]): Deleted. |
| (-[WKWebView wantsUpdateLayer]): Deleted. |
| (-[WKWebView updateLayer]): Deleted. |
| (-[WKWebView smartMagnifyWithEvent:]): Deleted. |
| (-[WKWebView magnifyWithEvent:]): Deleted. |
| (-[WKWebView rotateWithEvent:]): Deleted. |
| (-[WKWebView _usePlatformFindUI]): Deleted. |
| (-[WKWebView _setUsePlatformFindUI:]): Deleted. |
| (-[WKWebView _ensureTextFinderClient]): Deleted. |
| (-[WKWebView findMatchesForString:relativeToMatch:findOptions:maxResults:resultCollector:]): Deleted. |
| (-[WKWebView replaceMatches:withString:inSelectionOnly:resultCollector:]): Deleted. |
| (-[WKWebView scrollFindMatchToVisible:]): Deleted. |
| (-[WKWebView documentContainerView]): Deleted. |
| (-[WKWebView getSelectedText:]): Deleted. |
| (-[WKWebView selectFindMatch:completionHandler:]): Deleted. |
| (-[WKWebView _web_superInputContext]): Deleted. |
| (-[WKWebView _web_superQuickLookWithEvent:]): Deleted. |
| (-[WKWebView _web_superSwipeWithEvent:]): Deleted. |
| (-[WKWebView _web_superMagnifyWithEvent:]): Deleted. |
| (-[WKWebView _web_superSmartMagnifyWithEvent:]): Deleted. |
| (-[WKWebView _web_superRemoveTrackingRect:]): Deleted. |
| (-[WKWebView _web_superAccessibilityAttributeValue:]): Deleted. |
| (-[WKWebView _web_superDoCommandBySelector:]): Deleted. |
| (-[WKWebView _web_superPerformKeyEquivalent:]): Deleted. |
| (-[WKWebView _web_superKeyDown:]): Deleted. |
| (-[WKWebView _web_superHitTest:]): Deleted. |
| (-[WKWebView _web_immediateActionAnimationControllerForHitTestResultInternal:withType:userData:]): Deleted. |
| (-[WKWebView _web_prepareForImmediateActionAnimation]): Deleted. |
| (-[WKWebView _web_cancelImmediateActionAnimation]): Deleted. |
| (-[WKWebView _web_completeImmediateActionAnimation]): Deleted. |
| (-[WKWebView _web_didChangeContentSize:]): Deleted. |
| (-[WKWebView _web_dragDestinationActionForDraggingInfo:]): Deleted. |
| (-[WKWebView _web_didPerformDragOperation:]): Deleted. |
| (-[WKWebView _web_dismissContentRelativeChildWindows]): Deleted. |
| (-[WKWebView _web_dismissContentRelativeChildWindowsWithAnimation:]): Deleted. |
| (-[WKWebView _web_editorStateDidChange]): Deleted. |
| (-[WKWebView _web_gestureEventWasNotHandledByWebCore:]): Deleted. |
| (-[WKWebView filePromiseProvider:fileNameForType:]): Deleted. |
| (-[WKWebView filePromiseProvider:writePromiseToURL:completionHandler:]): Deleted. |
| (-[WKWebView draggingSession:sourceOperationMaskForDraggingContext:]): Deleted. |
| (-[WKWebView draggingSession:endedAtPoint:operation:]): Deleted. |
| (-[WKWebView makeTouchBar]): Deleted. |
| (-[WKWebView candidateListTouchBarItem]): Deleted. |
| (-[WKWebView _web_didAddMediaControlsManager:]): Deleted. |
| (-[WKWebView _web_didRemoveMediaControlsManager]): Deleted. |
| (-[WKWebView _interactWithMediaControlsForTesting]): Deleted. |
| (-[WKWebView _useSystemAppearance]): Deleted. |
| (-[WKWebView _setUseSystemAppearance:]): Deleted. |
| (-[WKWebView _pageRefForTransitionToWKWebView]): Deleted. |
| (-[WKWebView _canChangeFrameLayout:]): Deleted. |
| (-[WKWebView _tryToSwipeWithEvent:ignoringPinnedState:]): Deleted. |
| (-[WKWebView _ignoresNonWheelEvents]): Deleted. |
| (-[WKWebView _setIgnoresNonWheelEvents:]): Deleted. |
| (-[WKWebView _hasActiveVideoForControlsManager]): Deleted. |
| (-[WKWebView _dismissContentRelativeChildWindows]): Deleted. |
| (-[WKWebView _gestureEventWasNotHandledByWebCore:]): Deleted. |
| (-[WKWebView _disableFrameSizeUpdates]): Deleted. |
| (-[WKWebView _enableFrameSizeUpdates]): Deleted. |
| (-[WKWebView _beginDeferringViewInWindowChanges]): Deleted. |
| (-[WKWebView _endDeferringViewInWindowChanges]): Deleted. |
| (-[WKWebView _endDeferringViewInWindowChangesSync]): Deleted. |
| (-[WKWebView _fullScreenPlaceholderView]): Deleted. |
| (-[WKWebView _fullScreenWindow]): Deleted. |
| (-[WKWebView _underlayColor]): Deleted. |
| (-[WKWebView _setUnderlayColor:]): Deleted. |
| (-[WKWebView _setCustomSwipeViews:]): Deleted. |
| (-[WKWebView _setCustomSwipeViewsTopContentInset:]): Deleted. |
| (-[WKWebView _setDidMoveSwipeSnapshotCallback:]): Deleted. |
| (-[WKWebView _setFrame:andScrollBy:]): Deleted. |
| (-[WKWebView _setTotalHeightOfBanners:]): Deleted. |
| (-[WKWebView _totalHeightOfBanners]): Deleted. |
| (-[WKWebView _setShouldSuppressFirstResponderChanges:]): Deleted. |
| (-[WKWebView _setFont:sender:]): Deleted. |
| (-[WKWebView _setFontSize:sender:]): Deleted. |
| (-[WKWebView _setTextColor:sender:]): Deleted. |
| (-[WKWebView _requestActivatedElementAtPosition:completionBlock:]): Deleted. |
| (-[WKWebView _contentVisibleRect]): Deleted. |
| (-[WKWebView _convertPointFromContentsToView:]): Deleted. |
| (-[WKWebView _convertPointFromViewToContents:]): Deleted. |
| (-[WKWebView didStartFormControlInteraction]): Deleted. |
| (-[WKWebView didEndFormControlInteraction]): Deleted. |
| (-[WKWebView _uiTextCaretRect]): Deleted. |
| (-[WKWebView _accessibilityRetrieveRectsAtSelectionOffset:withText:completionHandler:]): Deleted. |
| (-[WKWebView _accessibilityStoreSelection]): Deleted. |
| (-[WKWebView _accessibilityClearSelection]): Deleted. |
| (-[WKWebView _contentViewIsFirstResponder]): Deleted. |
| (-[WKWebView _retainActiveFocusedState]): Deleted. |
| (-[WKWebView _becomeFirstResponderWithSelectionMovingForward:completionHandler:]): Deleted. |
| (-[WKWebView _snapshotLayerContentsForBackForwardListItem:]): Deleted. |
| (-[WKWebView _dataDetectionResults]): Deleted. |
| (-[WKWebView _accessibilityRetrieveSpeakSelectionContent]): Deleted. |
| (-[WKWebView _accessibilityDidGetSpeakSelectionContent:]): Deleted. |
| (-[WKWebView _safeBrowsingWarning]): Deleted. |
| (-[WKWebView _doAfterNextStablePresentationUpdate:]): Deleted. |
| (-[WKWebView _detectDataWithTypes:completionHandler:]): Deleted. |
| (-[WKWebView removeFromSuperview]): Deleted. |
| (-[WKWebView _minimumLayoutSizeOverride]): Deleted. |
| (-[WKWebView _setViewLayoutSizeOverride:]): Deleted. |
| (-[WKWebView _obscuredInsets]): Deleted. |
| (-[WKWebView _setObscuredInsets:]): Deleted. |
| (-[WKWebView _obscuredInsetEdgesAffectedBySafeArea]): Deleted. |
| (-[WKWebView _setObscuredInsetEdgesAffectedBySafeArea:]): Deleted. |
| (-[WKWebView _unobscuredSafeAreaInsets]): Deleted. |
| (-[WKWebView _setUnobscuredSafeAreaInsets:]): Deleted. |
| (-[WKWebView _safeAreaShouldAffectObscuredInsets]): Deleted. |
| (-[WKWebView _setInterfaceOrientationOverride:]): Deleted. |
| (-[WKWebView _interfaceOrientationOverride]): Deleted. |
| (-[WKWebView _clearInterfaceOrientationOverride]): Deleted. |
| (-[WKWebView _maximumUnobscuredSizeOverride]): Deleted. |
| (-[WKWebView _setMaximumUnobscuredSizeOverride:]): Deleted. |
| (-[WKWebView _setAllowsViewportShrinkToFit:]): Deleted. |
| (-[WKWebView _allowsViewportShrinkToFit]): Deleted. |
| (-[WKWebView _beginInteractiveObscuredInsetsChange]): Deleted. |
| (-[WKWebView _endInteractiveObscuredInsetsChange]): Deleted. |
| (-[WKWebView _hideContentUntilNextUpdate]): Deleted. |
| (-[WKWebView _beginAnimatedResizeWithUpdates:]): Deleted. |
| (-[WKWebView _endAnimatedResize]): Deleted. |
| (-[WKWebView _resizeWhileHidingContentWithUpdates:]): Deleted. |
| (-[WKWebView _firePresentationUpdateForPendingStableStatePresentationCallbacks]): Deleted. |
| (-[WKWebView _setOverlaidAccessoryViewsInset:]): Deleted. |
| (-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]): Deleted. |
| (-[WKWebView _overrideLayoutParametersWithMinimumLayoutSize:maximumUnobscuredSizeOverride:]): Deleted. |
| (-[WKWebView _clearOverrideLayoutParameters]): Deleted. |
| (viewportArgumentsFromDictionary): Deleted. |
| (-[WKWebView _overrideViewportWithArguments:]): Deleted. |
| (-[WKWebView _viewForFindUI]): Deleted. |
| (-[WKWebView _isDisplayingPDF]): Deleted. |
| (-[WKWebView _dataForDisplayedPDF]): Deleted. |
| (-[WKWebView _suggestedFilenameForDisplayedPDF]): Deleted. |
| (-[WKWebView _webViewPrintFormatter]): Deleted. |
| (toUserInterfaceLayoutDirection): Deleted. |
| (-[WKWebView setSemanticContentAttribute:]): Deleted. |
| (-[WKWebView _drawsBackground]): Deleted. |
| (-[WKWebView _setDrawsBackground:]): Deleted. |
| (-[WKWebView _backgroundColor]): Deleted. |
| (-[WKWebView _setBackgroundColor:]): Deleted. |
| (-[WKWebView _setDrawsTransparentBackground:]): Deleted. |
| (-[WKWebView _inspectorAttachmentView]): Deleted. |
| (-[WKWebView _setInspectorAttachmentView:]): Deleted. |
| (-[WKWebView _setOverlayScrollbarStyle:]): Deleted. |
| (-[WKWebView _overlayScrollbarStyle]): Deleted. |
| (-[WKWebView _windowOcclusionDetectionEnabled]): Deleted. |
| (-[WKWebView _setWindowOcclusionDetectionEnabled:]): Deleted. |
| (-[WKWebView shareSheetDidDismiss:]): Deleted. |
| (-[WKWebView _setOverrideDeviceScaleFactor:]): Deleted. |
| (-[WKWebView _overrideDeviceScaleFactor]): Deleted. |
| (-[WKWebView _setTopContentInset:]): Deleted. |
| (-[WKWebView _topContentInset]): Deleted. |
| (-[WKWebView _pageExtendedBackgroundColor]): Deleted. |
| (-[WKWebView _pinnedState]): Deleted. |
| (-[WKWebView _rubberBandingEnabled]): Deleted. |
| (-[WKWebView _setRubberBandingEnabled:]): Deleted. |
| (-[WKWebView _immediateActionAnimationControllerForHitTestResult:withType:userData:]): Deleted. |
| (-[WKWebView _setAutomaticallyAdjustsContentInsets:]): Deleted. |
| (-[WKWebView _automaticallyAdjustsContentInsets]): Deleted. |
| (-[WKWebView _minimumLayoutWidth]): Deleted. |
| (-[WKWebView _setMinimumLayoutWidth:]): Deleted. |
| (-[WKWebView _shouldExpandContentToViewHeightForAutoLayout]): Deleted. |
| (-[WKWebView _setShouldExpandContentToViewHeightForAutoLayout:]): Deleted. |
| (-[WKWebView _alwaysShowsHorizontalScroller]): Deleted. |
| (-[WKWebView _setAlwaysShowsHorizontalScroller:]): Deleted. |
| (-[WKWebView _alwaysShowsVerticalScroller]): Deleted. |
| (-[WKWebView _setAlwaysShowsVerticalScroller:]): Deleted. |
| (-[WKWebView _printOperationWithPrintInfo:]): Deleted. |
| (-[WKWebView _printOperationWithPrintInfo:forFrame:]): Deleted. |
| (-[WKWebView setUserInterfaceLayoutDirection:]): Deleted. |
| (-[WKWebView _wantsMediaPlaybackControlsView]): Deleted. |
| (-[WKWebView _setWantsMediaPlaybackControlsView:]): Deleted. |
| (-[WKWebView _mediaPlaybackControlsView]): Deleted. |
| (-[WKWebView _addMediaPlaybackControlsView:]): Deleted. |
| (-[WKWebView _removeMediaPlaybackControlsView]): Deleted. |
| (-[WKWebView _prepareForMoveToWindow:completionHandler:]): Deleted. |
| (-[WKWebView _setThumbnailView:]): Deleted. |
| (-[WKWebView _thumbnailView]): Deleted. |
| (-[WKWebView _setIgnoresAllEvents:]): Deleted. |
| (-[WKWebView _ignoresAllEvents]): Deleted. |
| (-[WKWebView _spellCheckerDocumentTag]): Deleted. |
| (-[WKWebView hasFullScreenWindowController]): Deleted. |
| (-[WKWebView closeFullScreenWindowController]): Deleted. |
| (-[WKWebView fullScreenWindowController]): Deleted. |
| (-[WKWebView validateUserInterfaceItem:]): Deleted. |
| (-[WKWebView goBack:]): Deleted. |
| (-[WKWebView goForward:]): Deleted. |
| (-[WKWebView reload:]): Deleted. |
| (-[WKWebView reloadFromOrigin:]): Deleted. |
| (-[WKWebView stopLoading:]): Deleted. |
| (-[WKWebView _printFormatterClass]): Deleted. |
| (-[WKWebView _printProvider]): Deleted. |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/API/Cocoa/WKWebViewTesting.mm: |
| * UIProcess/API/ios/WKWebViewIOS.h: Copied from Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h. |
| * UIProcess/API/ios/WKWebViewIOS.mm: Added. |
| (deviceOrientationForUIInterfaceOrientation): |
| (deviceOrientation): |
| (-[WKWebView setFrame:]): |
| (-[WKWebView setBounds:]): |
| (-[WKWebView layoutSubviews]): |
| (-[WKWebView _isShowingVideoPictureInPicture]): |
| (-[WKWebView _mayAutomaticallyShowVideoPictureInPicture]): |
| (-[WKWebView _incrementFocusPreservationCount]): |
| (-[WKWebView _decrementFocusPreservationCount]): |
| (-[WKWebView _resetFocusPreservationCount]): |
| (-[WKWebView _isRetainingActiveFocusedState]): |
| (-[WKWebView _effectiveAppearanceIsDark]): |
| (-[WKWebView _effectiveUserInterfaceLevelIsElevated]): |
| (-[WKWebView _populateArchivedSubviews:]): |
| (-[WKWebView _isBackground]): |
| (-[WKWebView browsingContextController]): |
| (-[WKWebView becomeFirstResponder]): |
| (-[WKWebView canBecomeFirstResponder]): |
| (-[WKWebView resignFirstResponder]): |
| (-[WKWebView canPerformAction:withSender:]): |
| (-[WKWebView targetForAction:withSender:]): |
| (-[WKWebView willFinishIgnoringCalloutBarFadeAfterPerformingAction]): |
| (floorToDevicePixel): |
| (pointsEqualInDevicePixels): |
| (roundScrollViewContentSize): |
| (-[WKWebView _currentContentView]): |
| (-[WKWebView _contentProviderRegistry]): |
| (-[WKWebView _selectionGranularity]): |
| (-[WKWebView _setHasCustomContentView:loadedMIMEType:]): |
| (-[WKWebView _didFinishLoadingDataForCustomContentProviderWithSuggestedFilename:data:]): |
| (-[WKWebView _handleKeyUIEvent:]): |
| (-[WKWebView _willInvokeUIScrollViewDelegateCallback]): |
| (-[WKWebView _didInvokeUIScrollViewDelegateCallback]): |
| (contentZoomScale): |
| (baseScrollViewBackgroundColor): |
| (scrollViewBackgroundColor): |
| (-[WKWebView _updateScrollViewBackground]): |
| (-[WKWebView _videoControlsManagerDidChange]): |
| (-[WKWebView _initialContentOffsetForScrollView]): |
| (-[WKWebView _contentOffsetAdjustedForObscuredInset:]): |
| (-[WKWebView _effectiveObscuredInsetEdgesAffectedBySafeArea]): |
| (-[WKWebView _computedObscuredInset]): |
| (-[WKWebView _computedContentInset]): |
| (-[WKWebView _computedUnobscuredSafeAreaInset]): |
| (-[WKWebView _processWillSwapOrDidExit]): |
| (-[WKWebView _processWillSwap]): |
| (-[WKWebView _processDidExit]): |
| (-[WKWebView _didRelaunchProcess]): |
| (-[WKWebView _didCommitLoadForMainFrame]): |
| (contentOffsetBoundedInValidRange): |
| (changeContentOffsetBoundedInValidRange): |
| (-[WKWebView visibleRectInViewCoordinates]): |
| (areEssentiallyEqualAsFloat): |
| (-[WKWebView _didCommitLayerTreeDuringAnimatedResize:]): |
| (-[WKWebView _didCommitLayerTree:]): |
| (-[WKWebView _layerTreeCommitComplete]): |
| (-[WKWebView _couldNotRestorePageState]): |
| (-[WKWebView _restorePageScrollPosition:scrollOrigin:previousObscuredInset:scale:]): |
| (-[WKWebView _restorePageStateToUnobscuredCenter:scale:]): |
| (-[WKWebView _takeViewSnapshot]): |
| (-[WKWebView _zoomToPoint:atScale:animated:]): |
| (-[WKWebView _zoomToRect:atScale:origin:animated:]): |
| (constrainContentOffset): |
| (-[WKWebView _scrollToContentScrollPosition:scrollOrigin:]): |
| (-[WKWebView _scrollToRect:origin:minimumScrollDistance:]): |
| (-[WKWebView _zoomOutWithOrigin:animated:]): |
| (-[WKWebView _zoomToInitialScaleWithOrigin:animated:]): |
| (-[WKWebView _zoomToFocusRect:selectionRect:insideFixed:fontSize:minimumScale:maximumScale:allowScaling:forceScroll:]): |
| (-[WKWebView _initialScaleFactor]): |
| (-[WKWebView _contentZoomScale]): |
| (-[WKWebView _targetContentZoomScaleForRect:currentScale:fitEntireRect:minimumScale:maximumScale:]): |
| (-[WKWebView _zoomToRect:withOrigin:fitEntireRect:minimumScale:maximumScale:minimumScrollDistance:]): |
| (-[WKWebView didMoveToWindow]): |
| (-[WKWebView _setOpaqueInternal:]): |
| (-[WKWebView setOpaque:]): |
| (-[WKWebView setBackgroundColor:]): |
| (-[WKWebView _allowsDoubleTapGestures]): |
| (-[WKWebView _stylusTapGestureShouldCreateEditableImage]): |
| (-[WKWebView usesStandardContentView]): |
| (-[WKWebView scrollView:contentSizeForZoomScale:withProposedSize:]): |
| (-[WKWebView viewForZoomingInScrollView:]): |
| (-[WKWebView scrollViewWillBeginZooming:withView:]): |
| (-[WKWebView scrollViewWillBeginDragging:]): |
| (-[WKWebView _didFinishScrolling]): |
| (-[WKWebView scrollViewWillEndDragging:withVelocity:targetContentOffset:]): |
| (-[WKWebView scrollViewDidEndDragging:willDecelerate:]): |
| (-[WKWebView scrollViewDidEndDecelerating:]): |
| (-[WKWebView scrollViewDidScrollToTop:]): |
| (-[WKWebView _scrollView:adjustedOffsetForOffset:translation:startPoint:locationInView:horizontalVelocity:verticalVelocity:]): |
| (-[WKWebView scrollViewDidScroll:]): |
| (-[WKWebView scrollViewDidZoom:]): |
| (-[WKWebView scrollViewDidEndZooming:withView:atScale:]): |
| (-[WKWebView scrollViewDidEndScrollingAnimation:]): |
| (-[WKWebView _scrollViewDidInterruptDecelerating:]): |
| (-[WKWebView _visibleRectInEnclosingView:]): |
| (-[WKWebView _visibleContentRect]): |
| (-[WKWebView _didScroll]): |
| (-[WKWebView _enclosingScrollerScrollingEnded:]): |
| (-[WKWebView _scrollViewSystemContentInset]): |
| (-[WKWebView activeViewLayoutSize:]): |
| (-[WKWebView _dispatchSetViewLayoutSize:]): |
| (-[WKWebView _dispatchSetMaximumUnobscuredSize:]): |
| (-[WKWebView _dispatchSetDeviceOrientation:]): |
| (-[WKWebView _frameOrBoundsChanged]): |
| (-[WKWebView _contentRectForUserInteraction]): |
| (-[WKWebView _scrollViewIsRubberBanding]): |
| (-[WKWebView safeAreaInsetsDidChange]): |
| (-[WKWebView _scheduleVisibleContentRectUpdate]): |
| (-[WKWebView _scrollViewIsInStableState:]): |
| (-[WKWebView _addUpdateVisibleContentRectPreCommitHandler]): |
| (-[WKWebView _scheduleVisibleContentRectUpdateAfterScrollInView:]): |
| (scrollViewCanScroll): |
| (-[WKWebView _contentBoundsExtendedForRubberbandingWithScale:]): |
| (-[WKWebView _updateVisibleContentRects]): |
| (-[WKWebView _didStartProvisionalLoadForMainFrame]): |
| (activeMaximumUnobscuredSize): |
| (activeOrientation): |
| (-[WKWebView _cancelAnimatedResize]): |
| (-[WKWebView _didCompleteAnimatedResize]): |
| (-[WKWebView _didFinishLoadForMainFrame]): |
| (-[WKWebView _didFailLoadForMainFrame]): |
| (-[WKWebView _didSameDocumentNavigationForMainFrame:]): |
| (-[WKWebView _keyboardChangedWithInfo:adjustScrollView:]): |
| (-[WKWebView _shouldUpdateKeyboardWithInfo:]): |
| (-[WKWebView _keyboardWillChangeFrame:]): |
| (-[WKWebView _keyboardDidChangeFrame:]): |
| (-[WKWebView _keyboardWillShow:]): |
| (-[WKWebView _keyboardDidShow:]): |
| (-[WKWebView _keyboardWillHide:]): |
| (-[WKWebView _windowDidRotate:]): |
| (-[WKWebView _contentSizeCategoryDidChange:]): |
| (-[WKWebView _accessibilitySettingsDidChange:]): |
| (-[WKWebView _contentSizeCategory]): |
| (-[WKWebView _isNavigationSwipeGestureRecognizer:]): |
| (-[WKWebView _navigationGestureDidBegin]): |
| (-[WKWebView _navigationGestureDidEnd]): |
| (-[WKWebView _showPasswordViewWithDocumentName:passwordHandler:]): |
| (-[WKWebView _hidePasswordView]): |
| (-[WKWebView _passwordView]): |
| (-[WKWebView _updateScrollViewInsetAdjustmentBehavior]): |
| (-[WKWebView _setAvoidsUnsafeArea:]): |
| (-[WKWebView _haveSetObscuredInsets]): |
| (-[WKWebView removeFromSuperview]): |
| (-[WKWebView _firePresentationUpdateForPendingStableStatePresentationCallbacks]): |
| (toUserInterfaceLayoutDirection): |
| (-[WKWebView setSemanticContentAttribute:]): |
| (-[WKWebView _contentVisibleRect]): |
| (-[WKWebView _minimumLayoutSizeOverride]): |
| (-[WKWebView _setViewLayoutSizeOverride:]): |
| (-[WKWebView _maximumUnobscuredSizeOverride]): |
| (-[WKWebView _setMaximumUnobscuredSizeOverride:]): |
| (-[WKWebView _obscuredInsets]): |
| (-[WKWebView _setObscuredInsets:]): |
| (-[WKWebView _obscuredInsetEdgesAffectedBySafeArea]): |
| (-[WKWebView _setObscuredInsetEdgesAffectedBySafeArea:]): |
| (-[WKWebView _unobscuredSafeAreaInsets]): |
| (-[WKWebView _setUnobscuredSafeAreaInsets:]): |
| (-[WKWebView _safeAreaShouldAffectObscuredInsets]): |
| (-[WKWebView _enclosingViewForExposedRectComputation]): |
| (-[WKWebView _setInterfaceOrientationOverride:]): |
| (-[WKWebView _interfaceOrientationOverride]): |
| (-[WKWebView _clearInterfaceOrientationOverride]): |
| (-[WKWebView _setAllowsViewportShrinkToFit:]): |
| (-[WKWebView _allowsViewportShrinkToFit]): |
| (-[WKWebView _isDisplayingPDF]): |
| (-[WKWebView _dataForDisplayedPDF]): |
| (-[WKWebView _suggestedFilenameForDisplayedPDF]): |
| (-[WKWebView _webViewPrintFormatter]): |
| (-[WKWebView _dragInteractionPolicy]): |
| (-[WKWebView _setDragInteractionPolicy:]): |
| (-[WKWebView _shouldAvoidResizingWhenInputViewBoundsChange]): |
| (-[WKWebView _contentViewIsFirstResponder]): |
| (-[WKWebView _uiTextCaretRect]): |
| (-[WKWebView _safeBrowsingWarning]): |
| (-[WKWebView _convertPointFromContentsToView:]): |
| (-[WKWebView _convertPointFromViewToContents:]): |
| (-[WKWebView _doAfterNextStablePresentationUpdate:]): |
| (-[WKWebView _setFont:sender:]): |
| (-[WKWebView _setFontSize:sender:]): |
| (-[WKWebView _setTextColor:sender:]): |
| (-[WKWebView _detectDataWithTypes:completionHandler:]): |
| (-[WKWebView _requestActivatedElementAtPosition:completionBlock:]): |
| (-[WKWebView didStartFormControlInteraction]): |
| (-[WKWebView didEndFormControlInteraction]): |
| (-[WKWebView _beginInteractiveObscuredInsetsChange]): |
| (-[WKWebView _endInteractiveObscuredInsetsChange]): |
| (-[WKWebView _hideContentUntilNextUpdate]): |
| (-[WKWebView _beginAnimatedResizeWithUpdates:]): |
| (-[WKWebView _endAnimatedResize]): |
| (-[WKWebView _resizeWhileHidingContentWithUpdates:]): |
| (-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]): |
| (-[WKWebView _overrideLayoutParametersWithMinimumLayoutSize:maximumUnobscuredSizeOverride:]): |
| (-[WKWebView _clearOverrideLayoutParameters]): |
| (viewportArgumentsFromDictionary): |
| (-[WKWebView _overrideViewportWithArguments:]): |
| (-[WKWebView _viewForFindUI]): |
| (-[WKWebView _setOverlaidAccessoryViewsInset:]): |
| (-[WKWebView _retainActiveFocusedState]): |
| (-[WKWebView _becomeFirstResponderWithSelectionMovingForward:completionHandler:]): |
| (-[WKWebView _snapshotLayerContentsForBackForwardListItem:]): |
| (-[WKWebView _dataDetectionResults]): |
| (-[WKWebView _accessibilityRetrieveRectsAtSelectionOffset:withText:completionHandler:]): |
| (-[WKWebView _accessibilityStoreSelection]): |
| (-[WKWebView _accessibilityClearSelection]): |
| (-[WKWebView _accessibilityRetrieveSpeakSelectionContent]): |
| (-[WKWebView _accessibilityDidGetSpeakSelectionContent:]): |
| (-[WKWebView _fullScreenPlaceholderView]): |
| (-[WKWebView hasFullScreenWindowController]): |
| (-[WKWebView closeFullScreenWindowController]): |
| (-[WKWebView fullScreenWindowController]): |
| (-[WKWebView _printFormatterClass]): |
| (-[WKWebView _printProvider]): |
| * UIProcess/API/ios/WKWebViewTestingIOS.mm: |
| * UIProcess/API/mac/WKView.mm: |
| (toCoreScrollbarStyle): Deleted. |
| (toAPIScrollbarStyle): Deleted. |
| * UIProcess/API/mac/WKWebViewMac.h: Added. |
| * UIProcess/API/mac/WKWebViewMac.mm: Added. |
| (toAPIScrollbarStyle): |
| (toCoreScrollbarStyle): |
| (-[WKWebView acceptsFirstResponder]): |
| (-[WKWebView becomeFirstResponder]): |
| (-[WKWebView resignFirstResponder]): |
| (-[WKWebView viewWillStartLiveResize]): |
| (-[WKWebView viewDidEndLiveResize]): |
| (-[WKWebView isFlipped]): |
| (-[WKWebView intrinsicContentSize]): |
| (-[WKWebView prepareContentInRect:]): |
| (-[WKWebView setFrameSize:]): |
| (-[WKWebView setUserInterfaceLayoutDirection:]): |
| (-[WKWebView ALLOW_DEPRECATED_IMPLEMENTATIONS_END]): |
| (-[WKWebView writeSelectionToPasteboard:types:]): |
| (-[WKWebView centerSelectionInVisibleArea:]): |
| (-[WKWebView validRequestorForSendType:returnType:]): |
| (-[WKWebView readSelectionFromPasteboard:]): |
| (-[WKWebView changeFont:]): |
| (-[WKWebView changeColor:]): |
| (-[WKWebView changeAttributes:]): |
| (-[WKWebView startSpeaking:]): |
| (-[WKWebView stopSpeaking:]): |
| (-[WKWebView showGuessPanel:]): |
| (-[WKWebView checkSpelling:]): |
| (-[WKWebView changeSpelling:]): |
| (-[WKWebView toggleContinuousSpellChecking:]): |
| (-[WKWebView isGrammarCheckingEnabled]): |
| (-[WKWebView setGrammarCheckingEnabled:]): |
| (-[WKWebView toggleGrammarChecking:]): |
| (-[WKWebView toggleAutomaticSpellingCorrection:]): |
| (-[WKWebView orderFrontSubstitutionsPanel:]): |
| (-[WKWebView toggleSmartInsertDelete:]): |
| (-[WKWebView isAutomaticQuoteSubstitutionEnabled]): |
| (-[WKWebView setAutomaticQuoteSubstitutionEnabled:]): |
| (-[WKWebView toggleAutomaticQuoteSubstitution:]): |
| (-[WKWebView isAutomaticDashSubstitutionEnabled]): |
| (-[WKWebView setAutomaticDashSubstitutionEnabled:]): |
| (-[WKWebView toggleAutomaticDashSubstitution:]): |
| (-[WKWebView isAutomaticLinkDetectionEnabled]): |
| (-[WKWebView setAutomaticLinkDetectionEnabled:]): |
| (-[WKWebView toggleAutomaticLinkDetection:]): |
| (-[WKWebView isAutomaticTextReplacementEnabled]): |
| (-[WKWebView setAutomaticTextReplacementEnabled:]): |
| (-[WKWebView toggleAutomaticTextReplacement:]): |
| (-[WKWebView uppercaseWord:]): |
| (-[WKWebView lowercaseWord:]): |
| (-[WKWebView capitalizeWord:]): |
| (-[WKWebView _wantsKeyDownForEvent:]): |
| (-[WKWebView scrollWheel:]): |
| (-[WKWebView swipeWithEvent:]): |
| (-[WKWebView mouseMoved:]): |
| (-[WKWebView mouseDown:]): |
| (-[WKWebView mouseUp:]): |
| (-[WKWebView mouseDragged:]): |
| (-[WKWebView mouseEntered:]): |
| (-[WKWebView mouseExited:]): |
| (-[WKWebView otherMouseDown:]): |
| (-[WKWebView otherMouseDragged:]): |
| (-[WKWebView otherMouseUp:]): |
| (-[WKWebView rightMouseDown:]): |
| (-[WKWebView rightMouseDragged:]): |
| (-[WKWebView rightMouseUp:]): |
| (-[WKWebView pressureChangeWithEvent:]): |
| (-[WKWebView acceptsFirstMouse:]): |
| (-[WKWebView shouldDelayWindowOrderingForEvent:]): |
| (-[WKWebView doCommandBySelector:]): |
| (-[WKWebView inputContext]): |
| (-[WKWebView performKeyEquivalent:]): |
| (-[WKWebView keyUp:]): |
| (-[WKWebView keyDown:]): |
| (-[WKWebView flagsChanged:]): |
| (-[WKWebView setMarkedText:selectedRange:replacementRange:]): |
| (-[WKWebView unmarkText]): |
| (-[WKWebView selectedRange]): |
| (-[WKWebView hasMarkedText]): |
| (-[WKWebView markedRange]): |
| (-[WKWebView attributedSubstringForProposedRange:actualRange:]): |
| (-[WKWebView characterIndexForPoint:]): |
| (-[WKWebView typingAttributesWithCompletionHandler:]): |
| (-[WKWebView firstRectForCharacterRange:actualRange:]): |
| (-[WKWebView selectedRangeWithCompletionHandler:]): |
| (-[WKWebView markedRangeWithCompletionHandler:]): |
| (-[WKWebView hasMarkedTextWithCompletionHandler:]): |
| (-[WKWebView attributedSubstringForProposedRange:completionHandler:]): |
| (-[WKWebView firstRectForCharacterRange:completionHandler:]): |
| (-[WKWebView characterIndexForPoint:completionHandler:]): |
| (-[WKWebView validAttributesForMarkedText]): |
| (-[WKWebView draggedImage:endedAt:operation:]): |
| (-[WKWebView draggingEntered:]): |
| (-[WKWebView draggingUpdated:]): |
| (-[WKWebView draggingExited:]): |
| (-[WKWebView prepareForDragOperation:]): |
| (-[WKWebView performDragOperation:]): |
| (-[WKWebView _hitTest:dragTypes:]): |
| (-[WKWebView _windowResizeMouseLocationIsInVisibleScrollerThumb:]): |
| (-[WKWebView viewWillMoveToWindow:]): |
| (-[WKWebView viewDidMoveToWindow]): |
| (-[WKWebView drawRect:]): |
| (-[WKWebView isOpaque]): |
| (-[WKWebView mouseDownCanMoveWindow]): |
| (-[WKWebView viewDidHide]): |
| (-[WKWebView viewDidUnhide]): |
| (-[WKWebView viewDidChangeBackingProperties]): |
| (-[WKWebView _activeSpaceDidChange:]): |
| (-[WKWebView accessibilityFocusedUIElement]): |
| (-[WKWebView accessibilityHitTest:]): |
| (-[WKWebView accessibilityAttributeValue:]): |
| (-[WKWebView accessibilityAttributeValue:forParameter:]): |
| (-[WKWebView hitTest:]): |
| (-[WKWebView conversationIdentifier]): |
| (-[WKWebView quickLookWithEvent:]): |
| (-[WKWebView addTrackingRect:owner:userData:assumeInside:]): |
| (-[WKWebView _addTrackingRect:owner:userData:assumeInside:useTrackingNum:]): |
| (-[WKWebView _addTrackingRects:owner:userDataList:assumeInsideList:trackingNums:count:]): |
| (-[WKWebView removeTrackingRect:]): |
| (-[WKWebView _removeTrackingRects:count:]): |
| (-[WKWebView view:stringForToolTip:point:userData:]): |
| (-[WKWebView pasteboardChangedOwner:]): |
| (-[WKWebView pasteboard:provideDataForType:]): |
| (-[WKWebView namesOfPromisedFilesDroppedAtDestination:]): |
| (-[WKWebView wantsUpdateLayer]): |
| (-[WKWebView updateLayer]): |
| (-[WKWebView smartMagnifyWithEvent:]): |
| (-[WKWebView magnifyWithEvent:]): |
| (-[WKWebView rotateWithEvent:]): |
| (-[WKWebView _ensureTextFinderClient]): |
| (-[WKWebView findMatchesForString:relativeToMatch:findOptions:maxResults:resultCollector:]): |
| (-[WKWebView replaceMatches:withString:inSelectionOnly:resultCollector:]): |
| (-[WKWebView scrollFindMatchToVisible:]): |
| (-[WKWebView documentContainerView]): |
| (-[WKWebView getSelectedText:]): |
| (-[WKWebView selectFindMatch:completionHandler:]): |
| (-[WKWebView filePromiseProvider:fileNameForType:]): |
| (-[WKWebView filePromiseProvider:writePromiseToURL:completionHandler:]): |
| (-[WKWebView draggingSession:sourceOperationMaskForDraggingContext:]): |
| (-[WKWebView draggingSession:endedAtPoint:operation:]): |
| (-[WKWebView _prepareForImmediateActionAnimation]): |
| (-[WKWebView _cancelImmediateActionAnimation]): |
| (-[WKWebView _completeImmediateActionAnimation]): |
| (-[WKWebView _setDrawsTransparentBackground:]): |
| (-[WKWebView shareSheetDidDismiss:]): |
| (-[WKWebView makeTouchBar]): |
| (-[WKWebView candidateListTouchBarItem]): |
| (-[WKWebView _web_didAddMediaControlsManager:]): |
| (-[WKWebView _web_didRemoveMediaControlsManager]): |
| (-[WKWebView _interactWithMediaControlsForTesting]): |
| (-[WKWebView validateUserInterfaceItem:]): |
| (-[WKWebView goBack:]): |
| (-[WKWebView goForward:]): |
| (-[WKWebView reload:]): |
| (-[WKWebView reloadFromOrigin:]): |
| (-[WKWebView stopLoading:]): |
| (-[WKWebView _web_superInputContext]): |
| (-[WKWebView _web_superQuickLookWithEvent:]): |
| (-[WKWebView _web_superSwipeWithEvent:]): |
| (-[WKWebView _web_superMagnifyWithEvent:]): |
| (-[WKWebView _web_superSmartMagnifyWithEvent:]): |
| (-[WKWebView _web_superRemoveTrackingRect:]): |
| (-[WKWebView _web_superAccessibilityAttributeValue:]): |
| (-[WKWebView _web_superDoCommandBySelector:]): |
| (-[WKWebView _web_superPerformKeyEquivalent:]): |
| (-[WKWebView _web_superKeyDown:]): |
| (-[WKWebView _web_superHitTest:]): |
| (-[WKWebView _web_immediateActionAnimationControllerForHitTestResultInternal:withType:userData:]): |
| (-[WKWebView _web_prepareForImmediateActionAnimation]): |
| (-[WKWebView _web_cancelImmediateActionAnimation]): |
| (-[WKWebView _web_completeImmediateActionAnimation]): |
| (-[WKWebView _web_didChangeContentSize:]): |
| (-[WKWebView _web_dragDestinationActionForDraggingInfo:]): |
| (-[WKWebView _web_didPerformDragOperation:]): |
| (-[WKWebView _web_dismissContentRelativeChildWindows]): |
| (-[WKWebView _web_dismissContentRelativeChildWindowsWithAnimation:]): |
| (-[WKWebView _web_editorStateDidChange]): |
| (-[WKWebView _web_gestureEventWasNotHandledByWebCore:]): |
| (-[WKWebView _web_grantDOMPasteAccess]): |
| (-[WKWebView _takeFindStringFromSelectionInternal:]): |
| (-[WKWebView insertText:]): |
| (-[WKWebView insertText:replacementRange:]): |
| (-[WKWebView _pageRefForTransitionToWKWebView]): |
| (-[WKWebView _hasActiveVideoForControlsManager]): |
| (-[WKWebView _ignoresNonWheelEvents]): |
| (-[WKWebView _setIgnoresNonWheelEvents:]): |
| (-[WKWebView _safeBrowsingWarning]): |
| (-[WKWebView _pinnedState]): |
| (-[WKWebView _rubberBandingEnabled]): |
| (-[WKWebView _setRubberBandingEnabled:]): |
| (-[WKWebView _pageExtendedBackgroundColor]): |
| (-[WKWebView _backgroundColor]): |
| (-[WKWebView _setBackgroundColor:]): |
| (-[WKWebView _underlayColor]): |
| (-[WKWebView _setUnderlayColor:]): |
| (-[WKWebView _setTotalHeightOfBanners:]): |
| (-[WKWebView _totalHeightOfBanners]): |
| (-[WKWebView _drawsBackground]): |
| (-[WKWebView _setDrawsBackground:]): |
| (-[WKWebView _setTopContentInset:]): |
| (-[WKWebView _topContentInset]): |
| (-[WKWebView _setAutomaticallyAdjustsContentInsets:]): |
| (-[WKWebView _automaticallyAdjustsContentInsets]): |
| (-[WKWebView _setOverrideDeviceScaleFactor:]): |
| (-[WKWebView _overrideDeviceScaleFactor]): |
| (-[WKWebView _windowOcclusionDetectionEnabled]): |
| (-[WKWebView _setWindowOcclusionDetectionEnabled:]): |
| (-[WKWebView _spellCheckerDocumentTag]): |
| (-[WKWebView _shouldExpandContentToViewHeightForAutoLayout]): |
| (-[WKWebView _setShouldExpandContentToViewHeightForAutoLayout:]): |
| (-[WKWebView _minimumLayoutWidth]): |
| (-[WKWebView _setMinimumLayoutWidth:]): |
| (-[WKWebView _alwaysShowsHorizontalScroller]): |
| (-[WKWebView _setAlwaysShowsHorizontalScroller:]): |
| (-[WKWebView _alwaysShowsVerticalScroller]): |
| (-[WKWebView _setAlwaysShowsVerticalScroller:]): |
| (-[WKWebView _useSystemAppearance]): |
| (-[WKWebView _setUseSystemAppearance:]): |
| (-[WKWebView _setOverlayScrollbarStyle:]): |
| (-[WKWebView _overlayScrollbarStyle]): |
| (-[WKWebView _inspectorAttachmentView]): |
| (-[WKWebView _setInspectorAttachmentView:]): |
| (-[WKWebView _setThumbnailView:]): |
| (-[WKWebView _thumbnailView]): |
| (-[WKWebView _setIgnoresAllEvents:]): |
| (-[WKWebView _ignoresAllEvents]): |
| (-[WKWebView _usePlatformFindUI]): |
| (-[WKWebView _setUsePlatformFindUI:]): |
| (-[WKWebView _setShouldSuppressFirstResponderChanges:]): |
| (-[WKWebView _canChangeFrameLayout:]): |
| (-[WKWebView _tryToSwipeWithEvent:ignoringPinnedState:]): |
| (-[WKWebView _dismissContentRelativeChildWindows]): |
| (-[WKWebView _setFrame:andScrollBy:]): |
| (-[WKWebView _gestureEventWasNotHandledByWebCore:]): |
| (-[WKWebView _disableFrameSizeUpdates]): |
| (-[WKWebView _enableFrameSizeUpdates]): |
| (-[WKWebView _beginDeferringViewInWindowChanges]): |
| (-[WKWebView _endDeferringViewInWindowChanges]): |
| (-[WKWebView _endDeferringViewInWindowChangesSync]): |
| (-[WKWebView _setCustomSwipeViews:]): |
| (-[WKWebView _setCustomSwipeViewsTopContentInset:]): |
| (-[WKWebView _setDidMoveSwipeSnapshotCallback:]): |
| (-[WKWebView _fullScreenPlaceholderView]): |
| (-[WKWebView _fullScreenWindow]): |
| (-[WKWebView _immediateActionAnimationControllerForHitTestResult:withType:userData:]): |
| (-[WKWebView _printOperationWithPrintInfo:]): |
| (-[WKWebView _printOperationWithPrintInfo:forFrame:]): |
| (-[WKWebView _wantsMediaPlaybackControlsView]): |
| (-[WKWebView _setWantsMediaPlaybackControlsView:]): |
| (-[WKWebView _mediaPlaybackControlsView]): |
| (-[WKWebView _addMediaPlaybackControlsView:]): |
| (-[WKWebView _removeMediaPlaybackControlsView]): |
| (-[WKWebView _prepareForMoveToWindow:completionHandler:]): |
| * UIProcess/API/mac/WKWebViewTestingMac.mm: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| * UIProcess/ios/WKContentView.mm: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| * UIProcess/ios/WKPDFView.mm: |
| * UIProcess/ios/WKScrollView.mm: |
| * UIProcess/ios/WKSystemPreviewView.mm: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-12-14 David Kilzer <ddkilzer@apple.com> |
| |
| Add release assert for selectedIndex in WebKit::WebPopupMenu::show() |
| <https://webkit.org/b/205223> |
| <rdar://problem/57929078> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * WebProcess/WebCoreSupport/WebPopupMenu.cpp: |
| (WebKit::WebPopupMenu::show): |
| - Add release assert to check for valid `selectedIndex` to fix |
| the bug. |
| - Rename `index` parameter to `selectedIndex`. |
| * WebProcess/WebCoreSupport/WebPopupMenu.h: |
| (WebKit::WebPopupMenu::show): |
| - Rename `index` parameter to `selectedIndex`. |
| |
| 2019-12-13 Brady Eidson <beidson@apple.com> |
| |
| Refactor ScriptController's proliferation of ExceptionDetails*. |
| https://bugs.webkit.org/show_bug.cgi?id=205151 |
| |
| Reviewed by Alex Christensen. |
| |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageRunJavaScriptInMainFrame): |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _evaluateJavaScript:forceUserGesture:completionHandler:]): |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::runJavaScriptInMainFrame): |
| (WebKit::WebPageProxy::runJavaScriptInMainFrameScriptWorld): |
| (WebKit::WebPageProxy::runJavaScriptInFrame): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| |
| * WebProcess/Plugins/PluginView.cpp: |
| (WebKit::PluginView::performJavaScriptURLRequest): |
| |
| * WebProcess/WebPage/WebInspectorFrontendAPIDispatcher.cpp: |
| (WebKit::WebInspectorFrontendAPIDispatcher::evaluateOrQueueExpression): |
| (WebKit::WebInspectorFrontendAPIDispatcher::evaluateQueuedExpressions): |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::runJavaScript): |
| |
| 2019-12-13 Eric Carlson <eric.carlson@apple.com> |
| |
| Add remote media player message to load and play |
| https://bugs.webkit.org/show_bug.cgi?id=205220 |
| <rdar://problem/57927486> |
| |
| Reviewed by Jer Noble. |
| |
| Add WP -> GPU process messages: PrepareForPlayback, Load, CancelLoad, Play, Pause, |
| SetVolume, and SetMuted |
| Add GPUP -> WP message: PlaybackStateChanged |
| |
| * GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp: |
| (WebKit::RemoteMediaPlayerManagerProxy::RemoteMediaPlayerManagerProxy): |
| (WebKit::RemoteMediaPlayerManagerProxy::createMediaPlayer): |
| (WebKit::RemoteMediaPlayerManagerProxy::deleteMediaPlayer): |
| (WebKit::RemoteMediaPlayerManagerProxy::prepareForPlayback): |
| (WebKit::RemoteMediaPlayerManagerProxy::load): |
| (WebKit::RemoteMediaPlayerManagerProxy::cancelLoad): |
| (WebKit::RemoteMediaPlayerManagerProxy::play): |
| (WebKit::RemoteMediaPlayerManagerProxy::pause): |
| (WebKit::RemoteMediaPlayerManagerProxy::setVolume): |
| (WebKit::RemoteMediaPlayerManagerProxy::setMuted): |
| (WebKit::RemoteMediaPlayerManagerProxy::logChannel const): |
| * GPUProcess/media/RemoteMediaPlayerManagerProxy.h: |
| (WebKit::RemoteMediaPlayerManagerProxy::gpuConnectionToWebProcess const): |
| (WebKit::RemoteMediaPlayerManagerProxy::webProcessConnection const): Deleted. |
| * GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in: |
| * GPUProcess/media/RemoteMediaPlayerProxy.cpp: |
| (WebKit::RemoteMediaPlayerProxy::RemoteMediaPlayerProxy): |
| (WebKit::RemoteMediaPlayerProxy::load): |
| (WebKit::RemoteMediaPlayerProxy::prepareForPlayback): |
| (WebKit::RemoteMediaPlayerProxy::cancelLoad): |
| (WebKit::RemoteMediaPlayerProxy::play): |
| (WebKit::RemoteMediaPlayerProxy::pause): |
| (WebKit::RemoteMediaPlayerProxy::setVolume): |
| (WebKit::RemoteMediaPlayerProxy::setMuted): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerNetworkStateChanged): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerReadyStateChanged): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerVolumeChanged): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerMuteChanged): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerTimeChanged): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerDurationChanged): |
| (WebKit::RemoteMediaPlayerProxy::mediaPlayerRateChanged): |
| * GPUProcess/media/RemoteMediaPlayerProxy.h: |
| * WebProcess/GPU/GPUProcessConnection.cpp: |
| (WebKit::GPUProcessConnection::didReceiveMessage): |
| * WebProcess/GPU/GPUProcessConnection.h: |
| * WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp: |
| (WebKit::MediaPlayerPrivateRemote::prepareForPlayback): |
| (WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote::load): |
| (WebKit::MediaPlayerPrivateRemote::cancelLoad): |
| (WebKit::MediaPlayerPrivateRemote::play): |
| (WebKit::MediaPlayerPrivateRemote::pause): |
| (WebKit::MediaPlayerPrivateRemote::setVolumeDouble): |
| (WebKit::MediaPlayerPrivateRemote::setMuted): |
| (WebKit::MediaPlayerPrivateRemote::muteChanged): |
| (WebKit::MediaPlayerPrivateRemote::timeChanged): |
| (WebKit::MediaPlayerPrivateRemote::playbackStateChanged): |
| (WebKit::MediaPlayerPrivateRemote::paused const): Deleted. |
| * WebProcess/GPU/media/MediaPlayerPrivateRemote.h: |
| * WebProcess/GPU/media/RemoteMediaPlayerManager.cpp: |
| (WebKit::RemoteMediaPlayerManager::RemoteMediaPlayerManager): |
| (WebKit::RemoteMediaPlayerManager::~RemoteMediaPlayerManager): |
| (WebKit::RemoteMediaPlayerManager::playbackStateChanged): |
| * WebProcess/GPU/media/RemoteMediaPlayerManager.h: |
| (WebKit::RemoteMediaPlayerManager::didReceiveMessageFromWebProcess): |
| * WebProcess/GPU/media/RemoteMediaPlayerManager.messages.in: |
| |
| 2019-12-13 Chris Dumez <cdumez@apple.com> |
| |
| [macOS] Swipe gesture snapshot stays too long if provisional load has not started yet when endSwipeGesture() is called |
| https://bugs.webkit.org/show_bug.cgi?id=205206 |
| |
| Reviewed by Tim Horton. |
| |
| Swipe gesture snapshot stays too long if provisional load has not started yet when endSwipeGesture() is called on macOS. |
| This is because the SnapshotRemovalTracker::eventOccurred() calls get ignored while the SnapshotRemovalTracker is paused |
| and the SnapshotRemovalTracker only gets unpaused once the provisional load has started. The idea is that we should ignore |
| any events from a previous navigation. However, the SwipeGestureEnd event is a UI-side event fired by the |
| ViewGestureController itself, so there is reason to ignore it. Since we ask the WebContent process to do the load in |
| willEndSwipeGesture(), it is possible that the provisional load has not started yet by the time endSwipeGesture() is |
| called. In such case, the SwipeGestureEnd event would get ignored and we would keep the snapshot until the timeout. |
| |
| * UIProcess/ViewGestureController.cpp: |
| (WebKit::stopWaitingForEvent): |
| (WebKit::ViewGestureController::SnapshotRemovalTracker::eventOccurred): |
| (WebKit::ViewGestureController::endSwipeGesture): |
| (WebKit::ViewGestureController::SnapshotRemovalTracker::stopWaitingForEvent): Deleted. |
| * UIProcess/ViewGestureController.h: |
| |
| 2019-12-13 David Kilzer <ddkilzer@apple.com> |
| |
| Add MESSAGE_CHECK() for selectedIndex in Messages::WebPageProxy::ShowPopupMenu |
| <https://webkit.org/b/205177> |
| <rdar://problem/57337872> |
| |
| Reviewed by Chris Dumez. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::showPopupMenu): Add MESSAGE_CHECK() to |
| validate the `selectedIndex` parameter, which must be -1 to |
| select no items, or a valid zero-based index into `items`. |
| |
| 2019-12-13 Alex Christensen <achristensen@webkit.org> |
| |
| Allow cross-origin requests to WKURLSchemeHandlers |
| https://bugs.webkit.org/show_bug.cgi?id=205198 |
| <rdar://problem/57897836> |
| |
| Reviewed by Brady Eidson. |
| |
| Covered by an API test. |
| |
| * UIProcess/API/Cocoa/WKURLSchemeTask.h: |
| Document the requirements for cross-origin requests. |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::registerURLSchemeHandler): |
| When we register a scheme handler, allow cross origin resources for that scheme. |
| This will make the check in DocumentThreadableLoader::checkURLSchemeAsCORSEnabled allow the request to get to the WKURLSchemeHandler. |
| The resposne must still have CORS header fields in order for the data to get to the web content, like CORS with HTTP. |
| |
| 2019-12-13 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Implement encoding/decoding for DisplayList::DrawNativeImage |
| https://bugs.webkit.org/show_bug.cgi?id=205200 |
| |
| Reviewed by Simon Fraser. |
| |
| Add helper functions to encode and decode NativeImagePtr (RetainPtr<CGImageRef> on Cocoa platforms). This |
| mirrors the implementation of encoding and decoding for WebCore::Image, which create and draws into |
| ShareableBitmap, and send a handle to the data over IPC. |
| |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::encodeImage): |
| (IPC::decodeImage): |
| (IPC::encodeNativeImage): |
| (IPC::decodeNativeImage): |
| |
| Additionally make Image and NativeImagePtr encoding and decoding helpers fail quickly in the case where the |
| ShareableBitmap failed to create a graphics context by having the encoder indicate whether a graphics context |
| was created, and having the decoder fail if the graphics context could not be created. |
| |
| (IPC::encodeOptionalNativeImage): |
| (IPC::decodeOptionalNativeImage): |
| (IPC::ArgumentCoder<NativeImageHandle>::encode): |
| (IPC::ArgumentCoder<NativeImageHandle>::decode): |
| * Shared/WebCoreArgumentCoders.h: |
| |
| 2019-12-13 Per Arne Vollan <pvollan@apple.com> |
| |
| [iOS] Deny mach lookup access to "*.apple-extension-service" in the WebContent process |
| https://bugs.webkit.org/show_bug.cgi?id=205134 |
| <rdar://problem/56984257> |
| |
| Reviewed by Brent Fulgham. |
| |
| Remove mach lookup access to "*.apple-extension-service" in the sandbox. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2019-12-13 youenn fablet <youenn@apple.com> |
| |
| Help debugging flaky http/tests/cache-storage/page-cache-domcachestorage-pending-promise.html |
| https://bugs.webkit.org/show_bug.cgi?id=205209 |
| |
| Reviewed by Chris Dumez. |
| |
| Add a bunch of asserts that no pending activity is happening in the Cache Storage backend is happening |
| when querying the backend representation, which is a debug tool. |
| No change of behavior. |
| |
| * NetworkProcess/cache/CacheStorageEngine.cpp: |
| (WebKit::CacheStorage::Engine::representation): |
| * NetworkProcess/cache/CacheStorageEngineCache.h: |
| (WebKit::CacheStorage::Cache::hasPendingOpeningCallbacks const): |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::Caches::appendRepresentation const): |
| |
| 2019-12-13 Kate Cheney <katherine_cheney@apple.com> |
| |
| Create WebKit API calls for ITP Data |
| https://bugs.webkit.org/show_bug.cgi?id=204932 |
| <rdar://problem/57632753> |
| |
| Reviewed by Alex Christensen. |
| |
| This patch exposes ITP data captured in the network process through the |
| Objective C API using two new classes: _WKResourceLoadStatisticsFirstParty |
| and _WKResourceLoadStatisticsThirdParty. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h: |
| * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ensureThirdPartyDataForSpecificFirstPartyDomain): |
| (WebKit::getThirdPartyDataForSpecificFirstPartyDomains): |
| (WebKit::ResourceLoadStatisticsMemoryStore::aggregatedThirdPartyData const): |
| * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h: |
| * NetworkProcess/Classifier/ResourceLoadStatisticsStore.h: |
| Updated mentions of ThirdPartyData to include the |
| WebResourceLoadStatisticsStore:: class specifier after relocating |
| ThirdPartyData. |
| |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::aggregatedThirdPartyData): |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h: |
| Updated the data to be sent via completion handler from |
| WebResourceLoadStatisticsStore so that calls to |
| aggregatedThirdPartyData() are happening on a background thread. |
| |
| * Shared/API/APIObject.h: |
| * Shared/Cocoa/APIObject.mm: |
| (API::Object::newObject): |
| * UIProcess/API/APIResourceLoadStatisticsFirstParty.h: Added. |
| * UIProcess/API/APIResourceLoadStatisticsThirdParty.h: Added. |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _getResourceLoadStatisticsDataSummary:]): |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| * UIProcess/API/Cocoa/_WKResourceLoadStatisticsFirstParty.h: Added. |
| * UIProcess/API/Cocoa/_WKResourceLoadStatisticsFirstParty.mm: Added. |
| (-[_WKResourceLoadStatisticsFirstParty dealloc]): |
| (-[_WKResourceLoadStatisticsFirstParty firstPartyDomain]): |
| (-[_WKResourceLoadStatisticsFirstParty storageAccess]): |
| (-[_WKResourceLoadStatisticsFirstParty _apiObject]): |
| * UIProcess/API/Cocoa/_WKResourceLoadStatisticsFirstPartyInternal.h: Added. |
| * UIProcess/API/Cocoa/_WKResourceLoadStatisticsThirdParty.h: Added. |
| * UIProcess/API/Cocoa/_WKResourceLoadStatisticsThirdParty.mm: Added. |
| (-[_WKResourceLoadStatisticsThirdParty dealloc]): |
| (-[_WKResourceLoadStatisticsThirdParty thirdPartyDomain]): |
| (-[_WKResourceLoadStatisticsThirdParty underFirstParties]): |
| (-[_WKResourceLoadStatisticsThirdParty _apiObject]): |
| * UIProcess/API/Cocoa/_WKResourceLoadStatisticsThirdPartyInternal.h: Added. |
| _WKResourceLoadStatisticsFirstParty and _WKResourceLoadStatisticsThirdParty |
| represent first and third party domains respectively which hold ITP |
| data and are strongly typed to ensure the correct data is being |
| exposed via API. The function and parameter names for storage access |
| specify "third party" because each WKITPFirstParty holds data relevent |
| to a specific third party and storage access would not make sense in |
| just a first party context. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::getResourceLoadStatisticsDataSummary): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::getResourceLoadStatisticsDataSummary): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::getResourceLoadStatisticsDataSummary): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-12-13 Eric Carlson <eric.carlson@apple.com> |
| |
| Add infrastructure needed for playing media player in the GPU process |
| https://bugs.webkit.org/show_bug.cgi?id=205094 |
| <rdar://problem/57815393> |
| |
| Reviewed by Youenn Fablet. |
| |
| * DerivedSources-input.xcfilelist: |
| * DerivedSources-output.xcfilelist: |
| * DerivedSources.make: |
| * GPUProcess/GPUConnectionToWebProcess.cpp: |
| (WebKit::GPUConnectionToWebProcess::GPUConnectionToWebProcess): |
| (WebKit::GPUConnectionToWebProcess::~GPUConnectionToWebProcess): |
| (WebKit::GPUConnectionToWebProcess::didReceiveMessage): |
| (WebKit::GPUConnectionToWebProcess::didReceiveSyncMessage): |
| * GPUProcess/GPUConnectionToWebProcess.h: |
| * GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp: Added. |
| (WebKit::nullLogger): |
| (WebKit::RemoteMediaPlayerManagerProxy::PlayerProxy::PlayerProxy): |
| (WebKit::RemoteMediaPlayerManagerProxy::PlayerProxy::~PlayerProxy): |
| (WebKit::RemoteMediaPlayerManagerProxy::RemoteMediaPlayerManagerProxy): |
| (WebKit::RemoteMediaPlayerManagerProxy::~RemoteMediaPlayerManagerProxy): |
| (WebKit::RemoteMediaPlayerManagerProxy::createMediaPlayer): |
| (WebKit::RemoteMediaPlayerManagerProxy::getSupportedTypes): |
| (WebKit::RemoteMediaPlayerManagerProxy::supportsType): |
| (WebKit::RemoteMediaPlayerManagerProxy::originsInMediaCache): |
| (WebKit::RemoteMediaPlayerManagerProxy::clearMediaCache): |
| (WebKit::RemoteMediaPlayerManagerProxy::clearMediaCacheForOrigins): |
| (WebKit::RemoteMediaPlayerManagerProxy::supportsKeySystem): |
| * GPUProcess/media/RemoteMediaPlayerManagerProxy.h: Added. |
| (WebKit::RemoteMediaPlayerManagerProxy::webProcessConnection const): |
| (WebKit::RemoteMediaPlayerManagerProxy::didReceiveMessageFromWebProcess): |
| (WebKit::RemoteMediaPlayerManagerProxy::didReceiveSyncMessageFromWebProcess): |
| * GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in: Added. |
| * Scripts/webkit/messages.py: |
| * Sources.txt: |
| * SourcesCocoa.txt: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp: Added. |
| (WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote): |
| (WebKit::MediaPlayerPrivateRemote::~MediaPlayerPrivateRemote): |
| (WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote::load): |
| (WebKit::MediaPlayerPrivateRemote::load): |
| (WebKit::MediaPlayerPrivateRemote::cancelLoad): |
| (WebKit::MediaPlayerPrivateRemote::prepareToPlay): |
| (WebKit::MediaPlayerPrivateRemote::platformLayer const): |
| (WebKit::MediaPlayerPrivateRemote::setVideoFullscreenLayer): |
| (WebKit::MediaPlayerPrivateRemote::updateVideoFullscreenInlineImage): |
| (WebKit::MediaPlayerPrivateRemote::setVideoFullscreenFrame): |
| (WebKit::MediaPlayerPrivateRemote::setVideoFullscreenGravity): |
| (WebKit::MediaPlayerPrivateRemote::setVideoFullscreenMode): |
| (WebKit::MediaPlayerPrivateRemote::videoFullscreenStandbyChanged): |
| (WebKit::MediaPlayerPrivateRemote::accessLog const): |
| (WebKit::MediaPlayerPrivateRemote::errorLog const): |
| (WebKit::MediaPlayerPrivateRemote::platformErrorCode const): |
| (WebKit::MediaPlayerPrivateRemote::play): |
| (WebKit::MediaPlayerPrivateRemote::pause): |
| (WebKit::MediaPlayerPrivateRemote::setBufferingPolicy): |
| (WebKit::MediaPlayerPrivateRemote::supportsPictureInPicture const): |
| (WebKit::MediaPlayerPrivateRemote::supportsFullscreen const): |
| (WebKit::MediaPlayerPrivateRemote::supportsScanning const): |
| (WebKit::MediaPlayerPrivateRemote::requiresImmediateCompositing const): |
| (WebKit::MediaPlayerPrivateRemote::canSaveMediaData const): |
| (WebKit::MediaPlayerPrivateRemote::naturalSize const): |
| (WebKit::MediaPlayerPrivateRemote::hasVideo const): |
| (WebKit::MediaPlayerPrivateRemote::hasAudio const): |
| (WebKit::MediaPlayerPrivateRemote::setVisible): |
| (WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote::durationMediaTime const): |
| (WebKit::MediaPlayerPrivateRemote::currentMediaTime const): |
| (WebKit::MediaPlayerPrivateRemote::getStartDate const): |
| (WebKit::MediaPlayerPrivateRemote::seek): |
| (WebKit::MediaPlayerPrivateRemote::seekWithTolerance): |
| (WebKit::MediaPlayerPrivateRemote::seeking const): |
| (WebKit::MediaPlayerPrivateRemote::startTime const): |
| (WebKit::MediaPlayerPrivateRemote::setRateDouble): |
| (WebKit::MediaPlayerPrivateRemote::rate const): |
| (WebKit::MediaPlayerPrivateRemote::setPreservesPitch): |
| (WebKit::MediaPlayerPrivateRemote::paused const): |
| (WebKit::MediaPlayerPrivateRemote::setVolumeDouble): |
| (WebKit::MediaPlayerPrivateRemote::setMuted): |
| (WebKit::MediaPlayerPrivateRemote::hasClosedCaptions const): |
| (WebKit::MediaPlayerPrivateRemote::setClosedCaptionsVisible): |
| (WebKit::MediaPlayerPrivateRemote::maxFastForwardRate const): |
| (WebKit::MediaPlayerPrivateRemote::minFastReverseRate const): |
| (WebKit::MediaPlayerPrivateRemote::networkState const): |
| (WebKit::MediaPlayerPrivateRemote::readyState const): |
| (WebKit::MediaPlayerPrivateRemote::seekable const): |
| (WebKit::MediaPlayerPrivateRemote::buffered const): |
| (WebKit::MediaPlayerPrivateRemote::maxMediaTimeSeekable const): |
| (WebKit::MediaPlayerPrivateRemote::minMediaTimeSeekable const): |
| (WebKit::MediaPlayerPrivateRemote::seekableTimeRangesLastModifiedTime const): |
| (WebKit::MediaPlayerPrivateRemote::liveUpdateInterval const): |
| (WebKit::MediaPlayerPrivateRemote::totalBytes const): |
| (WebKit::MediaPlayerPrivateRemote::didLoadingProgress const): |
| (WebKit::MediaPlayerPrivateRemote::setSize): |
| (WebKit::MediaPlayerPrivateRemote::paint): |
| (WebKit::MediaPlayerPrivateRemote::paintCurrentFrameInContext): |
| (WebKit::MediaPlayerPrivateRemote::copyVideoTextureToPlatformTexture): |
| (WebKit::MediaPlayerPrivateRemote::nativeImageForCurrentTime): |
| (WebKit::MediaPlayerPrivateRemote::setPreload): |
| (WebKit::MediaPlayerPrivateRemote::hasAvailableVideoFrame const): |
| (WebKit::MediaPlayerPrivateRemote::canLoadPoster const): |
| (WebKit::MediaPlayerPrivateRemote::setPoster): |
| (WebKit::MediaPlayerPrivateRemote::enterFullscreen): |
| (WebKit::MediaPlayerPrivateRemote::exitFullscreen): |
| (WebKit::MediaPlayerPrivateRemote::wirelessPlaybackTargetName const): |
| (WebKit::MediaPlayerPrivateRemote::wirelessPlaybackTargetType const): |
| (WebKit::MediaPlayerPrivateRemote::wirelessVideoPlaybackDisabled const): |
| (WebKit::MediaPlayerPrivateRemote::setWirelessVideoPlaybackDisabled): |
| (WebKit::MediaPlayerPrivateRemote::canPlayToWirelessPlaybackTarget const): |
| (WebKit::MediaPlayerPrivateRemote::isCurrentPlaybackTargetWireless const): |
| (WebKit::MediaPlayerPrivateRemote::setWirelessPlaybackTarget): |
| (WebKit::MediaPlayerPrivateRemote::setShouldPlayToPlaybackTarget): |
| (WebKit::MediaPlayerPrivateRemote::canEnterFullscreen const): |
| (WebKit::MediaPlayerPrivateRemote::supportsAcceleratedRendering const): |
| (WebKit::MediaPlayerPrivateRemote::acceleratedRenderingStateChanged): |
| (WebKit::MediaPlayerPrivateRemote::shouldMaintainAspectRatio const): |
| (WebKit::MediaPlayerPrivateRemote::setShouldMaintainAspectRatio): |
| (WebKit::MediaPlayerPrivateRemote::hasSingleSecurityOrigin const): |
| (WebKit::MediaPlayerPrivateRemote::didPassCORSAccessCheck const): |
| (WebKit::MediaPlayerPrivateRemote::wouldTaintOrigin const): |
| (WebKit::MediaPlayerPrivateRemote::movieLoadType const): |
| (WebKit::MediaPlayerPrivateRemote::prepareForRendering): |
| (WebKit::MediaPlayerPrivateRemote::mediaTimeForTimeValue const): |
| (WebKit::MediaPlayerPrivateRemote::maximumDurationToCacheMediaTime const): |
| (WebKit::MediaPlayerPrivateRemote::decodedFrameCount const): |
| (WebKit::MediaPlayerPrivateRemote::droppedFrameCount const): |
| (WebKit::MediaPlayerPrivateRemote::audioDecodedByteCount const): |
| (WebKit::MediaPlayerPrivateRemote::videoDecodedByteCount const): |
| (WebKit::MediaPlayerPrivateRemote::setPrivateBrowsingMode): |
| (WebKit::MediaPlayerPrivateRemote::engineDescription const): |
| (WebKit::MediaPlayerPrivateRemote::audioSourceProvider): |
| (WebKit::MediaPlayerPrivateRemote::createSession): |
| (WebKit::MediaPlayerPrivateRemote::setCDMSession): |
| (WebKit::MediaPlayerPrivateRemote::keyAdded): |
| (WebKit::MediaPlayerPrivateRemote::cdmInstanceAttached): |
| (WebKit::MediaPlayerPrivateRemote::cdmInstanceDetached): |
| (WebKit::MediaPlayerPrivateRemote::attemptToDecryptWithInstance): |
| (WebKit::MediaPlayerPrivateRemote::waitingForKey const): |
| (WebKit::MediaPlayerPrivateRemote::requiresTextTrackRepresentation const): |
| (WebKit::MediaPlayerPrivateRemote::setTextTrackRepresentation): |
| (WebKit::MediaPlayerPrivateRemote::syncTextTrackBounds): |
| (WebKit::MediaPlayerPrivateRemote::tracksChanged): |
| (WebKit::MediaPlayerPrivateRemote::simulateAudioInterruption): |
| (WebKit::MediaPlayerPrivateRemote::beginSimulatedHDCPError): |
| (WebKit::MediaPlayerPrivateRemote::endSimulatedHDCPError): |
| (WebKit::MediaPlayerPrivateRemote::languageOfPrimaryAudioTrack const): |
| (WebKit::MediaPlayerPrivateRemote::extraMemoryCost const): |
| (WebKit::MediaPlayerPrivateRemote::fileSize const): |
| (WebKit::MediaPlayerPrivateRemote::ended const): |
| (WebKit::MediaPlayerPrivateRemote::videoPlaybackQualityMetrics): |
| (WebKit::MediaPlayerPrivateRemote::notifyTrackModeChanged): |
| (WebKit::MediaPlayerPrivateRemote::notifyActiveSourceBuffersChanged): |
| (WebKit::MediaPlayerPrivateRemote::setShouldDisableSleep): |
| (WebKit::MediaPlayerPrivateRemote::applicationWillResignActive): |
| (WebKit::MediaPlayerPrivateRemote::applicationDidBecomeActive): |
| (WebKit::MediaPlayerPrivateRemote::performTaskAtMediaTime): |
| (WebKit::MediaPlayerPrivateRemote::shouldIgnoreIntrinsicSize): |
| (WebKit::MediaPlayerPrivateRemote::logChannel const): |
| * WebProcess/GPU/media/MediaPlayerPrivateRemote.h: Added. |
| * WebProcess/GPU/media/MediaPlayerPrivateRemoteIdentifier.h: Added. |
| * WebProcess/GPU/media/RemoteMediaPlayerManager.cpp: Added. |
| (WebKit::MediaPlayerRemoteFactory::MediaPlayerRemoteFactory): |
| (WebKit::RemoteMediaPlayerManager::RemoteMediaPlayerManager): |
| (WebKit::RemoteMediaPlayerManager::~RemoteMediaPlayerManager): |
| (WebKit::RemoteMediaPlayerManager::supplementName): |
| (WebKit::RemoteMediaPlayerManager::initialize): |
| (WebKit::RemoteMediaPlayerManager::createRemoteMediaPlayer): |
| (WebKit::RemoteMediaPlayerManager::getSupportedTypes): |
| (WebKit::RemoteMediaPlayerManager::supportsTypeAndCodecs): |
| (WebKit::RemoteMediaPlayerManager::supportsKeySystem): |
| (WebKit::RemoteMediaPlayerManager::originsInMediaCache): |
| (WebKit::RemoteMediaPlayerManager::clearMediaCache): |
| (WebKit::RemoteMediaPlayerManager::clearMediaCacheForOrigins): |
| (WebKit::RemoteMediaPlayerManager::networkStateChanged): |
| (WebKit::RemoteMediaPlayerManager::updatePreferences): |
| (WebKit::RemoteMediaPlayerManager::gpuProcessConnection const): |
| * WebProcess/GPU/media/RemoteMediaPlayerManager.h: Added. |
| * WebProcess/GPU/media/RemoteMediaPlayerManager.messages.in: Added. |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::updatePreferences): |
| * WebProcess/WebProcess.cpp: |
| |
| 2019-12-13 Jim Mason <jmason@ibinx.com> |
| |
| [GTK] WebKitGTK build hangs on g-ir-scanner |
| https://bugs.webkit.org/show_bug.cgi?id=204715 |
| |
| This patch fixes the static initialization order problem |
| introduced by Bug 204503. |
| |
| The patch replaces the static data members with statics that |
| are constructed only upon first access (i.e., the 'construct |
| on first use' idiom). |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * UIProcess/glib/RemoteInspectorClient.cpp: |
| (WebKit::RemoteInspectorClient::messageHandlers): |
| (WebKit::RemoteInspectorClient::RemoteInspectorClient): |
| * UIProcess/glib/RemoteInspectorClient.h: |
| |
| 2019-12-13 Per Arne Vollan <pvollan@apple.com> |
| |
| [iOS] The AGX compiler service is incorrectly listed as a global name in sandbox |
| https://bugs.webkit.org/show_bug.cgi?id=205189 |
| |
| Reviewed by Brent Fulgham. |
| |
| It should be a XPC service name. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2019-12-12 Simon Fraser <simon.fraser@apple.com> |
| |
| Minor WKWebView.mm code rearrangement |
| https://bugs.webkit.org/show_bug.cgi?id=205129 |
| |
| Reviewed by Tim Horton. |
| |
| Throw in some more #pragma marks and move some functions around, with the goal of |
| having the implementation order mostly follow header order, and grouping related functions. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _pageForTesting]): |
| (-[WKWebView _page]): |
| (-[WKWebView urlSchemeHandlerForURLScheme:]): |
| (+[WKWebView handlesURLScheme:]): |
| (-[WKWebView _resolutionForShareSheetImmediateCompletionForTesting]): |
| (-[WKWebView createPDFWithConfiguration:completionHandler:]): |
| (-[WKWebView createWebArchiveDataWithCompletionHandler:]): |
| (toFindOptions): |
| (-[WKWebView findString:withConfiguration:completionHandler:]): |
| (-[WKWebView setMediaType:]): |
| (-[WKWebView mediaType]): |
| (-[WKWebView layoutSubviews]): |
| (-[WKWebView scrollView]): |
| (-[WKWebView _isShowingVideoPictureInPicture]): |
| (-[WKWebView _mayAutomaticallyShowVideoPictureInPicture]): |
| (-[WKWebView _incrementFocusPreservationCount]): |
| (-[WKWebView _decrementFocusPreservationCount]): |
| (-[WKWebView _resetFocusPreservationCount]): |
| (-[WKWebView _isRetainingActiveFocusedState]): |
| (-[WKWebView _effectiveAppearanceIsDark]): |
| (-[WKWebView _effectiveUserInterfaceLevelIsElevated]): |
| (-[WKWebView _shouldAvoidResizingWhenInputViewBoundsChange]): |
| (-[WKWebView _dragInteractionPolicy]): |
| (-[WKWebView _setDragInteractionPolicy:]): |
| (-[WKWebView _populateArchivedSubviews:]): |
| (-[WKWebView _isBackground]): |
| (-[WKWebView _setShouldSuppressFirstResponderChanges:]): |
| (-[WKWebView _retainActiveFocusedState]): |
| (-[WKWebView _becomeFirstResponderWithSelectionMovingForward:completionHandler:]): |
| (-[WKWebView _snapshotLayerContentsForBackForwardListItem:]): |
| (-[WKWebView _dataDetectionResults]): |
| (-[WKWebView _accessibilityRetrieveSpeakSelectionContent]): |
| (-[WKWebView _accessibilityDidGetSpeakSelectionContent:]): |
| (-[WKWebView _viewportSizeForCSSViewportUnits]): |
| (-[WKWebView _setViewportSizeForCSSViewportUnits:]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/Cocoa/SOAuthorization/SOAuthorizationCoordinator.mm: Unified sources build fix (seen while doing other stuff). |
| |
| 2019-12-12 Simon Fraser <simon.fraser@apple.com> |
| |
| Move WKWebView code related to testing to new files, with new private "for testing" headers. |
| https://bugs.webkit.org/show_bug.cgi?id=205021 |
| |
| Reviewed by Tim Horton. |
| |
| Move testing-only SPI to new private headers to discourage first parties from using |
| them by mistake. Move test-only code to new files to reduce the size of WKWebView.mm. |
| |
| * SourcesCocoa.txt: |
| * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _internalDoAfterNextPresentationUpdate:withoutWaitingForPainting:withoutWaitingForAnimatedResize:]): |
| (-[WKWebView _prepareForImmediateActionAnimation]): |
| (-[WKWebView _cancelImmediateActionAnimation]): |
| (-[WKWebView _completeImmediateActionAnimation]): |
| (-[WKWebView _useSystemAppearance]): |
| (-[WKWebView _setUseSystemAppearance:]): |
| (-[WKWebView _pageRefForTransitionToWKWebView]): |
| (-[WKWebView _canChangeFrameLayout:]): |
| (-[WKWebView _tryToSwipeWithEvent:ignoringPinnedState:]): |
| (-[WKWebView _ignoresNonWheelEvents]): |
| (-[WKWebView _setIgnoresNonWheelEvents:]): |
| (-[WKWebView _hasActiveVideoForControlsManager]): |
| (-[WKWebView _dismissContentRelativeChildWindows]): |
| (-[WKWebView _gestureEventWasNotHandledByWebCore:]): |
| (-[WKWebView _disableFrameSizeUpdates]): |
| (-[WKWebView _enableFrameSizeUpdates]): |
| (-[WKWebView _beginDeferringViewInWindowChanges]): |
| (-[WKWebView _endDeferringViewInWindowChanges]): |
| (-[WKWebView _endDeferringViewInWindowChangesSync]): |
| (-[WKWebView _fullScreenPlaceholderView]): |
| (-[WKWebView _fullScreenWindow]): |
| (-[WKWebView _underlayColor]): |
| (-[WKWebView _setUnderlayColor:]): |
| (-[WKWebView _setCustomSwipeViews:]): |
| (-[WKWebView _setCustomSwipeViewsTopContentInset:]): |
| (-[WKWebView _setDidMoveSwipeSnapshotCallback:]): |
| (-[WKWebView _setFrame:andScrollBy:]): |
| (-[WKWebView _setTotalHeightOfBanners:]): |
| (-[WKWebView _totalHeightOfBanners]): |
| (-[WKWebView _setFont:sender:]): |
| (-[WKWebView _setFontSize:sender:]): |
| (-[WKWebView _setTextColor:sender:]): |
| (-[WKWebView inputAccessoryView]): |
| (-[WKWebView inputView]): |
| (-[WKWebView _requestActivatedElementAtPosition:completionBlock:]): |
| (-[WKWebView _contentVisibleRect]): |
| (-[WKWebView _convertPointFromContentsToView:]): |
| (-[WKWebView _convertPointFromViewToContents:]): |
| (-[WKWebView didStartFormControlInteraction]): |
| (-[WKWebView didEndFormControlInteraction]): |
| (-[WKWebView _uiTextCaretRect]): |
| (-[WKWebView _accessibilityRetrieveRectsAtSelectionOffset:withText:completionHandler:]): |
| (-[WKWebView _accessibilityStoreSelection]): |
| (-[WKWebView _accessibilityClearSelection]): |
| (-[WKWebView _contentViewIsFirstResponder]): |
| (-[WKWebView _inspector]): |
| (-[WKWebView _mainFrame]): |
| (-[WKWebView _isEditable]): |
| (-[WKWebView _setEditable:]): |
| (-[WKWebView _executeEditCommand:argument:completion:]): |
| (-[WKWebView _textManipulationDelegate]): |
| (-[WKWebView _setTextManipulationDelegate:]): |
| (-[WKWebView _startTextManipulationsWithConfiguration:completion:]): |
| (-[WKWebView _completeTextManipulation:completion:]): |
| (-[WKWebView _takeFindStringFromSelection:]): |
| (+[WKWebView _stringForFind]): |
| (+[WKWebView _setStringForFind:]): |
| (-[WKWebView _remoteObjectRegistry]): |
| (-[WKWebView _handle]): |
| (-[WKWebView _observedRenderingProgressEvents]): |
| (-[WKWebView _historyDelegate]): |
| (-[WKWebView _setHistoryDelegate:]): |
| (-[WKWebView _updateMediaPlaybackControlsManager]): |
| (-[WKWebView _canTogglePictureInPicture]): |
| (-[WKWebView _isPictureInPictureActive]): |
| (-[WKWebView _togglePictureInPicture]): |
| (-[WKWebView _closeAllMediaPresentations]): |
| (-[WKWebView _stopMediaCapture]): |
| (-[WKWebView _stopAllMediaPlayback]): |
| (-[WKWebView _suspendAllMediaPlayback]): |
| (-[WKWebView _resumeAllMediaPlayback]): |
| (-[WKWebView _unreachableURL]): |
| (-[WKWebView _mainFrameURL]): |
| (-[WKWebView _loadAlternateHTMLString:baseURL:forUnreachableURL:]): |
| (-[WKWebView _loadData:MIMEType:characterEncodingName:baseURL:userData:]): |
| (-[WKWebView _loadRequest:shouldOpenExternalURLs:]): |
| (-[WKWebView _certificateChain]): |
| (-[WKWebView _committedURL]): |
| (-[WKWebView _MIMEType]): |
| (-[WKWebView _userAgent]): |
| (-[WKWebView _applicationNameForUserAgent]): |
| (-[WKWebView _setApplicationNameForUserAgent:]): |
| (-[WKWebView _customUserAgent]): |
| (-[WKWebView _setCustomUserAgent:]): |
| (-[WKWebView _setUserContentExtensionsEnabled:]): |
| (-[WKWebView _userContentExtensionsEnabled]): |
| (-[WKWebView _webProcessIdentifier]): |
| (-[WKWebView _provisionalWebProcessIdentifier]): |
| (-[WKWebView _killWebContentProcess]): |
| (-[WKWebView _safeBrowsingWarning]): |
| (-[WKWebView _reloadWithoutContentBlockers]): |
| (-[WKWebView _reloadExpiredOnly]): |
| (-[WKWebView _killWebContentProcessAndResetState]): |
| (-[WKWebView _convertRectFromRootViewCoordinates:]): |
| (-[WKWebView _convertRectToRootViewCoordinates:]): |
| (-[WKWebView _requestTextInputContextsInRect:completionHandler:]): |
| (-[WKWebView _focusTextInputContext:completionHandler:]): |
| (-[WKWebView _takePDFSnapshotWithConfiguration:completionHandler:]): |
| (-[WKWebView _setShouldSuppressFirstResponderChanges:]): |
| (-[WKWebView _retainActiveFocusedState]): |
| (-[WKWebView _becomeFirstResponderWithSelectionMovingForward:completionHandler:]): |
| (-[WKWebView _snapshotLayerContentsForBackForwardListItem:]): |
| (-[WKWebView _dataDetectionResults]): |
| (-[WKWebView _accessibilityRetrieveSpeakSelectionContent]): |
| (-[WKWebView _accessibilityDidGetSpeakSelectionContent:]): |
| (-[WKWebView inputAssistantItem]): |
| (-[WKWebView _sessionStateData]): |
| (-[WKWebView _sessionState]): |
| (-[WKWebView _sessionStateWithFilter:]): |
| (-[WKWebView _restoreFromSessionStateData:]): |
| (-[WKWebView _restoreSessionState:andNavigate:]): |
| (-[WKWebView _close]): |
| (-[WKWebView _insertAttachmentWithFilename:contentType:data:options:completion:]): |
| (-[WKWebView _insertAttachmentWithFileWrapper:contentType:options:completion:]): |
| (-[WKWebView _insertAttachmentWithFileWrapper:contentType:completion:]): |
| (-[WKWebView _attachmentForIdentifier:]): |
| (-[WKWebView _simulateDeviceOrientationChangeWithAlpha:beta:gamma:]): |
| (+[WKWebView _handlesSafeBrowsing]): |
| (-[WKWebView _showSafeBrowsingWarningWithTitle:warning:details:completionHandler:]): |
| (-[WKWebView _showSafeBrowsingWarningWithURL:title:warning:details:completionHandler:]): |
| (+[WKWebView _confirmMalwareSentinel]): |
| (+[WKWebView _visitUnsafeWebsiteSentinel]): |
| (-[WKWebView _isJITEnabled:]): |
| (-[WKWebView _evaluateJavaScriptWithoutUserGesture:completionHandler:]): |
| (-[WKWebView _updateWebsitePolicies:]): |
| (-[WKWebView _allowsRemoteInspection]): |
| (-[WKWebView _setAllowsRemoteInspection:]): |
| (-[WKWebView _remoteInspectionNameOverride]): |
| (-[WKWebView _setRemoteInspectionNameOverride:]): |
| (-[WKWebView _addsVisitedLinks]): |
| (-[WKWebView _setAddsVisitedLinks:]): |
| (-[WKWebView _networkRequestsInProgress]): |
| (layoutMilestones): |
| (-[WKWebView _setObservedRenderingProgressEvents:]): |
| (-[WKWebView _getMainResourceDataWithCompletionHandler:]): |
| (-[WKWebView _getWebArchiveDataWithCompletionHandler:]): |
| (-[WKWebView _getContentsAsStringWithCompletionHandler:]): |
| (-[WKWebView _getContentsAsAttributedStringWithCompletionHandler:]): |
| (-[WKWebView _getApplicationManifestWithCompletionHandler:]): |
| (-[WKWebView _paginationMode]): |
| (-[WKWebView _setPaginationMode:]): |
| (-[WKWebView _paginationBehavesLikeColumns]): |
| (-[WKWebView _setPaginationBehavesLikeColumns:]): |
| (-[WKWebView _pageLength]): |
| (-[WKWebView _setPageLength:]): |
| (-[WKWebView _gapBetweenPages]): |
| (-[WKWebView _setGapBetweenPages:]): |
| (-[WKWebView _paginationLineGridEnabled]): |
| (-[WKWebView _setPaginationLineGridEnabled:]): |
| (-[WKWebView _pageCount]): |
| (-[WKWebView _supportsTextZoom]): |
| (-[WKWebView _textZoomFactor]): |
| (-[WKWebView _setTextZoomFactor:]): |
| (-[WKWebView setPageZoom:]): |
| (-[WKWebView pageZoom]): |
| (-[WKWebView _pageZoomFactor]): |
| (-[WKWebView _setPageZoomFactor:]): |
| (-[WKWebView _diagnosticLoggingDelegate]): |
| (-[WKWebView _setDiagnosticLoggingDelegate:]): |
| (-[WKWebView _findDelegate]): |
| (-[WKWebView _setFindDelegate:]): |
| (toFindOptions): |
| (-[WKWebView _countStringMatches:options:maxCount:]): |
| (-[WKWebView _findString:options:maxCount:]): |
| (-[WKWebView _hideFindUI]): |
| (-[WKWebView _saveBackForwardSnapshotForItem:]): |
| (-[WKWebView _inputDelegate]): |
| (-[WKWebView _setInputDelegate:]): |
| (-[WKWebView _isDisplayingStandaloneImageDocument]): |
| (-[WKWebView _isDisplayingStandaloneMediaDocument]): |
| (-[WKWebView _isPlayingAudio]): |
| (-[WKWebView _isShowingNavigationGestureSnapshot]): |
| (-[WKWebView _layoutMode]): |
| (-[WKWebView _setLayoutMode:]): |
| (-[WKWebView _fixedLayoutSize]): |
| (-[WKWebView _setFixedLayoutSize:]): |
| (-[WKWebView _setBackgroundExtendsBeyondPage:]): |
| (-[WKWebView _backgroundExtendsBeyondPage]): |
| (-[WKWebView _viewScale]): |
| (-[WKWebView _setViewScale:]): |
| (-[WKWebView _setMinimumEffectiveDeviceWidth:]): |
| (-[WKWebView _minimumEffectiveDeviceWidth]): |
| (-[WKWebView _setScrollPerformanceDataCollectionEnabled:]): |
| (-[WKWebView _scrollPerformanceDataCollectionEnabled]): |
| (-[WKWebView _scrollPerformanceData]): |
| (-[WKWebView _allowsMediaDocumentInlinePlayback]): |
| (-[WKWebView _setAllowsMediaDocumentInlinePlayback:]): |
| (-[WKWebView _webProcessIsResponsive]): |
| (-[WKWebView _setFullscreenDelegate:]): |
| (-[WKWebView _fullscreenDelegate]): |
| (-[WKWebView _isInFullscreen]): |
| (-[WKWebView _mediaCaptureState]): |
| (-[WKWebView _setMediaCaptureEnabled:]): |
| (-[WKWebView _mediaCaptureEnabled]): |
| (-[WKWebView _setPageMuted:]): |
| (-[WKWebView _removeDataDetectedLinks:]): |
| (-[WKWebView _doAfterNextPresentationUpdate:]): |
| (-[WKWebView _doAfterNextPresentationUpdateWithoutWaitingForPainting:]): |
| (-[WKWebView _doAfterNextStablePresentationUpdate:]): |
| (-[WKWebView _detectDataWithTypes:completionHandler:]): |
| (-[WKWebView removeFromSuperview]): |
| (-[WKWebView _minimumLayoutSizeOverride]): |
| (-[WKWebView _setViewLayoutSizeOverride:]): |
| (-[WKWebView _obscuredInsets]): |
| (-[WKWebView _setObscuredInsets:]): |
| (-[WKWebView _obscuredInsetEdgesAffectedBySafeArea]): |
| (-[WKWebView _setObscuredInsetEdgesAffectedBySafeArea:]): |
| (-[WKWebView _unobscuredSafeAreaInsets]): |
| (-[WKWebView _setUnobscuredSafeAreaInsets:]): |
| (-[WKWebView _safeAreaShouldAffectObscuredInsets]): |
| (-[WKWebView _setInterfaceOrientationOverride:]): |
| (-[WKWebView _interfaceOrientationOverride]): |
| (-[WKWebView _clearInterfaceOrientationOverride]): |
| (-[WKWebView _maximumUnobscuredSizeOverride]): |
| (-[WKWebView _setMaximumUnobscuredSizeOverride:]): |
| (-[WKWebView _setAllowsViewportShrinkToFit:]): |
| (-[WKWebView _allowsViewportShrinkToFit]): |
| (-[WKWebView _beginInteractiveObscuredInsetsChange]): |
| (-[WKWebView _endInteractiveObscuredInsetsChange]): |
| (-[WKWebView _hideContentUntilNextUpdate]): |
| (-[WKWebView _beginAnimatedResizeWithUpdates:]): |
| (-[WKWebView _endAnimatedResize]): |
| (-[WKWebView _resizeWhileHidingContentWithUpdates:]): |
| (-[WKWebView _setOverlaidAccessoryViewsInset:]): |
| (-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]): |
| (-[WKWebView _overrideLayoutParametersWithMinimumLayoutSize:maximumUnobscuredSizeOverride:]): |
| (-[WKWebView _clearOverrideLayoutParameters]): |
| (viewportArgumentsFromDictionary): |
| (-[WKWebView _overrideViewportWithArguments:]): |
| (-[WKWebView _viewForFindUI]): |
| (-[WKWebView _isDisplayingPDF]): |
| (-[WKWebView _dataForDisplayedPDF]): |
| (-[WKWebView _suggestedFilenameForDisplayedPDF]): |
| (-[WKWebView _webViewPrintFormatter]): |
| (toUserInterfaceLayoutDirection): |
| (-[WKWebView setSemanticContentAttribute:]): |
| (-[WKWebView _drawsBackground]): |
| (-[WKWebView _setDrawsBackground:]): |
| (-[WKWebView _backgroundColor]): |
| (-[WKWebView _setBackgroundColor:]): |
| (-[WKWebView _setDrawsTransparentBackground:]): |
| (-[WKWebView _inspectorAttachmentView]): |
| (-[WKWebView _setInspectorAttachmentView:]): |
| (-[WKWebView _setOverlayScrollbarStyle:]): |
| (-[WKWebView _overlayScrollbarStyle]): |
| (-[WKWebView _windowOcclusionDetectionEnabled]): |
| (-[WKWebView _setWindowOcclusionDetectionEnabled:]): |
| (-[WKWebView shareSheetDidDismiss:]): |
| (-[WKWebView _setOverrideDeviceScaleFactor:]): |
| (-[WKWebView _overrideDeviceScaleFactor]): |
| (-[WKWebView _setTopContentInset:]): |
| (-[WKWebView _topContentInset]): |
| (-[WKWebView _pageExtendedBackgroundColor]): |
| (-[WKWebView _pinnedState]): |
| (-[WKWebView _rubberBandingEnabled]): |
| (-[WKWebView _setRubberBandingEnabled:]): |
| (-[WKWebView _immediateActionAnimationControllerForHitTestResult:withType:userData:]): |
| (-[WKWebView _setAutomaticallyAdjustsContentInsets:]): |
| (-[WKWebView _automaticallyAdjustsContentInsets]): |
| (-[WKWebView _minimumLayoutWidth]): |
| (-[WKWebView _setMinimumLayoutWidth:]): |
| (-[WKWebView _shouldExpandContentToViewHeightForAutoLayout]): |
| (-[WKWebView _setShouldExpandContentToViewHeightForAutoLayout:]): |
| (-[WKWebView _alwaysShowsHorizontalScroller]): |
| (-[WKWebView _setAlwaysShowsHorizontalScroller:]): |
| (-[WKWebView _alwaysShowsVerticalScroller]): |
| (-[WKWebView _setAlwaysShowsVerticalScroller:]): |
| (-[WKWebView _printOperationWithPrintInfo:]): |
| (-[WKWebView _printOperationWithPrintInfo:forFrame:]): |
| (-[WKWebView setUserInterfaceLayoutDirection:]): |
| (-[WKWebView _wantsMediaPlaybackControlsView]): |
| (-[WKWebView _setWantsMediaPlaybackControlsView:]): |
| (-[WKWebView _mediaPlaybackControlsView]): |
| (-[WKWebView _addMediaPlaybackControlsView:]): |
| (-[WKWebView _removeMediaPlaybackControlsView]): |
| (-[WKWebView _prepareForMoveToWindow:completionHandler:]): |
| (-[WKWebView _setThumbnailView:]): |
| (-[WKWebView _thumbnailView]): |
| (-[WKWebView _setIgnoresAllEvents:]): |
| (-[WKWebView _ignoresAllEvents]): |
| (-[WKWebView _spellCheckerDocumentTag]): |
| (-[WKWebView _setContinuousSpellCheckingEnabledForTesting:]): Deleted. |
| (-[WKWebView _contentsOfUserInterfaceItem:]): Deleted. |
| (-[WKWebView _setDeviceOrientationUserPermissionHandlerForTesting:]): Deleted. |
| (-[WKWebView keyboardAccessoryBarNext]): Deleted. |
| (-[WKWebView keyboardAccessoryBarPrevious]): Deleted. |
| (-[WKWebView applyAutocorrection:toString:withCompletionHandler:]): Deleted. |
| (-[WKWebView dismissFormAccessoryView]): Deleted. |
| (-[WKWebView _dismissFilePicker]): Deleted. |
| (-[WKWebView setTimePickerValueToHour:minute:]): Deleted. |
| (-[WKWebView selectFormAccessoryPickerRow:]): Deleted. |
| (-[WKWebView selectFormPopoverTitle]): Deleted. |
| (-[WKWebView textContentTypeForTesting]): Deleted. |
| (-[WKWebView formInputLabel]): Deleted. |
| (-[WKWebView _didShowContextMenu]): Deleted. |
| (-[WKWebView _didDismissContextMenu]): Deleted. |
| (-[WKWebView _inputViewBounds]): Deleted. |
| (-[WKWebView _uiTextSelectionRects]): Deleted. |
| (-[WKWebView _scrollingTreeAsText]): Deleted. |
| (-[WKWebView _stableStateOverride]): Deleted. |
| (-[WKWebView _propertiesOfLayerWithID:]): Deleted. |
| (-[WKWebView _doAfterResettingSingleTapGesture:]): Deleted. |
| (-[WKWebView _doAfterReceivingEditDragSnapshotForTesting:]): Deleted. |
| (-[WKWebView _requestControlledElementID]): Deleted. |
| (-[WKWebView _handleControlledElementIDResponse:]): Deleted. |
| (-[WKWebView _handleAcceptedCandidate:]): Deleted. |
| (-[WKWebView _didHandleAcceptedCandidate]): Deleted. |
| (-[WKWebView _didUpdateCandidateListVisibility:]): Deleted. |
| (-[WKWebView _forceRequestCandidates]): Deleted. |
| (-[WKWebView _shouldRequestCandidates]): Deleted. |
| (-[WKWebView _insertText:replacementRange:]): Deleted. |
| (-[WKWebView _candidateRect]): Deleted. |
| (-[WKWebView viewDidChangeEffectiveAppearance]): Deleted. |
| (-[WKWebView _setHeaderBannerHeight:]): Deleted. |
| (-[WKWebView _setFooterBannerHeight:]): Deleted. |
| (-[WKWebView _doAfterProcessingAllPendingMouseEvents:]): Deleted. |
| (-[WKWebView _activeMenu]): Deleted. |
| (-[WKWebView _requestActiveNowPlayingSessionInfo:]): Deleted. |
| (-[WKWebView _setPageScale:withOrigin:]): Deleted. |
| (-[WKWebView _pageScale]): Deleted. |
| (-[WKWebView _scrollingUpdatesDisabledForTesting]): Deleted. |
| (-[WKWebView _setScrollingUpdatesDisabledForTesting:]): Deleted. |
| (-[WKWebView _doAfterNextPresentationUpdateWithoutWaitingForAnimatedResizeForTesting:]): Deleted. |
| (-[WKWebView _doAfterNextVisibleContentRectUpdate:]): Deleted. |
| (-[WKWebView _disableBackForwardSnapshotVolatilityForTesting]): Deleted. |
| (-[WKWebView _dragCaretRect]): Deleted. |
| (-[WKWebView _simulateLongPressActionAtLocation:]): Deleted. |
| (-[WKWebView _simulateTextEntered:]): Deleted. |
| (-[WKWebView _dynamicUserInterfaceTraitDidChange]): Deleted. |
| (-[WKWebView _beginBackSwipeForTesting]): Deleted. |
| (-[WKWebView _completeBackSwipeForTesting]): Deleted. |
| (-[WKWebView _setDefersLoadingForTesting:]): Deleted. |
| (-[WKWebView _setShareSheetCompletesImmediatelyWithResolutionForTesting:]): Deleted. |
| (-[WKWebView _hasInspectorFrontend]): Deleted. |
| (-[WKWebView _processWillSuspendImminentlyForTesting]): Deleted. |
| (-[WKWebView _processDidResumeForTesting]): Deleted. |
| (-[WKWebView _setAssertionStateForTesting:]): Deleted. |
| (-[WKWebView _hasServiceWorkerBackgroundActivityForTesting]): Deleted. |
| (-[WKWebView _hasServiceWorkerForegroundActivityForTesting]): Deleted. |
| (-[WKWebView _denyNextUserMediaRequest]): Deleted. |
| (-[WKWebView _triggerSystemPreviewActionOnElement:document:page:]): Deleted. |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h: Added. |
| * UIProcess/API/Cocoa/WKWebViewTesting.mm: Added. |
| (-[WKWebView _setPageScale:withOrigin:]): |
| (-[WKWebView _pageScale]): |
| (-[WKWebView _setContinuousSpellCheckingEnabledForTesting:]): |
| (-[WKWebView _contentsOfUserInterfaceItem:]): |
| (-[WKWebView _requestActiveNowPlayingSessionInfo:]): |
| (-[WKWebView _scrollingUpdatesDisabledForTesting]): |
| (-[WKWebView _setScrollingUpdatesDisabledForTesting:]): |
| (-[WKWebView _doAfterNextPresentationUpdateWithoutWaitingForAnimatedResizeForTesting:]): |
| (-[WKWebView _doAfterNextVisibleContentRectUpdate:]): |
| (-[WKWebView _disableBackForwardSnapshotVolatilityForTesting]): |
| (-[WKWebView _beginBackSwipeForTesting]): |
| (-[WKWebView _completeBackSwipeForTesting]): |
| (-[WKWebView _setDefersLoadingForTesting:]): |
| (-[WKWebView _setShareSheetCompletesImmediatelyWithResolutionForTesting:]): |
| (-[WKWebView _hasInspectorFrontend]): |
| (-[WKWebView _processWillSuspendImminentlyForTesting]): |
| (-[WKWebView _processDidResumeForTesting]): |
| (-[WKWebView _setAssertionStateForTesting:]): |
| (-[WKWebView _hasServiceWorkerBackgroundActivityForTesting]): |
| (-[WKWebView _hasServiceWorkerForegroundActivityForTesting]): |
| (-[WKWebView _denyNextUserMediaRequest]): |
| * UIProcess/API/ios/WKWebViewPrivateForTestingIOS.h: Added. |
| * UIProcess/API/ios/WKWebViewTestingIOS.mm: Added. |
| (-[WKWebView keyboardAccessoryBarNext]): |
| (-[WKWebView keyboardAccessoryBarPrevious]): |
| (-[WKWebView applyAutocorrection:toString:withCompletionHandler:]): |
| (-[WKWebView dismissFormAccessoryView]): |
| (-[WKWebView _dismissFilePicker]): |
| (-[WKWebView setTimePickerValueToHour:minute:]): |
| (-[WKWebView selectFormAccessoryPickerRow:]): |
| (-[WKWebView selectFormPopoverTitle]): |
| (-[WKWebView textContentTypeForTesting]): |
| (-[WKWebView formInputLabel]): |
| (-[WKWebView _didShowContextMenu]): |
| (-[WKWebView _didDismissContextMenu]): |
| (-[WKWebView _inputViewBounds]): |
| (-[WKWebView _uiTextSelectionRects]): |
| (-[WKWebView _scrollingTreeAsText]): |
| (-[WKWebView _stableStateOverride]): |
| (-[WKWebView _propertiesOfLayerWithID:]): |
| (-[WKWebView _doAfterResettingSingleTapGesture:]): |
| (-[WKWebView _doAfterReceivingEditDragSnapshotForTesting:]): |
| (-[WKWebView _dragCaretRect]): |
| (-[WKWebView _simulateLongPressActionAtLocation:]): |
| (-[WKWebView _simulateTextEntered:]): |
| (-[WKWebView _dynamicUserInterfaceTraitDidChange]): |
| (-[WKWebView _triggerSystemPreviewActionOnElement:document:page:]): |
| (-[WKWebView _setDeviceOrientationUserPermissionHandlerForTesting:]): |
| * UIProcess/API/mac/WKWebViewPrivateForTestingMac.h: Copied from Tools/TestWebKitAPI/Tests/WebKitCocoa/InteractionDeadlockAfterCrash.mm. |
| * UIProcess/API/mac/WKWebViewTestingMac.mm: Added. |
| (-[WKWebView _requestControlledElementID]): |
| (-[WKWebView _handleControlledElementIDResponse:]): |
| (-[WKWebView _handleAcceptedCandidate:]): |
| (-[WKWebView _didHandleAcceptedCandidate]): |
| (-[WKWebView _didUpdateCandidateListVisibility:]): |
| (-[WKWebView _forceRequestCandidates]): |
| (-[WKWebView _shouldRequestCandidates]): |
| (-[WKWebView _insertText:replacementRange:]): |
| (-[WKWebView _candidateRect]): |
| (-[WKWebView viewDidChangeEffectiveAppearance]): |
| (-[WKWebView _setHeaderBannerHeight:]): |
| (-[WKWebView _setFooterBannerHeight:]): |
| (-[WKWebView _doAfterProcessingAllPendingMouseEvents:]): |
| (-[WKWebView _activeMenu]): |
| * UIProcess/Cocoa/PageClientImplCocoa.mm: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| * UIProcess/ios/WKMouseGestureRecognizer.h: |
| * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm: |
| * UIProcess/mac/PageClientImplMac.mm: |
| * UIProcess/mac/WKFullScreenWindowController.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-12-12 Per Arne Vollan <pvollan@apple.com> |
| |
| [iOS] Add sandbox telemetry to mach lookup rules in the WebContent process |
| https://bugs.webkit.org/show_bug.cgi?id=205175 |
| |
| Reviewed by Brent Fulgham. |
| |
| We have already added telemetry to many mach lookup rules, but some were missing telemetry. |
| |
| No new tests, no behavior change. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2019-12-12 Sihui Liu <sihui_liu@apple.com> |
| |
| IndexedDB: make WebIDBServer a MessageReceiver to replace WebIDBConnection |
| https://bugs.webkit.org/show_bug.cgi?id=205145 |
| |
| Reviewed by Alex Christensen. |
| |
| Work towards <rdar://problem/56908496>. Move message handling from WebIDBConnectionToClient to WebIDBServer. |
| |
| Also, WebIDBConnectionClient now is owned by WebIDBServer instead of NetworkConnectionToWebProcess. |
| |
| No behavior change. |
| |
| * CMakeLists.txt: |
| * DerivedSources-input.xcfilelist: |
| * DerivedSources-output.xcfilelist: |
| * DerivedSources.make: |
| * NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp: |
| (WebKit::WebIDBConnectionToClient::WebIDBConnectionToClient): |
| (WebKit::WebIDBConnectionToClient::messageSenderConnection const): |
| (WebKit::WebIDBConnectionToClient::idbServer): Deleted. |
| (WebKit::WebIDBConnectionToClient::disconnectedFromWebProcess): Deleted. |
| (WebKit::WebIDBConnectionToClient::deleteDatabase): Deleted. |
| (WebKit::WebIDBConnectionToClient::openDatabase): Deleted. |
| (WebKit::WebIDBConnectionToClient::abortTransaction): Deleted. |
| (WebKit::WebIDBConnectionToClient::commitTransaction): Deleted. |
| (WebKit::WebIDBConnectionToClient::didFinishHandlingVersionChangeTransaction): Deleted. |
| (WebKit::WebIDBConnectionToClient::createObjectStore): Deleted. |
| (WebKit::WebIDBConnectionToClient::deleteObjectStore): Deleted. |
| (WebKit::WebIDBConnectionToClient::renameObjectStore): Deleted. |
| (WebKit::WebIDBConnectionToClient::clearObjectStore): Deleted. |
| (WebKit::WebIDBConnectionToClient::createIndex): Deleted. |
| (WebKit::WebIDBConnectionToClient::deleteIndex): Deleted. |
| (WebKit::WebIDBConnectionToClient::renameIndex): Deleted. |
| (WebKit::WebIDBConnectionToClient::putOrAdd): Deleted. |
| (WebKit::WebIDBConnectionToClient::getRecord): Deleted. |
| (WebKit::WebIDBConnectionToClient::getAllRecords): Deleted. |
| (WebKit::WebIDBConnectionToClient::getCount): Deleted. |
| (WebKit::WebIDBConnectionToClient::deleteRecord): Deleted. |
| (WebKit::WebIDBConnectionToClient::openCursor): Deleted. |
| (WebKit::WebIDBConnectionToClient::iterateCursor): Deleted. |
| (WebKit::WebIDBConnectionToClient::establishTransaction): Deleted. |
| (WebKit::WebIDBConnectionToClient::databaseConnectionPendingClose): Deleted. |
| (WebKit::WebIDBConnectionToClient::databaseConnectionClosed): Deleted. |
| (WebKit::WebIDBConnectionToClient::abortOpenAndUpgradeNeeded): Deleted. |
| (WebKit::WebIDBConnectionToClient::didFireVersionChangeEvent): Deleted. |
| (WebKit::WebIDBConnectionToClient::openDBRequestCancelled): Deleted. |
| (WebKit::WebIDBConnectionToClient::confirmDidCloseFromServer): Deleted. |
| (WebKit::WebIDBConnectionToClient::getAllDatabaseNames): Deleted. |
| * NetworkProcess/IndexedDB/WebIDBConnectionToClient.h: |
| * NetworkProcess/IndexedDB/WebIDBServer.cpp: |
| (WebKit::WebIDBServer::getAllDatabaseNames): |
| (WebKit::WebIDBServer::addConnection): |
| (WebKit::WebIDBServer::removeConnection): |
| * NetworkProcess/IndexedDB/WebIDBServer.h: |
| * NetworkProcess/IndexedDB/WebIDBServer.messages.in: Renamed from Source/WebKit/NetworkProcess/IndexedDB/WebIDBConnectionToClient.messages.in. |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::didReceiveMessage): |
| (WebKit::NetworkConnectionToWebProcess::didClose): |
| (WebKit::NetworkConnectionToWebProcess::findNetworkActivityTracker): |
| (WebKit::NetworkConnectionToWebProcess::establishIDBConnectionToServer): Deleted. |
| NetworkConnectionToWebProcess::establishIDBConnectionToServer was used to ensure WebIDBConnectionToCilent member |
| exists in NetworkConnectionToWebProcess. Now WebIDBConnectionToCilent is created in |
| WebIDBServer::addConnection(when NetworkConnectionToWebProcess is created), so we don't need the message to do |
| initialization. |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::createNetworkConnectionToWebProcess): |
| (WebKit::NetworkProcess::connectionToWebProcessClosed): |
| * NetworkProcess/NetworkProcess.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp: |
| (WebKit::WebIDBConnectionToServer::WebIDBConnectionToServer): |
| (WebKit::WebIDBConnectionToServer::deleteDatabase): |
| (WebKit::WebIDBConnectionToServer::openDatabase): |
| (WebKit::WebIDBConnectionToServer::abortTransaction): |
| (WebKit::WebIDBConnectionToServer::commitTransaction): |
| (WebKit::WebIDBConnectionToServer::didFinishHandlingVersionChangeTransaction): |
| (WebKit::WebIDBConnectionToServer::createObjectStore): |
| (WebKit::WebIDBConnectionToServer::deleteObjectStore): |
| (WebKit::WebIDBConnectionToServer::renameObjectStore): |
| (WebKit::WebIDBConnectionToServer::clearObjectStore): |
| (WebKit::WebIDBConnectionToServer::createIndex): |
| (WebKit::WebIDBConnectionToServer::deleteIndex): |
| (WebKit::WebIDBConnectionToServer::renameIndex): |
| (WebKit::WebIDBConnectionToServer::putOrAdd): |
| (WebKit::WebIDBConnectionToServer::getRecord): |
| (WebKit::WebIDBConnectionToServer::getAllRecords): |
| (WebKit::WebIDBConnectionToServer::getCount): |
| (WebKit::WebIDBConnectionToServer::deleteRecord): |
| (WebKit::WebIDBConnectionToServer::openCursor): |
| (WebKit::WebIDBConnectionToServer::iterateCursor): |
| (WebKit::WebIDBConnectionToServer::establishTransaction): |
| (WebKit::WebIDBConnectionToServer::databaseConnectionPendingClose): |
| (WebKit::WebIDBConnectionToServer::databaseConnectionClosed): |
| (WebKit::WebIDBConnectionToServer::abortOpenAndUpgradeNeeded): |
| (WebKit::WebIDBConnectionToServer::didFireVersionChangeEvent): |
| (WebKit::WebIDBConnectionToServer::openDBRequestCancelled): |
| (WebKit::WebIDBConnectionToServer::confirmDidCloseFromServer): |
| (WebKit::WebIDBConnectionToServer::getAllDatabaseNames): |
| |
| 2019-12-12 Chris Dumez <cdumez@apple.com> |
| |
| Regression(r253394) swipe/basic-cached-back-swipe.html is timing out on iOS |
| https://bugs.webkit.org/show_bug.cgi?id=205173 |
| |
| Reviewed by Tim Horton. |
| |
| Test test was calling beginSimulatedSwipeInDirectionForTesting / completeSimulatedSwipeInDirectionForTesting |
| on the ViewGestureController. This was causing beginSwipeGesture() and endSwipeGesture() but not |
| willEndSwipeGesture(). This was causing the timeout since willEndSwipeGesture() now actually triggers the |
| load. |
| |
| This patch also gets rid of the SnapshotRemovalTracker::SwipeAnimationEnd. We don't really need it since |
| we already wait for SnapshotRemovalTracker::RepaintAfterNavigation and we won't repaint until the swipe |
| animation is over (due to the layer tree being frozen during the swipe animation). The SwipeAnimationEnd |
| was causing trouble because the provisional load may not have started yet by the time endSwipeGesture() |
| is called, which means that the call to eventOccurred(SwipeAnimationEnd) would get ignored because the |
| SnapshotRemovalTracker is still paused (it gets unpaused when the provisional load actually starts). |
| |
| * UIProcess/ViewGestureController.h: |
| * UIProcess/ios/ViewGestureControllerIOS.mm: |
| (WebKit::ViewGestureController::beginSwipeGesture): |
| (WebKit::ViewGestureController::willEndSwipeGesture): |
| (WebKit::ViewGestureController::endSwipeGesture): |
| |
| 2019-12-12 Alex Christensen <achristensen@webkit.org> |
| |
| NetworkDataTaskCocoa and NetworkSessionCocoa should use public methods instead of being friends |
| https://bugs.webkit.org/show_bug.cgi?id=204242 |
| |
| Reviewed by Chris Dumez. |
| |
| This makes them stay good abstractions, and probably could make a good meme about not having any friends. |
| |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.h: |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::applySniffingPoliciesAndBindRequestToInferfaceIfNeeded): |
| * NetworkProcess/cocoa/NetworkSessionCocoa.h: |
| |
| 2019-12-12 Per Arne Vollan <pvollan@apple.com> |
| |
| [iOS] Deny mach lookup access to content filter service in the WebContent sandbox |
| https://bugs.webkit.org/show_bug.cgi?id=205077 |
| |
| Reviewed by Brent Fulgham. |
| |
| Mach lookup access to the content filter service in the WebContent process is only needed if |
| [WebFilterEvaluator isManagedSession] evaluates to true. If this is the case, issue the needed |
| mach lookup sandbox extension to the WebContent process, where it will be consumed. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| * 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): |
| |
| 2019-12-12 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| WebDriver: tests is_element_enabled/enabled.py::test_fieldset_disabled_descendant are failing |
| https://bugs.webkit.org/show_bug.cgi?id=204700 |
| |
| Reviewed by Carlos Alberto Lopez Perez. |
| |
| Add ElementEnabled atom to easily implement is element enabled command. |
| |
| * UIProcess/Automation/atoms/ElementEnabled.js: Added. |
| (isEnabled.isDisabledAttributeSupported): |
| (isEnabled.findParent): |
| (isEnabled): |
| |
| 2019-12-11 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Unreviewed, a nit after r253366 |
| |
| * UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h: |
| Change the parameter type of the completion handler from NSData to NSString. |
| |
| 2019-12-11 Daniel Bates <dabates@apple.com> |
| |
| Remove unused Frame parameter from moveByGranularityRespectingWordBoundary() and take const VisiblePosition& |
| https://bugs.webkit.org/show_bug.cgi?id=205137 |
| |
| Reviewed by Wenson Hsieh. |
| |
| moveByGranularityRespectingWordBoundary() never makes use of the passed Frame and does not mutate the |
| passed VisiblePosition. So, do not accept the former and take the latter as a const lvalue reference. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::moveByGranularityRespectingWordBoundary): |
| (WebKit::WebPage::requestDocumentEditingContext): |
| |
| 2019-12-11 Daniel Bates <dabates@apple.com> |
| |
| UIWKDocumentContext returns 0 character rects when caret is at beginning or end of text |
| https://bugs.webkit.org/show_bug.cgi?id=205135 |
| <rdar://problem/56887914> |
| |
| Reviewed by Wenson Hsieh. |
| |
| When the specified position to move from is at the beginning or end of the text then return |
| the position of the beginning or end of the nearest word based on the specified direction. |
| |
| Currently we always return the null position. As a result we do not compute a valid |
| character range to convert to rectangles. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::moveByGranularityRespectingWordBoundary): |
| |
| 2019-12-11 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthn] Combine AuthenticatorResponse and PublicKeyCredentialData |
| https://bugs.webkit.org/show_bug.cgi?id=190783 |
| <rdar://problem/57781183> |
| |
| Reviewed by Brent Fulgham. |
| |
| Code in WebKit are changed to use AuthenticatorResponse and its subtypes. |
| |
| * UIProcess/WebAuthentication/Authenticator.h: |
| * UIProcess/WebAuthentication/AuthenticatorManager.cpp: |
| (WebKit::AuthenticatorManager::respondReceived): |
| (WebKit::AuthenticatorManager::invokePendingCompletionHandler): |
| * UIProcess/WebAuthentication/AuthenticatorManager.h: |
| * UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm: |
| (WebKit::LocalAuthenticator::continueMakeCredentialAfterAttested): |
| (WebKit::LocalAuthenticator::continueGetAssertionAfterUserConsented): |
| * UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp: |
| (WebKit::WebAuthenticatorCoordinatorProxy::handleRequest): |
| * UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.h: |
| * UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.messages.in: |
| * UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp: |
| (WebKit::CtapAuthenticator::continueMakeCredentialAfterResponseReceived const): |
| (WebKit::CtapAuthenticator::continueGetAssertionAfterResponseReceived): |
| * UIProcess/WebAuthentication/fido/U2fAuthenticator.cpp: |
| (WebKit::U2fAuthenticator::continueRegisterCommandAfterResponseReceived): |
| (WebKit::U2fAuthenticator::continueSignCommandAfterResponseReceived): |
| * WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp: |
| |
| 2019-12-11 Truitt Savell <tsavell@apple.com> |
| |
| Unreviewed, rolling out r253376. |
| |
| Broke internal builds |
| |
| Reverted changeset: |
| |
| "Move WKWebView code related to testing to new files, with |
| their own headers, and stop exposing test-only functions as |
| SPI." |
| https://bugs.webkit.org/show_bug.cgi?id=205021 |
| https://trac.webkit.org/changeset/253376 |
| |
| 2019-12-11 Chris Dumez <cdumez@apple.com> |
| |
| There should be no user-noticeable delay when closing a tab |
| https://bugs.webkit.org/show_bug.cgi?id=205069 |
| <rdar://problem/57797494> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| There should be no user-noticeable delay when closing a tab. To achieve this, use a timeout of 50ms for doing the |
| IPC handshake with the WebContent process, instead of 500ms. |
| |
| * UIProcess/WebPageProxy.cpp: |
| |
| 2019-12-11 Chris Dumez <cdumez@apple.com> |
| |
| [iOS] Issue load sooner on swipe back/forward navigation |
| https://bugs.webkit.org/show_bug.cgi?id=205127 |
| <rdar://problem/57843862> |
| |
| Reviewed by Tim Horton. |
| |
| Issue load sooner on swipe back/forward navigation on iOS. We were waiting until the end of |
| the swipe animation to issue the load. We now issue the load as soon as the user lifts the finger |
| off the screen and thus commits to navigating. This results in improved perceived performance |
| when swiping back/forward to navigate. |
| |
| * UIProcess/ViewGestureController.cpp: |
| (WebKit::ViewGestureController::didStartProvisionalOrSameDocumentLoadForMainFrame): |
| (WebKit::ViewGestureController::willEndSwipeGesture): |
| * UIProcess/ViewGestureController.h: |
| * UIProcess/ios/ViewGestureControllerIOS.mm: |
| (WebKit::ViewGestureController::beginSwipeGesture): |
| (WebKit::ViewGestureController::willEndSwipeGesture): |
| (WebKit::ViewGestureController::endSwipeGesture): |
| |
| 2019-12-11 Sihui Liu <sihui_liu@apple.com> |
| |
| IndexedDB: Introduce WebIDBServer class |
| https://bugs.webkit.org/show_bug.cgi?id=205095 |
| |
| Reviewed by Alex Christensen. |
| |
| Work towards <rdar://problem/56908496>. WebIDBServer currently is just a wrapper of WebCore::IDBServer. |
| |
| * NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp: |
| (WebKit::WebIDBConnectionToClient::idbServer): |
| * NetworkProcess/IndexedDB/WebIDBConnectionToClient.h: |
| * NetworkProcess/IndexedDB/WebIDBServer.cpp: Added. |
| (WebKit::WebIDBServer::create): |
| (WebKit::WebIDBServer::WebIDBServer): |
| (WebKit::WebIDBServer::registerConnection): |
| (WebKit::WebIDBServer::unregisterConnection): |
| (WebKit::WebIDBServer::closeAndDeleteDatabasesModifiedSince): |
| (WebKit::WebIDBServer::closeAndDeleteDatabasesForOrigins): |
| (WebKit::WebIDBServer::suspend): |
| (WebKit::WebIDBServer::resume): |
| (WebKit::WebIDBServer::openDatabase): |
| (WebKit::WebIDBServer::deleteDatabase): |
| (WebKit::WebIDBServer::abortTransaction): |
| (WebKit::WebIDBServer::commitTransaction): |
| (WebKit::WebIDBServer::didFinishHandlingVersionChangeTransaction): |
| (WebKit::WebIDBServer::createObjectStore): |
| (WebKit::WebIDBServer::deleteObjectStore): |
| (WebKit::WebIDBServer::renameObjectStore): |
| (WebKit::WebIDBServer::clearObjectStore): |
| (WebKit::WebIDBServer::createIndex): |
| (WebKit::WebIDBServer::deleteIndex): |
| (WebKit::WebIDBServer::renameIndex): |
| (WebKit::WebIDBServer::putOrAdd): |
| (WebKit::WebIDBServer::getRecord): |
| (WebKit::WebIDBServer::getAllRecords): |
| (WebKit::WebIDBServer::getCount): |
| (WebKit::WebIDBServer::deleteRecord): |
| (WebKit::WebIDBServer::openCursor): |
| (WebKit::WebIDBServer::iterateCursor): |
| (WebKit::WebIDBServer::establishTransaction): |
| (WebKit::WebIDBServer::databaseConnectionPendingClose): |
| (WebKit::WebIDBServer::databaseConnectionClosed): |
| (WebKit::WebIDBServer::abortOpenAndUpgradeNeeded): |
| (WebKit::WebIDBServer::didFireVersionChangeEvent): |
| (WebKit::WebIDBServer::openDBRequestCancelled): |
| (WebKit::WebIDBServer::getAllDatabaseNames): |
| (WebKit::WebIDBServer::confirmDidCloseFromServer): |
| * NetworkProcess/IndexedDB/WebIDBServer.h: Added. |
| * NetworkProcess/NetworkProcess.cpp: replace WebCore::IDBServer with WebIDBServer. |
| (WebKit::NetworkProcess::deleteWebsiteData): |
| (WebKit::NetworkProcess::deleteWebsiteDataForOrigins): |
| (WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains): |
| (WebKit::NetworkProcess::prepareToSuspend): |
| (WebKit::NetworkProcess::resume): |
| (WebKit::NetworkProcess::createWebIDBServer): |
| (WebKit::NetworkProcess::webIDBServer): |
| (WebKit::NetworkProcess::createIDBServer): Deleted. |
| (WebKit::NetworkProcess::idbServer): Deleted. |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/cache/CacheStorageEngine.cpp: |
| (WebKit::CacheStorage::Engine::requestSpace): |
| * Sources.txt: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-12-11 Don Olmstead <don.olmstead@sony.com> |
| |
| [CMake] Add HarfBuzz targets |
| https://bugs.webkit.org/show_bug.cgi?id=205042 |
| |
| Reviewed by Konstantin Tokarev. |
| |
| Use the HarfBuzz targets directly instead of HARFBUZZ_LIBRARIES and |
| HARFBUZZ_INCLUDE_DIRS. |
| |
| * PlatformGTK.cmake: |
| * PlatformWPE.cmake: |
| |
| 2019-12-11 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Unreviewed, a nit after r253366 |
| |
| * UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h: |
| Improve the naming of the new SPI a bit. |
| |
| 2019-12-11 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Make incremental builds faster after modifying DisplayListItems.h |
| https://bugs.webkit.org/show_bug.cgi?id=205032 |
| |
| Reviewed by Tim Horton. |
| |
| Include DisplayListItems.h directly, since these need to know about the actual display list items (and how to |
| encode or decode them). |
| |
| * GPUProcess/GPUConnectionToWebProcess.h: |
| |
| 2019-12-10 Simon Fraser <simon.fraser@apple.com> |
| |
| Move WKWebView code related to testing to new files, with their own headers, and stop exposing test-only functions as SPI. |
| https://bugs.webkit.org/show_bug.cgi?id=205021 |
| |
| Reviewed by Tim Horton. |
| |
| Stop exposing WKWebView (WKTesting) as SPI, because everyone added SPI here by mistake, and |
| internal clients kept using testing SPI. |
| |
| Instead, move testing-only functions to internal headers that are not present in the built framework, |
| and move to WKWebView (WKPrivate) properties and functions that webkit clients rely on. |
| |
| Add WKWebViewTesting/WKWebViewTestingMac/WKWebViewTestingIOS for test-only code. |
| |
| WKWebViewTesting* headers are copied to a "WebKitTestSupport" directory in the Products directory, and WTR/DRT and TestWebKitAPI |
| get header search paths to find the headers there. |
| |
| * SourcesCocoa.txt: |
| * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _internalDoAfterNextPresentationUpdate:withoutWaitingForPainting:withoutWaitingForAnimatedResize:]): |
| (-[WKWebView _prepareForImmediateActionAnimation]): |
| (-[WKWebView _cancelImmediateActionAnimation]): |
| (-[WKWebView _completeImmediateActionAnimation]): |
| (-[WKWebView _useSystemAppearance]): |
| (-[WKWebView _setUseSystemAppearance:]): |
| (-[WKWebView _pageRefForTransitionToWKWebView]): |
| (-[WKWebView _canChangeFrameLayout:]): |
| (-[WKWebView _tryToSwipeWithEvent:ignoringPinnedState:]): |
| (-[WKWebView _ignoresNonWheelEvents]): |
| (-[WKWebView _setIgnoresNonWheelEvents:]): |
| (-[WKWebView _hasActiveVideoForControlsManager]): |
| (-[WKWebView _dismissContentRelativeChildWindows]): |
| (-[WKWebView _gestureEventWasNotHandledByWebCore:]): |
| (-[WKWebView _disableFrameSizeUpdates]): |
| (-[WKWebView _enableFrameSizeUpdates]): |
| (-[WKWebView _beginDeferringViewInWindowChanges]): |
| (-[WKWebView _endDeferringViewInWindowChanges]): |
| (-[WKWebView _endDeferringViewInWindowChangesSync]): |
| (-[WKWebView _fullScreenPlaceholderView]): |
| (-[WKWebView _fullScreenWindow]): |
| (-[WKWebView _underlayColor]): |
| (-[WKWebView _setUnderlayColor:]): |
| (-[WKWebView _setCustomSwipeViews:]): |
| (-[WKWebView _setCustomSwipeViewsTopContentInset:]): |
| (-[WKWebView _setDidMoveSwipeSnapshotCallback:]): |
| (-[WKWebView _setFrame:andScrollBy:]): |
| (-[WKWebView _setTotalHeightOfBanners:]): |
| (-[WKWebView _totalHeightOfBanners]): |
| (-[WKWebView _setFont:sender:]): |
| (-[WKWebView _setFontSize:sender:]): |
| (-[WKWebView _setTextColor:sender:]): |
| (-[WKWebView inputAccessoryView]): |
| (-[WKWebView inputView]): |
| (-[WKWebView _requestActivatedElementAtPosition:completionBlock:]): |
| (-[WKWebView _contentVisibleRect]): |
| (-[WKWebView _convertPointFromContentsToView:]): |
| (-[WKWebView _convertPointFromViewToContents:]): |
| (-[WKWebView didStartFormControlInteraction]): |
| (-[WKWebView didEndFormControlInteraction]): |
| (-[WKWebView _uiTextCaretRect]): |
| (-[WKWebView _accessibilityRetrieveRectsAtSelectionOffset:withText:completionHandler:]): |
| (-[WKWebView _accessibilityStoreSelection]): |
| (-[WKWebView _accessibilityClearSelection]): |
| (-[WKWebView _contentViewIsFirstResponder]): |
| (-[WKWebView _inspector]): |
| (-[WKWebView _mainFrame]): |
| (-[WKWebView _isEditable]): |
| (-[WKWebView _setEditable:]): |
| (-[WKWebView _executeEditCommand:argument:completion:]): |
| (-[WKWebView _textManipulationDelegate]): |
| (-[WKWebView _setTextManipulationDelegate:]): |
| (-[WKWebView _startTextManipulationsWithConfiguration:completion:]): |
| (-[WKWebView _completeTextManipulation:completion:]): |
| (-[WKWebView _takeFindStringFromSelection:]): |
| (+[WKWebView _stringForFind]): |
| (+[WKWebView _setStringForFind:]): |
| (-[WKWebView _remoteObjectRegistry]): |
| (-[WKWebView _handle]): |
| (-[WKWebView _observedRenderingProgressEvents]): |
| (-[WKWebView _historyDelegate]): |
| (-[WKWebView _setHistoryDelegate:]): |
| (-[WKWebView _updateMediaPlaybackControlsManager]): |
| (-[WKWebView _canTogglePictureInPicture]): |
| (-[WKWebView _isPictureInPictureActive]): |
| (-[WKWebView _togglePictureInPicture]): |
| (-[WKWebView _closeAllMediaPresentations]): |
| (-[WKWebView _stopMediaCapture]): |
| (-[WKWebView _stopAllMediaPlayback]): |
| (-[WKWebView _suspendAllMediaPlayback]): |
| (-[WKWebView _resumeAllMediaPlayback]): |
| (-[WKWebView _unreachableURL]): |
| (-[WKWebView _mainFrameURL]): |
| (-[WKWebView _loadAlternateHTMLString:baseURL:forUnreachableURL:]): |
| (-[WKWebView _loadData:MIMEType:characterEncodingName:baseURL:userData:]): |
| (-[WKWebView _loadRequest:shouldOpenExternalURLs:]): |
| (-[WKWebView _certificateChain]): |
| (-[WKWebView _committedURL]): |
| (-[WKWebView _MIMEType]): |
| (-[WKWebView _userAgent]): |
| (-[WKWebView _applicationNameForUserAgent]): |
| (-[WKWebView _setApplicationNameForUserAgent:]): |
| (-[WKWebView _customUserAgent]): |
| (-[WKWebView _setCustomUserAgent:]): |
| (-[WKWebView _setUserContentExtensionsEnabled:]): |
| (-[WKWebView _userContentExtensionsEnabled]): |
| (-[WKWebView _webProcessIdentifier]): |
| (-[WKWebView _provisionalWebProcessIdentifier]): |
| (-[WKWebView _killWebContentProcess]): |
| (-[WKWebView _safeBrowsingWarning]): |
| (-[WKWebView _reloadWithoutContentBlockers]): |
| (-[WKWebView _reloadExpiredOnly]): |
| (-[WKWebView _killWebContentProcessAndResetState]): |
| (-[WKWebView _convertRectFromRootViewCoordinates:]): |
| (-[WKWebView _convertRectToRootViewCoordinates:]): |
| (-[WKWebView _requestTextInputContextsInRect:completionHandler:]): |
| (-[WKWebView _focusTextInputContext:completionHandler:]): |
| (-[WKWebView _takePDFSnapshotWithConfiguration:completionHandler:]): |
| (-[WKWebView _setShouldSuppressFirstResponderChanges:]): |
| (-[WKWebView _retainActiveFocusedState]): |
| (-[WKWebView _becomeFirstResponderWithSelectionMovingForward:completionHandler:]): |
| (-[WKWebView _snapshotLayerContentsForBackForwardListItem:]): |
| (-[WKWebView _dataDetectionResults]): |
| (-[WKWebView _accessibilityRetrieveSpeakSelectionContent]): |
| (-[WKWebView _accessibilityDidGetSpeakSelectionContent:]): |
| (-[WKWebView inputAssistantItem]): |
| (-[WKWebView _sessionStateData]): |
| (-[WKWebView _sessionState]): |
| (-[WKWebView _sessionStateWithFilter:]): |
| (-[WKWebView _restoreFromSessionStateData:]): |
| (-[WKWebView _restoreSessionState:andNavigate:]): |
| (-[WKWebView _close]): |
| (-[WKWebView _insertAttachmentWithFilename:contentType:data:options:completion:]): |
| (-[WKWebView _insertAttachmentWithFileWrapper:contentType:options:completion:]): |
| (-[WKWebView _insertAttachmentWithFileWrapper:contentType:completion:]): |
| (-[WKWebView _attachmentForIdentifier:]): |
| (-[WKWebView _simulateDeviceOrientationChangeWithAlpha:beta:gamma:]): |
| (+[WKWebView _handlesSafeBrowsing]): |
| (-[WKWebView _showSafeBrowsingWarningWithTitle:warning:details:completionHandler:]): |
| (-[WKWebView _showSafeBrowsingWarningWithURL:title:warning:details:completionHandler:]): |
| (+[WKWebView _confirmMalwareSentinel]): |
| (+[WKWebView _visitUnsafeWebsiteSentinel]): |
| (-[WKWebView _isJITEnabled:]): |
| (-[WKWebView _evaluateJavaScriptWithoutUserGesture:completionHandler:]): |
| (-[WKWebView _updateWebsitePolicies:]): |
| (-[WKWebView _allowsRemoteInspection]): |
| (-[WKWebView _setAllowsRemoteInspection:]): |
| (-[WKWebView _remoteInspectionNameOverride]): |
| (-[WKWebView _setRemoteInspectionNameOverride:]): |
| (-[WKWebView _addsVisitedLinks]): |
| (-[WKWebView _setAddsVisitedLinks:]): |
| (-[WKWebView _networkRequestsInProgress]): |
| (layoutMilestones): |
| (-[WKWebView _setObservedRenderingProgressEvents:]): |
| (-[WKWebView _getMainResourceDataWithCompletionHandler:]): |
| (-[WKWebView _getWebArchiveDataWithCompletionHandler:]): |
| (-[WKWebView _getContentsAsStringWithCompletionHandler:]): |
| (-[WKWebView _getContentsAsAttributedStringWithCompletionHandler:]): |
| (-[WKWebView _getApplicationManifestWithCompletionHandler:]): |
| (-[WKWebView _paginationMode]): |
| (-[WKWebView _setPaginationMode:]): |
| (-[WKWebView _paginationBehavesLikeColumns]): |
| (-[WKWebView _setPaginationBehavesLikeColumns:]): |
| (-[WKWebView _pageLength]): |
| (-[WKWebView _setPageLength:]): |
| (-[WKWebView _gapBetweenPages]): |
| (-[WKWebView _setGapBetweenPages:]): |
| (-[WKWebView _paginationLineGridEnabled]): |
| (-[WKWebView _setPaginationLineGridEnabled:]): |
| (-[WKWebView _pageCount]): |
| (-[WKWebView _supportsTextZoom]): |
| (-[WKWebView _textZoomFactor]): |
| (-[WKWebView _setTextZoomFactor:]): |
| (-[WKWebView setPageZoom:]): |
| (-[WKWebView pageZoom]): |
| (-[WKWebView _pageZoomFactor]): |
| (-[WKWebView _setPageZoomFactor:]): |
| (-[WKWebView _diagnosticLoggingDelegate]): |
| (-[WKWebView _setDiagnosticLoggingDelegate:]): |
| (-[WKWebView _findDelegate]): |
| (-[WKWebView _setFindDelegate:]): |
| (toFindOptions): |
| (-[WKWebView _countStringMatches:options:maxCount:]): |
| (-[WKWebView _findString:options:maxCount:]): |
| (-[WKWebView _hideFindUI]): |
| (-[WKWebView _saveBackForwardSnapshotForItem:]): |
| (-[WKWebView _inputDelegate]): |
| (-[WKWebView _setInputDelegate:]): |
| (-[WKWebView _isDisplayingStandaloneImageDocument]): |
| (-[WKWebView _isDisplayingStandaloneMediaDocument]): |
| (-[WKWebView _isPlayingAudio]): |
| (-[WKWebView _isShowingNavigationGestureSnapshot]): |
| (-[WKWebView _layoutMode]): |
| (-[WKWebView _setLayoutMode:]): |
| (-[WKWebView _fixedLayoutSize]): |
| (-[WKWebView _setFixedLayoutSize:]): |
| (-[WKWebView _setBackgroundExtendsBeyondPage:]): |
| (-[WKWebView _backgroundExtendsBeyondPage]): |
| (-[WKWebView _viewScale]): |
| (-[WKWebView _setViewScale:]): |
| (-[WKWebView _setMinimumEffectiveDeviceWidth:]): |
| (-[WKWebView _minimumEffectiveDeviceWidth]): |
| (-[WKWebView _setScrollPerformanceDataCollectionEnabled:]): |
| (-[WKWebView _scrollPerformanceDataCollectionEnabled]): |
| (-[WKWebView _scrollPerformanceData]): |
| (-[WKWebView _allowsMediaDocumentInlinePlayback]): |
| (-[WKWebView _setAllowsMediaDocumentInlinePlayback:]): |
| (-[WKWebView _webProcessIsResponsive]): |
| (-[WKWebView _setFullscreenDelegate:]): |
| (-[WKWebView _fullscreenDelegate]): |
| (-[WKWebView _isInFullscreen]): |
| (-[WKWebView _mediaCaptureState]): |
| (-[WKWebView _setMediaCaptureEnabled:]): |
| (-[WKWebView _mediaCaptureEnabled]): |
| (-[WKWebView _setPageMuted:]): |
| (-[WKWebView _removeDataDetectedLinks:]): |
| (-[WKWebView _doAfterNextPresentationUpdate:]): |
| (-[WKWebView _doAfterNextPresentationUpdateWithoutWaitingForPainting:]): |
| (-[WKWebView _doAfterNextStablePresentationUpdate:]): |
| (-[WKWebView _detectDataWithTypes:completionHandler:]): |
| (-[WKWebView removeFromSuperview]): |
| (-[WKWebView _minimumLayoutSizeOverride]): |
| (-[WKWebView _setViewLayoutSizeOverride:]): |
| (-[WKWebView _obscuredInsets]): |
| (-[WKWebView _setObscuredInsets:]): |
| (-[WKWebView _obscuredInsetEdgesAffectedBySafeArea]): |
| (-[WKWebView _setObscuredInsetEdgesAffectedBySafeArea:]): |
| (-[WKWebView _unobscuredSafeAreaInsets]): |
| (-[WKWebView _setUnobscuredSafeAreaInsets:]): |
| (-[WKWebView _safeAreaShouldAffectObscuredInsets]): |
| (-[WKWebView _setInterfaceOrientationOverride:]): |
| (-[WKWebView _interfaceOrientationOverride]): |
| (-[WKWebView _clearInterfaceOrientationOverride]): |
| (-[WKWebView _maximumUnobscuredSizeOverride]): |
| (-[WKWebView _setMaximumUnobscuredSizeOverride:]): |
| (-[WKWebView _setAllowsViewportShrinkToFit:]): |
| (-[WKWebView _allowsViewportShrinkToFit]): |
| (-[WKWebView _beginInteractiveObscuredInsetsChange]): |
| (-[WKWebView _endInteractiveObscuredInsetsChange]): |
| (-[WKWebView _hideContentUntilNextUpdate]): |
| (-[WKWebView _beginAnimatedResizeWithUpdates:]): |
| (-[WKWebView _endAnimatedResize]): |
| (-[WKWebView _resizeWhileHidingContentWithUpdates:]): |
| (-[WKWebView _setOverlaidAccessoryViewsInset:]): |
| (-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]): |
| (-[WKWebView _overrideLayoutParametersWithMinimumLayoutSize:maximumUnobscuredSizeOverride:]): |
| (-[WKWebView _clearOverrideLayoutParameters]): |
| (viewportArgumentsFromDictionary): |
| (-[WKWebView _overrideViewportWithArguments:]): |
| (-[WKWebView _viewForFindUI]): |
| (-[WKWebView _isDisplayingPDF]): |
| (-[WKWebView _dataForDisplayedPDF]): |
| (-[WKWebView _suggestedFilenameForDisplayedPDF]): |
| (-[WKWebView _webViewPrintFormatter]): |
| (toUserInterfaceLayoutDirection): |
| (-[WKWebView setSemanticContentAttribute:]): |
| (-[WKWebView _drawsBackground]): |
| (-[WKWebView _setDrawsBackground:]): |
| (-[WKWebView _backgroundColor]): |
| (-[WKWebView _setBackgroundColor:]): |
| (-[WKWebView _setDrawsTransparentBackground:]): |
| (-[WKWebView _inspectorAttachmentView]): |
| (-[WKWebView _setInspectorAttachmentView:]): |
| (-[WKWebView _setOverlayScrollbarStyle:]): |
| (-[WKWebView _overlayScrollbarStyle]): |
| (-[WKWebView _windowOcclusionDetectionEnabled]): |
| (-[WKWebView _setWindowOcclusionDetectionEnabled:]): |
| (-[WKWebView shareSheetDidDismiss:]): |
| (-[WKWebView _setOverrideDeviceScaleFactor:]): |
| (-[WKWebView _overrideDeviceScaleFactor]): |
| (-[WKWebView _setTopContentInset:]): |
| (-[WKWebView _topContentInset]): |
| (-[WKWebView _pageExtendedBackgroundColor]): |
| (-[WKWebView _pinnedState]): |
| (-[WKWebView _rubberBandingEnabled]): |
| (-[WKWebView _setRubberBandingEnabled:]): |
| (-[WKWebView _immediateActionAnimationControllerForHitTestResult:withType:userData:]): |
| (-[WKWebView _setAutomaticallyAdjustsContentInsets:]): |
| (-[WKWebView _automaticallyAdjustsContentInsets]): |
| (-[WKWebView _minimumLayoutWidth]): |
| (-[WKWebView _setMinimumLayoutWidth:]): |
| (-[WKWebView _shouldExpandContentToViewHeightForAutoLayout]): |
| (-[WKWebView _setShouldExpandContentToViewHeightForAutoLayout:]): |
| (-[WKWebView _alwaysShowsHorizontalScroller]): |
| (-[WKWebView _setAlwaysShowsHorizontalScroller:]): |
| (-[WKWebView _alwaysShowsVerticalScroller]): |
| (-[WKWebView _setAlwaysShowsVerticalScroller:]): |
| (-[WKWebView _printOperationWithPrintInfo:]): |
| (-[WKWebView _printOperationWithPrintInfo:forFrame:]): |
| (-[WKWebView setUserInterfaceLayoutDirection:]): |
| (-[WKWebView _wantsMediaPlaybackControlsView]): |
| (-[WKWebView _setWantsMediaPlaybackControlsView:]): |
| (-[WKWebView _mediaPlaybackControlsView]): |
| (-[WKWebView _addMediaPlaybackControlsView:]): |
| (-[WKWebView _removeMediaPlaybackControlsView]): |
| (-[WKWebView _prepareForMoveToWindow:completionHandler:]): |
| (-[WKWebView _setThumbnailView:]): |
| (-[WKWebView _thumbnailView]): |
| (-[WKWebView _setIgnoresAllEvents:]): |
| (-[WKWebView _ignoresAllEvents]): |
| (-[WKWebView _spellCheckerDocumentTag]): |
| (-[WKWebView _setContinuousSpellCheckingEnabledForTesting:]): Deleted. |
| (-[WKWebView _contentsOfUserInterfaceItem:]): Deleted. |
| (-[WKWebView keyboardAccessoryBarNext]): Deleted. |
| (-[WKWebView keyboardAccessoryBarPrevious]): Deleted. |
| (-[WKWebView applyAutocorrection:toString:withCompletionHandler:]): Deleted. |
| (-[WKWebView dismissFormAccessoryView]): Deleted. |
| (-[WKWebView _dismissFilePicker]): Deleted. |
| (-[WKWebView setTimePickerValueToHour:minute:]): Deleted. |
| (-[WKWebView selectFormAccessoryPickerRow:]): Deleted. |
| (-[WKWebView selectFormPopoverTitle]): Deleted. |
| (-[WKWebView textContentTypeForTesting]): Deleted. |
| (-[WKWebView formInputLabel]): Deleted. |
| (-[WKWebView _didShowContextMenu]): Deleted. |
| (-[WKWebView _didDismissContextMenu]): Deleted. |
| (-[WKWebView _inputViewBounds]): Deleted. |
| (-[WKWebView _uiTextSelectionRects]): Deleted. |
| (-[WKWebView _scrollingTreeAsText]): Deleted. |
| (-[WKWebView _stableStateOverride]): Deleted. |
| (-[WKWebView _propertiesOfLayerWithID:]): Deleted. |
| (-[WKWebView _doAfterResettingSingleTapGesture:]): Deleted. |
| (-[WKWebView _doAfterReceivingEditDragSnapshotForTesting:]): Deleted. |
| (-[WKWebView _requestControlledElementID]): Deleted. |
| (-[WKWebView _handleControlledElementIDResponse:]): Deleted. |
| (-[WKWebView _handleAcceptedCandidate:]): Deleted. |
| (-[WKWebView _didHandleAcceptedCandidate]): Deleted. |
| (-[WKWebView _didUpdateCandidateListVisibility:]): Deleted. |
| (-[WKWebView _forceRequestCandidates]): Deleted. |
| (-[WKWebView _shouldRequestCandidates]): Deleted. |
| (-[WKWebView _insertText:replacementRange:]): Deleted. |
| (-[WKWebView _candidateRect]): Deleted. |
| (-[WKWebView viewDidChangeEffectiveAppearance]): Deleted. |
| (-[WKWebView _setHeaderBannerHeight:]): Deleted. |
| (-[WKWebView _setFooterBannerHeight:]): Deleted. |
| (-[WKWebView _doAfterProcessingAllPendingMouseEvents:]): Deleted. |
| (-[WKWebView _activeMenu]): Deleted. |
| (-[WKWebView _requestActiveNowPlayingSessionInfo:]): Deleted. |
| (-[WKWebView _setPageScale:withOrigin:]): Deleted. |
| (-[WKWebView _pageScale]): Deleted. |
| (-[WKWebView _scrollingUpdatesDisabledForTesting]): Deleted. |
| (-[WKWebView _setScrollingUpdatesDisabledForTesting:]): Deleted. |
| (-[WKWebView _doAfterNextPresentationUpdateWithoutWaitingForAnimatedResizeForTesting:]): Deleted. |
| (-[WKWebView _doAfterNextVisibleContentRectUpdate:]): Deleted. |
| (-[WKWebView _disableBackForwardSnapshotVolatilityForTesting]): Deleted. |
| (-[WKWebView _dragCaretRect]): Deleted. |
| (-[WKWebView _simulateLongPressActionAtLocation:]): Deleted. |
| (-[WKWebView _simulateTextEntered:]): Deleted. |
| (-[WKWebView _dynamicUserInterfaceTraitDidChange]): Deleted. |
| (-[WKWebView _beginBackSwipeForTesting]): Deleted. |
| (-[WKWebView _completeBackSwipeForTesting]): Deleted. |
| (-[WKWebView _setDefersLoadingForTesting:]): Deleted. |
| (-[WKWebView _setShareSheetCompletesImmediatelyWithResolutionForTesting:]): Deleted. |
| (-[WKWebView _hasInspectorFrontend]): Deleted. |
| (-[WKWebView _processWillSuspendImminentlyForTesting]): Deleted. |
| (-[WKWebView _processDidResumeForTesting]): Deleted. |
| (-[WKWebView _setAssertionStateForTesting:]): Deleted. |
| (-[WKWebView _hasServiceWorkerBackgroundActivityForTesting]): Deleted. |
| (-[WKWebView _hasServiceWorkerForegroundActivityForTesting]): Deleted. |
| (-[WKWebView _denyNextUserMediaRequest]): Deleted. |
| (-[WKWebView _triggerSystemPreviewActionOnElement:document:page:]): Deleted. |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/API/Cocoa/WKWebViewTesting.h: Added. |
| * UIProcess/API/Cocoa/WKWebViewTesting.mm: Added. |
| (-[WKWebView _setPageScale:withOrigin:]): |
| (-[WKWebView _pageScale]): |
| (-[WKWebView _setContinuousSpellCheckingEnabledForTesting:]): |
| (-[WKWebView _contentsOfUserInterfaceItem:]): |
| (-[WKWebView _requestActiveNowPlayingSessionInfo:]): |
| (-[WKWebView _scrollingUpdatesDisabledForTesting]): |
| (-[WKWebView _setScrollingUpdatesDisabledForTesting:]): |
| (-[WKWebView _doAfterNextPresentationUpdateWithoutWaitingForAnimatedResizeForTesting:]): |
| (-[WKWebView _doAfterNextVisibleContentRectUpdate:]): |
| (-[WKWebView _disableBackForwardSnapshotVolatilityForTesting]): |
| (-[WKWebView _beginBackSwipeForTesting]): |
| (-[WKWebView _completeBackSwipeForTesting]): |
| (-[WKWebView _setDefersLoadingForTesting:]): |
| (-[WKWebView _setShareSheetCompletesImmediatelyWithResolutionForTesting:]): |
| (-[WKWebView _hasInspectorFrontend]): |
| (-[WKWebView _processWillSuspendImminentlyForTesting]): |
| (-[WKWebView _processDidResumeForTesting]): |
| (-[WKWebView _setAssertionStateForTesting:]): |
| (-[WKWebView _hasServiceWorkerBackgroundActivityForTesting]): |
| (-[WKWebView _hasServiceWorkerForegroundActivityForTesting]): |
| (-[WKWebView _denyNextUserMediaRequest]): |
| * UIProcess/API/ios/WKWebViewTestingIOS.h: Added. |
| * UIProcess/API/ios/WKWebViewTestingIOS.mm: Added. |
| (-[WKWebView keyboardAccessoryBarNext]): |
| (-[WKWebView keyboardAccessoryBarPrevious]): |
| (-[WKWebView applyAutocorrection:toString:withCompletionHandler:]): |
| (-[WKWebView dismissFormAccessoryView]): |
| (-[WKWebView _dismissFilePicker]): |
| (-[WKWebView setTimePickerValueToHour:minute:]): |
| (-[WKWebView selectFormAccessoryPickerRow:]): |
| (-[WKWebView selectFormPopoverTitle]): |
| (-[WKWebView textContentTypeForTesting]): |
| (-[WKWebView formInputLabel]): |
| (-[WKWebView _didShowContextMenu]): |
| (-[WKWebView _didDismissContextMenu]): |
| (-[WKWebView _inputViewBounds]): |
| (-[WKWebView _uiTextSelectionRects]): |
| (-[WKWebView _scrollingTreeAsText]): |
| (-[WKWebView _stableStateOverride]): |
| (-[WKWebView _propertiesOfLayerWithID:]): |
| (-[WKWebView _doAfterResettingSingleTapGesture:]): |
| (-[WKWebView _doAfterReceivingEditDragSnapshotForTesting:]): |
| (-[WKWebView _dragCaretRect]): |
| (-[WKWebView _simulateLongPressActionAtLocation:]): |
| (-[WKWebView _simulateTextEntered:]): |
| (-[WKWebView _dynamicUserInterfaceTraitDidChange]): |
| (-[WKWebView _triggerSystemPreviewActionOnElement:document:page:]): |
| * UIProcess/API/mac/WKWebViewTestingMac.h: Copied from Tools/TestWebKitAPI/Tests/WebKitCocoa/InteractionDeadlockAfterCrash.mm. |
| * UIProcess/API/mac/WKWebViewTestingMac.mm: Added. |
| (-[WKWebView _requestControlledElementID]): |
| (-[WKWebView _handleControlledElementIDResponse:]): |
| (-[WKWebView _handleAcceptedCandidate:]): |
| (-[WKWebView _didHandleAcceptedCandidate]): |
| (-[WKWebView _didUpdateCandidateListVisibility:]): |
| (-[WKWebView _forceRequestCandidates]): |
| (-[WKWebView _shouldRequestCandidates]): |
| (-[WKWebView _insertText:replacementRange:]): |
| (-[WKWebView _candidateRect]): |
| (-[WKWebView viewDidChangeEffectiveAppearance]): |
| (-[WKWebView _setHeaderBannerHeight:]): |
| (-[WKWebView _setFooterBannerHeight:]): |
| (-[WKWebView _doAfterProcessingAllPendingMouseEvents:]): |
| (-[WKWebView _activeMenu]): |
| * UIProcess/Cocoa/PageClientImplCocoa.mm: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| * UIProcess/ios/WKMouseGestureRecognizer.h: |
| * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm: |
| * UIProcess/mac/PageClientImplMac.mm: |
| * UIProcess/mac/WKFullScreenWindowController.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-12-11 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed iOS build fix after r253343. |
| |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| |
| 2019-12-11 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthn] Implement dummy _WKWebAuthenticationPanel SPIs for CTAP PIN support |
| https://bugs.webkit.org/show_bug.cgi?id=205100 |
| <rdar://problem/57822953> |
| |
| Reviewed by Brent Fulgham. |
| |
| This patch implements dummy _WKWebAuthenticationPanel SPIs for CTAP PIN support. |
| CTAP PIN is a way for authenticators to be able to do user verification by asking |
| clients/users for a pre-set PIN. Here is the spec: |
| https://fidoalliance.org/specs/fido-v2.0-ps-20190130/fido-client-to-authenticator-protocol-v2.0-ps-20190130.html#authenticatorClientPIN |
| In order to support this, WebKit needs to interacts with UIClients to ask users |
| to enter the PINs. Therefore, a new set of SPI is needed. |
| |
| Here is the proposed SPI for WebKit to ask Safari for the PIN: |
| @protocol _WKWebAuthenticationPanelDelegate <NSObject> |
| @optional |
| ... |
| - (void)panel:(_WKWebAuthenticationPanel *)panel requestPINWithRetries:(NSUInteger)retries completionHandler:(void (^)(NSData *))completionHandler WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA)); |
| ... |
| @end |
| |
| Retries is the number of retires before the authenticator getting blocked, which |
| is a state that only factory reset can save the authenticator. UIClients can have |
| a threshold and WARN users loudly when the threshold is reached. |
| A byte array that is less than or equal to 63 bytes is expected to return to the |
| passed completion handler. Otherwise, the completion handler will bail out. |
| |
| For error handling: |
| typedef NS_ENUM(NSInteger, _WKWebAuthenticationPanelUpdate) { |
| ... |
| _WKWebAuthenticationPanelUpdatePINBlocked, |
| _WKWebAuthenticationPanelUpdatePINAuthBlocked, |
| _WKWebAuthenticationPanelUpdatePINInvalid, |
| } WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA)); |
| |
| The above three error will be passed to UIClients via updateWebAuthenticationPanel SPI. |
| _WKWebAuthenticationPanelUpdatePINBlocked means the authenticator is dead. A factory |
| reset is needed. |
| _WKWebAuthenticationPanelUpdatePINAuthBlocked means 3 consecutive mismatches. The |
| authenticator will need to be reconnected. |
| _WKWebAuthenticationPanelUpdatePINInvalid means a wrong PIN is provided. This will |
| often be followed with another requestPINWithRetries delegate call. |
| Here is the spec for the error: |
| https://fidoalliance.org/specs/fido-v2.0-ps-20190130/fido-client-to-authenticator-protocol-v2.0-ps-20190130.html#using-pinToken-in-authenticatorMakeCredential. |
| |
| * UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h: |
| |
| 2019-12-10 Chris Dumez <cdumez@apple.com> |
| |
| [macOS] Issue load sooner on swipe back/forward navigation |
| https://bugs.webkit.org/show_bug.cgi?id=205087 |
| |
| Reviewed by Tim Horton. |
| |
| Issue load sooner on swipe back/forward navigation on macOS. We were waiting until the end of |
| the swipe animation to issue the load. We now issue the load as soon as the user lifts the finger |
| off the screen and thus commits to navigating. This results in improved perceived performance |
| when swiping back/forward to navigate. |
| |
| This patch does not take care of iOS because the ViewGestureController logic is different on that |
| platform. There is no reason we shouldn't be able to do the same optimization on iOS too though. |
| |
| To achieve the behavior change on macOS, the following was done: |
| - Issue the load in ViewGestureController::willEndSwipeGesture() instead of |
| ViewGestureController::endSwipeGesture(). |
| - Add a new SnapshotRemovalTracker::Event::SwipeAnimationEnd event and wait for this event before |
| taking away the snapshot. This makes sure we do not take away the swipe snapshot until the swipe |
| animation is actually over (now that we start the navigation during the animation, instead of |
| after). |
| - To make sure that layer being swiped away stays the same until the end of the animation, I added |
| a new SwipeAnimation reason for freezing the layer tree. At the beginning of the animation, the |
| UIProcess sends a FreezeLayerTreeDueToSwipeAnimation IPC to the WebProcess to add this layer tree |
| freeze reason. At the end of the animation, the UIProcess sends the UnfreezeLayerTreeDueToSwipeAnimation |
| IPC to remove this freeze reason. Without this change, the layer being swiped away would sometimes |
| start showing the destination site being loaded before the end of the animation. On cross-process |
| navigation, not freezing the layer tree would cause the swipe animation to get interrupted when |
| we have something to paint in the new process before the end of the swipe animation. |
| |
| * UIProcess/ProvisionalPageProxy.cpp: |
| (WebKit::ProvisionalPageProxy::initializeWebPage): |
| * UIProcess/ViewGestureController.cpp: |
| (WebKit::ViewGestureController::SnapshotRemovalTracker::eventsDescription): |
| (WebKit::ViewGestureController::willEndSwipeGesture): |
| (WebKit::ViewGestureController::endSwipeGesture): |
| * UIProcess/ViewGestureController.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::commitProvisionalPage): |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::isLayerTreeFrozenDueToSwipeAnimation const): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::freezeLayerTreeDueToSwipeAnimation): |
| (WebKit::WebPage::unfreezeLayerTreeDueToSwipeAnimation): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2019-12-10 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [Win] Fix MSVC warning C4701: potentially uninitialized local variable 'x' used |
| https://bugs.webkit.org/show_bug.cgi?id=205052 |
| |
| Reviewed by Don Olmstead. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: |
| * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ResourceLoadStatisticsMemoryStore::shouldRemoveAllButCookiesFor const): |
| * NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp: |
| (WebKit::ResourceLoadStatisticsStore::hasStatisticsExpired const): |
| Zero-initialized local variables. |
| |
| 2019-12-10 Per Arne Vollan <pvollan@apple.com> |
| |
| [iOS] Calls to the device motion API should be done in the UI process |
| https://bugs.webkit.org/show_bug.cgi?id=204770 |
| |
| Reviewed by Brent Fulgham. |
| |
| The class WebDeviceOrientationUpdateProviderProxy will handle messages to start and stop updating device motion |
| in the UI process. Also, add a message to update the device motion in the WebContent process. In the UI process, |
| the device motion API is called through the already existing WebCoreMotionManager class. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| * UIProcess/ios/WebDeviceOrientationUpdateProviderProxy.h: |
| * UIProcess/ios/WebDeviceOrientationUpdateProviderProxy.messages.in: |
| * UIProcess/ios/WebDeviceOrientationUpdateProviderProxy.mm: |
| (WebKit::WebDeviceOrientationUpdateProviderProxy::startUpdatingDeviceMotion): |
| (WebKit::WebDeviceOrientationUpdateProviderProxy::stopUpdatingDeviceMotion): |
| (WebKit::WebDeviceOrientationUpdateProviderProxy::motionChanged): |
| * WebProcess/WebCoreSupport/WebDeviceOrientationUpdateProvider.cpp: |
| (WebKit::WebDeviceOrientationUpdateProvider::startUpdatingDeviceOrientation): |
| (WebKit::WebDeviceOrientationUpdateProvider::stopUpdatingDeviceOrientation): |
| (WebKit::WebDeviceOrientationUpdateProvider::startUpdatingDeviceMotion): |
| (WebKit::WebDeviceOrientationUpdateProvider::stopUpdatingDeviceMotion): |
| (WebKit::WebDeviceOrientationUpdateProvider::deviceOrientationChanged): |
| (WebKit::WebDeviceOrientationUpdateProvider::deviceMotionChanged): |
| (WebKit::WebDeviceOrientationUpdateProvider::startUpdating): Deleted. |
| (WebKit::WebDeviceOrientationUpdateProvider::stopUpdating): Deleted. |
| * WebProcess/WebCoreSupport/WebDeviceOrientationUpdateProvider.h: |
| * WebProcess/WebCoreSupport/WebDeviceOrientationUpdateProvider.messages.in: |
| |
| 2019-12-10 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, drop debug assertion in InspectorTargetProxy::didCommitProvisionalTarget() that is hitting after r253337 |
| |
| r253337 causes the ProvisionalPageProxy to get destroyed a little bit early, before didCommitProvisionalTarget() |
| is called. didCommitProvisionalTarget() had an assertion that isProvisional() returns true, which merely checked |
| that the ProvisionalPageProxy is still alive before nulling out its WeakPtr. |
| |
| * UIProcess/InspectorTargetProxy.cpp: |
| (WebKit::InspectorTargetProxy::didCommitProvisionalTarget): |
| |
| 2019-12-10 Per Arne Vollan <pvollan@apple.com> |
| |
| [iOS] Deny mach lookup access to network extension services in the WebContent sandbox |
| https://bugs.webkit.org/show_bug.cgi?id=203929 |
| |
| Reviewed by Brent Fulgham. |
| |
| Mach lookup access to network extension services in the WebContent process is only needed if |
| NEFilterSource.filterRequired is true. If this is the case, issue the needed mach lookup |
| sandbox extensions to the WebContent process, where they will be consumed. Eventually, all |
| the content filtering code should be moved to the Networking process, but since this is a |
| bigger undertaking, we can issue extensions in the meantime to strengthen the sandbox. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| * 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): |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2019-12-10 Chris Dumez <cdumez@apple.com> |
| |
| Leverage the fact that WebPageProxy subclasses IPC::MessageSender to simplify IPC sending code |
| https://bugs.webkit.org/show_bug.cgi?id=205065 |
| |
| Reviewed by Alex Christensen. |
| |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetPageLoaderClient): |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::switchToBrowsingContext): |
| (WebKit::WebAutomationSession::evaluateJavaScriptFunction): |
| (WebKit::WebAutomationSession::resolveChildFrameHandle): |
| (WebKit::WebAutomationSession::resolveParentFrameHandle): |
| (WebKit::WebAutomationSession::computeElementLayout): |
| (WebKit::WebAutomationSession::selectOptionElement): |
| (WebKit::WebAutomationSession::setFilesForInputFileUpload): |
| (WebKit::WebAutomationSession::getAllCookies): |
| (WebKit::WebAutomationSession::deleteSingleCookie): |
| (WebKit::WebAutomationSession::takeScreenshot): |
| * UIProcess/RemoteWebInspectorProxy.cpp: |
| (WebKit::RemoteWebInspectorProxy::load): |
| (WebKit::RemoteWebInspectorProxy::sendMessageToFrontend): |
| * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: |
| (WebKit::UserMediaPermissionRequestManagerProxy::~UserMediaPermissionRequestManagerProxy): |
| * UIProcess/WebEditCommandProxy.cpp: |
| (WebKit::WebEditCommandProxy::unapply): |
| (WebKit::WebEditCommandProxy::reapply): |
| * UIProcess/WebFrameProxy.cpp: |
| (WebKit::WebFrameProxy::loadURL): |
| (WebKit::WebFrameProxy::loadData): |
| (WebKit::WebFrameProxy::stopLoading const): |
| * UIProcess/WebInspectorProxy.cpp: |
| (WebKit::WebInspectorProxy::sendMessageToFrontend): |
| (WebKit::WebInspectorProxy::connect): |
| (WebKit::WebInspectorProxy::close): |
| (WebKit::WebInspectorProxy::updateForNewPageProcess): |
| (WebKit::WebInspectorProxy::setFrontendConnection): |
| (WebKit::WebInspectorProxy::showConsole): |
| (WebKit::WebInspectorProxy::showResources): |
| (WebKit::WebInspectorProxy::showMainResourceForFrame): |
| (WebKit::WebInspectorProxy::attach): |
| (WebKit::WebInspectorProxy::detach): |
| (WebKit::WebInspectorProxy::togglePageProfiling): |
| (WebKit::WebInspectorProxy::toggleElementSelection): |
| (WebKit::WebInspectorProxy::openLocalInspectorFrontend): |
| (WebKit::WebInspectorProxy::open): |
| (WebKit::WebInspectorProxy::closeFrontendPageAndWindow): |
| (WebKit::WebInspectorProxy::attachAvailabilityChanged): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::setUIClient): |
| (WebKit::WebPageProxy::setIconLoadingClient): |
| (WebKit::WebPageProxy::launchProcessForReload): |
| (WebKit::WebPageProxy::launchProcessWithItem): |
| (WebKit::WebPageProxy::initializeWebPage): |
| (WebKit::WebPageProxy::close): |
| (WebKit::WebPageProxy::loadRequestWithNavigationShared): |
| (WebKit::WebPageProxy::loadFile): |
| (WebKit::WebPageProxy::loadAlternateHTML): |
| (WebKit::WebPageProxy::loadWebArchiveData): |
| (WebKit::WebPageProxy::navigateToPDFLinkWithSimulatedClick): |
| (WebKit::WebPageProxy::stopLoading): |
| (WebKit::WebPageProxy::reload): |
| (WebKit::WebPageProxy::goToBackForwardItem): |
| (WebKit::WebPageProxy::tryRestoreScrollPosition): |
| (WebKit::WebPageProxy::setControlledByAutomation): |
| (WebKit::WebPageProxy::setIndicating): |
| (WebKit::WebPageProxy::setBackgroundColor): |
| (WebKit::WebPageProxy::setTopContentInset): |
| (WebKit::WebPageProxy::setUnderlayColor): |
| (WebKit::WebPageProxy::viewWillStartLiveResize): |
| (WebKit::WebPageProxy::viewWillEndLiveResize): |
| (WebKit::WebPageProxy::viewDidEnterWindow): |
| (WebKit::WebPageProxy::dispatchActivityStateChange): |
| (WebKit::WebPageProxy::layerHostingModeDidChange): |
| (WebKit::WebPageProxy::setInitialFocus): |
| (WebKit::WebPageProxy::clearSelection): |
| (WebKit::WebPageProxy::restoreSelectionInFocusedEditableElement): |
| (WebKit::WebPageProxy::validateCommand): |
| (WebKit::WebPageProxy::increaseListLevel): |
| (WebKit::WebPageProxy::decreaseListLevel): |
| (WebKit::WebPageProxy::changeListType): |
| (WebKit::WebPageProxy::setBaseWritingDirection): |
| (WebKit::WebPageProxy::setNeedsFontAttributes): |
| (WebKit::WebPageProxy::scheduleFullEditorStateUpdate): |
| (WebKit::WebPageProxy::selectAll): |
| (WebKit::WebPageProxy::executeEditCommand): |
| (WebKit::WebPageProxy::requestFontAttributesAtSelectionStart): |
| (WebKit::WebPageProxy::setEditable): |
| (WebKit::WebPageProxy::performDragControllerAction): |
| (WebKit::WebPageProxy::dragEnded): |
| (WebKit::WebPageProxy::didStartDrag): |
| (WebKit::WebPageProxy::dragCancelled): |
| (WebKit::WebPageProxy::processNextQueuedMouseEvent): |
| (WebKit::WebPageProxy::sendWheelEvent): |
| (WebKit::WebPageProxy::handleKeyboardEvent): |
| (WebKit::WebPageProxy::handleGestureEvent): |
| (WebKit::WebPageProxy::handlePreventableTouchEvent): |
| (WebKit::WebPageProxy::resetPotentialTapSecurityOrigin): |
| (WebKit::WebPageProxy::handleUnpreventableTouchEvent): |
| (WebKit::WebPageProxy::handleTouchEvent): |
| (WebKit::WebPageProxy::cancelPointer): |
| (WebKit::WebPageProxy::touchWithIdentifierWasRemoved): |
| (WebKit::WebPageProxy::scrollBy): |
| (WebKit::WebPageProxy::centerSelectionInVisibleArea): |
| (WebKit::WebPageProxy::commitProvisionalPage): |
| (WebKit::WebPageProxy::setUserAgent): |
| (WebKit::WebPageProxy::resumeActiveDOMObjectsAndAnimations): |
| (WebKit::WebPageProxy::suspendActiveDOMObjectsAndAnimations): |
| (WebKit::WebPageProxy::setCustomTextEncodingName): |
| (WebKit::WebPageProxy::restoreFromSessionState): |
| (WebKit::WebPageProxy::setTextZoomFactor): |
| (WebKit::WebPageProxy::setPageZoomFactor): |
| (WebKit::WebPageProxy::setPageAndTextZoomFactors): |
| (WebKit::WebPageProxy::scalePage): |
| (WebKit::WebPageProxy::scalePageInViewCoordinates): |
| (WebKit::WebPageProxy::scaleView): |
| (WebKit::WebPageProxy::windowScreenDidChange): |
| (WebKit::WebPageProxy::accessibilitySettingsDidChange): |
| (WebKit::WebPageProxy::setUseFixedLayout): |
| (WebKit::WebPageProxy::setFixedLayoutSize): |
| (WebKit::WebPageProxy::setAlwaysShowsHorizontalScroller): |
| (WebKit::WebPageProxy::setAlwaysShowsVerticalScroller): |
| (WebKit::WebPageProxy::listenForLayoutMilestones): |
| (WebKit::WebPageProxy::setSuppressScrollbarAnimations): |
| (WebKit::WebPageProxy::setEnableVerticalRubberBanding): |
| (WebKit::WebPageProxy::setEnableHorizontalRubberBanding): |
| (WebKit::WebPageProxy::setBackgroundExtendsBeyondPage): |
| (WebKit::WebPageProxy::setPaginationMode): |
| (WebKit::WebPageProxy::setPaginationBehavesLikeColumns): |
| (WebKit::WebPageProxy::setPageLength): |
| (WebKit::WebPageProxy::setGapBetweenPages): |
| (WebKit::WebPageProxy::setPaginationLineGridEnabled): |
| (WebKit::WebPageProxy::findStringMatches): |
| (WebKit::WebPageProxy::findString): |
| (WebKit::WebPageProxy::getImageForFindMatch): |
| (WebKit::WebPageProxy::selectFindMatch): |
| (WebKit::WebPageProxy::indicateFindMatch): |
| (WebKit::WebPageProxy::hideFindUI): |
| (WebKit::WebPageProxy::countStringMatches): |
| (WebKit::WebPageProxy::replaceMatches): |
| (WebKit::WebPageProxy::runJavaScriptInMainFrameScriptWorld): |
| (WebKit::WebPageProxy::runJavaScriptInFrame): |
| (WebKit::WebPageProxy::getRenderTreeExternalRepresentation): |
| (WebKit::WebPageProxy::getSourceForFrame): |
| (WebKit::WebPageProxy::getContentsAsString): |
| (WebKit::WebPageProxy::getBytecodeProfile): |
| (WebKit::WebPageProxy::getSamplingProfilerOutput): |
| (WebKit::WebPageProxy::getContentsAsMHTMLData): |
| (WebKit::WebPageProxy::getSelectionOrContentsAsString): |
| (WebKit::WebPageProxy::getSelectionAsWebArchiveData): |
| (WebKit::WebPageProxy::getMainResourceDataOfFrame): |
| (WebKit::WebPageProxy::getResourceDataFromFrame): |
| (WebKit::WebPageProxy::getWebArchiveOfFrame): |
| (WebKit::WebPageProxy::forceRepaint): |
| (WebKit::WebPageProxy::preferencesDidChange): |
| (WebKit::WebPageProxy::decidePolicyForNewWindowAction): |
| (WebKit::WebPageProxy::willSubmitForm): |
| (WebKit::WebPageProxy::showShareSheet): |
| (WebKit::WebPageProxy::setMediaVolume): |
| (WebKit::WebPageProxy::setMuted): |
| (WebKit::WebPageProxy::stopMediaCapture): |
| (WebKit::WebPageProxy::stopAllMediaPlayback): |
| (WebKit::WebPageProxy::suspendAllMediaPlayback): |
| (WebKit::WebPageProxy::resumeAllMediaPlayback): |
| (WebKit::WebPageProxy::handleMediaEvent): |
| * UIProcess/gtk/WebInspectorProxyGtk.cpp: |
| (WebKit::WebInspectorProxy::platformSave): |
| |
| 2019-12-10 Chris Dumez <cdumez@apple.com> |
| |
| Gyroscope (DeviceMotion related) permission cannot be requested in WKWebView unless the client app sets a WKUIDelegate |
| https://bugs.webkit.org/show_bug.cgi?id=203287 |
| |
| Reviewed by Alex Christensen. |
| |
| Device orientation / motion events permission dialog would not be shown unless the client app |
| set a WKUIDelegate on the WKWebView, even though we do not need this WKUIDelegate to show the |
| prompt. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _deviceOrientationUserPermissionHandler]): |
| (-[WKWebView _setDeviceOrientationUserPermissionHandler:]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/Cocoa/UIDelegate.mm: |
| (WebKit::UIDelegate::UIClient::shouldAllowDeviceOrientationAndMotionAccess): |
| * UIProcess/Cocoa/WKOrientationAccessAlert.mm: |
| (WebKit::presentOrientationAccessAlert): |
| |
| 2019-12-10 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, drop bad assertion in PreconnectTask::willSendRedirectedRequest() |
| |
| PreconnectTask::willSendRedirectedRequest() may get called in case of HSTS redirect, |
| so the ASSERT_NOT_REACHED() is wrong. |
| |
| * NetworkProcess/PreconnectTask.cpp: |
| (WebKit::PreconnectTask::willSendRedirectedRequest): |
| |
| 2019-12-10 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r253212. |
| https://bugs.webkit.org/show_bug.cgi?id=205074 |
| |
| '<rdar://problem/57771300> REGRESSION (253212): Safari does |
| not load local html file, base system Safari does not load |
| RecoveryInformation.html' (Requested by nham on #webkit). |
| |
| Reverted changeset: |
| |
| "Drop support for NSURLCache callbacks in NetworkProcess" |
| https://bugs.webkit.org/show_bug.cgi?id=203344 |
| https://trac.webkit.org/changeset/253212 |
| |
| 2019-12-10 Chris Dumez <cdumez@apple.com> |
| |
| [WK2][iOS] Visibility propagation view is not properly updated when navigating cross-process |
| https://bugs.webkit.org/show_bug.cgi?id=205028 |
| |
| Reviewed by Tim Horton. |
| |
| Make sure we keep the contextIDForVisibilityPropagation on the ProvisionalPageProxy / SuspendedPageProxy |
| objects and update WebPageProxy::m_contextIDForVisibilityPropagation whenever we commit a provisional |
| page. Also update ProvisionalPageProxy to listen for the WebPageProxy::DidCreateContextForVisibilityPropagation |
| IPC so that it can update m_contextIDForVisibilityPropagation once the WebPage is created in the |
| provisional WebProcess (which creates the visibility propagation view). |
| |
| * UIProcess/ProvisionalPageProxy.cpp: |
| (WebKit::ProvisionalPageProxy::ProvisionalPageProxy): |
| (WebKit::ProvisionalPageProxy::didCreateContextForVisibilityPropagation): |
| (WebKit::ProvisionalPageProxy::didReceiveMessage): |
| * UIProcess/ProvisionalPageProxy.h: |
| (WebKit::ProvisionalPageProxy::contextIDForVisibilityPropagation const): |
| * UIProcess/SuspendedPageProxy.cpp: |
| (WebKit::SuspendedPageProxy::SuspendedPageProxy): |
| * UIProcess/SuspendedPageProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::swapToProvisionalPage): |
| (WebKit::WebPageProxy::commitProvisionalPage): |
| (WebKit::WebPageProxy::resetState): |
| (WebKit::WebPageProxy::swapToWebProcess): Deleted. |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/ios/WKContentView.mm: |
| (-[WKContentView _setupVisibilityPropagationView]): |
| (-[WKContentView _removeVisibilityPropagationView]): |
| |
| 2019-12-10 Chris Dumez <cdumez@apple.com> |
| |
| Regression(r253277) ASSERTION FAILED: !parameters.request.httpBody() in NetworkConnectionToWebProcess::preconnectTo() |
| https://bugs.webkit.org/show_bug.cgi?id=205030 |
| |
| Reviewed by Antti Koivisto. |
| |
| Instead of using the full request as preconnect request, create a simple one that contains only the destination URL. |
| This avoids sending a request body unnecessarily over IPC, which was the cause of the assertion. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::loadRequest): |
| |
| 2019-12-10 Chris Dumez <cdumez@apple.com> |
| |
| Make preconnectTo()'s completionHandler optional |
| https://bugs.webkit.org/show_bug.cgi?id=205011 |
| |
| Reviewed by Antti Koivisto. |
| |
| Make preconnectTo()'s completionHandler optional, so that the network process does not unnecessarily |
| send an IPC back if the client is not interested. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::preconnectTo): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::preconnectTo): |
| * WebProcess/Network/WebLoaderStrategy.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::loadRequest): |
| |
| 2019-12-09 Eric Carlson <eric.carlson@apple.com> |
| |
| Rename media in the GPU process preference |
| https://bugs.webkit.org/show_bug.cgi?id=205013 |
| <rdar://problem/57755319> |
| |
| Reviewed by Tim Horton. |
| |
| * Shared/WebPreferences.yaml: |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): |
| |
| 2019-12-09 Truitt Savell <tsavell@apple.com> |
| |
| Unreviewed, rolling out r253299. |
| |
| Casued 30+ imported/ test failures on Mac wk2 |
| |
| Reverted changeset: |
| |
| "Throttling requestAnimationFrame should be controlled by |
| RenderingUpdateScheduler" |
| https://bugs.webkit.org/show_bug.cgi?id=204713 |
| https://trac.webkit.org/changeset/253299 |
| |
| 2019-12-09 Chris Dumez <cdumez@apple.com> |
| |
| Regression(r249329) ViewGestureController::requestRenderTreeSizeNotificationIfNeeded() sometimes uses wrong webPageID for IPC |
| https://bugs.webkit.org/show_bug.cgi?id=205012 |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/InspectorTargetProxy.cpp: |
| (WebKit::InspectorTargetProxy::connect): |
| (WebKit::InspectorTargetProxy::disconnect): |
| (WebKit::InspectorTargetProxy::sendMessageToTargetBackend): |
| * UIProcess/ProvisionalPageProxy.cpp: |
| (WebKit::ProvisionalPageProxy::~ProvisionalPageProxy): |
| (WebKit::ProvisionalPageProxy::initializeWebPage): |
| (WebKit::ProvisionalPageProxy::goToBackForwardItem): |
| (WebKit::ProvisionalPageProxy::messageSenderConnection const): |
| (WebKit::ProvisionalPageProxy::messageSenderDestinationID const): |
| * UIProcess/ProvisionalPageProxy.h: |
| * UIProcess/SuspendedPageProxy.cpp: |
| (WebKit::SuspendedPageProxy::SuspendedPageProxy): |
| (WebKit::SuspendedPageProxy::unsuspend): |
| (WebKit::SuspendedPageProxy::close): |
| (WebKit::SuspendedPageProxy::messageSenderConnection const): |
| (WebKit::SuspendedPageProxy::messageSenderDestinationID const): |
| * UIProcess/SuspendedPageProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::continueNavigationInNewProcess): |
| Have SuspendedPageProxy & ProvisionalPageProxy subclass IPC::MessageSender so that we can call send() |
| on them without having to pass in a PageIdentifier. Passing a PageIdentifier was error-prone. |
| |
| * UIProcess/ViewGestureController.cpp: |
| (WebKit::ViewGestureController::requestRenderTreeSizeNotificationIfNeeded): |
| When there was a provisonal page proxy, we would properly send the IPC to the provisional page's process |
| but would use the wrong PageIdentifier for the IPC. We would use the identifier of the committed WebPage |
| instead of the one of the provisional WebPage. |
| |
| 2019-12-09 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Finish encoding/decoding support for DisplayList::SetState |
| https://bugs.webkit.org/show_bug.cgi?id=205018 |
| |
| Reviewed by Tim Horton. |
| |
| Replaces WebCore::DisplayList::ImageHandle with just WebCore::ImageHandle. See WebCore ChangeLog for more |
| details. |
| |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<ImageHandle>::encode): |
| (IPC::ArgumentCoder<ImageHandle>::decode): |
| (IPC::ArgumentCoder<DisplayList::ImageHandle>::encode): Deleted. |
| (IPC::ArgumentCoder<DisplayList::ImageHandle>::decode): Deleted. |
| * Shared/WebCoreArgumentCoders.h: |
| |
| 2019-12-09 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| Throttling requestAnimationFrame should be controlled by RenderingUpdateScheduler |
| https://bugs.webkit.org/show_bug.cgi?id=204713 |
| |
| Reviewed by Simon Fraser. |
| |
| Create an IPC message on the DrawingArea to send a message from the |
| WebProcess to the UIProcess to setPreferredFramesPerSecond of the |
| DisplayRefreshMonitor. |
| |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h: |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.messages.in: |
| |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm: |
| (-[WKOneShotDisplayLinkHandler setPreferredFramesPerSecond:]): |
| (WebKit::RemoteLayerTreeDrawingAreaProxy::setPreferredFramesPerSecond): |
| Set the preferredFramesPerSecond of the CADisplayLink. |
| |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.h: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.mm: |
| (WebKit::RemoteLayerTreeDisplayRefreshMonitor::setPreferredFramesPerSecond): |
| Delegate the call to RemoteLayerTreeDrawingArea. |
| |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm: |
| (WebKit::RemoteLayerTreeDrawingArea::setPreferredFramesPerSecond): |
| Send the IPC message from the WebProcess to the UIProcess. |
| |
| 2019-12-09 youenn fablet <youenn@apple.com> |
| |
| NetworkResourceLoader should consume its sandbox extensions when starting a fetch through service worker |
| https://bugs.webkit.org/show_bug.cgi?id=204883 |
| <rdar://problem/57568535> |
| |
| Reviewed by Alex Christensen. |
| |
| Consume sandbox extensions in network process before sending fetch task to service worker. |
| This makes sure network process can send proper sandbox extensions to the service worker and it also ensures |
| it will have the necessary rights to access the file if the fetch task is not handled by service worker. |
| Test: http/wpt/service-workers/file-upload.html |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::consumeSandboxExtensionsIfNeeded): |
| * NetworkProcess/NetworkResourceLoader.h: |
| * NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp: |
| (WebKit::ServiceWorkerFetchTask::startFetch): |
| |
| 2019-12-09 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Unreviewed, fix the macCatalyst build after r253267 |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView deferringGestureRecognizer:shouldDeferOtherGestureRecognizer:]): |
| |
| 2019-12-09 Alex Christensen <achristensen@webkit.org> |
| |
| Re-disable TLS1.0 and TLS1.1 by default |
| https://bugs.webkit.org/show_bug.cgi?id=204922 |
| <rdar://problem/57677752> |
| |
| Reviewed by Youenn Fablet. |
| |
| Covered by updated API tests. |
| |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): |
| (WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection): |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeNetworkProcess): |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| |
| 2019-12-09 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, fix debug assertion for ApplePay API tests on iOS after r253277. |
| |
| Disable server preconnect if the load will be handled by the LegacyCustomProtocolManager. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::preconnectTo): |
| |
| 2019-12-09 youenn fablet <youenn@apple.com> |
| |
| Add an option to capture audio in GPU process |
| https://bugs.webkit.org/show_bug.cgi?id=205007 |
| |
| Reviewed by Eric Carlson. |
| |
| Add a flag to make audio capture in GPU process. |
| In WebProcess, if trying to capture through GPUProcess, send back an error since this is not implemented. |
| |
| * Shared/WebPreferences.yaml: |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::encode const): |
| (WebKit::WebProcessCreationParameters::decode): |
| * Shared/WebProcessCreationParameters.h: |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetCaptureAudioInGPUProcessEnabled): |
| (WKPreferencesGetCaptureAudioInGPUProcessEnabled): |
| * UIProcess/API/C/WKPreferencesRef.h: |
| * UIProcess/WebPreferences.cpp: |
| (WebKit::WebPreferences::updateBoolValueForInternalDebugFeatureKey): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::initializeNewWebProcess): |
| (WebKit::WebProcessPool::createWebPage): |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): |
| * WebProcess/cocoa/UserMediaCaptureManager.cpp: |
| (WebKit::UserMediaCaptureManager::initialize): |
| (WebKit::UserMediaCaptureManager::AudioFactory::createAudioCaptureSource): |
| * WebProcess/cocoa/UserMediaCaptureManager.h: |
| (WebKit::UserMediaCaptureManager::AudioFactory::setShouldCaptureInGPUProcess): |
| |
| 2019-12-08 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Move WebCore::Path encoders and decoders into WebCore from WebCoreArgumentCoders |
| https://bugs.webkit.org/show_bug.cgi?id=204993 |
| |
| Reviewed by Tim Horton. |
| |
| Remove Encoder/Decoder support for WebCore::Path. |
| |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::pathEncodeApplierFunction): Deleted. |
| (IPC::ArgumentCoder<Path>::encode): Deleted. |
| (IPC::ArgumentCoder<Path>::decode): Deleted. |
| * Shared/WebCoreArgumentCoders.h: |
| |
| 2019-12-08 Chris Dumez <cdumez@apple.com> |
| |
| Preconnect to server as early as possible in WebPage::LoadRequest |
| https://bugs.webkit.org/show_bug.cgi?id=204992 |
| |
| Reviewed by Antti Koivisto. |
| |
| Preconnect to server as early as possible in WebPage::LoadRequest. This avoids delaying the |
| connection to the server until after the policy check and is a ~1.3% progression on PLT5 on |
| both macOS and iOS. |
| |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::preconnectTo): |
| * WebProcess/Network/WebLoaderStrategy.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::loadRequest): |
| |
| 2019-12-08 youenn fablet <youenn@apple.com> |
| |
| Support different resolutions for video tracks captured from UIProcess |
| https://bugs.webkit.org/show_bug.cgi?id=204945 |
| |
| Reviewed by Eric Carlson. |
| |
| Change video capture in uiprocess to an experimental flag. |
| Add support for remote video source cloning by sending some IPC to UIProcess and cloning the source there. |
| This triggers IPC for both cloning and cloned sources but this allows to do resizing in UIProcess instead of WebProcess. |
| We thus disable video capture resizing in WebProcess. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp: |
| (WebKit::UserMediaCaptureManagerProxy::SourceProxy::start): |
| (WebKit::UserMediaCaptureManagerProxy::SourceProxy::stop): |
| (WebKit::UserMediaCaptureManagerProxy::SourceProxy::requestToEnd): |
| (WebKit::UserMediaCaptureManagerProxy::SourceProxy::preventSourceFromStopping): |
| (WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints): |
| (WebKit::UserMediaCaptureManagerProxy::startProducingData): |
| (WebKit::UserMediaCaptureManagerProxy::stopProducingData): |
| (WebKit::UserMediaCaptureManagerProxy::clone): |
| (WebKit::UserMediaCaptureManagerProxy::requestToEnd): |
| * UIProcess/Cocoa/UserMediaCaptureManagerProxy.h: |
| * UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in: |
| * WebProcess/cocoa/UserMediaCaptureManager.cpp: |
| (WebKit::UserMediaCaptureManager::Source::sourceID const): |
| (WebKit::UserMediaCaptureManager::Source::settings const): |
| (WebKit::UserMediaCaptureManager::Source::remoteVideoSampleAvailable): |
| (WebKit::UserMediaCaptureManager::Source::requestToEnd): |
| (WebKit::UserMediaCaptureManager::Source::stopBeingObserved): |
| (WebKit::UserMediaCaptureManager::cloneSource): |
| (WebKit::UserMediaCaptureManager::cloneVideoSource): |
| (WebKit::UserMediaCaptureManager::requestToEnd): |
| (WebKit::UserMediaCaptureManager::VideoFactory::setVideoCapturePageState): |
| * WebProcess/cocoa/UserMediaCaptureManager.h: |
| |
| 2019-12-08 youenn fablet <youenn@apple.com> |
| |
| Tighten Mac sandbox by removing microphone access |
| https://bugs.webkit.org/show_bug.cgi?id=204939 |
| |
| Reviewed by Brent Fulgham. |
| |
| No change of behavior, we do audio capture in UIProcess. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2019-12-08 youenn fablet <youenn@apple.com> |
| |
| Add logging to NetworkRTCMonitor |
| https://bugs.webkit.org/show_bug.cgi?id=204850 |
| <rdar://problem/57618773> |
| |
| Reviewed by Eric Carlson. |
| |
| Add logging and send IPC message back to WebProcess even if monitoring is stopped. |
| No observable change of behavior. |
| |
| * NetworkProcess/webrtc/NetworkRTCMonitor.cpp: |
| (WebKit::NetworkRTCMonitor::startUpdatingIfNeeded): |
| (WebKit::NetworkRTCMonitor::stopUpdating): |
| (WebKit::NetworkRTCMonitor::onNetworksChanged): |
| |
| 2019-12-07 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| Make ColorSpace an enum class |
| https://bugs.webkit.org/show_bug.cgi?id=204970 |
| |
| Reviewed by Sam Weinig. |
| |
| * Shared/WebCoreArgumentCoders.h: |
| |
| 2019-12-07 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS] WKWebView touch event gesture recognition should not block the application process main thread when possible |
| https://bugs.webkit.org/show_bug.cgi?id=204664 |
| <rdar://problem/38670692> |
| |
| Reviewed by Tim Horton. |
| |
| Adds a mechanism that allows some sync touch events on iOS to be sent asynchronously. To do this, we use the |
| deferring gesture mechanism introduced in trac.webkit.org/r253005 to defer all gestures under WKContentView (and |
| WebKit-owned scroll views) when a touch starts, such that they will not recognize until we know that the page |
| has either prevented default or not (assuming that the touch was over an active listener). See below for more |
| details. |
| |
| Tests: fast/events/touch/ios/prevent-default-on-touch-start-with-slow-event-listener.html |
| fast/events/touch/ios/scroll-on-touch-start-with-slow-event-listener.html |
| |
| * UIProcess/GenericCallback.h: |
| * UIProcess/PageClient.h: |
| * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm: |
| (-[WKChildScrollView gestureRecognizer:shouldRequireFailureOfGestureRecognizer:]): |
| (-[WKChildScrollView gestureRecognizer:shouldBeRequiredToFailByGestureRecognizer:]): |
| |
| Implement gesture recognizer delegate hooks to add dynamic failure requirements between a child scroll view's |
| gestures and the new deferring gesture recognizers on WKContentView. This allows pan gestures over a scrollable |
| container to hold off on recognizing while the deferring gesture recognizer has not failed yet. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::handlePreventableTouchEvent): |
| (WebKit::WebPageProxy::handleUnpreventableTouchEvent): |
| |
| Rename handleTouchEventSynchronously and handleTouchEventAsynchronously to handlePreventableTouchEvent and |
| handleUnpreventableTouchEvent, respectively. Instead of always sending touchstart events that may prevent native |
| gestures synchronously, we may now go through the same `EventDispatcher::TouchEvent` codepath used when |
| dispatching touch events in passive tracking regions. However, in the case of preventable touchstarts, we |
| additionally store a completion callback that is invoked after the touch event has been handled by the page; we |
| then either un-defer or prevent native gestures here (depending on whether the page prevented default) by |
| calling PageClient::doneDeferringNativeGestures. |
| |
| Non-touchstart events are still dispatched synchronously, to ensure that calling preventDefault() on touchmove |
| and touchend continue to prevent default gestures from recognizing. |
| |
| (WebKit::WebPageProxy::boolCallback): |
| (WebKit::WebPageProxy::handleTouchEventSynchronously): Deleted. |
| (WebKit::WebPageProxy::handleTouchEventAsynchronously): Deleted. |
| |
| See above. |
| |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::isHandlingPreventableTouchStart const): |
| |
| This is used in WKContentView to determine whether deferring gestures need to remain active after the touch |
| ends. See below for more detail. |
| |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::doneDeferringNativeGestures): |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[UIGestureRecognizer _wk_cancel]): |
| (-[WKContentView setupInteraction]): |
| (-[WKContentView cleanupInteraction]): |
| (-[WKContentView _removeDefaultGestureRecognizers]): |
| (-[WKContentView _addDefaultGestureRecognizers]): |
| |
| Add and remove the new deferring gesture recognizers here. |
| |
| (-[WKContentView _webTouchEventsRecognized:]): |
| (-[WKContentView _webTouchEvent:preventsNativeGestures:]): |
| (-[WKContentView _doneDeferringNativeGestures:]): |
| (-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]): |
| (-[WKContentView ensurePositionInformationIsUpToDate:]): |
| |
| Drive-by fix: add a missing hasRunningProcess check that causes a flaky assertion under |
| `AuxiliaryProcessProxy::connection()` in layout tests. |
| |
| (-[WKContentView gestureRecognizer:shouldRequireFailureOfGestureRecognizer:]): |
| (-[WKContentView gestureRecognizer:shouldBeRequiredToFailByGestureRecognizer:]): |
| |
| Add dynamic failure requirements between WKContentView's gestures (including all text interaction, context menu, |
| and drag and drop gestures) and the new deferring gesture recognizers. |
| |
| (-[WKContentView _didStartProvisionalLoadForMainFrame]): |
| |
| Force the two-finger double tap gesture recognizer to reset when loading a new page. Without this, the layout |
| test fast/events/ios/click-event-while-editing-node.html will rarely fail when run after a test that dispatches |
| a two-finger tap, such as fast/events/ios/click-event-two-finger-single-tap-meta-key.html. This is because the |
| new deferring gestures will temporarily unite multi-finger tap gestures with one-finger double tap gestures in |
| the same subgraph when performing a tap gesture with more than one finger. This means that there's a 300 ms |
| delay before a normal single tap can be recognized again, which (without forcing the two-finger double tap to |
| reset) would cause a subsequent test that loads in under 300 ms and attempts to send a tap to fail. |
| |
| (-[WKContentView deferringGestureRecognizer:shouldDeferGesturesAfterBeginningTouchesWithEvent:]): |
| |
| Avoid deferring native gestures if the scroll view is decelerating; this matches behavior of the web touch event |
| gesture recognizer. |
| |
| (-[WKContentView deferringGestureRecognizer:shouldDeferGesturesAfterEndingTouchesWithEvent:]): |
| |
| Normally, after -touchesEnded:withEvent:, we stop deferring native gesture recognizers by failing the deferring |
| gestures. However, if we're still waiting for a response from the web process, then let |
| -_doneDeferringNativeGestures: handle this instead. |
| |
| (-[WKContentView deferringGestureRecognizer:shouldDeferOtherGestureRecognizer:]): |
| (-[WKContentView deferringGestureRecognizer:shouldDeferGesturesWithEvent:]): Deleted. |
| |
| Renamed to -shouldDeferGesturesAfterBeginningTouchesWithEvent:. |
| |
| * UIProcess/ios/WKDeferringGestureRecognizer.h: |
| * UIProcess/ios/WKDeferringGestureRecognizer.mm: |
| (-[WKDeferringGestureRecognizer touchesBegan:withEvent:]): |
| (-[WKDeferringGestureRecognizer touchesEnded:withEvent:]): |
| |
| Override this and add a new delegate hook to determine whether we want the deferring gesture recognizer to |
| immediately fail when touches end. It's important to override this and transition to failure state in this case, |
| since not doing so could mean that the deferring gestures stay in Possible state forever; this may lead to the |
| gesture subgraph containing these deferring gestures being unable to reset, since it's waiting for the deferring |
| gesture to either fail or end. |
| |
| * UIProcess/ios/WKScrollView.mm: |
| (-[WKScrollView gestureRecognizer:shouldRequireFailureOfGestureRecognizer:]): |
| (-[WKScrollView gestureRecognizer:shouldBeRequiredToFailByGestureRecognizer:]): |
| |
| Defer more scroll view gestures. |
| |
| * WebProcess/WebPage/EventDispatcher.cpp: |
| (WebKit::EventDispatcher::touchEvent): |
| |
| Add an optional CallbackID parameter to this IPC message. If a callback ID is given, then we avoid coalescing |
| the touch event. To implement this, we additionally refactor the queued touch events map to contain lists of |
| <WebTouchEvent, Optional<CallbackID>> pairs; if a queued touch event has a corresponding CallbackID, then we |
| fire the callback corresponding to the ID, indicating whether the touch event was handled by the page. |
| |
| * WebProcess/WebPage/EventDispatcher.h: |
| * WebProcess/WebPage/EventDispatcher.messages.in: |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::dispatchAsynchronousTouchEvents): |
| |
| 2019-12-07 David Quesada <david_quesada@apple.com> |
| |
| REGRESSION(r253231): Debug assertion failures under ~WebDeviceOrientationUpdateProvider(Proxy) |
| https://bugs.webkit.org/show_bug.cgi?id=204977 |
| rdar://problem/57724251 |
| |
| Reviewed by Per Arne Vollan. |
| |
| In the UI process, have the WebPageProxy swap out its WebDeviceOrientationUpdateProviderProxy whenever |
| it connects to a new process, instead of creating one on construction and holding onto it for the rest |
| of the WebPageProxy lifetime. The …UpdateProviderProxy assumes that its page will have the same ID |
| at the time of registering as a message receiver and later unregistering, but the page ID could change |
| if the WebPageProxy swaps web processes. Using a new instance per web page ID ensures that the |
| updater is always able to successfully remove itself as a message receiver when deallocating. |
| |
| In the Web process, ~WebDeviceOrientationUpdateProvider() should remove itself as a message receiver |
| specifically for its page ID, rather than as a global message receiver. |
| |
| No new tests -- existing tests (at least the ProcessSwap API tests) revealed the regression. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::m_tryCloseTimeoutTimer): |
| (WebKit::WebPageProxy::didAttachToRunningProcess): |
| (WebKit::WebPageProxy::resetState): |
| (WebKit::m_webDeviceOrientationUpdateProviderProxy): Deleted. |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/ios/WebDeviceOrientationUpdateProviderProxy.h: |
| * WebProcess/WebCoreSupport/WebDeviceOrientationUpdateProvider.cpp: |
| (WebKit::WebDeviceOrientationUpdateProvider::WebDeviceOrientationUpdateProvider): |
| (WebKit::WebDeviceOrientationUpdateProvider::~WebDeviceOrientationUpdateProvider): |
| * WebProcess/WebCoreSupport/WebDeviceOrientationUpdateProvider.h: |
| |
| 2019-12-07 Tim Horton <timothy_horton@apple.com> |
| |
| Implement encoding for DrawImage and DrawRoundedRect display list items |
| https://bugs.webkit.org/show_bug.cgi?id=204881 |
| |
| Reviewed by Simon Fraser. |
| |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<DisplayList::ImageHandle>::encode): |
| (IPC::ArgumentCoder<DisplayList::ImageHandle>::decode): |
| * Shared/WebCoreArgumentCoders.h: |
| |
| 2019-12-06 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r253218. |
| https://bugs.webkit.org/show_bug.cgi?id=204968 |
| |
| Broke the build (Requested by ap on #webkit). |
| |
| Reverted changeset: |
| |
| "Remove various .order files." |
| https://bugs.webkit.org/show_bug.cgi?id=204959 |
| https://trac.webkit.org/changeset/253218 |
| |
| 2019-12-06 Chris Dumez <cdumez@apple.com> |
| |
| [IPC] MESSAGE_CHECK() parameters for AddPlugInAutoStartOriginHash / PlugInDidReceiveUserInteraction IPCs |
| https://bugs.webkit.org/show_bug.cgi?id=204962 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| MESSAGE_CHECK() parameters for AddPlugInAutoStartOriginHash / PlugInDidReceiveUserInteraction IPCs. Those parameters |
| are used as keys in HashMaps. |
| |
| * UIProcess/Plugins/PlugInAutoStartProvider.cpp: |
| (WebKit::PlugInAutoStartProvider::PlugInAutoStartProvider): |
| (WebKit::PlugInAutoStartProvider::addAutoStartOriginHash): |
| (WebKit::PlugInAutoStartProvider::setAutoStartOriginsTableWithItemsPassingTest): |
| (WebKit::PlugInAutoStartProvider::didReceiveUserInteraction): |
| * UIProcess/Plugins/PlugInAutoStartProvider.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::addPlugInAutoStartOriginHash): |
| (WebKit::WebProcessProxy::plugInDidReceiveUserInteraction): |
| |
| 2019-12-06 Per Arne Vollan <pvollan@apple.com> |
| |
| [iOS] Calls to device orientation API should be done in the UI process |
| https://bugs.webkit.org/show_bug.cgi?id=204720 |
| |
| Reviewed by Alex Christensen. |
| |
| Add a new class, WebDeviceOrientationUpdateProviderProxy, to handle messages to start and stop updating device orientation |
| in the UI process. Also, add a message to update the device orientation in the WebContent process. In the UI process, the |
| device orientation API is called through the already existing WebCoreMotionManager class. |
| |
| * DerivedSources-input.xcfilelist: |
| * DerivedSources-output.xcfilelist: |
| * DerivedSources.make: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::m_webDeviceOrientationUpdateProviderProxy): |
| (WebKit::m_resetRecentCrashCountTimer): Deleted. |
| * UIProcess/WebPageProxy.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_overriddenMediaType): |
| |
| 2019-12-06 Chris Dumez <cdumez@apple.com> |
| |
| Reduce timeout for page to handle beforeunload events when trying to close a page |
| https://bugs.webkit.org/show_bug.cgi?id=204950 |
| <rdar://problem/57700419> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Reduce timeout for page to handle beforeunload events when trying to close a page. It would previously |
| take up to 3 seconds to actually close a tab after the user would click on the "X" to close it. This |
| is because we would wait for the page to fire and handle the beforeunload events and only give up after |
| 3 seconds. This patch reduces this timeout to something more reasonable from a user standpoint (500ms). |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::m_tryCloseTimeoutTimer): |
| (WebKit::WebPageProxy::tryClose): |
| (WebKit::WebPageProxy::tryCloseTimedOut): |
| (WebKit::WebPageProxy::closePage): |
| (WebKit::m_resetRecentCrashCountTimer): Deleted. |
| * UIProcess/WebPageProxy.h: |
| |
| 2019-12-06 Jonathan Bedard <jbedard@apple.com> |
| |
| Python 3: Add support in webkitpy.test |
| https://bugs.webkit.org/show_bug.cgi?id=204952 |
| |
| Reviewed by Stephanie Lewis. |
| |
| Tested by test-webkitpy. |
| |
| * Scripts/webkit/messages_unittest.py: Use Python 2/3 compatible StringIO. |
| |
| 2019-12-06 Keith Miller <keith_miller@apple.com> |
| |
| Remove various .order files. |
| https://bugs.webkit.org/show_bug.cgi?id=204959 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| These files are all super out of date and likely don't do anything anymore. |
| The signatures of the functions have changed thus the mangled name has changed. |
| |
| * mac/WebKit2.order: Removed. |
| |
| 2019-12-06 Dan Bernstein <mitz@apple.com> |
| |
| Address <https://bugs.webkit.org/show_bug.cgi?id=189222#c3> |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView valueForUndefinedKey:]): Added a newline. |
| |
| 2019-12-06 Benjamin Nham <nham@apple.com> |
| |
| Drop support for NSURLCache callbacks in NetworkProcess |
| https://bugs.webkit.org/show_bug.cgi?id=203344 |
| |
| Reviewed by Alex Christensen. |
| |
| Remove the NSURLSession caching policy callback in NetworkProcess. It's no longer necessary since |
| we don't use NSURLCache in NetworkProcess (https://bugs.webkit.org/show_bug.cgi?id=185990). |
| |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (-[WKNetworkSessionDelegate URLSession:dataTask:willCacheResponse:completionHandler:]): Deleted. |
| |
| 2019-12-05 Chris Dumez <cdumez@apple.com> |
| |
| Stop using reserveCapacity() / reserveInitialCapacity() in IPC decoders |
| https://bugs.webkit.org/show_bug.cgi?id=204930 |
| <rdar://problem/57682737> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| This is IPC hardening since the size we use to reserve the capacity is encoded over IPC |
| and cannot be trusted in some cases. |
| |
| * Platform/IPC/ArgumentCoders.h: |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<Vector<RefPtr<SecurityOrigin>>>::decode): |
| |
| 2019-12-06 youenn fablet <youenn@apple.com> |
| |
| Protect WebRTC network monitoring to wait forever in edge cases |
| https://bugs.webkit.org/show_bug.cgi?id=204846 |
| |
| Reviewed by Eric Carlson. |
| |
| We were limiting the number of IPC message sent to network process by only sending the start monitoring event for the first client. |
| The issue is that, if network process crashes for instance while having not yet given the list of networks, all clients will be hanging |
| waiting for the completion of network list. |
| We are now sending an IPC message for every client and the network process will ignore the ones that are not useful. |
| In addition, in case of network process crash, we send a signal that network list has changed to make sure clients will never hang. |
| They might still fail connecting, which is ok since network process crashed. |
| |
| Test: webrtc/datachannel/gather-candidates-networkprocess-crash.html |
| |
| * NetworkProcess/webrtc/NetworkRTCMonitor.cpp: |
| (WebKit::NetworkRTCMonitor::startUpdatingIfNeeded): |
| * NetworkProcess/webrtc/NetworkRTCMonitor.h: |
| * NetworkProcess/webrtc/NetworkRTCMonitor.messages.in: |
| * WebProcess/Network/webrtc/LibWebRTCNetwork.h: |
| (WebKit::LibWebRTCNetwork::networkProcessCrashed): |
| * WebProcess/Network/webrtc/WebRTCMonitor.cpp: |
| (WebKit::WebRTCMonitor::StartUpdating): |
| (WebKit::WebRTCMonitor::StopUpdating): |
| (WebKit::WebRTCMonitor::networksChanged): |
| (WebKit::WebRTCMonitor::networkProcessCrashed): |
| * WebProcess/Network/webrtc/WebRTCMonitor.h: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::networkProcessConnectionClosed): |
| |
| 2019-12-06 youenn fablet <youenn@apple.com> |
| |
| Output libwebrtc logging from Network Process as release logging |
| https://bugs.webkit.org/show_bug.cgi?id=204853 |
| |
| Reviewed by Eric Carlson. |
| |
| This will help debugging WebRTC networking issues. |
| No observable change of behavior. |
| |
| * NetworkProcess/webrtc/NetworkRTCProvider.cpp: |
| (WebKit::doReleaseLogging): |
| (WebKit::NetworkRTCProvider::NetworkRTCProvider): |
| |
| 2019-12-05 Yousuke Kimoto <yousuke.kimoto@sony.com> |
| |
| [WinCairo] Improve Inspectable Target Page to adapt a long title and URL |
| https://bugs.webkit.org/show_bug.cgi?id=204874 |
| |
| Reviewed by Fujii Hironori. |
| |
| Add some CSS atributes to make such long titles and URLs fit the width |
| of a window size. Then "Inspector" button is shown at the visible area. |
| No new tests, since there is no change in behavior. |
| |
| * UIProcess/socket/RemoteInspectorProtocolHandler.cpp: |
| (WebKit::RemoteInspectorProtocolHandler::platformStartTask): |
| |
| 2019-12-05 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [WebKit] Fix compilation warnings for MSVC |
| https://bugs.webkit.org/show_bug.cgi?id=204661 |
| |
| Reviewed by Don Olmstead. |
| |
| No behavior changes. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsTelemetry.cpp: |
| (WebKit::makeDescription): |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::cleanup): |
| * NetworkProcess/cache/NetworkCacheIOChannelCurl.cpp: |
| (WebKit::NetworkCache::IOChannel::IOChannel): |
| * Shared/API/c/WKSharedAPICast.h: |
| (WebKit::toAPI): |
| (WebKit::toDiagnosticLoggingResultType): |
| * UIProcess/WebURLSchemeTask.cpp: |
| (WebKit::WebURLSchemeTask::didReceiveData): |
| * WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp: |
| (WebKit::WebServiceWorkerFetchTaskClient::didReceiveData): |
| * WebProcess/WebCoreSupport/WebEditorClient.cpp: |
| (WebKit::WebEditorClient::registerAttachmentIdentifier): |
| |
| 2019-12-05 Brian Burg <bburg@apple.com> |
| |
| [Cocoa] _WKInspector uses wrong WKWebView in -setDiagnosticLoggingDelegate: |
| https://bugs.webkit.org/show_bug.cgi?id=204928 |
| |
| Reviewed by Timothy Hatcher. |
| |
| I feel like I've made this mistake before. To make the right thing more obvious, |
| add a property named inspectorWebView that returns the Inspector WKWebView. |
| |
| * UIProcess/API/Cocoa/_WKInspector.mm: |
| (-[_WKInspector inspectorWebView]): |
| (-[_WKInspector _setDiagnosticLoggingDelegate:]): |
| * UIProcess/WebInspectorProxy.h: |
| (WebKit::WebInspectorProxy::inspectorPage const): |
| |
| 2019-12-05 Chris Dumez <cdumez@apple.com> |
| |
| Use sendWithAsyncReply() for WebPage::TryClose IPC |
| https://bugs.webkit.org/show_bug.cgi?id=204926 |
| |
| Reviewed by Alex Christensen. |
| |
| Use sendWithAsyncReply() for WebPage::TryClose IPC, instead of 2 separate IPCs. |
| |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::closeBrowsingContext): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::tryClose): |
| (WebKit::WebPageProxy::closePage): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::tryClose): |
| (WebKit::WebPage::sendClose): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2019-12-05 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics (experimental): Add fast mode for non-cookie website data deletion |
| https://bugs.webkit.org/show_bug.cgi?id=204858 |
| <rdar://problem/57639851> |
| |
| Reviewed by Alex Christensen. |
| |
| The purpose of this change is to allow for dedicated testing of the change in |
| https://trac.webkit.org/changeset/253082/webkit. Waiting seven days just isn't a good |
| starting point. |
| |
| This change adds two internal flags: |
| - "Live-On Testing" with a one hour timeout instead of seven days. |
| - "Repro Testing" with an instant timeout (bar ITP's regular delays) instead of seven days. |
| |
| The change also makes sure that hasHadUnexpiredRecentUserInteraction() in |
| ResourceLoadStatisticsDatabaseStore and ResourceLoadStatisticsMemoryStore only |
| age out the user interaction timestamp if the OperatingDatesWindow is Long so |
| that we don't age out timestamps early with the shorter OperatingDatesWindows. |
| |
| This change changes the default value of IsFirstPartyWebsiteDataRemovalEnabled to true. |
| |
| These internal flags should be removed once testing is complete: <rdar://problem/57673418> |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: |
| * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ResourceLoadStatisticsMemoryStore::hasHadUnexpiredRecentUserInteraction const): |
| (WebKit::ResourceLoadStatisticsMemoryStore::shouldRemoveAllButCookiesFor const): |
| * NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp: |
| (WebKit::ResourceLoadStatisticsStore::hasStatisticsExpired const): |
| * NetworkProcess/Classifier/ResourceLoadStatisticsStore.h: |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::setFirstPartyWebsiteDataRemovalMode): |
| * NetworkProcess/NetworkProcess.messages.in: |
| * Shared/WebPreferences.yaml: |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| |
| 2019-12-05 Chris Dumez <cdumez@apple.com> |
| |
| Optimize IPC::Connection::SyncMessageState methods |
| https://bugs.webkit.org/show_bug.cgi?id=204890 |
| |
| Reviewed by Alex Christensen. |
| |
| Optimize IPC::Connection::SyncMessageState methods. We are seeing lock contention on some (app launch) |
| benchmarks, resulting in the main thread yielding for 10ms. |
| |
| * Platform/IPC/Connection.cpp: |
| (IPC::Connection::SyncMessageState): Make constructor private since this is a singleton class. |
| (IPC::Connection::ConnectionAndIncomingMessage): Add convenience dispatch() method. |
| |
| (IPC::Connection::SyncMessageState::processIncomingMessage): |
| Drop the lock as early as possible, *before* calling RunLoop::main().dispatch(). |
| |
| (IPC::Connection::SyncMessageState::dispatchMessages): |
| Drop allowedConnection parameter and simplify the code a lot as a result. Only dispatchMessagesAndResetDidScheduleDispatchMessagesForConnection() |
| needed the pass an allowedConnection but having dispatchMessagesAndResetDidScheduleDispatchMessagesForConnection() call dispatchMessages() was |
| inefficient since it would cause us to grab the lock in dispatchMessagesAndResetDidScheduleDispatchMessagesForConnection() to update |
| m_didScheduleDispatchMessagesWorkSet, then release it, then grab the lock again in dispatchMessages() for m_messagesToDispatchWhileWaitingForSyncReply. |
| |
| (IPC::Connection::SyncMessageState::dispatchMessagesAndResetDidScheduleDispatchMessagesForConnection): |
| Grab the lock only once to update m_didScheduleDispatchMessagesWorkSet and m_messagesToDispatchWhileWaitingForSyncReply, instead of doing it in 2 |
| separate steps, each one taking the lock. |
| |
| (IPC::Connection::waitForMessage): |
| (IPC::Connection::waitForSyncReply): |
| (IPC::Connection::dispatchSyncMessage): |
| stop passing a null allowedConnection when calling dispatchMessages(). |
| |
| 2019-12-05 Chris Dumez <cdumez@apple.com> |
| |
| PageConfiguration::dragClient should use a smart pointer |
| https://bugs.webkit.org/show_bug.cgi?id=204816 |
| |
| Reviewed by Alex Christensen. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_overriddenMediaType): |
| |
| 2019-12-05 Chris Dumez <cdumez@apple.com> |
| |
| [IPC] Fail BackForwardItemIdentifier decoding if the decoded integer is not a valid ID |
| https://bugs.webkit.org/show_bug.cgi?id=204920 |
| <rdar://problem/57677453> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::willGoToBackForwardListItem): |
| (WebKit::WebPageProxy::backForwardGoToItemShared): |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::updateBackForwardItem): |
| |
| 2019-12-05 Sihui Liu <sihui_liu@apple.com> |
| |
| Move InProcessIDBServer to WebKitLegacy |
| https://bugs.webkit.org/show_bug.cgi?id=204896 |
| |
| Reviewed by Brady Eidson. |
| |
| * WebProcess/Databases/WebDatabaseProvider.h: |
| |
| 2019-12-05 Sihui Liu <sihui_liu@apple.com> |
| |
| Add ThreadMessageReceiver to IPC::Connection |
| https://bugs.webkit.org/show_bug.cgi?id=204908 |
| |
| Reviewed by Brady Eidson. |
| |
| ThreadMesageReceiver is similar to WorkQueueMessageReceiver, but it should handle messages (dispatched from IPC |
| thread) on a specific thread, while WorkQueueMessageReceiver may handle messages on different threads. |
| |
| * Platform/IPC/Connection.cpp: |
| (IPC::Connection::addThreadMessageReceiver): |
| (IPC::Connection::removeThreadMessageReceiver): |
| (IPC::Connection::dispatchThreadMessageReceiverMessage): |
| (IPC::Connection::processIncomingMessage): |
| (IPC::Connection::dispatchMessageToThreadReceiver): |
| * Platform/IPC/Connection.h: |
| (IPC::Connection::ThreadMessageReceiver::dispatchToThread): |
| |
| 2019-12-05 Chris Dumez <cdumez@apple.com> |
| |
| MESSAGE_CHECK BackForwardItemIdentifier on incoming IPC from the WebProcess |
| https://bugs.webkit.org/show_bug.cgi?id=204899 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| MESSAGE_CHECK BackForwardItemIdentifier on incoming IPC from the WebProcess. This is important since we use this identifier |
| to look up the WebBackForwardListItem in a HashMap, and looking up a bad ID could corrupt said HashMap. |
| |
| * Shared/WebBackForwardListItem.cpp: |
| Make sure the WebBackForwardListItem is always constructed and destroyed on the main thread, to avoid corrupting |
| the allItems() HashMap. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::willGoToBackForwardListItem): |
| (WebKit::WebPageProxy::backForwardGoToItemShared): |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::updateBackForwardItem): |
| |
| 2019-12-05 Kate Cheney <katherine_cheney@apple.com> |
| |
| [MSVC] WebResourceLoadStatisticsStore.h is reporting warning C4804: '/': unsafe use of type 'bool' in operation |
| https://bugs.webkit.org/show_bug.cgi?id=204870 |
| |
| Reviewed by Darin Adler. |
| |
| This patch converts storageAccessGranted to a char since makeString() |
| does not explicitly accept bool types. |
| |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h: |
| (WebKit::ThirdPartyDataForSpecificFirstParty::toString const): |
| |
| 2019-12-05 Philippe Normand <pnormand@igalia.com> |
| |
| [GLib] Display GStreamer version in about:gpu page |
| |
| Rubber-stamped by Carlos Garcia Campos. |
| |
| * UIProcess/API/glib/WebKitProtocolHandler.cpp: |
| (WebKit::WebKitProtocolHandler::handleGPU): |
| |
| 2019-12-05 youenn fablet <youenn@apple.com> |
| |
| inspector/page/overrideSetting-MockCaptureDevicesEnabled.html is failing after removal of internals.setMockMediaCaptureDevicesEnabled API |
| https://bugs.webkit.org/show_bug.cgi?id=204849 |
| |
| Reviewed by Eric Carlson. |
| |
| Synchronize the center with the preferences when the value might be updated. |
| Add API to check which center is used in UIProcess. |
| |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageIsMockRealtimeMediaSourceCenterEnabled): |
| * UIProcess/API/C/WKPagePrivate.h: |
| * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: |
| (WebKit::UserMediaPermissionRequestManagerProxy::UserMediaPermissionRequestManagerProxy): |
| (WebKit::UserMediaPermissionRequestManagerProxy::setMockCaptureDevicesEnabledOverride): |
| * UIProcess/UserMediaPermissionRequestManagerProxy.h: |
| (WebKit::UserMediaPermissionRequestManagerProxy::setMockCaptureDevicesEnabledOverride): Deleted. |
| |
| 2019-12-04 Joonghun Park <jh718.park@samsung.com> |
| |
| Unreviewed. Remove build warnings below since r253025. |
| warning: unused variable ‘iter’ [-Wunused-variable] |
| warning: unused variable ‘isNewEntry’ [-Wunused-variable] |
| |
| No new tests, no new behavioral changes. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::addSessionStorageQuotaManager): |
| * NetworkProcess/NetworkProcess.h: |
| (WebKit::NetworkProcess::SessionStorageQuotaManager::ensureOriginStorageQuotaManager): |
| |
| 2019-12-04 Chris Dumez <cdumez@apple.com> |
| |
| IPC messages may get processed out of order in some cases |
| https://bugs.webkit.org/show_bug.cgi?id=204864 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| IPC messages may get processed out of order in some cases. Connection::SyncMessageState::dispatchMessages() |
| puts messages it did not process back at the end of the queue, instead of the beginning. This means that |
| messages added to the queue while Connection::SyncMessageState::dispatchMessages() was running will |
| incorrectly run *before* the ones dispatchMessages() did not process. |
| |
| * Platform/IPC/Connection.cpp: |
| (IPC::Connection::SyncMessageState::dispatchMessages): |
| |
| 2019-12-04 Chris Dumez <cdumez@apple.com> |
| |
| PageConfiguration::progressTrackerClient should use a smart pointer |
| https://bugs.webkit.org/show_bug.cgi?id=204854 |
| |
| Reviewed by Alex Christensen. |
| |
| * WebProcess/WebCoreSupport/WebProgressTrackerClient.cpp: |
| (WebKit::WebProgressTrackerClient::progressTrackerDestroyed): Deleted. |
| * WebProcess/WebCoreSupport/WebProgressTrackerClient.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_overriddenMediaType): |
| |
| 2019-12-04 Tim Horton <timothy_horton@apple.com> |
| |
| Fix the iOS build |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb: Added. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-12-04 Per Arne Vollan <pvollan@apple.com> |
| |
| Unreviewed fix for failure to create sandbox extension on macOS after r253011. This should be iOS only. |
| |
| * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: |
| (WebKit::UserMediaPermissionRequestManagerProxy::finishGrantingRequest): |
| * UIProcess/UserMediaPermissionRequestManagerProxy.h: |
| |
| 2019-12-04 Per Arne Vollan <pvollan@apple.com> |
| |
| [iOS] The UI process should issue mach sandbox extension to "com.apple.AGXCompilerService" |
| https://bugs.webkit.org/show_bug.cgi?id=203915 |
| |
| Reviewed by Brent Fulgham. |
| |
| Only a few iPad models need access to "com.apple.AGXCompilerService” in the WebContent process. |
| The UI process should issue this mach extension for these iPad models. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::encode const): |
| (WebKit::WebProcessCreationParameters::decode): |
| * Shared/WebProcessCreationParameters.h: |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::deviceHasAGXCompilerService): |
| (WebKit::WebProcessPool::platformInitializeWebProcess): |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::platformInitializeWebProcess): |
| |
| 2019-12-04 Kate Cheney <katherine_cheney@apple.com> |
| |
| Expose basic ITP data from the database for future API/SPI use |
| https://bugs.webkit.org/show_bug.cgi?id=203432 |
| <rdar://problem/56085040> |
| |
| Reviewed John Wilander. |
| |
| Tests: http/tests/resourceLoadStatistics/user-interface-data-no-storage-access-database.html |
| http/tests/resourceLoadStatistics/user-interface-data-no-storage-access.html |
| http/tests/storageAccess/user-interface-data-with-storage-access-database.html |
| http/tests/storageAccess/user-interface-data-with-storage-access.html |
| |
| Adds the ability to collect sorted ITP data for displaying in a |
| user interface. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: |
| (WebKit::ResourceLoadStatisticsDatabaseStore::ResourceLoadStatisticsDatabaseStore): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::prepareStatements): |
| Added new queries to the database store to check for storage access in |
| the database and aggregate topFrames with the same |
| subframe/subresource so easily create the struct for collecting data |
| for the UI. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::relationshipExists const): |
| Fixed an incorrect function name in the error message. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::joinSubStatisticsForSorting): |
| Renamed unclear SQL variable names and added a bind parameter to |
| specify whether resource is prevalent or not, which allows |
| this function to be used to collect sorted ITP data |
| for the UI. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::getFirstPartyDataForDomain const): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::gatherDataForUserInterface const): |
| |
| (WebKit::buildQueryStartAndEnd): |
| (WebKit::getMedianOfPrevalentResourcesWithUserInteraction): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::getTopPrevelentResourceDaysSinceUI const): |
| (WebKit::getMedianOfPrevalentResourceWithoutUserInteraction): |
| (WebKit::getNumberOfPrevalentResourcesInTopResources): |
| Changed sql query variable names to make them more clear and added a |
| new bind parameter to allow for more general use of substatistic |
| sorting query. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::hasStorageAccess const): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::dumpResourceLoadStatistics const): |
| Combined UI data with dumpResourceLoadStatistics() data to keep the testing aspect |
| of this patch simpler. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::resourceToString const): |
| Since mostRecentUserInteractionTime changes with each test run, I |
| updated the dumping to report only if it was in the last 24 hours as |
| opposed to reporting an actual time. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h: |
| * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ensureFirstPartyStatistic): |
| (WebKit::getFirstPartyDataForDomain): |
| (WebKit::hasBeenThirdParty): |
| (WebKit::ResourceLoadStatisticsMemoryStore::gatherDataForUserInterface const): |
| (WebKit::ResourceLoadStatisticsMemoryStore::dumpResourceLoadStatistics): |
| * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h: |
| * NetworkProcess/Classifier/ResourceLoadStatisticsStore.h: |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::gatherDataForUserInterface): |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h: |
| (WebKit::FirstPartyData::toString const): |
| (WebKit::FirstPartyData::operator== const): |
| (WebKit::ThirdPartyData::toString const): |
| (WebKit::ThirdPartyData::operator< const): |
| The toString methods allow the structs to be printed for testing |
| purposes. The equals methods allow the return vectors to use |
| appendIfNotContains. |
| |
| 2019-12-04 Simon Fraser <simon.fraser@apple.com> |
| |
| Minor RemoteLayerTree logging cleanup |
| https://bugs.webkit.org/show_bug.cgi?id=204865 |
| |
| Reviewed by Tim Horton. |
| |
| Have the ::description() methods return Strings like everything else does. |
| Use LOG_WITH_STREAM() so we don't call description() unless the log channel is on. |
| |
| * Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h: |
| * Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm: |
| (WebKit::RemoteLayerTreeTransaction::dump const): |
| (WebKit::RemoteLayerTreeTransaction::description const): |
| * Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp: |
| (WebKit::RemoteScrollingCoordinatorTransaction::description const): |
| (WebKit::RemoteScrollingCoordinatorTransaction::dump const): |
| * Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.h: |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm: |
| (WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree): |
| |
| 2019-12-04 Louie Livon-Bemel <llivonbemel@apple.com> |
| |
| Add exclusion rule for text manipulation SPI to exclude based on element class |
| https://bugs.webkit.org/show_bug.cgi?id=204754 |
| <rdar://problem/57398802> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Give clients another option for adding an exclusion for text manipulation; allow them to exclude based on an |
| element having a certain class. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _startTextManipulationsWithConfiguration:completion:]): |
| If the rule doesn't have an attribute but does have a class name, treat it as a ClassRule exclusion. |
| * UIProcess/API/Cocoa/_WKTextManipulationExclusionRule.h: |
| Add an initializer for excluding based on a class name. Also add a getter for the className. |
| * UIProcess/API/Cocoa/_WKTextManipulationExclusionRule.mm: |
| (-[_WKTextManipulationExclusionRule initExclusion:forClass:]): |
| (-[_WKTextManipulationExclusionRule className]): |
| |
| 2019-12-04 Kenneth Russell <kbr@chromium.org> |
| |
| Enable WebGL's ASTC extension all the time |
| https://bugs.webkit.org/show_bug.cgi?id=202836 |
| <rdar://problem/57627592> |
| |
| Reviewed by Dean Jackson. |
| |
| Remove the run-time flag - no longer necessary. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2019-12-04 youenn fablet <youenn@apple.com> |
| |
| WebProcessPool::terminateServiceWorkerProcess should be renamed terminateServiceWorkers |
| https://bugs.webkit.org/show_bug.cgi?id=204792 |
| |
| Reviewed by Chris Dumez. |
| |
| Make use of disableServiceWorkers in terminateServiceWorkers as we might need to handle the case of a service worker in a process containing a page. |
| Renaming API accordingly. |
| Covered by existing tests. |
| |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextTerminateServiceWorkers): |
| * UIProcess/API/C/WKContextPrivate.h: |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _terminateServiceWorkers]): |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess): |
| (WebKit::WebProcessPool::createWebPage): |
| (WebKit::WebProcessPool::updateServiceWorkerUserAgent): |
| (WebKit::WebProcessPool::terminateNetworkProcess): |
| (WebKit::WebProcessPool::terminateServiceWorkers): |
| (WebKit::WebProcessPool::updateProcessAssertions): |
| (WebKit::WebProcessPool::isServiceWorkerPageID const): |
| * UIProcess/WebProcessPool.h: |
| |
| 2019-12-04 youenn fablet <youenn@apple.com> |
| |
| Move soft update handling to network process |
| https://bugs.webkit.org/show_bug.cgi?id=204678 |
| |
| Reviewed by Chris Dumez. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::swServerForSession): |
| * NetworkProcess/NetworkSession.h: |
| (WebKit::NetworkSession::addSoftUpdateLoader): |
| (WebKit::NetworkSession::removeSoftUpdateLoader): |
| * NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp: |
| (WebKit::ServiceWorkerFetchTask::ServiceWorkerFetchTask): |
| (WebKit::ServiceWorkerFetchTask::didReceiveRedirectResponse): |
| (WebKit::ServiceWorkerFetchTask::didReceiveResponse): |
| (WebKit::ServiceWorkerFetchTask::didFail): |
| (WebKit::ServiceWorkerFetchTask::didNotHandle): |
| (WebKit::ServiceWorkerFetchTask::continueFetchTaskWith): |
| (WebKit::ServiceWorkerFetchTask::timeoutTimerFired): |
| (WebKit::ServiceWorkerFetchTask::softUpdateIfNeeded): |
| * NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h: |
| * NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.cpp: Added. |
| (WebKit::ServiceWorkerSoftUpdateLoader::start): |
| (WebKit::ServiceWorkerSoftUpdateLoader::ServiceWorkerSoftUpdateLoader): |
| (WebKit::ServiceWorkerSoftUpdateLoader::~ServiceWorkerSoftUpdateLoader): |
| (WebKit::ServiceWorkerSoftUpdateLoader::fail): |
| (WebKit::ServiceWorkerSoftUpdateLoader::loadWithCacheEntry): |
| (WebKit::ServiceWorkerSoftUpdateLoader::loadFromNetwork): |
| (WebKit::ServiceWorkerSoftUpdateLoader::willSendRedirectedRequest): |
| (WebKit::ServiceWorkerSoftUpdateLoader::didReceiveResponse): |
| (WebKit::ServiceWorkerSoftUpdateLoader::didReceiveBuffer): |
| (WebKit::ServiceWorkerSoftUpdateLoader::didFinishLoading): |
| (WebKit::ServiceWorkerSoftUpdateLoader::didFailLoading): |
| (WebKit::ServiceWorkerSoftUpdateLoader::didComplete): |
| * NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.h: Added. |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::createFetchTask): |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp: |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h: |
| * Shared/Authentication/AuthenticationManager.cpp: |
| (WebKit::AuthenticationManager::didReceiveAuthenticationChallenge): |
| * Sources.txt: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| * WebProcess/Storage/WebSWContextManagerConnection.h: |
| * WebProcess/Storage/WebSWContextManagerConnection.messages.in: |
| |
| 2019-12-04 Tim Horton <timothy_horton@apple.com> |
| |
| Introduce a GPU process |
| https://bugs.webkit.org/show_bug.cgi?id=204343 |
| |
| Reviewed by Simon Fraser. |
| |
| Add a GPU process. This process is destined to be used as a proxy between |
| WebKit and the underlying graphics mechanisms; in the case of the Cocoa |
| ports, it will specifically gate access to IOKit and a few media-related |
| daemons. |
| |
| In this patch, the process is a UI-process singleton; the WebKit client |
| application gets a single GPU process for all rendering, regardless of |
| the number of Web Content processes, process pools, or web views. |
| |
| For now, it is just a shell of a process; functionality will be added |
| in future patches! |
| |
| * Configurations/FeatureDefines.xcconfig: |
| Add ENABLE(GPU_PROCESS). |
| |
| * Configurations/GPUService.xcconfig: Added. |
| * GPUProcess/EntryPoint/Cocoa/XPCService/GPUService/Info-OSX.plist: Added. |
| * GPUProcess/EntryPoint/Cocoa/XPCService/GPUService/Info-iOS.plist: Added. |
| * GPUProcess/EntryPoint/Cocoa/XPCService/GPUServiceEntryPoint.mm: Added. |
| * Shared/AuxiliaryProcess.h: |
| * Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h: |
| * Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm: |
| * Platform/ExtraPrivateSymbolsForTAPI.h: |
| * Shared/mac/AuxiliaryProcessMac.mm: |
| * Sources.txt: |
| * SourcesCocoa.txt: |
| * WebKit.xcodeproj/project.pbxproj: |
| * Configurations/WebKit.xcconfig: |
| * DerivedSources-input.xcfilelist: |
| * DerivedSources-output.xcfilelist: |
| * DerivedSources.make: |
| * UIProcess/AuxiliaryProcessProxy.cpp: |
| (WebKit::AuxiliaryProcessProxy::getLaunchOptions): |
| * UIProcess/Launcher/ProcessLauncher.h: |
| * UIProcess/Launcher/mac/ProcessLauncherMac.mm: |
| (WebKit::serviceName): |
| (WebKit::shouldLeakBoost): |
| Add a new target for the XPC service, and do the paperwork to launch it. |
| |
| * GPUProcess/GPUConnectionToWebProcess.cpp: Added. |
| * GPUProcess/GPUConnectionToWebProcess.h: Added. |
| * GPUProcess/GPUConnectionToWebProcess.messages.in: Added. |
| On the GPU process side, the incoming connection from the Web Content process. |
| |
| * GPUProcess/GPUProcess.cpp: Added. |
| * GPUProcess/GPUProcess.h: Added. |
| * GPUProcess/GPUProcess.messages.in: Added. |
| * GPUProcess/GPUProcessCreationParameters.cpp: Added. |
| * GPUProcess/GPUProcessCreationParameters.h: Added. |
| * GPUProcess/cocoa/GPUProcessCocoa.mm: Added. |
| * GPUProcess/ios/GPUProcessIOS.mm: Added. |
| * GPUProcess/mac/GPUProcessMac.mm: Added. |
| Add the shell of the GPU process. Mostly stolen from the Networking process. |
| |
| * UIProcess/GPU/GPUProcessProxy.cpp: Added. |
| (WebKit::GPUProcessProxy::singleton): |
| (WebKit::GPUProcessProxy::GPUProcessProxy): |
| (WebKit::GPUProcessProxy::~GPUProcessProxy): |
| (WebKit::GPUProcessProxy::getLaunchOptions): |
| (WebKit::GPUProcessProxy::connectionWillOpen): |
| (WebKit::GPUProcessProxy::processWillShutDown): |
| (WebKit::GPUProcessProxy::getGPUProcessConnection): |
| (WebKit::GPUProcessProxy::openGPUProcessConnection): |
| (WebKit::GPUProcessProxy::gpuProcessCrashed): |
| (WebKit::GPUProcessProxy::didReceiveMessage): |
| (WebKit::GPUProcessProxy::didReceiveSyncMessage): |
| (WebKit::GPUProcessProxy::didClose): |
| (WebKit::GPUProcessProxy::didReceiveInvalidMessage): |
| (WebKit::GPUProcessProxy::didFinishLaunching): |
| (WebKit::GPUProcessProxy::updateProcessAssertion): |
| * UIProcess/GPU/GPUProcessProxy.h: Added. |
| * UIProcess/GPU/GPUProcessProxy.messages.in: Added. |
| On the UI process side, the GPUProcessProxy is the singleton that |
| owns the GPU process for the process. |
| |
| * GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in: Added. |
| This sandbox profile is copied from the Web Content process. |
| We will cut it down in the future, but this is a sensible starting point, |
| since the code that is moving to the GPU process is code that currently |
| lives in the Web Content process. |
| |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::updateProcessAssertion): |
| Fix a logging typo I stumbled upon. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::getGPUProcessConnection): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::getGPUProcessConnection): |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebProcessProxy.messages.in: |
| Add a message from Web->UI to retrieve the GPU process connection. |
| In the future, we should send this along with the Web Content process |
| initialization message, but this mechanism doesn't exist yet. |
| |
| * WebProcess/GPU/GPUProcessConnection.cpp: Added. |
| (WebKit::GPUProcessConnection::GPUProcessConnection): |
| (WebKit::GPUProcessConnection::~GPUProcessConnection): |
| (WebKit::GPUProcessConnection::didReceiveMessage): |
| (WebKit::GPUProcessConnection::didReceiveSyncMessage): |
| (WebKit::GPUProcessConnection::didClose): |
| (WebKit::GPUProcessConnection::didReceiveInvalidMessage): |
| * WebProcess/GPU/GPUProcessConnection.h: Added. |
| (WebKit::GPUProcessConnection::create): |
| (WebKit::GPUProcessConnection::connection): |
| * WebProcess/GPU/GPUProcessConnection.messages.in: Added. |
| * WebProcess/GPU/GPUProcessConnectionInfo.h: Added. |
| (WebKit::GPUProcessConnectionInfo::identifier): |
| (WebKit::GPUProcessConnectionInfo::releaseIdentifier): |
| (WebKit::GPUProcessConnectionInfo::encode const): |
| (WebKit::GPUProcessConnectionInfo::decode): |
| In the Web Content process, GPUProcessConnection is the process-wide |
| connection to the GPU process. All pages in a given Web Content process |
| use the same connection to talk to the singleton GPU process. |
| |
| * WebProcess/WebProcess.cpp: |
| (WebKit::getGPUProcessConnection): |
| (WebKit::WebProcess::ensureGPUProcessConnection): |
| (WebKit::WebProcess::gpuProcessConnectionClosed): |
| * WebProcess/WebProcess.h: |
| (WebKit::WebProcess::existingGPUProcessConnection): |
| In the Web Content process, make it possible for clients to retrieve |
| the GPU process connection. |
| |
| 2019-12-04 Yury Semikhatsky <yurys@chromium.org> |
| |
| Web Inspector: allow inspector to pause provisional page load and restore its state |
| https://bugs.webkit.org/show_bug.cgi?id=204170 |
| |
| Reviewed by Devin Rousso. |
| |
| Provisional page loading can be deffered if inspector front-end is connected. This |
| allows to configure inspector backend in the provisional page before load request |
| is sent. If inspector front-end is not connected provisional loading will conitinue |
| exactly as before. |
| |
| Tests: http/tests/inspector/target/pause-on-inline-debugger-statement.html |
| http/tests/inspector/target/provisional-load-cancels-previous-load.html |
| |
| * UIProcess/InspectorTargetProxy.cpp: |
| (WebKit::InspectorTargetProxy::disconnect): |
| * UIProcess/WebPageInspectorController.cpp: |
| (WebKit::WebPageInspectorController::shouldPauseLoading const): |
| (WebKit::WebPageInspectorController::setContinueLoadingCallback): |
| * UIProcess/WebPageInspectorController.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::continueNavigationInNewProcess): |
| |
| 2019-12-03 Megan Gardner <megan_gardner@apple.com> |
| |
| Add disabled highlight API skeleton |
| https://bugs.webkit.org/show_bug.cgi?id=204809 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetHighlightAPIEnabled): |
| (WKPreferencesGetHighlightAPIEnabled): |
| * UIProcess/API/C/WKPreferencesRefPrivate.h: |
| |
| 2019-12-03 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Replace customJavaScriptUserAgentAsSiteSpecificQuirks with customUserAgentAsSiteSpecificQuirks |
| https://bugs.webkit.org/show_bug.cgi?id=204824 |
| |
| Reviewed by Brent Fulgham. |
| |
| This patch replaces _WKWebsitePolicies's customJavaScriptUserAgentAsSiteSpecificQuirks with |
| customUserAgentAsSiteSpecificQuirks and makes it apply to network requests as well as JS API. |
| |
| * Shared/WebsitePoliciesData.cpp: |
| (WebKit::WebsitePoliciesData::encode const): |
| (WebKit::WebsitePoliciesData::decode): |
| (WebKit::WebsitePoliciesData::applyToDocumentLoader): |
| * Shared/WebsitePoliciesData.h: |
| * UIProcess/API/APIWebsitePolicies.cpp: |
| (API::WebsitePolicies::copy const): |
| (API::WebsitePolicies::data): |
| * UIProcess/API/APIWebsitePolicies.h: |
| * UIProcess/API/Cocoa/WKWebpagePreferences.mm: |
| (-[WKWebpagePreferences _setCustomUserAgentAsSiteSpecificQuirks:]): Renamed from _setCustomJavaScriptUserAgentAsSiteSpecificQuirks. |
| (-[WKWebpagePreferences _customUserAgentAsSiteSpecificQuirks]): Renamed from _customJavaScriptUserAgentAsSiteSpecificQuirks. |
| * UIProcess/API/Cocoa/WKWebpagePreferencesPrivate.h: |
| * UIProcess/API/Cocoa/_WKWebsitePolicies.h: |
| * UIProcess/API/Cocoa/_WKWebsitePolicies.mm: |
| (-[_WKWebsitePolicies setCustomUserAgentAsSiteSpecificQuirks:]): Renamed from setCustomJavaScriptUserAgentAsSiteSpecificQuirks. |
| (-[_WKWebsitePolicies customUserAgentAsSiteSpecificQuirks]): Renamed from customJavaScriptUserAgentAsSiteSpecificQuirks. |
| |
| 2019-12-03 Andres Gonzalez <andresg_22@apple.com> |
| |
| Focus tracking support in the accessibility isolatedtree. |
| https://bugs.webkit.org/show_bug.cgi?id=204535 |
| |
| Reviewed by Chris Fleizach. |
| |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: |
| (WKAccessibilityFocusedObject): |
| |
| 2019-12-03 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics (experimental): Delete non-cookie website data after 7 days of no user interaction |
| https://bugs.webkit.org/show_bug.cgi?id=204779 |
| <rdar://problem/57578989> |
| |
| Reviewed by Alex Christensen. |
| |
| Trackers are continuing to move cross-site tracking IDs into first-party storage. |
| This change ages out script-writable non-cookie website data in alignment with the |
| 7-day cap on client-side cookies. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: |
| (WebKit::ResourceLoadStatisticsDatabaseStore::shouldRemoveAllButCookiesFor const): |
| Now makes use of the set WebCore::FirstPartyWebsiteDataRemovalMode. |
| * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ResourceLoadStatisticsMemoryStore::shouldRemoveAllButCookiesFor const): |
| Now makes use of the set WebCore::FirstPartyWebsiteDataRemovalMode. |
| * NetworkProcess/Classifier/ResourceLoadStatisticsStore.h: |
| (WebKit::ResourceLoadStatisticsStore::setFirstPartyWebsiteDataRemovalMode): |
| (WebKit::ResourceLoadStatisticsStore::firstPartyWebsiteDataRemovalMode const): |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::setFirstPartyWebsiteDataRemovalMode): |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h: |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::setFirstPartyWebsiteDataRemovalModeForTesting): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * NetworkProcess/NetworkSession.cpp: |
| (WebKit::NetworkSession::setResourceLoadStatisticsEnabled): |
| (WebKit::NetworkSession::recreateResourceLoadStatisticStore): |
| (WebKit::NetworkSession::forwardResourceLoadStatisticsSettings): |
| New convenience function to avoid code duplication in |
| NetworkSession::setResourceLoadStatisticsEnabled() and |
| NetworkSession::forwardResourceLoadStatisticsSettings(). |
| * NetworkProcess/NetworkSession.h: |
| * NetworkProcess/NetworkSessionCreationParameters.cpp: |
| (WebKit::NetworkSessionCreationParameters::encode const): |
| (WebKit::NetworkSessionCreationParameters::decode): |
| * NetworkProcess/NetworkSessionCreationParameters.h: |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| * Scripts/webkit/messages.py: |
| Makes sure the WebCore::FirstPartyWebsiteDataRemovalMode is found in WebCore/NetworkStorageSession.h. |
| * Shared/WebPreferences.yaml: |
| New experimental feature, off by default. |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreSetResourceLoadStatisticsFirstPartyWebsiteDataRemovalModeForTesting): |
| (WKWebsiteDataStoreStatisticsResetToConsistentState): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::setFirstPartyWebsiteDataRemovalModeForTesting): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::setResourceLoadStatisticsFirstPartyWebsiteDataRemovalModeForTesting): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| |
| 2019-12-03 Chris Dumez <cdumez@apple.com> |
| |
| [iOS] Unable to interact with the view after a back swipe until lifting the finger off the screen |
| https://bugs.webkit.org/show_bug.cgi?id=204821 |
| |
| Reviewed by Tim Horton. |
| |
| If you swipe back on iOS and then put your finger on the screen before the view gesture snapshot is taken down, |
| your gestures will not be recognized, even after the snapshot is taken down, until after you lift your finger |
| off the screen and back on. This makes MobileSafari look more unresponsive than it needs to be. |
| |
| To address the issue, disable user interactions for the snapshot view, so that interactions go through to the |
| actual view underneath. |
| |
| * UIProcess/ios/ViewGestureControllerIOS.mm: |
| (WebKit::ViewGestureController::beginSwipeGesture): |
| |
| 2019-12-03 Chris Dumez <cdumez@apple.com> |
| |
| Use a 3 second timeout for the view gesture snapshot on macOS |
| https://bugs.webkit.org/show_bug.cgi?id=204818 |
| |
| Reviewed by Tim Horton. |
| |
| Use a 3 second timeout for the view gesture snapshot on macOS, for consistency with iOS. |
| It used to be 5 seconds on macOS. |
| |
| * UIProcess/ViewGestureController.cpp: |
| |
| 2019-12-03 Chris Dumez <cdumez@apple.com> |
| |
| REGRESSION (r252778): ASSERT(!m_networkLoad); in ~SpeculativeLoad() |
| https://bugs.webkit.org/show_bug.cgi?id=204813 |
| <rdar://problem/57581082> |
| |
| Reviewed by Antti Koivisto. |
| |
| After r252778, SpeculativeLoadManager::revalidateSubresource() may delay the revalidation until we receive |
| the response for the main resource. We can hit the assertion in the SpeculativeLoad destructor if a speculative |
| revalidation for the SAME resource gets scheduled while we're waiting for the main resource response. When we |
| eventually receive the main resource response, we would call revalidateSubresource() again, which would create |
| a SpeculativeLoad and try to add it to m_pendingPreloads. Because m_pendingPreloads would already contain a |
| preload for this same resource, the SpeculativeLoad would not get added to the map and it would get destroyed |
| right away, before completing (thus hitting the assert). This unnecessary creation of the SpeculativeLoad is |
| inefficient and it is thus best to avoid it. |
| |
| To address the issue, when we receive the response, we now make sure that m_pendingPreloads does not already |
| contain a preload for this resource before calling revalidateSubresource() again, similarly to what was |
| already done at the beginning of SpeculativeLoadManager::preloadEntry(). |
| |
| No new tests, unknown how to reproduce. |
| |
| * NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp: |
| (WebKit::NetworkCache::SpeculativeLoadManager::revalidateSubresource): |
| |
| 2019-12-03 Eric Carlson <eric.carlson@apple.com> |
| |
| Add a runtime setting for media in the GPU process |
| https://bugs.webkit.org/show_bug.cgi?id=204801 |
| <rdar://problem/57596199> |
| |
| Reviewed by Jer Noble. |
| |
| * Shared/WebPreferences.yaml: |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): |
| |
| 2019-12-03 Per Arne Vollan <pvollan@apple.com> |
| |
| Unreviewed assertion fix for older macOS versions after r253011. |
| |
| * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: |
| (WebKit::UserMediaPermissionRequestManagerProxy::finishGrantingRequest): |
| * UIProcess/UserMediaPermissionRequestManagerProxy.h: |
| |
| 2019-12-03 Antoine Quint <graouts@apple.com> |
| |
| [Web Animations] Add a runtime flag for Web Animations composite operations |
| https://bugs.webkit.org/show_bug.cgi?id=204718 |
| |
| Reviewed by Dean Jackson. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2019-12-03 Youenn Fablet <youenn@apple.com> |
| |
| UserMediaCaptureManager should have independent capture factories |
| https://bugs.webkit.org/show_bug.cgi?id=204786 |
| |
| Reviewed by Eric Carlson. |
| |
| Refactor the code to make UserMediaCaptureManager have 3 different factories. |
| This allows having 3 potential active sources which are used on iOS. |
| We cannot test right now on iOS as audio capture in UIProcess is not yet ready. |
| |
| * WebProcess/cocoa/UserMediaCaptureManager.cpp: |
| (WebKit::UserMediaCaptureManager::Source::Source): |
| (WebKit::UserMediaCaptureManager::Source::~Source): |
| (WebKit::UserMediaCaptureManager::UserMediaCaptureManager): |
| (WebKit::UserMediaCaptureManager::~UserMediaCaptureManager): |
| (WebKit::UserMediaCaptureManager::initialize): |
| (WebKit::UserMediaCaptureManager::createCaptureSource): |
| (WebKit::UserMediaCaptureManager::AudioFactory::setAudioCapturePageState): |
| (WebKit::UserMediaCaptureManager::VideoFactory::setVideoCapturePageState): |
| (WebKit::UserMediaCaptureManager::setAudioCapturePageState): Deleted. |
| (WebKit::UserMediaCaptureManager::setVideoCapturePageState): Deleted. |
| * WebProcess/cocoa/UserMediaCaptureManager.h: |
| (WebKit::UserMediaCaptureManager::AudioFactory::AudioFactory): |
| (WebKit::UserMediaCaptureManager::VideoFactory::VideoFactory): |
| (WebKit::UserMediaCaptureManager::DisplayFactory::DisplayFactory): |
| |
| 2019-12-03 Chris Dumez <cdumez@apple.com> |
| |
| PageConfiguration::pluginClient should use a smart pointer |
| https://bugs.webkit.org/show_bug.cgi?id=204780 |
| |
| Reviewed by Anders Carlsson. |
| |
| * WebProcess/WebCoreSupport/WebPlugInClient.cpp: |
| * WebProcess/WebCoreSupport/WebPlugInClient.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_overriddenMediaType): |
| |
| 2019-12-03 Chris Dumez <cdumez@apple.com> |
| |
| PageConfiguration::alternativeTextClient should use a smart pointer |
| https://bugs.webkit.org/show_bug.cgi?id=204777 |
| |
| Reviewed by Anders Carlsson. |
| |
| * WebProcess/WebCoreSupport/WebAlternativeTextClient.h: |
| * WebProcess/WebCoreSupport/mac/WebAlternativeTextClient.cpp: |
| (WebKit::WebAlternativeTextClient::pageDestroyed): Deleted. |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_overriddenMediaType): |
| |
| 2019-12-03 Kate Cheney <katherine_cheney@apple.com> |
| |
| Activate the SQLite database as an on-by-default feature |
| https://bugs.webkit.org/show_bug.cgi?id=204774 |
| <rdar://problem/56117706> |
| |
| Reviewed by Brent Fulgham. |
| |
| The flag to use the ITP Database backend should be set to true by default. |
| * Shared/WebPreferences.yaml: |
| |
| 2019-12-03 youenn fablet <youenn@apple.com> |
| |
| Add support for camera rotation when capturing in UIProcess |
| https://bugs.webkit.org/show_bug.cgi?id=204750 |
| |
| Reviewed by Eric Carlson. |
| |
| Make UserMediaCaptureManagerProxy have an OrientationNotifier. |
| It is updated by each web page of the web process being notified of a device orientation change. |
| Whenever a rotation happens, UIProcess sources are now notified to correctly compute the frame rotations. |
| |
| Covered by existing tests. |
| |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetMockCameraOrientation): |
| * UIProcess/API/C/WKPagePrivate.h: |
| * UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp: |
| (WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints): |
| (WebKit::UserMediaCaptureManagerProxy::setOrientation): |
| * UIProcess/Cocoa/UserMediaCaptureManagerProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::setOrientationForMediaCapture): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebProcessProxy.h: |
| (WebKit::WebProcessProxy::userMediaCaptureManagerProxy): |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::setDeviceOrientation): |
| |
| 2019-12-03 Antti Koivisto <antti@apple.com> |
| |
| [LFC][Integration] Shorten feature flag name |
| https://bugs.webkit.org/show_bug.cgi?id=204788 |
| |
| Reviewed by Sam Weinig. |
| |
| * Shared/WebPreferences.yaml: |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): |
| |
| 2019-12-03 youenn fablet <youenn@apple.com> |
| |
| Expose WKWebView API to stop ongoing capture |
| https://bugs.webkit.org/show_bug.cgi?id=204787 |
| |
| Reviewed by Eric Carlson. |
| |
| Covered by API test. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _stopMediaCapture]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| |
| 2019-12-03 youenn fablet <youenn@apple.com> |
| |
| [Cocoa] Run camera capture in UIProcess by default in layout tests |
| https://bugs.webkit.org/show_bug.cgi?id=204512 |
| |
| Reviewed by Eric Carlson. |
| |
| * UIProcess/UserMediaProcessManager.cpp: |
| (WebKit::UserMediaProcessManager::willCreateMediaStream): |
| Do not send sandbox extensions in case capture happens in UIProcess. |
| * WebProcess/cocoa/UserMediaCaptureManager.cpp: |
| (WebKit::UserMediaCaptureManager::Source::~Source): |
| (WebKit::UserMediaCaptureManager::createCaptureSource): |
| Register/unregister sources as active/unactive sources to the factory. |
| |
| 2019-12-03 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| WebDriver: handle elements of type file in send keys command |
| https://bugs.webkit.org/show_bug.cgi?id=188514 |
| |
| Reviewed by Brian Burg. |
| |
| Add setFilesForInputFileUpload method to Automation. It's like setFilesToSelectForFileUpload, but it works |
| differently, so I'm keeping both to not break safaridriver. The new one simply sends the file list to the web |
| process to be set on the input element, instead of saving the file list, wait for the driver to trigger the open |
| panel, intercept and complete the open panel request and send a dismiss open panel event to the driver. |
| |
| * UIProcess/Automation/Automation.json: Add setFilesForInputFileUpload. |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::setFilesForInputFileUpload): Send SetFilesForInputFileUpload message to the web process. |
| * UIProcess/Automation/WebAutomationSession.h: |
| * WebProcess/Automation/WebAutomationSessionProxy.cpp: |
| (WebKit::WebAutomationSessionProxy::setFilesForInputFileUpload): Create a FileList with the received paths and |
| call HTMLInputElement::setFiles() on the given element. |
| * WebProcess/Automation/WebAutomationSessionProxy.h: |
| * WebProcess/Automation/WebAutomationSessionProxy.messages.in: Add SetFilesForInputFileUpload message. |
| |
| 2019-12-03 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| WebDriver: most of the clear tests are failing |
| https://bugs.webkit.org/show_bug.cgi?id=180404 |
| |
| Reviewed by Brian Burg. |
| |
| Update the FormElementClear atom to follow the spec. |
| |
| * UIProcess/Automation/atoms/FormElementClear.js: |
| (isEditable): |
| (isResettableElementEmpty): |
| |
| 2019-12-03 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [PSON] Tooltips from previous page shown on new page |
| https://bugs.webkit.org/show_bug.cgi?id=204735 |
| |
| Reviewed by Chris Dumez. |
| |
| The problem is that WebPage (in the web process) is caching the tooltip text to avoid sending IPC messages when |
| the tooltip didn't change. When a new web process is used for the same web view, the tooltip text doesn't really |
| change (it's always null) until a new one is set. The setToolTip message is always sent right after the |
| MouseDidMoveOverElement, and they both depend on the same hit test result, so we can include the tooltip text as |
| part of the WebHitTestResultData struct passed to MouseDidMoveOverElement and remove the SetToolTip |
| message. Since the UI process is already caching the tooltip, we can simply notify the page client when it changes. |
| |
| * Shared/WebHitTestResultData.cpp: |
| (WebKit::WebHitTestResultData::WebHitTestResultData): Initialize toolTipText. |
| (WebKit::WebHitTestResultData::encode const): Encode toolTipText. |
| (WebKit::WebHitTestResultData::decode): Decode toolTipText. |
| * Shared/WebHitTestResultData.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::mouseDidMoveOverElement): Call setToolTip() after notifying the UI client about the mouse move. |
| (WebKit::WebPageProxy::setToolTip): Return early if tooltip didn't change. |
| (WebKit::WebPageProxy::resetState): Use setToolTip() to ensure the page client is notified about the change. |
| * UIProcess/WebPageProxy.messages.in: Remove SetToolTip message. |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::mouseDidMoveOverElement): Pass tooltip text to WebHitTestResultData constructor. |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| |
| 2019-12-02 Sihui Liu <sihui_liu@apple.com> |
| |
| Cross-thread version StorageQuotaManager |
| https://bugs.webkit.org/show_bug.cgi?id=203971 |
| <rdar://problem/57290349> |
| |
| Reviewed by Chris Dumez. |
| |
| * NetworkProcess/NetworkProcess.cpp: Introduce class SessionStorageQuotaManager to manage all |
| StorageQuotaManagers of the same session. |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| (WebKit::NetworkProcess::addWebsiteDataStore): |
| (WebKit::NetworkProcess::addSessionStorageQuotaManager): |
| (WebKit::NetworkProcess::removeSessionStorageQuotaManager): |
| (WebKit::NetworkProcess::destroySession): |
| (WebKit::NetworkProcess::deleteWebsiteData): |
| (WebKit::NetworkProcess::deleteWebsiteDataForOrigins): |
| (WebKit::NetworkProcess::createIDBServer): |
| (WebKit::NetworkProcess::addIndexedDatabaseSession): |
| (WebKit::NetworkProcess::setSessionStorageQuotaManagerIDBRootPath): |
| (WebKit::NetworkProcess::updateQuotaBasedOnSpaceUsageForTesting): |
| (WebKit::NetworkProcess::resetQuota): |
| (WebKit::NetworkProcess::storageQuotaManager): |
| (WebKit::NetworkProcess::initializeStorageQuota): Deleted. |
| (WebKit::NetworkProcess::clearStorageQuota): Deleted. |
| (): Deleted. |
| (WebKit::NetworkProcess::initializeQuotaUsers): Deleted. |
| * NetworkProcess/NetworkProcess.h: |
| (WebKit::NetworkProcess::SessionStorageQuotaManager::SessionStorageQuotaManager): |
| (WebKit::NetworkProcess::SessionStorageQuotaManager::defaultQuota const): |
| (WebKit::NetworkProcess::SessionStorageQuotaManager::ensureOriginStorageQuotaManager): |
| (WebKit::NetworkProcess::SessionStorageQuotaManager::existingStorageQuotaManagers): |
| (WebKit::NetworkProcess::SessionStorageQuotaManager::cacheRootPath const): |
| (WebKit::NetworkProcess::SessionStorageQuotaManager::setIDBRootPath): |
| (WebKit::NetworkProcess::SessionStorageQuotaManager::idbRootPath const): |
| (WebKit::NetworkProcess::StorageQuotaManagers::defaultQuota const): Deleted. |
| (WebKit::NetworkProcess::StorageQuotaManagers::setDefaultQuotas): Deleted. |
| (WebKit::NetworkProcess::StorageQuotaManagers::managersPerOrigin): Deleted. |
| * NetworkProcess/NetworkProcess.messages.in: |
| * NetworkProcess/cache/CacheStorageEngine.cpp: |
| (WebKit::CacheStorage::getDirectorySize): |
| (WebKit::CacheStorage::Engine::diskUsage): static function to get the disk usage of CacheStorage given |
| CacheStorage root directory. |
| (WebKit::CacheStorage::Engine::requestSpace): |
| (WebKit::CacheStorage::Engine::readCachesFromDisk): |
| (WebKit::CacheStorage::Engine::writeSizeFile): |
| (WebKit::CacheStorage::Engine::readSizeFile): |
| (WebKit::CacheStorage::Engine::initializeQuotaUser): Deleted. |
| * NetworkProcess/cache/CacheStorageEngine.h: |
| * NetworkProcess/cache/CacheStorageEngineCache.cpp: |
| (WebKit::CacheStorage::Cache::put): |
| (WebKit::CacheStorage::Cache::remove): |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::Caches::create): |
| (WebKit::CacheStorage::Caches::Caches): |
| (WebKit::CacheStorage::Caches::~Caches): |
| (WebKit::CacheStorage::Caches::updateSizeFile): |
| (WebKit::CacheStorage::Caches::initializeSize): |
| (WebKit::CacheStorage::Caches::clear): |
| (WebKit::CacheStorage::Caches::requestSpace): |
| (WebKit::CacheStorage::Caches::writeRecord): |
| (WebKit::CacheStorage::Caches::removeRecord): |
| (WebKit::CacheStorage::Caches::whenInitialized): Deleted. |
| (WebKit::CacheStorage::Caches::resetSpaceUsed): Deleted. |
| * NetworkProcess/cache/CacheStorageEngineCaches.h: |
| * Shared/WebsiteDataStoreParameters.cpp: |
| (WebKit::WebsiteDataStoreParameters::encode const): |
| (WebKit::WebsiteDataStoreParameters::decode): |
| * Shared/WebsiteDataStoreParameters.h: Add a cacheStorageDirectory parameter so we know the direcotry of |
| CacheStorage when we start using WebsiteDataStore. |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreResetQuota): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: Add a C API for reseting quota in TestRunner. |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::resetQuota): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::parameters): |
| (WebKit::WebsiteDataStore::resetQuota): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| |
| 2019-12-02 Per Arne Vollan <pvollan@apple.com> |
| |
| [iOS] Create sandbox extension for "com.apple.tccd" |
| https://bugs.webkit.org/show_bug.cgi?id=204367 |
| <rdar://problem/57330176> |
| |
| Reviewed by Eric Carlson. |
| |
| When camera or microphone access has been granted by the user, have the UI process create a sandbox extension |
| for "com.apple.tccd", and send it to the WebContent process. Also make sure the extension is created only once |
| for each WebContent process. Add telemetry to the tccd rule in the sandbox. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: |
| (WebKit::UserMediaPermissionRequestManagerProxy::finishGrantingRequest): |
| * UIProcess/UserMediaPermissionRequestManagerProxy.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::userMediaAccessWasGranted): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2019-12-02 Louie Livon-Bemel <llivonbemel@apple.com> |
| |
| Add helper methods for description and equality to text manipulation SPI |
| https://bugs.webkit.org/show_bug.cgi?id=204758 |
| <rdar://problem/57438200> |
| |
| Reviewed by Wenson Hsieh. |
| |
| I originally added some category methods to _WKTextManipulationItem and _WKTextManipulationToken within Safari |
| to make working with these classes easier. However it makes more sense to just move these methods into |
| the main class. One method is for checking if two instances are equal (including identifiers) and optionally |
| checking if the content itself is equal. The other methods are for debug descriptions for lldb, and a |
| method to get a description that preserves privacy; when logging the instance, the content of the webpage |
| should be redacted. |
| |
| Tests: Tests are added as API tests. |
| |
| * UIProcess/API/Cocoa/_WKTextManipulationItem.h: |
| - Assume everything is non-null unless otherwise specified. |
| - Allow the identifier to be nil, but not the array of tokens. |
| - Add a method to check the equality to another item, optionally including a check for the content of each |
| token being equal. |
| - Add a -debugDescription method that includes the content of tokens for use in lldb. This NSObject |
| declaration is marked optional, so redeclare it here. |
| - No need to add a -description declaration since it exists on NSObject already. |
| * UIProcess/API/Cocoa/_WKTextManipulationItem.mm: |
| (-[_WKTextManipulationItem isEqual:]): |
| The standard NSObject equality check should call our method with equal content. |
| (-[_WKTextManipulationItem isEqualToTextManipulationItem:includingContentEquality:]): |
| - If the other item is nil, the identifiers aren't equal or the number of tokens are mismatched, these |
| items aren't equal. |
| - Just to be safe, only iterate the smaller of the token arrays so we don't crash. |
| - Check if each token is equal, passing along the `includingContentEquality` parameter. |
| (-[_WKTextManipulationItem description]): |
| The general description should not include the webpage content. |
| (-[_WKTextManipulationItem debugDescription]): |
| Include the webpage content, since this is for lldb. |
| (-[_WKTextManipulationItem _descriptionPreservingPrivacy:]): |
| Include the standard description format, and each token on its own line. If we're including the content |
| then use `token.debugDescription`. |
| * UIProcess/API/Cocoa/_WKTextManipulationToken.h: |
| - Also assume everything is non-null. |
| - Identifier and Content can be nil. |
| - Declare a -debugDescription method. |
| - Declare a method to check equality, with or without the content. |
| * UIProcess/API/Cocoa/_WKTextManipulationToken.mm: |
| (isEqualOrBothNil): |
| Helper that checks equality but considers two nil values to be equal as well. |
| (-[_WKTextManipulationToken isEqual:]): |
| The standard NSObject equality check should call our method with equal content. |
| (-[_WKTextManipulationToken isEqualToTextManipulationToken:includingContentEquality:]): |
| Check that the exclusions are equal, the identifiers are equal (considering two nils to be equal), and the |
| content if necessary. |
| (-[_WKTextManipulationToken description]): |
| (-[_WKTextManipulationToken debugDescription]): |
| (-[_WKTextManipulationToken _descriptionPreservingPrivacy:]): |
| If we're preserving privacy, log the content length rather than the content string itself. |
| |
| 2019-12-02 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS] Introduce a gesture recognizer that can be used to defer recognition of other gestures |
| https://bugs.webkit.org/show_bug.cgi?id=204748 |
| <rdar://problem/38670692> |
| |
| Reviewed by Tim Horton. |
| |
| Introduces WKDeferringGestureRecognizer, which is similar to UIKit's _UIRelationshipGestureRecognizer. In a |
| future patch, this will be added to WKContentView to prevent platform gestures (pinching, panning, single/double |
| taps, etc.) from recognizing when dispatching a preventable touch event to the page. |
| |
| Additionally renames a member variable on WKContentView, in preparation for making touch gesture recognition |
| asynchronous. No new tests, since there is no change in behavior yet. |
| |
| * SourcesCocoa.txt: |
| |
| Add the new file. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| |
| Add a couple of (currently unused) deferring gesture recognizers. These will be added to WKContentView in a |
| future patch. There are two deferring gestures here (one for "immediately resettable" gestures and another for |
| gestures for which the reset is "deferred" -- i.e., multi-tap gestures); this prevents a single deferring |
| gesture from connecting the entire gesture subgraph under WKWebView through failure dependencies. This would |
| result in various usability issues, such as being unable to perform a pan gesture to scroll WKScrollView if a |
| tap was recognized within the last 300 ms, since all gestures would need to wait until every double and triple- |
| tap gesture under WKWebView has failed. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView setupInteraction]): |
| (-[WKContentView _webTouchEventsRecognized:]): |
| |
| Rename _canSendTouchEventsAsynchronously to _touchEventsCanPreventNativeGestures in preparation for adding a |
| codepath for fully asynchronous touch event dispatch; we also flip the conditional in any places where |
| _canSendTouchEventsAsynchronously was previously set or read. |
| |
| (-[WKContentView _webTouchEvent:preventsNativeGestures:]): |
| (-[WKContentView scrollViewWillStartPanOrPinchGesture]): |
| (-[WKContentView gestureRecognizer:shouldIgnoreWebTouchWithEvent:]): |
| (-[WKContentView gestureRecognizer:isInterruptingMomentumScrollingWithEvent:]): |
| (-[WKContentView deferringGestureRecognizer:shouldDeferGesturesWithEvent:]): |
| (-[WKContentView deferringGestureRecognizer:shouldDeferOtherGestureRecognizer:]): |
| |
| Implement WKDeferringGestureRecognizerDelegate. |
| |
| (-[WKContentView shouldIgnoreWebTouch]): Deleted. |
| |
| Drive-by fix: remove this unnecessary method implementation, and the related FIXME. |
| |
| * UIProcess/ios/WKDeferringGestureRecognizer.h: Added. |
| * UIProcess/ios/WKDeferringGestureRecognizer.mm: Added. |
| (-[WKDeferringGestureRecognizer initWithDeferringGestureDelegate:]): |
| (-[WKDeferringGestureRecognizer deferringGestureDelegate]): |
| (-[WKDeferringGestureRecognizer touchesBegan:withEvent:]): |
| |
| Unless the touch is interrupts momentum scrolling, WKDeferringGestureRecognizer should transition to Possible |
| state when starting a touch. Later, -setDefaultPrevented: is invoked, which will either transition the deferring |
| gesture recognizer to Failed state (thereby allowing native gestures to begin), or Ended state (preventing other |
| native gestures). |
| |
| (-[WKDeferringGestureRecognizer touchesCancelled:withEvent:]): |
| (-[WKDeferringGestureRecognizer setDefaultPrevented:]): |
| (-[WKDeferringGestureRecognizer canBePreventedByGestureRecognizer:]): |
| |
| Return NO here to prevent certain platform gestures (e.g. scroll view panning) from causing the deferring |
| gesture to Failed state, when these gestures attempt to transition from Possible to Began state. |
| |
| (-[WKDeferringGestureRecognizer shouldDeferGestureRecognizer:]): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-12-02 Yoshiaki Jitsukawa <yoshiaki.jitsukawa@sony.com> |
| |
| ResponsivenessTimer mistakenly restarts immediately |
| https://bugs.webkit.org/show_bug.cgi?id=204659 |
| |
| Reviewed by Chris Dumez. |
| |
| * UIProcess/ResponsivenessTimer.cpp: |
| (WebKit::ResponsivenessTimer::timerFired): |
| Give startOneShot() a positive number timeout. |
| |
| 2019-12-02 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK][PSON] Crash in NetworkProcessProxy::openNetworkProcessConnection |
| https://bugs.webkit.org/show_bug.cgi?id=204703 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Stop sending a message to all web process to prefetch DNS for a hostname. All web processes then send a messaage |
| to their network process to prefetch the DNS. Instead, send a message directly to the network process. |
| |
| * NetworkProcess/NetworkProcess.messages.in: |
| * UIProcess/API/glib/WebKitWebContext.cpp: |
| (webkit_web_context_prefetch_dns): |
| * WebProcess/InjectedBundle/API/glib/WebKitWebExtension.cpp: |
| |
| 2019-12-01 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [Win] Retrieve all following WM_CHAR events at the beginning of processing WM_KEYDOWN event |
| https://bugs.webkit.org/show_bug.cgi?id=204694 |
| |
| Reviewed by Ross Kirsling. |
| |
| In Windows ports, WM_KEYDOWN dispatches keydown event, and |
| WM_CHAR dispatches keypress event. If a keydown event is canceled |
| by calling preventDefault, the following corresponding keypress |
| events shouldn't be dispatched. |
| |
| WebKit1 implemented it by removing WM_CHAR events if the keydown |
| event is consumed. However, WebKit2 can't do so because WebKit2 |
| processes key events asynchronously. Thus, retrieve all following |
| WM_CHAR events, and dispatch them after processing the keydown |
| and if it is not consumed. |
| |
| In addition to that, retrieving following WM_CHAR events is needed |
| to fix Bug 204672 because the events are needed for 'key' property |
| of keydown KeyboardEvent for dead key combination. |
| |
| Gecko and Chromium also implements 'key' property in the same approach. |
| |
| Test: Covered by existing fast/events/inputText-never-fired-on-keydown-cancel.html and fast/events/keydown-keypress-preventDefault.html |
| |
| * Shared/NativeWebKeyboardEvent.h: Added m_pendingCharEvents as Vector<MSG>. |
| (WebKit::NativeWebKeyboardEvent::pendingCharEvents const): |
| * Shared/win/NativeWebKeyboardEventWin.cpp: |
| (WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didReceiveEvent): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/win/WebPageProxyWin.cpp: |
| (WebKit::WebPageProxy::dispatchPendingCharEvents): |
| * UIProcess/win/WebView.cpp: |
| (WebKit::WebView::onKeyEvent): |
| |
| 2019-11-30 Tim Horton <timothy_horton@apple.com> |
| |
| Make CompositeOperator and BlendMode encodable |
| https://bugs.webkit.org/show_bug.cgi?id=204722 |
| |
| Reviewed by Eric Carlson. |
| |
| * UIProcess/cairo/BackingStoreCairo.cpp: |
| (WebKit::BackingStore::incorporateUpdate): |
| * WebProcess/Plugins/PluginProxy.cpp: |
| (WebKit::PluginProxy::paint): |
| (WebKit::PluginProxy::update): |
| * WebProcess/WebPage/FindController.cpp: |
| (WebKit::FindController::drawRect): |
| |
| 2019-11-30 Tim Horton <timothy_horton@apple.com> |
| |
| Reimplement some PlatformCALayer methods using GraphicsContext instead of CGContextRef |
| https://bugs.webkit.org/show_bug.cgi?id=204698 |
| |
| Reviewed by Sam Weinig. |
| |
| * Shared/RemoteLayerTree/RemoteLayerBackingStore.h: |
| * Shared/RemoteLayerTree/RemoteLayerBackingStore.mm: |
| (WebKit::RemoteLayerBackingStore::drawInContext): |
| (WebKit::RemoteLayerBackingStore::enumerateRectsBeingDrawn): |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp: |
| (WebKit::PlatformCALayerRemote::enumerateRectsBeingDrawn): |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.h: |
| |
| 2019-11-27 Antoine Quint <graouts@apple.com> |
| |
| [Web Animations] Enable WebAnimationsCSSIntegrationEnabled by default |
| https://bugs.webkit.org/show_bug.cgi?id=204650 |
| <rdar://problem/45562752> |
| |
| Reviewed by Dean Jackson. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2019-11-28 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| Remove ENABLE_KEYBOARD_CODE_ATTRIBUTE and ENABLE_KEYBOARD_KEY_ATTRIBUTE macros |
| https://bugs.webkit.org/show_bug.cgi?id=204666 |
| |
| No behavior change. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * Shared/WebEvent.h: |
| (WebKit::WebKeyboardEvent::unmodifiedText const): |
| (WebKit::WebKeyboardEvent::key const): |
| (WebKit::WebKeyboardEvent::code const): |
| * Shared/WebEventConversion.cpp: |
| (WebKit::WebKit2PlatformKeyboardEvent::WebKit2PlatformKeyboardEvent): |
| * Shared/WebKeyboardEvent.cpp: |
| (WebKit::WebKeyboardEvent::WebKeyboardEvent): |
| (WebKit::WebKeyboardEvent::encode const): |
| (WebKit::WebKeyboardEvent::decode): |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::generateSyntheticEditingCommand): |
| |
| 2019-11-27 Philippe Normand <pnormand@igalia.com> |
| |
| [GTK][WebInspector] Use CString to store exported data |
| https://bugs.webkit.org/show_bug.cgi?id=204623 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * UIProcess/gtk/WebInspectorProxyGtk.cpp: |
| (WebKit::WebInspectorProxy::platformSave): Use a CString for copy-on-write assignment. |
| |
| 2019-11-27 Alejandro G. Castro <alex@igalia.com> |
| |
| Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.27.3 release |
| |
| * wpe/NEWS: Add release notes for 2.27.3. |
| |
| 2019-11-27 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] WebDriver: moving toplevel windows is not supported under wayland |
| https://bugs.webkit.org/show_bug.cgi?id=204614 |
| |
| Reviewed by Alejandro G. Castro. |
| |
| So we can stop trying and simply ignore the requests to move the window. |
| |
| * UIProcess/API/glib/WebKitUIClient.cpp: |
| (UIClient::windowConfigureEventCallback): Ensure we only move or resize when actually required and reduce the |
| time we wait for configure events to 200ms (1 second was too long). |
| |
| 2019-11-26 Antti Koivisto <antti@apple.com> |
| |
| [LFC][Render tree] Add LFC line layout path to RenderBlockFlow |
| https://bugs.webkit.org/show_bug.cgi?id=204613 |
| |
| Reviewed by Zalan Bujtas. |
| |
| * Shared/WebPreferences.yaml: |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): |
| |
| 2019-11-26 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Update OptionsGTK.cmake and NEWS for 2.27.3 release |
| |
| * gtk/NEWS: Add release notes for 2.27.3. |
| |
| 2019-11-26 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| REGRESSION(2.27.2): [GTK] Incognito mode is broken under flatpak |
| https://bugs.webkit.org/show_bug.cgi?id=203460 |
| |
| Reviewed by Youenn Fablet. |
| |
| The problem is that in ephemeral sessions the base disk cache directory is null, and Storage::open() ends up |
| building a cache path with only the version part (/Version n). For some reason g_mkdir_with_parents() doesn't |
| return -1 in flatpak when it fails to create the directory due to write permission, like in this case. But the |
| network process ends up crashing later trying to open a directory that doesn't exist. |
| |
| * NetworkProcess/NetworkSession.cpp: |
| (WebKit::NetworkSession::NetworkSession): Do not create the cache if networkCacheDirectory is null. |
| * NetworkProcess/cache/NetworkCacheStorage.cpp: |
| (WebKit::NetworkCache::Storage::open): Add an ASSERT to ensure we don't receive a null baseCachePath. |
| |
| 2019-11-25 Yusuke Suzuki <ysuzuki@apple.com> |
| |
| [JSC] InternalFunction should be non-destructible |
| https://bugs.webkit.org/show_bug.cgi?id=204556 |
| |
| Reviewed by Mark Lam. |
| |
| * WebProcess/Plugins/Netscape/JSNPMethod.cpp: |
| (WebKit::JSNPMethod::subspaceForImpl): |
| |
| 2019-11-25 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [macOS] Dragged images are only available as .tiff when dropping onto macCatalyst apps |
| https://bugs.webkit.org/show_bug.cgi?id=204598 |
| <rdar://problem/57093920> |
| |
| Reviewed by Tim Horton. |
| |
| On macOS, writing dragged images to the pasteboard only as file promises is mostly sufficient for the purposes |
| of dropping into Finder, Photos, and other apps. However, when dropping into a macCatalyst app, the contents of |
| NSPasteboard will only contain a file URL, which most Catalyst apps aren't able to handle. The only other valid |
| image representation that is written to the pasteboard in this case is "public.tiff", which loses fidelity in |
| the case of animated GIFs. |
| |
| Instead, if the dragged image has a corresponding UTI and corresponding decoded image data, declare the UTI when |
| writing promised data to the pasteboard, and later provide data for the UTI, if the drop destination asks, by |
| using the promised image's data. |
| |
| Test: DragAndDropTests.ProvideImageDataAsTypeIdentifiers |
| |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::setPromisedDataForImage): |
| (WebKit::WebViewImpl::provideDataForPasteboard): |
| |
| 2019-11-25 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [Win] Update KeyboardEvent as per the latest specification |
| https://bugs.webkit.org/show_bug.cgi?id=202183 |
| |
| Reviewed by Ross Kirsling. |
| |
| * Shared/WebEvent.h: |
| * Shared/WebKeyboardEvent.cpp: |
| (WebKit::WebKeyboardEvent::WebKeyboardEvent): |
| * Shared/win/WebEventFactory.cpp: |
| (WebKit::windowsKeyNames): |
| (WebKit::WebEventFactory::createWebKeyboardEvent): |
| |
| 2019-11-25 ChangSeok Oh <changseok@webkit.org> |
| |
| [GTK] Check EGL image extension by using native gl API in AcceleratedBackingStoreWayland |
| https://bugs.webkit.org/show_bug.cgi?id=204446 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| This change is part of efforts bringing ANGLE backend for WebGL to the gtk port. |
| When ANGLE WebGL is enabled, we face a dilemma of choosing either Extensions3DANGLE |
| or Extensions3DOpenGL in AcceleratedBackingStoreWayland.cpp. Since they cannot |
| coexist, we chose Extensions3DANGLE even if what we really want is Extensions3DOepnGL. |
| We address this problem by directly checking egl image extension availability |
| via native GL API rather than relying on Extensions3D* classes in the file. |
| |
| * UIProcess/gtk/AcceleratedBackingStoreWayland.cpp: |
| (WebKit::isEGLImageAvailable): |
| (WebKit::AcceleratedBackingStoreWayland::checkRequirements): |
| |
| 2019-11-25 Youenn Fablet <youenn@apple.com> |
| |
| Crash in WebCore::ServiceWorkerRegistrationKey::hash() const |
| https://bugs.webkit.org/show_bug.cgi?id=204497 |
| <rdar://problem/57348603> |
| |
| Reviewed by Alex Christensen. |
| |
| * WebProcess/Storage/WebSWClientConnection.cpp: |
| (WebKit::WebSWClientConnection::scheduleJobInServer): |
| Add a release assert to be able to further debug the crash. |
| |
| 2019-11-23 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Allow multiple third-party cookie blocking settings |
| https://bugs.webkit.org/show_bug.cgi?id=204389 |
| <rdar://problem/57344054> |
| |
| Reviewed by Brent Fulgham. |
| |
| This change make the third-party cookie blocking setting go from a boolean to |
| the new enum WebCore::ThirdPartyCookieBlockingMode with three different settings. |
| Functions and member variables are renamed accordingly. |
| |
| The reason for supporting three different modes is that what is now named |
| OnlyAccordingToPerDomainPolicy is shipping, AllOnSitesWithoutUserInteraction is |
| in beta, and All is behind an experimental flag. |
| |
| The change also updates the test API to map the TestRunner call to the enum. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: |
| (WebKit::ResourceLoadStatisticsDatabaseStore::hasStorageAccess): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::requestStorageAccess): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::clearUserInteraction): |
| Now makes use of a completion handler and updates the cookie blocking state. |
| (WebKit::ResourceLoadStatisticsDatabaseStore::hasHadUserInteraction): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::areAllThirdPartyCookiesBlockedUnder): |
| New convenience function to check the cookie blocking status per first-party domain. |
| (WebKit::ResourceLoadStatisticsDatabaseStore::cookieAccess): |
| Restructured the code to make it very clear that the logic is the same as the |
| corresponding function in ResourceLoadStatisticsMemoryStore. |
| Can no longer be const since it calls areAllThirdPartyCookiesBlockedUnder() which |
| in turn calls hasHadUserInteraction() and that function may clear user interaction data. |
| (WebKit::ResourceLoadStatisticsDatabaseStore::hasHadUnexpiredRecentUserInteraction): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::cookieAccess const): Deleted. |
| See comment above on the non-const version of this function. |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h: |
| * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ResourceLoadStatisticsMemoryStore::areAllThirdPartyCookiesBlockedUnder): |
| New convenience function to check the cookie blocking status per first-party domain. |
| (WebKit::ResourceLoadStatisticsMemoryStore::cookieAccess): |
| Restructured the code to make it very clear that the logic is the same as the |
| corresponding function in ResourceLoadStatisticsDatabaseStore. |
| Can no longer be const since it calls areAllThirdPartyCookiesBlockedUnder() which |
| in turn calls hasHadUserInteraction() and that function may clear user interaction data. |
| (WebKit::ResourceLoadStatisticsMemoryStore::hasStorageAccess): |
| (WebKit::ResourceLoadStatisticsMemoryStore::requestStorageAccess): |
| (WebKit::ResourceLoadStatisticsMemoryStore::clearUserInteraction): |
| Now makes use of a completion handler and updates the cookie blocking state. |
| (WebKit::ResourceLoadStatisticsMemoryStore::cookieAccess const): Deleted. |
| See comment above on the non-const version of this function. |
| * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h: |
| * NetworkProcess/Classifier/ResourceLoadStatisticsStore.h: |
| (WebKit::ResourceLoadStatisticsStore::setThirdPartyCookieBlockingMode): |
| (WebKit::ResourceLoadStatisticsStore::thirdPartyCookieBlockingMode const): |
| (WebKit::ResourceLoadStatisticsStore::setIsThirdPartyCookieBlockingEnabled): Deleted. |
| (WebKit::ResourceLoadStatisticsStore::isThirdPartyCookieBlockingEnabled const): Deleted. |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::setThirdPartyCookieBlockingMode): |
| (WebKit::WebResourceLoadStatisticsStore::clearUserInteraction): |
| Now forwards the completion handler. |
| (WebKit::WebResourceLoadStatisticsStore::setIsThirdPartyCookieBlockingEnabled): Deleted. |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h: |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::setShouldBlockThirdPartyCookiesForTesting): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| The SetShouldBlockThirdPartyCookiesForTesting message now uses an enum instead of a |
| boolean. |
| * NetworkProcess/NetworkSession.cpp: |
| (WebKit::NetworkSession::setResourceLoadStatisticsEnabled): |
| Now forwards the enum value instead of a boolean. |
| (WebKit::NetworkSession::recreateResourceLoadStatisticStore): |
| Now makes sure the cookie blocking setting is forwarded to the recreated store. |
| (WebKit::NetworkSession::setThirdPartyCookieBlockingMode): |
| (WebKit::NetworkSession::setIsThirdPartyCookieBlockingEnabled): Deleted. |
| * NetworkProcess/NetworkSession.h: |
| * NetworkProcess/NetworkSessionCreationParameters.cpp: |
| (WebKit::NetworkSessionCreationParameters::encode const): |
| (WebKit::NetworkSessionCreationParameters::decode): |
| Support for the new enum. |
| * NetworkProcess/NetworkSessionCreationParameters.h: |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| * Scripts/webkit/messages.py: |
| Tells the IPC code generator where to find WebCore::ThirdPartyCookieBlockingMode. |
| * Shared/WebPreferences.yaml: |
| Flipped the IsThirdPartyCookieBlockingEnabled flag to on by default. |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreSetResourceLoadStatisticsShouldBlockThirdPartyCookiesForTesting): |
| (WKWebsiteDataStoreStatisticsResetToConsistentState): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::setShouldBlockThirdPartyCookiesForTesting): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| Makes use of the enum in the NetworkSessionCreationParameters. |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::setResourceLoadStatisticsShouldBlockThirdPartyCookiesForTesting): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| |
| 2019-11-23 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r252805. |
| https://bugs.webkit.org/show_bug.cgi?id=204553 |
| |
| Caused test failures and ASan crashes (Requested by ap on |
| #webkit). |
| |
| Reverted changeset: |
| |
| "Cross-thread version StorageQuotaManager" |
| https://bugs.webkit.org/show_bug.cgi?id=203971 |
| https://trac.webkit.org/changeset/252805 |
| |
| 2019-11-22 Alex Christensen <achristensen@webkit.org> |
| |
| Unreviewed, rolling out r252796. |
| |
| Turns out my reverting earlier today wasn't so necessary after all. |
| This is effectively re-landing r250422. |
| |
| Reverted changeset: |
| |
| "Revert r250422" |
| https://bugs.webkit.org/show_bug.cgi?id=202285 |
| https://trac.webkit.org/changeset/252796 |
| |
| 2019-11-22 Alex Christensen <achristensen@webkit.org> |
| |
| Unreviewed, rolling out r252798. |
| |
| Turns out my reverting earlier today wasn't so necessary after all. |
| This is effectively re-landing r250421. |
| |
| Reverted changeset: |
| |
| "Revert r250421" |
| https://bugs.webkit.org/show_bug.cgi?id=202290 |
| https://trac.webkit.org/changeset/252798 |
| |
| 2019-11-22 Kate Cheney <katherine_cheney@apple.com> |
| |
| ITP Database crashes if table schema is not correct |
| https://bugs.webkit.org/show_bug.cgi?id=204458 |
| <rdar://problem/57399084> |
| |
| Reviewed by Brent Fulgham. |
| |
| ITP database was crashing if the table schema wasn't correct. This |
| should instead be handled by re-opening a new database with a correct |
| schema to allow for future schema updates. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: |
| (WebKit::ResourceLoadStatisticsDatabaseStore::isCorrectTableSchema): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::openAndDropOldDatabaseIfNecessary): |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h: |
| |
| 2019-11-22 Chris Dumez <cdumez@apple.com> |
| |
| Simplify VisitedLinkStore process registration logic |
| https://bugs.webkit.org/show_bug.cgi?id=204472 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Simplify VisitedLinkStore process registration logic: |
| 1. WebProcessProxy objects no longer delay their registration with the VisitedLinkStore until |
| after they are done launching. There is no need to do this because AuxiliaxyProcessProxy::send() |
| will correctly queue the IPC message if the process is not done launching when the VisitedLinkStore |
| tries to send its IPC. |
| 2. Switch VisitedLinkStore to using a WeakHashSet to store the WebProcessProxy object pointers. This |
| is safer and this also makes it so that the WebProcessProxy no longer need to unregister themselves |
| when shutting down. Note that AuxiliaxyProcessProxy::send() properly discards IPC messages to |
| a terminated process anyway. |
| |
| * UIProcess/VisitedLinkStore.cpp: |
| (WebKit::VisitedLinkStore::~VisitedLinkStore): |
| (WebKit::VisitedLinkStore::addProcess): |
| (WebKit::VisitedLinkStore::removeProcess): |
| (WebKit::VisitedLinkStore::removeAll): |
| (WebKit::VisitedLinkStore::didInvalidateSharedMemory): |
| (WebKit::VisitedLinkStore::didUpdateSharedStringHashes): |
| * UIProcess/VisitedLinkStore.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::shutDown): |
| (WebKit::WebProcessProxy::addVisitedLinkStoreUser): |
| (WebKit::WebProcessProxy::didFinishLaunching): |
| |
| 2019-11-22 Chris Dumez <cdumez@apple.com> |
| |
| [iOS] Copy assertions before iterating over them in _notifyAssertionsOfImminentSuspension |
| https://bugs.webkit.org/show_bug.cgi?id=204524 |
| <rdar://problem/57265830> |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| Copy assertions before iterating over them in _notifyAssertionsOfImminentSuspension and use WeakPtr |
| to make sure the assertions are still alive before calling uiAssertionWillExpireImminently() on |
| them. It is common for process assertions to get released when uiAssertionWillExpireImminently() |
| gets called, which would remove them from the _assertionsNeedingBackgroundTask vector we were |
| iterating on. |
| |
| * UIProcess/ios/ProcessAssertionIOS.mm: |
| (-[WKProcessAssertionBackgroundTaskManager _notifyAssertionsOfImminentSuspension]): |
| |
| 2019-11-22 Alex Christensen <achristensen@webkit.org> |
| |
| Null check callback in NetworkConnectionToWebProcess::didDeliverMessagePortMessages |
| https://bugs.webkit.org/show_bug.cgi?id=204460 |
| <rdar://problem/57348618> |
| |
| Reviewed by Chris Dumez. |
| |
| When the network process crashes during a message port connection establishment, |
| a web process may have an identifier that becomes stale. In this case, we should not crash again. |
| No test because this only happens during a rare race condition after a network process crash, but the radar shows records of this happening. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::didDeliverMessagePortMessages): |
| |
| 2019-11-22 Sihui Liu <sihui_liu@apple.com> |
| |
| Cross-thread version StorageQuotaManager |
| https://bugs.webkit.org/show_bug.cgi?id=203971 |
| <rdar://problem/57290349> |
| |
| Reviewed by Chris Dumez. |
| |
| * NetworkProcess/NetworkProcess.cpp: Introduce class SessionStorageQuotaManager to manage all |
| StorageQuotaManagers of the same session. |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| (WebKit::NetworkProcess::addWebsiteDataStore): |
| (WebKit::NetworkProcess::addSessionStorageQuotaManager): |
| (WebKit::NetworkProcess::removeSessionStorageQuotaManager): |
| (WebKit::NetworkProcess::destroySession): |
| (WebKit::NetworkProcess::deleteWebsiteData): |
| (WebKit::NetworkProcess::deleteWebsiteDataForOrigins): |
| (WebKit::NetworkProcess::createIDBServer): |
| (WebKit::NetworkProcess::addIndexedDatabaseSession): |
| (WebKit::NetworkProcess::setSessionStorageQuotaManagerIDBRootPath): |
| (WebKit::NetworkProcess::updateQuotaBasedOnSpaceUsageForTesting): |
| (WebKit::NetworkProcess::resetQuota): |
| (WebKit::NetworkProcess::storageQuotaManager): |
| (WebKit::NetworkProcess::initializeStorageQuota): Deleted. |
| (WebKit::NetworkProcess::clearStorageQuota): Deleted. |
| (): Deleted. |
| (WebKit::NetworkProcess::initializeQuotaUsers): Deleted. |
| * NetworkProcess/NetworkProcess.h: |
| (WebKit::NetworkProcess::SessionStorageQuotaManager::SessionStorageQuotaManager): |
| (WebKit::NetworkProcess::SessionStorageQuotaManager::defaultQuota const): |
| (WebKit::NetworkProcess::SessionStorageQuotaManager::ensureOriginStorageQuotaManager): |
| (WebKit::NetworkProcess::SessionStorageQuotaManager::existingStorageQuotaManagers): |
| (WebKit::NetworkProcess::SessionStorageQuotaManager::cacheRootPath const): |
| (WebKit::NetworkProcess::SessionStorageQuotaManager::setIDBRootPath): |
| (WebKit::NetworkProcess::SessionStorageQuotaManager::idbRootPath const): |
| (WebKit::NetworkProcess::StorageQuotaManagers::defaultQuota const): Deleted. |
| (WebKit::NetworkProcess::StorageQuotaManagers::setDefaultQuotas): Deleted. |
| (WebKit::NetworkProcess::StorageQuotaManagers::managersPerOrigin): Deleted. |
| * NetworkProcess/NetworkProcess.messages.in: |
| * NetworkProcess/cache/CacheStorageEngine.cpp: |
| (WebKit::CacheStorage::getDirectorySize): |
| (WebKit::CacheStorage::Engine::diskUsage): static function to get the disk usage of CacheStorage given |
| CacheStorage root directory. |
| (WebKit::CacheStorage::Engine::requestSpace): |
| (WebKit::CacheStorage::Engine::readCachesFromDisk): |
| (WebKit::CacheStorage::Engine::writeSizeFile): |
| (WebKit::CacheStorage::Engine::readSizeFile): |
| (WebKit::CacheStorage::Engine::initializeQuotaUser): Deleted. |
| * NetworkProcess/cache/CacheStorageEngine.h: |
| * NetworkProcess/cache/CacheStorageEngineCache.cpp: |
| (WebKit::CacheStorage::Cache::put): |
| (WebKit::CacheStorage::Cache::remove): |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::Caches::create): |
| (WebKit::CacheStorage::Caches::Caches): |
| (WebKit::CacheStorage::Caches::~Caches): |
| (WebKit::CacheStorage::Caches::updateSizeFile): |
| (WebKit::CacheStorage::Caches::initializeSize): |
| (WebKit::CacheStorage::Caches::clear): |
| (WebKit::CacheStorage::Caches::requestSpace): |
| (WebKit::CacheStorage::Caches::writeRecord): |
| (WebKit::CacheStorage::Caches::removeRecord): |
| (WebKit::CacheStorage::Caches::whenInitialized): Deleted. |
| (WebKit::CacheStorage::Caches::resetSpaceUsed): Deleted. |
| * NetworkProcess/cache/CacheStorageEngineCaches.h: |
| * Shared/WebsiteDataStoreParameters.cpp: |
| (WebKit::WebsiteDataStoreParameters::encode const): |
| (WebKit::WebsiteDataStoreParameters::decode): |
| * Shared/WebsiteDataStoreParameters.h: Add a cacheStorageDirectory parameter so we know the direcotry of |
| CacheStorage when we start using WebsiteDataStore. |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreResetQuota): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: Add a C API for reseting quota in TestRunner. |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::resetQuota): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::parameters): |
| (WebKit::WebsiteDataStore::resetQuota): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| |
| 2019-11-22 Alex Christensen <achristensen@webkit.org> |
| |
| Revert r250421 |
| https://bugs.webkit.org/show_bug.cgi?id=202290 |
| |
| This is needed for rdar://problem/56760896 |
| I left the soup parts of the original change untouched, which leaves speculative validation on for soup ports. |
| |
| * 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/C/WKContext.cpp: |
| (WKContextSetDiskCacheSpeculativeValidationEnabled): |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: |
| (-[_WKProcessPoolConfiguration diskCacheSpeculativeValidationEnabled]): |
| (-[_WKProcessPoolConfiguration setDiskCacheSpeculativeValidationEnabled:]): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| |
| 2019-11-22 Alex Christensen <achristensen@webkit.org> |
| |
| Revert r250422 |
| https://bugs.webkit.org/show_bug.cgi?id=202285 |
| |
| This is needed for rdar://problem/56760896 |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| (WebKit::NetworkProcess::setCanHandleHTTPSServerTrustEvaluation): |
| * NetworkProcess/NetworkProcess.h: |
| (WebKit::NetworkProcess::canHandleHTTPSServerTrustEvaluation const): |
| * NetworkProcess/NetworkProcess.messages.in: |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]): |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextSetCanHandleHTTPSServerTrustEvaluation): |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _setCanHandleHTTPSServerTrustEvaluation:]): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| (WebKit::WebProcessPool::setCanHandleHTTPSServerTrustEvaluation): |
| * UIProcess/WebProcessPool.h: |
| |
| 2019-11-22 Conrad Shultz <conrad_shultz@apple.com> |
| |
| Remove -[_WKThumbnailView usesSnapshot/setUsesSnapshot:] |
| https://bugs.webkit.org/show_bug.cgi?id=150099 |
| |
| Reviewed by Tim Horton. |
| |
| Remove some unused, no-op SPI. While we're here, remove a couple unneeded explicit |
| property syntheses. |
| |
| * UIProcess/API/Cocoa/_WKThumbnailView.h: |
| * UIProcess/API/Cocoa/_WKThumbnailView.mm: |
| (-[_WKThumbnailView setUsesSnapshot:]): Deleted. |
| (-[_WKThumbnailView usesSnapshot]): Deleted. |
| |
| 2019-11-22 Chris Dumez <cdumez@apple.com> |
| |
| Speculative loading sometimes happens too early and is missing login cookies |
| https://bugs.webkit.org/show_bug.cgi?id=204305 |
| <rdar://problem/57063840> |
| |
| Reviewed by Antti Koivisto. |
| |
| Speculative loads were issued before receiving the response from the main resource. However, |
| the main resource may set important cookies that are thus missing from the speculative requests. |
| |
| To address the issue we now delay speculative loads for first-party subresources until we've |
| received the response from the main resource. To avoid regressing PLT, we still warm up the |
| first-party subresources from disk right away and preconnect to the server. |
| |
| No new tests, extended existing test. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::didReceiveResponse): |
| (WebKit::NetworkResourceLoader::didReceiveMainResourceResponse): |
| (WebKit::NetworkResourceLoader::didRetrieveCacheEntry): |
| * NetworkProcess/NetworkResourceLoader.h: |
| * NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp: |
| (WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::didReceiveMainResourceResponse const): |
| (WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::markMainResourceResponseAsReceived): |
| (WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::addPostMainResourceResponseTask): |
| (WebKit::NetworkCache::SpeculativeLoadManager::shouldRegisterLoad): |
| (WebKit::NetworkCache::SpeculativeLoadManager::registerLoad): |
| (WebKit::NetworkCache::SpeculativeLoadManager::registerMainResourceLoadResponse): |
| (WebKit::NetworkCache::SpeculativeLoadManager::preconnectForSubresource): |
| (WebKit::NetworkCache::SpeculativeLoadManager::revalidateSubresource): |
| * NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h: |
| * NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp: |
| (WebKit::NetworkCache::SubresourceInfo::isFirstParty const): |
| * NetworkProcess/cache/NetworkCacheSubresourcesEntry.h: |
| |
| 2019-11-22 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK][WPE] RemoteInspector: use sockets instead of DBus |
| https://bugs.webkit.org/show_bug.cgi?id=204503 |
| |
| Reviewed by Žan Doberšek. |
| |
| Use GSockets API instead of DBus. |
| |
| * Platform/IPC/Connection.h: |
| * SourcesGTK.txt: Remove GSocketMonitor that has been moved to WTF. |
| * SourcesWPE.txt: Ditto. |
| * UIProcess/glib/RemoteInspectorClient.cpp: |
| (WebKit::RemoteInspectorClient::RemoteInspectorClient): |
| (WebKit::RemoteInspectorClient::~RemoteInspectorClient): |
| (WebKit::RemoteInspectorClient::setupConnection): |
| (WebKit::RemoteInspectorClient::connectionDidClose): |
| (WebKit::RemoteInspectorClient::inspect): |
| (WebKit::RemoteInspectorClient::sendMessageToBackend): |
| (WebKit::RemoteInspectorClient::closeFromFrontend): |
| * UIProcess/glib/RemoteInspectorClient.h: |
| |
| 2019-11-21 Jer Noble <jer.noble@apple.com> |
| |
| Experimental support for HDR media query |
| https://bugs.webkit.org/show_bug.cgi?id=204422 |
| |
| Reviewed by Eric Carlson. |
| |
| Notify the WebContent process of updated screen properties when the screen's |
| color space changes. |
| |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (-[WKWindowVisibilityObserver startObserving:]): |
| (-[WKWindowVisibilityObserver stopObserving:]): |
| (-[WKWindowVisibilityObserver _screenDidChangeColorSpace:]): |
| (WebKit::WebViewImpl::screenDidChangeColorSpace): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::screenPropertiesDidChange): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::setScreenProperties): |
| |
| 2019-11-21 Brian Burg <bburg@apple.com> |
| |
| Unreviewed, sort WebKit's project file after changes in r252702 and r252637. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-11-21 Sihui Liu <sihui_liu@apple.com> |
| |
| Crash in com.apple.WebKit.WebContent at WebKit: WebKit::StorageAreaMap::loadValuesIfNeeded |
| https://bugs.webkit.org/show_bug.cgi?id=204459 |
| <rdar://problem/57383446> |
| |
| Reviewed by Geoffrey Garen. |
| |
| If m_storageMapID can be null if connect() fails. |
| |
| * WebProcess/WebStorage/StorageAreaMap.cpp: |
| (WebKit::StorageAreaMap::setItem): |
| (WebKit::StorageAreaMap::removeItem): |
| (WebKit::StorageAreaMap::clear): |
| (WebKit::StorageAreaMap::loadValuesIfNeeded): |
| |
| 2019-11-21 Peng Liu <peng.liu6@apple.com> |
| |
| Ignore the requests to enter/exit video fullscreen/picture-in-picture if the requesting mode is the same as the current mode |
| https://bugs.webkit.org/show_bug.cgi?id=204461 |
| |
| Reviewed by Jer Noble. |
| |
| In enterVideoFullscreenForVideoElement() and exitVideoFullscreenForVideoElement(), |
| we can ignore the request if the targeting mode is the same as the current one. |
| |
| * WebProcess/cocoa/VideoFullscreenManager.mm: |
| (WebKit::VideoFullscreenManager::enterVideoFullscreenForVideoElement): |
| (WebKit::VideoFullscreenManager::exitVideoFullscreenForVideoElement): |
| |
| 2019-11-20 ChangSeok Oh <changseok@webkit.org> |
| |
| [GTK] Add ANGLE backend to GTK port |
| https://bugs.webkit.org/show_bug.cgi?id=199060 |
| |
| Reviewed by Žan Doberšek. |
| |
| * UIProcess/API/glib/WebKitProtocolHandler.cpp: Extention3DANGLE is used instead |
| where ANGLE for WebGL is enabled. |
| * UIProcess/gtk/AcceleratedBackingStoreWayland.cpp: Append gl extensions for ANGLE. |
| (WebKit::AcceleratedBackingStoreWayland::checkRequirements): |
| |
| 2019-11-20 Chris Dumez <cdumez@apple.com> |
| |
| [iOS] Make sure WebContent process does not get suspended while it is holding a process assertion for the UIProcess |
| https://bugs.webkit.org/show_bug.cgi?id=204418 |
| |
| Reviewed by Jer Noble. |
| |
| Make sure WebContent process does not get suspended while it is holding a process assertion for the UIProcess. We |
| see this happening in sysdiagnoses, and it means the system ends up killing the WebContent process because it leaked |
| a process assertion. |
| |
| * WebProcess/WebProcess.h: |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::processTaskStateDidChange): |
| (WebKit::WebProcess::releaseProcessWasResumedAssertions): |
| |
| 2019-11-19 Brian Burg <bburg@apple.com> |
| |
| [Cocoa] Add _WKRemoteWebInspectorViewController SPI to set diagnostic logging delegate |
| https://bugs.webkit.org/show_bug.cgi?id=204371 |
| |
| Reviewed by Devin Rousso. |
| |
| * UIProcess/WebInspectorProxy.h: |
| * UIProcess/RemoteWebInspectorProxy.h: |
| * UIProcess/RemoteWebInspectorProxy.cpp: |
| (WebKit::RemoteWebInspectorProxy::setDiagnosticLoggingAvailable): |
| Hook up the plumbing to forward this state change to the frontend. |
| |
| * UIProcess/API/Cocoa/_WKRemoteWebInspectorViewControllerPrivate.h: Added. |
| * UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm: |
| (-[_WKRemoteWebInspectorViewController _setDiagnosticLoggingDelegate:]): |
| Add new SPI to set the diagnostic logging delegate. This is preferable to directly |
| setting the delegate on the inspector WKWebView (via .webView._diagnosticLoggingDelegate), |
| because the controller can notify the frontend that diagnostic logging is now available. |
| |
| * WebKit.xcodeproj/project.pbxproj: Add new header file and make it private. |
| |
| * WebProcess/WebPage/WebInspectorUI.h: |
| * WebProcess/WebPage/WebInspectorUI.cpp: |
| (WebKit::WebInspectorUI::setDiagnosticLoggingAvailable): |
| Cache this value and use it for InspectorFrontendClient::diagnosticLoggingAvailable(). |
| |
| * WebProcess/WebPage/RemoteWebInspectorUI.messages.in: |
| * WebProcess/WebPage/RemoteWebInspectorUI.h: |
| * WebProcess/WebPage/RemoteWebInspectorUI.cpp: |
| (WebKit::RemoteWebInspectorUI::setDiagnosticLoggingAvailable): |
| Duplicate what is done for the local case. |
| |
| 2019-11-20 Jer Noble <jer.noble@apple.com> |
| |
| HTML5 audio .ended event not fired when app in background or phone screen is off |
| https://bugs.webkit.org/show_bug.cgi?id=173332 |
| <rdar://problem/32757402> |
| |
| Reviewed by Eric Carlson. |
| |
| When a WebPage goes from audible to inaudible, allow a short grace period before removing |
| the activity token, to give the page a chance to (e.g.) move to the next item in a playlist |
| before the process is suspended when in the background. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::close): |
| (WebKit::WebPageProxy::updateThrottleState): |
| (WebKit::WebPageProxy::clearAudibleActivity): |
| * UIProcess/WebPageProxy.h: |
| |
| 2019-11-19 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, fix webkitpy failures after r252655. |
| |
| * Scripts/webkit/LegacyMessageReceiver-expected.cpp: |
| (WebKit::WebPage::didReceiveWebPageMessage): |
| (WebKit::WebPage::didReceiveSyncWebPageMessage): |
| * Scripts/webkit/MessageReceiver-expected.cpp: |
| (WebKit::WebPage::didReceiveMessage): |
| (WebKit::WebPage::didReceiveSyncMessage): |
| * Scripts/webkit/MessageReceiverSuperclass-expected.cpp: |
| (WebKit::WebPage::didReceiveMessage): |
| (WebKit::WebPage::didReceiveSyncMessage): |
| |
| 2019-11-19 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed mac catalyst build fix after r252655. |
| |
| * WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.messages.in: |
| |
| 2019-11-19 Ross Kirsling <ross.kirsling@sony.com> |
| |
| Unreviewed non-unified build fixes. |
| |
| * WebProcess/WebPage/FindController.cpp: |
| * WebProcess/WebPage/FindController.h: |
| |
| 2019-11-19 Chris Dumez <cdumez@apple.com> |
| |
| Protect MessageReceivers when possible while they are processing incoming IPC messages |
| https://bugs.webkit.org/show_bug.cgi?id=204377 |
| |
| Reviewed by Brady Eidson. |
| |
| Protect MessageReceiver while they are processing incoming IPC messages for |
| extra safety. It is a common mistake to call client delegates as a result of an IPC, and |
| failing to protect |this| while doing so. Client code can destroy |this| and we end up |
| crashing. |
| |
| For MessageReceivers that are not RefCounted, they can use the "NotRefCounted" attribute |
| in their messages.in file to opt out. |
| |
| * NetworkProcess/Cookies/WebCookieManager.messages.in: |
| * NetworkProcess/CustomProtocols/LegacyCustomProtocolManager.messages.in: |
| * NetworkProcess/IndexedDB/WebIDBConnectionToClient.messages.in: |
| * NetworkProcess/NetworkContentRuleListManager.messages.in: |
| * NetworkProcess/NetworkSocketChannel.messages.in: |
| * NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.messages.in: |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.messages.in: |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.messages.in: |
| * NetworkProcess/webrtc/NetworkMDNSRegister.messages.in: |
| * NetworkProcess/webrtc/NetworkRTCMonitor.messages.in: |
| * NetworkProcess/webrtc/NetworkRTCSocket.messages.in: |
| * PluginProcess/PluginControllerProxy.messages.in: |
| * PluginProcess/PluginProcess.messages.in: |
| * Scripts/webkit/messages.py: |
| * Shared/API/Cocoa/RemoteObjectRegistry.messages.in: |
| * Shared/ApplePay/WebPaymentCoordinatorProxy.messages.in: |
| * Shared/Authentication/AuthenticationManager.messages.in: |
| * Shared/AuxiliaryProcess.messages.in: |
| * Shared/Plugins/NPObjectMessageReceiver.messages.in: |
| * UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in: |
| * UIProcess/DrawingAreaProxy.messages.in: |
| * UIProcess/Network/CustomProtocols/LegacyCustomProtocolManagerProxy.messages.in: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.messages.in: |
| * UIProcess/ViewGestureController.messages.in: |
| * UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.messages.in: |
| * UIProcess/WebFullScreenManagerProxy.messages.in: |
| * UIProcess/WebPasteboardProxy.messages.in: |
| * UIProcess/ios/SmartMagnificationController.messages.in: |
| * WebProcess/ApplePay/WebPaymentCoordinator.messages.in: |
| * WebProcess/Automation/WebAutomationSessionProxy.messages.in: |
| * WebProcess/Geolocation/WebGeolocationManager.messages.in: |
| * WebProcess/Network/webrtc/WebMDNSRegister.messages.in: |
| * WebProcess/Network/webrtc/WebRTCMonitor.messages.in: |
| * WebProcess/Network/webrtc/WebRTCResolver.messages.in: |
| * WebProcess/Network/webrtc/WebRTCSocket.messages.in: |
| * WebProcess/Notifications/WebNotificationManager.messages.in: |
| * WebProcess/Storage/WebSWContextManagerConnection.messages.in: |
| * WebProcess/WebPage/DrawingArea.messages.in: |
| * WebProcess/WebPage/ViewGestureGeometryCollector.messages.in: |
| * WebProcess/WebProcess.messages.in: |
| * WebProcess/cocoa/UserMediaCaptureManager.messages.in: |
| |
| 2019-11-19 Per Arne Vollan <pvollan@apple.com> |
| |
| [iOS] Fix sysctl-read sandbox violation |
| https://bugs.webkit.org/show_bug.cgi?id=204358 |
| <rdar://problem/57298313> |
| |
| Reviewed by Brent Fulgham. |
| |
| The WebContent sandbox should allow sysctl-read of "kern.hostname", "kern.osrelease", and "kern.version". |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2019-11-19 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Count third-party script loads under top frame |
| https://bugs.webkit.org/show_bug.cgi?id=204262 |
| <rdar://problem/57244945> |
| |
| Reviewed by Alex Christensen. |
| |
| Third-party scripts running in the first-party context are a significant privacy |
| and security risk. This change captures the number of such script loads which will |
| allow ITP to take action. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: |
| (WebKit::ResourceLoadStatisticsDatabaseStore::ResourceLoadStatisticsDatabaseStore): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::createUniqueIndices): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::createSchema): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::prepareStatements): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::insertDomainRelationships): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::getSubStatisticStatement): |
| Addition of the new category TopFrameLoadedThirdPartyScripts. |
| (WebKit::ResourceLoadStatisticsDatabaseStore::resourceToString): |
| Removed the lastSeen output since it may differ between test runs. |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h: |
| * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: |
| Bumped statisticsModelVersion to 17. |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<ResourceLoadStatistics>::encode): |
| (IPC::ArgumentCoder<ResourceLoadStatistics>::decode): |
| Encoding and decoding of the new category topFrameLoadedThirdPartyScripts. |
| * WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp: |
| (WebKit::WebResourceLoadObserver::logSubresourceLoading): |
| Now takes an additional enum parameter FetchDestinationIsScriptLike which |
| is used to detect third-party script-like loads (script, worker, or |
| service worker) from third-parties. If one is detected, it is stored |
| in the new topFrameLoadedThirdPartyScripts category. |
| * WebProcess/WebCoreSupport/WebResourceLoadObserver.h: |
| |
| 2019-11-19 Brian Burg <bburg@apple.com> |
| |
| [Cocoa] Add _WKInspector SPI to set diagnostic logging delegate for a local Web Inspector |
| https://bugs.webkit.org/show_bug.cgi?id=204323 |
| |
| Reviewed by Devin Rousso. |
| |
| Testing this end-to-end isn't quite possible yet because WebInspectorUI does not |
| yet send any dummy diagnostic events that we can use for testing purposes. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| * UIProcess/API/Cocoa/_WKInspectorInternal.h: Fix include. |
| * UIProcess/API/Cocoa/_WKInspectorPrivate.h: Added. |
| * UIProcess/API/Cocoa/_WKInspector.mm: Fix include. |
| (-[_WKInspector _setDiagnosticLoggingDelegate:]): |
| Allow clients to set the diagnosticLoggingDelegate directly on _WKInspector. |
| The implementation forwards this setter to the Inspector's WKWebView and notifies |
| the frontend that diagnostic logging availability did change. |
| |
| * UIProcess/WebInspectorProxy.h: |
| * UIProcess/WebInspectorProxy.cpp: |
| (WebKit::WebInspectorProxy::setDiagnosticLoggingAvailable): |
| Plumbing. |
| |
| * WebProcess/WebPage/WebInspectorUI.cpp: |
| (WebKit::WebInspectorUI::setDiagnosticLoggingAvailable): |
| * WebProcess/WebPage/WebInspectorUI.h: |
| * WebProcess/WebPage/WebInspectorUI.messages.in: |
| More plumbing. |
| |
| 2019-11-19 Chris Dumez <cdumez@apple.com> |
| |
| Make sendWithAsyncReply() safe to call from any thread |
| https://bugs.webkit.org/show_bug.cgi?id=204355 |
| |
| Reviewed by Alex Christensen. |
| |
| Make sendWithAsyncReply() safe to call from any thread, similarly to the regular send(). |
| Also start using it in WebProcess::processTaskStateDidChange() now that it is safe. |
| |
| * Platform/IPC/Connection.cpp: |
| (IPC::asyncReplyHandlerMapLock): |
| (IPC::asyncReplyHandlerMap): |
| (IPC::nextAsyncReplyHandlerID): |
| (IPC::addAsyncReplyHandler): |
| (IPC::clearAsyncReplyHandlers): |
| (IPC::CompletionHandler<void): |
| * UIProcess/Cocoa/WebProcessProxyCocoa.mm: |
| (WebKit::WebProcessProxy::processWasResumed): |
| * UIProcess/WebProcessProxy.h: |
| (WebKit::WebProcessProxy::hasServiceWorkerPageProxy): Deleted. |
| (WebKit::WebProcessProxy::setAssertionStateForTesting): Deleted. |
| (WebKit::WebProcessProxy::WeakOrStrongPtr::WeakOrStrongPtr): Deleted. |
| (WebKit::WebProcessProxy::WeakOrStrongPtr::setIsWeak): Deleted. |
| (WebKit::WebProcessProxy::WeakOrStrongPtr::get const): Deleted. |
| (WebKit::WebProcessProxy::WeakOrStrongPtr::operator-> const): Deleted. |
| (WebKit::WebProcessProxy::WeakOrStrongPtr::operator* const): Deleted. |
| (WebKit::WebProcessProxy::WeakOrStrongPtr::operator bool const): Deleted. |
| (WebKit::WebProcessProxy::WeakOrStrongPtr::updateStrongReference): Deleted. |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::processTaskStateDidChange): |
| (WebKit::WebProcess::parentProcessDidHandleProcessWasResumed): Deleted. |
| |
| 2019-11-19 Megan Gardner <megan_gardner@apple.com> |
| |
| <rdar://problem/57323799> |
| |
| Unreviwed build fix for older bots. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| |
| 2019-11-19 Brian Burg <bburg@apple.com> |
| |
| [Cocoa] Add WKUIDelegate SPI to inform clients when a _WKInspector attaches to a WKWebView |
| https://bugs.webkit.org/show_bug.cgi?id=204300 |
| <rdar://problem/57136993> |
| |
| Reviewed by Devin Rousso. |
| |
| Add a new UI delegate method to notify clients when local Web Inspector is about to be loaded. |
| This can be triggered by -[_WKInspector show] in the Cocoa API, or via the WebCore-controlled |
| Inspect context menu item. |
| |
| The client can then configure Web Inspector using delegates or by setting _WKInspector properties. |
| |
| Covered by new API test WebKit.DidNotifyWhenInspectorAttached. |
| |
| * UIProcess/API/APIUIClient.h: |
| (API::UIClient::didAttachInspector): |
| * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: |
| * UIProcess/Cocoa/UIDelegate.h: |
| * UIProcess/Cocoa/UIDelegate.mm: |
| (WebKit::UIDelegate::setDelegate): |
| (WebKit::UIDelegate::UIClient::didAttachInspector): |
| * UIProcess/WebInspectorProxy.cpp: |
| (WebKit::WebInspectorProxy::openLocalInspectorFrontend): |
| |
| 2019-11-18 John Wilander <wilander@apple.com> |
| |
| Check if ITP is on before applying third-party cookie blocking |
| https://bugs.webkit.org/show_bug.cgi?id=204322 |
| <rdar://problem/57120772> |
| |
| Reviewed by Chris Dumez and Alexey Proskuryakov. |
| |
| This change makes sure WebCore::NetworkStorageSession knows |
| whether ITP is on or off and checks that first thing in |
| WebCore::NetworkStorageSession::shouldBlockCookies(). |
| |
| This check was never needed before since if ITP was off, |
| there would be no classified domains and thus the function |
| would always return false. However, |
| https://trac.webkit.org/changeset/251353/webkit introduced |
| full third-party cookie blocking for websites without user |
| interaction and that rule is checked before checking domain |
| classification. The effect was unconditional third-party |
| cookie blocking if ITP is off. This changes fixes that bug. |
| |
| Note that this patch already landed as branch-specific in |
| https://trac.webkit.org/changeset/252549/webkit |
| |
| * NetworkProcess/NetworkSession.cpp: |
| (WebKit::NetworkSession::setResourceLoadStatisticsEnabled): |
| Now tells WebCore::NetworkStorageSession the status of |
| ITP. |
| |
| 2019-11-18 David Kilzer <ddkilzer@apple.com> |
| |
| IPC::Decoder should use nullptr as invalid value |
| <https://webkit.org/b/203880> |
| <rdar://problem/53159906> |
| |
| Reviewed by Brent Fulgham. |
| |
| Covered by existing tests. |
| |
| * Platform/IPC/Decoder.cpp: |
| (IPC::alignedBufferIsLargeEnoughToContain): Add bufferStart |
| parameter to add beginning bounds check now that m_bufferPos |
| uses nullptr for an invalid value. |
| (IPC::Decoder::alignBufferPosition): Update to pass m_buffer to |
| IPC::alignedBufferIsLargeEnoughToContain(). |
| (IPC::Decoder::bufferIsLargeEnoughToContain const): Ditto. |
| * Platform/IPC/Decoder.h: |
| (IPC::Decoder::isInvalid const): Add beginning bounds check now |
| that m_bufferPos uses nullptr for an invalid value. |
| (IPC::Decoder::markInvalid): Make nullptr the invalid value for |
| m_bufferPos. |
| |
| 2019-11-18 Andres Gonzalez <andresg_22@apple.com> |
| |
| Run AccessibilityController::rootElement on secondary thread to simulate HIServices during LayoutTests. |
| https://bugs.webkit.org/show_bug.cgi?id=204226 |
| |
| Reviewed by Chris Fleizach. |
| |
| Added WKAccessibilityCanUseSecondaryAXThread to support |
| WTR::AccessibilityController spawning of a secondary thread to simulate |
| execution of isolated tree code. |
| |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: |
| (WKAccessibilityCanUseSecondaryAXThread): |
| * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h: |
| |
| 2019-11-18 Chris Dumez <cdumez@apple.com> |
| |
| Promote main thread assertions related to sendWithAsyncReply() to be release assertions |
| https://bugs.webkit.org/show_bug.cgi?id=204298 |
| |
| Reviewed by Wenson Hsieh. |
| |
| Promote main thread assertions related to sendWithAsyncReply() to be release assertions, to help identify |
| threading bugs such as <rdar://problem/57231170>. |
| |
| * Platform/IPC/Connection.cpp: |
| (IPC::addAsyncReplyHandler): |
| (IPC::clearAsyncReplyHandlers): |
| (IPC::CompletionHandler<void): |
| |
| 2019-11-18 Alex Christensen <achristensen@webkit.org> |
| |
| Fix assertion in layout test after r252492. |
| https://bugs.webkit.org/show_bug.cgi?id=204199 |
| |
| There is still a case in a test where there is no frame identifier, so keep the status quo. |
| This is a partial revert of r252492. |
| This fixes layout test http/tests/navigation/window-open-redirect-and-remove-opener.html |
| |
| * Shared/FrameInfoData.cpp: |
| (WebKit::FrameInfoData::decode): |
| * Shared/FrameInfoData.h: |
| * UIProcess/API/APIFrameInfo.cpp: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::createNewPage): |
| |
| 2019-11-18 Alex Christensen <achristensen@webkit.org> |
| |
| Use SecTrustEvaluateWithError instead of SecTrustEvaluate where available |
| https://bugs.webkit.org/show_bug.cgi?id=204159 |
| |
| Reviewed by Darin Adler. |
| |
| * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm: |
| (-[WKFullScreenWindowController _EVOrganizationName]): |
| |
| 2019-11-18 Darin Adler <darin@apple.com> |
| |
| WKWebView.mediaType is nullable, not null_resettable |
| https://bugs.webkit.org/show_bug.cgi?id=204297 |
| |
| Reviewed by Anders Carlsson. |
| |
| * UIProcess/API/Cocoa/WKWebView.h: Use nullable for mediaType since this |
| property returns a null value when the media type is not being overridden. |
| |
| 2019-11-18 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Automation: scrollIntoView should do nothing if element is visible |
| https://bugs.webkit.org/show_bug.cgi?id=204194 |
| |
| Reviewed by Carlos Alberto Lopez Perez. |
| |
| "To scroll into view an element perform the following steps only if the element is not already in view" |
| https://w3c.github.io/webdriver/#dfn-scrolls-into-view |
| |
| Fixes: imported/w3c/webdriver/tests/element_click/scroll_into_view.py::test_partially_visible_does_not_scroll[9] |
| imported/w3c/webdriver/tests/element_click/scroll_into_view.py::test_partially_visible_does_not_scroll[8] |
| imported/w3c/webdriver/tests/element_click/scroll_into_view.py::test_partially_visible_does_not_scroll[7] |
| imported/w3c/webdriver/tests/element_click/scroll_into_view.py::test_partially_visible_does_not_scroll[6] |
| imported/w3c/webdriver/tests/element_click/scroll_into_view.py::test_partially_visible_does_not_scroll[5] |
| imported/w3c/webdriver/tests/element_click/scroll_into_view.py::test_partially_visible_does_not_scroll[4] |
| imported/w3c/webdriver/tests/element_click/scroll_into_view.py::test_partially_visible_does_not_scroll[3] |
| imported/w3c/webdriver/tests/element_click/scroll_into_view.py::test_partially_visible_does_not_scroll[2] |
| imported/w3c/webdriver/tests/element_click/scroll_into_view.py::test_partially_visible_does_not_scroll[1] |
| |
| * WebProcess/Automation/WebAutomationSessionProxy.cpp: |
| (WebKit::WebAutomationSessionProxy::computeElementLayout): Use scrollIntoViewIfNotVisible instead of |
| scrollIntoViewIfNeeded. |
| |
| 2019-11-17 Alexey Proskuryakov <ap@apple.com> |
| |
| Better build fix attempt after r252434. |
| |
| We do need this variant, it was a mistake to claim that it's "old". |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/ios/WKGeolocationProviderIOSObjCSecurityOrigin.mm: |
| (WebKit::decidePolicyForGeolocationRequestFromOrigin): |
| |
| 2019-11-17 Alexey Proskuryakov <ap@apple.com> |
| |
| Build fix attempt after r252434. |
| |
| This variant of decidePolicyForGeolocationRequestFromOrigin doesn't exist in UIKit. |
| Removing dead code, but someone needs to take a look at what the original intent here was. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/ios/WKGeolocationProviderIOSObjCSecurityOrigin.mm: |
| (WebKit::decidePolicyForGeolocationRequestFromOrigin): |
| |
| 2019-11-16 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| REGRESSION (r243606): Interacting with date and time pickers hangs the UI process on watchOS |
| https://bugs.webkit.org/show_bug.cgi?id=204280 |
| <rdar://problem/49718359> |
| |
| Reviewed by Chris Dumez. |
| |
| After r243606, interacting with date and time inputs on watchOS hangs the UI process indefinitely while |
| attempting to create an input peripheral (WKFormInputControl) for the date or time picker. This is because, in |
| the process of setting up a new WKDateTimePicker, we call into +[UIKeyboard defaultSizeForInterfaceOrientation:] |
| which hangs when attempting to fetch the current UIKit keyboard layout type. |
| |
| To address this, we simply avoid setting _inputPeripheral on watchOS, as we did prior to r243606. Covered by the |
| existing layout test fast/forms/watchos/time-picker-value-change.html, which currently times out. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (createInputPeripheralWithView): |
| |
| 2019-11-16 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS] [UIWKDocumentContext] Add the ability to request all marked text rects |
| https://bugs.webkit.org/show_bug.cgi?id=204278 |
| <rdar://problem/56527803> |
| |
| Reviewed by Tim Horton. |
| |
| Add support for a new UIWKDocumentRequest option to request character rects for each character in the marked |
| text range. Unless UIWKDocumentRequestRects is additionally specified (in which case we'll return rects for |
| every single character in the editable root anyways), this option will ensure that all characters in the |
| composition range (which should match -[UIWKDocumentContext markedTextRange]) will have known character rects |
| that can be retrieved using -[UIWKDocumentContext enumerateLayoutRects:] (or one of the other helper methods |
| that utilize -enumerateLayoutRects:). |
| |
| Test: WebKit.DocumentEditingContextWithMarkedText |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| |
| Add a staging declaration for the new option. |
| |
| * Shared/DocumentEditingContext.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (toWebDocumentRequestOptions): |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::requestDocumentEditingContext): |
| |
| Refactor logic that uses CharacterIterator to find rects for each character range into a lambda function, and |
| use this lambda function to handle UIWKDocumentRequestRects and the new UIWKDocumentRequestMarkedTextRects. The |
| marked text range is relative to the start of the context before the selection. |
| |
| 2019-11-15 Eric Carlson <eric.carlson@apple.com> |
| |
| Don't use AVCapture on watchOS and tvOS |
| https://bugs.webkit.org/show_bug.cgi?id=204254 |
| <rdar://problem/45508044> |
| |
| Reviewed by Youenn Fablet. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2019-11-15 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| [Apple] Enable variation fonts on all Apple platforms |
| https://bugs.webkit.org/show_bug.cgi?id=198100 |
| |
| Reviewed by Simon Fraser. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2019-11-15 Chris Dumez <cdumez@apple.com> |
| |
| Add more release logging for network load restarts |
| https://bugs.webkit.org/show_bug.cgi?id=204234 |
| |
| Reviewed by Youenn Fablet. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::willSendRedirectedRequest): |
| (WebKit::NetworkResourceLoader::restartNetworkLoad): |
| (WebKit::NetworkResourceLoader::continueWillSendRequest): |
| (WebKit::NetworkResourceLoader::serviceWorkerDidNotHandle): |
| |
| 2019-11-15 Per Arne Vollan <pvollan@apple.com> |
| |
| [iOS] Fix sysctl-read sandbox violation |
| https://bugs.webkit.org/show_bug.cgi?id=204238 |
| <rdar://problem/57198954> |
| |
| Reviewed by Brent Fulgham. |
| |
| There is missing a rule for reading a specific sysctl property in the WebContent process on iOS. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2019-11-15 Benjamin Nham <nham@apple.com> |
| |
| Add SPI to clear web process cache |
| https://bugs.webkit.org/show_bug.cgi?id=204210 |
| |
| Reviewed by Chris Dumez. |
| |
| This adds an SPI to clear cached web processes. The intended use case is to add a lukewarm mode to |
| Mac PLT5 in which web pages load in a new WebProcess and load resources from the disk cache. |
| |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _clearWebProcessCache]): |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| (-[WKProcessPool _clearWebProcessCache]): |
| |
| 2019-11-15 Per Arne Vollan <pvollan@apple.com> |
| |
| [iOS] Fix sandbox violation in the WebContent process related to WebRTC audio captures |
| https://bugs.webkit.org/show_bug.cgi?id=204240 |
| <rdar://problem/57170333> |
| |
| Reviewed by Brent Fulgham. |
| |
| The WebContent process needs access to read a new audio related preference domain. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2019-11-15 Alex Christensen <achristensen@webkit.org> |
| |
| Reduce structure copies when creating an API::FrameInfo |
| https://bugs.webkit.org/show_bug.cgi?id=204199 |
| |
| Reviewed by Brady Eidson. |
| |
| Use WTFMove and references where possible. This is cleanup needed for a future patch. |
| |
| * Shared/FrameInfoData.cpp: |
| (WebKit::FrameInfoData::decode): |
| * Shared/FrameInfoData.h: |
| * UIProcess/API/APIFrameInfo.cpp: |
| (API::FrameInfo::create): |
| (API::FrameInfo::FrameInfo): |
| (API::FrameInfo::~FrameInfo): Deleted. |
| (API::FrameInfo::clearPage): Deleted. |
| * UIProcess/API/APIFrameInfo.h: |
| * UIProcess/API/APINavigationClient.h: |
| (API::NavigationClient::didFailProvisionalLoadInSubframeWithError): |
| * UIProcess/API/APIUIClient.h: |
| (API::UIClient::runJavaScriptAlert): |
| (API::UIClient::runJavaScriptConfirm): |
| (API::UIClient::runJavaScriptPrompt): |
| (API::UIClient::runBeforeUnloadConfirmPanel): |
| (API::UIClient::runOpenPanel): |
| (API::UIClient::runWebAuthenticationPanel): |
| * UIProcess/API/C/WKFrame.cpp: |
| (WKFrameCreateFrameInfo): |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetPageUIClient): |
| (WKPageSetPageNavigationClient): |
| * UIProcess/API/Cocoa/WKFrameInfo.mm: |
| (-[WKFrameInfo webView]): |
| * UIProcess/API/Cocoa/WKUserContentController.mm: |
| * UIProcess/Cocoa/NavigationState.h: |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationClient::didFailProvisionalLoadInSubframeWithError): |
| * UIProcess/Cocoa/UIDelegate.h: |
| * UIProcess/Cocoa/UIDelegate.mm: |
| (WebKit::UIDelegate::UIClient::runJavaScriptAlert): |
| (WebKit::UIDelegate::UIClient::runJavaScriptConfirm): |
| (WebKit::UIDelegate::UIClient::runJavaScriptPrompt): |
| (WebKit::UIDelegate::UIClient::decidePolicyForGeolocationPermissionRequest): |
| (WebKit::UIDelegate::UIClient::runBeforeUnloadConfirmPanel): |
| (WebKit::UIDelegate::UIClient::runOpenPanel): |
| (WebKit::UIDelegate::UIClient::runWebAuthenticationPanel): |
| * UIProcess/ProvisionalPageProxy.cpp: |
| (WebKit::ProvisionalPageProxy::didFailProvisionalLoadForFrame): |
| (WebKit::ProvisionalPageProxy::decidePolicyForResponse): |
| * UIProcess/ProvisionalPageProxy.h: |
| * UIProcess/UserContent/WebScriptMessageHandler.h: |
| * UIProcess/UserContent/WebUserContentControllerProxy.cpp: |
| (WebKit::WebUserContentControllerProxy::didPostMessage): |
| * UIProcess/UserContent/WebUserContentControllerProxy.h: |
| * UIProcess/WebAuthentication/AuthenticatorManager.cpp: |
| (WebKit::AuthenticatorManager::runPanel): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didFailProvisionalLoadForFrame): |
| (WebKit::WebPageProxy::didFailProvisionalLoadForFrameShared): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::decidePolicyForNewWindowAction): |
| (WebKit::WebPageProxy::decidePolicyForResponse): |
| (WebKit::WebPageProxy::decidePolicyForResponseShared): |
| (WebKit::WebPageProxy::createNewPage): |
| (WebKit::WebPageProxy::runJavaScriptAlert): |
| (WebKit::WebPageProxy::runJavaScriptConfirm): |
| (WebKit::WebPageProxy::runJavaScriptPrompt): |
| (WebKit::WebPageProxy::runBeforeUnloadConfirmPanel): |
| (WebKit::WebPageProxy::runOpenPanel): |
| * UIProcess/WebPageProxy.h: |
| |
| 2019-11-15 Chris Dumez <cdumez@apple.com> |
| |
| Regression(r244361) iOS: Layout test http/tests/quicklook/rtf-document-domain-is-empty-string.html is crashing |
| https://bugs.webkit.org/show_bug.cgi?id=204205 |
| <rdar://problem/51864314> |
| |
| Reviewed by Alex Christensen. |
| |
| In this test, NSHTMLWriter ends up creating a WebArchive providing file:///index.html as URL. The page's script |
| then calls document.open(), which triggers a DidExplicitOpenForFrame() IPC to the UIProcess with this URL. |
| This trips our MESSAGE_CHECK_URL() check in the UIProcess when this path is not within the WebContent process' |
| sandbox, and we kill the WebContent process. To address the issue, this patch replaces the MESSAGE_CHECK_URL() |
| with an if check and an early return so that we ignore the IPC if the URL does not make sense, without actually |
| terminating the WebContent process. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didExplicitOpenForFrame): |
| |
| 2019-11-12 Youenn Fablet <youenn@apple.com> |
| |
| Update libwebrtc to M78 |
| https://bugs.webkit.org/show_bug.cgi?id=203897 |
| |
| Reviewed by Eric Carlson. |
| |
| Update include paths. |
| Update according API change to client TCP socket creation and network monitor. |
| |
| * NetworkProcess/webrtc/LibWebRTCSocketClient.h: |
| * NetworkProcess/webrtc/NetworkRTCProvider.cpp: |
| (WebKit::NetworkRTCProvider::createClientTCPSocket): |
| * NetworkProcess/webrtc/NetworkRTCProvider.h: |
| * NetworkProcess/webrtc/NetworkRTCProvider.mm: |
| * NetworkProcess/webrtc/NetworkRTCSocket.h: |
| * Shared/RTCPacketOptions.h: |
| * WebProcess/Network/webrtc/LibWebRTCProvider.cpp: |
| (WebKit::RTCSocketFactory::CreateClientTcpSocket): |
| * WebProcess/Network/webrtc/LibWebRTCResolver.h: |
| * WebProcess/Network/webrtc/LibWebRTCSocket.h: |
| * WebProcess/Network/webrtc/LibWebRTCSocketFactory.cpp: |
| (WebKit::LibWebRTCSocketFactory::createClientTcpSocket): |
| * WebProcess/Network/webrtc/LibWebRTCSocketFactory.h: |
| * WebProcess/Network/webrtc/WebRTCMonitor.cpp: |
| * WebProcess/Network/webrtc/WebRTCMonitor.h: |
| |
| 2019-11-14 Alex Christensen <achristensen@webkit.org> |
| |
| Make NetworkResourceLoader::didReceiveResponse more straightforward after r244700 |
| https://bugs.webkit.org/show_bug.cgi?id=204134 |
| |
| Reviewed by Youenn Fablet. |
| |
| If m_isKeptAlive is true, we do not want to receive any HTTP body. |
| Rather than storing the CompletionHandler and relying on the destructor to call it, just call it. |
| |
| No change in behavior. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::didReceiveResponse): |
| |
| 2019-11-14 Chris Dumez <cdumez@apple.com> |
| |
| [iOS] Crash under WebProcess::processTaskStateDidChange(WebKit::ProcessTaskStateObserver::TaskState) |
| https://bugs.webkit.org/show_bug.cgi?id=204177 |
| |
| Reviewed by Jer Noble. |
| |
| Delay creating the ProcessTaskStateObserver until the WebProcess's connection to its parent had been |
| initialized. This is necessary because ProcessTaskStateObserver may call WebProcess::processTaskStateDidChange() |
| on a background thread, which will deference the IPC connection. |
| |
| * WebProcess/WebProcess.cpp: |
| (WebKit::m_webSQLiteDatabaseTracker): |
| (WebKit::WebProcess::~WebProcess): |
| (WebKit::WebProcess::initializeConnection): |
| (WebKit::m_taskStateObserver): Deleted. |
| * WebProcess/WebProcess.h: |
| |
| 2019-11-14 Brady Eidson <beidson@apple.com> |
| |
| Summary: WKWebView is missing an equivalent to WebKit 1's API to set the media style. |
| <rdar://problem/49862107> and https://bugs.webkit.org/show_bug.cgi?id=203974 |
| |
| Reviewed by Alex Christensen. |
| |
| Covered by new API test. |
| |
| This is basically: |
| - Expose a read/write property on WKWebView. |
| - Pipe the new media type to the WebProcess. |
| - Force a style recalc. |
| |
| * UIProcess/API/Cocoa/WKWebView.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView setMediaType:]): |
| (-[WKWebView mediaType]): |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::setOverriddenMediaType): |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::overriddenMediaType const): |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::overrideMediaType const): |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::setOverriddenMediaType): |
| * WebProcess/WebPage/WebPage.h: |
| (WebKit::WebPage::overriddenMediaType const): |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2019-11-14 Brady Eidson <beidson@apple.com> |
| |
| pageZoom/setPageZoom: should not be in a Mac-only part of WKWebView.mm |
| https://bugs.webkit.org/show_bug.cgi?id=204128 |
| |
| Reviewed by Alex Christensen. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView setPageZoom:]): |
| (-[WKWebView pageZoom]): |
| |
| 2019-11-13 Per Arne Vollan <pvollan@apple.com> |
| |
| REGRESSION: WKWebView navigation fails when navigating from about:blank |
| https://bugs.webkit.org/show_bug.cgi?id=203852 |
| <rdar://problem/56973112> |
| |
| Reviewed by Brent Fulgham. |
| |
| Previously, WebPageProxy::loadFile would unconditionally create a sandbox extension for the resource directory URL. Currently, |
| this method is calling WebPageProxy::maybeInitializeSandboxExtension to create a sandbox extension if needed. The sandbox |
| extension for the resource URL is not created if the WebContent process already has assumed access to the resource URL, which |
| is the case when loading the same file for the second time. The sandbox extension still needs to be issued in this case, since |
| the WebContent process is revoking its extension when the load is done. This patch restore the original behaviour by adding a |
| flag to WebPageProxy::maybeInitializeSandboxExtension to indicate whether the method should check if the process already has |
| assumed access. |
| |
| API test: WKWebView.LoadRelativeFileURL |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle): |
| (WebKit::WebPageProxy::loadRequestWithNavigationShared): |
| (WebKit::WebPageProxy::loadFile): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::shouldSendPendingMessage): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::loadRequestWaitingForProcessLaunch): |
| (WebKit::WebPage::loadRequestWaitingForPID): Deleted. |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2019-11-13 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| [Mac] Fix build |
| https://bugs.webkit.org/show_bug.cgi?id=204136 |
| |
| Reviewed by Alex Christensen. |
| |
| Remove deprecation warnings. |
| |
| * PluginProcess/mac/PluginProcessMac.mm: |
| (WebKit::replacedNSWorkspace_launchApplicationAtURL_options_configuration_error): |
| (WebKit::initializeCocoaOverrides): |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView changeFont:]): |
| (-[WKWebView changeColor:]): |
| (-[WKWebView view:stringForToolTip:point:userData:]): |
| (-[WKWebView pasteboardChangedOwner:]): |
| (-[WKWebView pasteboard:provideDataForType:]): |
| * UIProcess/API/mac/WKView.mm: |
| (-[WKView changeFont:]): |
| (-[WKView view:stringForToolTip:point:userData:]): |
| (-[WKView pasteboardChangedOwner:]): |
| (-[WKView pasteboard:provideDataForType:]): |
| * UIProcess/Plugins/mac/PluginProcessProxyMac.mm: |
| (WebKit::PluginProcessProxy::launchApplicationAtURL): |
| (WebKit::PluginProcessProxy::openFile): |
| * UIProcess/mac/WebDataListSuggestionsDropdownMac.mm: |
| (-[WKDataListSuggestionView setBackgroundStyle:]): |
| * UIProcess/mac/WebPageProxyMac.mm: |
| (WebKit::WebPageProxy::savePDFToTemporaryFolderAndOpenWithNativeApplication): |
| (WebKit::WebPageProxy::openPDFFromTemporaryFolderWithNativeApplication): |
| |
| 2019-11-13 Megan Gardner <megan_gardner@apple.com> |
| |
| Cleanup old UIKit Staging |
| https://bugs.webkit.org/show_bug.cgi?id=204130 |
| |
| Reviewed by Wenson Hsieh. |
| |
| Not new tests - linking only. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| |
| Removing old staging code that should be unnecessary now. |
| |
| 2019-11-13 Per Arne Vollan <pvollan@apple.com> |
| |
| [iOS] Cannot open camera from websites |
| https://bugs.webkit.org/show_bug.cgi?id=204168 |
| <rdar://problem/57138788> |
| |
| Reviewed by Jer Noble. |
| |
| The sandbox is blocking a required service. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2019-11-13 Benjamin Nham <nham@apple.com> |
| |
| VeryHigh priority loads are actually loading at VeryLow priority |
| https://bugs.webkit.org/show_bug.cgi?id=203423 |
| <rdar://problem/56621789> |
| |
| Reviewed by Antti Koivisto. |
| |
| There are two issues with the way we translate ResourceLoadPriority to |
| CFURLRequestPriority: |
| |
| 1. We call _CFNetworkHTTPConnectionCacheSetLimit and set 1 too few |
| priority levels. This means VeryHigh priority loads are actually out |
| of bounds, which causes CFNetwork to set the priority level back to 0 |
| in HTTPConnectionCacheEntry::_prepareNewRequest. After this patch we'll |
| call _CFNetworkHTTPConnectionCacheSetLimit with the correct number of |
| levels. |
| |
| 2. _CFNetworkHTTPConnectionCacheSetLimit doesn't work for NSURLSession |
| right now (<rdar://problem/56621205>), so we have to map to the default |
| number of CFURLRequestPriority levels, which is 4. Right now we have 5 |
| ResourceLoadPriority levels, so there will be some aliasing involved. |
| After this patch VeryLow gets a priority of -1 and Low gets a priority |
| of 0, but due to the aforementioned clamping behavior both VeryLow and |
| Low will effectively both have a CFURLRequestPriority of 0. |
| |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::initializeNetworkSettings): |
| |
| 2019-11-13 Youenn Fablet <youenn@apple.com> |
| |
| Remove timer to stop service worker process |
| https://bugs.webkit.org/show_bug.cgi?id=204118 |
| |
| Reviewed by Alex Christensen. |
| |
| Removal of a timer that is never get activated. |
| No change of behavior. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::createNewWebProcess): |
| * UIProcess/WebProcessPool.h: |
| |
| 2019-11-13 Youenn Fablet <youenn@apple.com> |
| |
| Take service worker assertions based on client processes assertion states |
| https://bugs.webkit.org/show_bug.cgi?id=204119 |
| |
| Reviewed by Chris Dumez. |
| |
| Compute in network process which processes contain clients for service workers of a given process. |
| WebSWServerConnection implements it and sends update to UIProcess/WebProcessProxy. |
| WebProcessProxy keeps for each service worker process a set of client web processes. |
| WebProcessProxy now computes the service worker process assertion based on this set. |
| |
| Add some private APIs to set process assertions/get service worker process assertion states. |
| Covered by new API test. |
| |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::registerServiceWorkerClient): |
| (WebKit::WebSWServerConnection::unregisterServiceWorkerClient): |
| (WebKit::WebSWServerConnection::contextConnectionCreated): |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp: |
| (WebKit::WebSWServerToContextConnection::webProcessIdentifier const): |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _setAssertionStateForTesting:]): |
| (-[WKWebView _hasServiceWorkerBackgroundActivityForTesting]): |
| (-[WKWebView _hasServiceWorkerForegroundActivityForTesting]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::registerWebProcessToServiceWorkerProcess): |
| (WebKit::NetworkProcessProxy::unregisterWebProcessToServiceWorkerProcess): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::updateProcessAssertions): |
| (WebKit::WebProcessPool::hasServiceWorkerForegroundActivityForTesting const): |
| (WebKit::WebProcessPool::hasServiceWorkerBackgroundActivityForTesting const): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::updateServiceWorkerProcessAssertion): |
| (WebKit::WebProcessProxy::registerWebProcessToServiceWorkerProcess): |
| (WebKit::WebProcessProxy::unregisterWebProcessToServiceWorkerProcess): |
| (WebKit::WebProcessProxy::hasServiceWorkerForegroundActivityForTesting const): |
| (WebKit::WebProcessProxy::hasServiceWorkerBackgroundActivityForTesting const): |
| * UIProcess/WebProcessProxy.h: |
| (WebKit::WebProcessProxy::setAssertionStateForTesting): |
| |
| 2019-11-13 Andres Gonzalez <andresg_22@apple.com> |
| |
| AXObjectCache::rootObject should generate the isolated tree. |
| https://bugs.webkit.org/show_bug.cgi?id=204131 |
| |
| Reviewed by Chris Fleizach. |
| |
| * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.h: |
| * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm: |
| (-[WKAccessibilityWebPageObjectBase accessibilityRootObjectWrapper]): |
| (-[WKAccessibilityWebPageObjectBase clientSupportsIsolatedTree]): Became a member of AXObjectCache. |
| (-[WKAccessibilityWebPageObjectBase isolatedTreeRootObject]): Deleted. |
| * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm: |
| (-[WKAccessibilityWebPageObject accessibilityHitTest:]): |
| |
| 2019-11-13 Youenn Fablet <youenn@apple.com> |
| |
| [ iOS ]: Layout Test http/tests/IndexedDB/storage-limit-1.https.html is a Flaky Failure |
| https://bugs.webkit.org/show_bug.cgi?id=203275 |
| <rdar://problem/56516249> |
| |
| Reviewed by Alex Christensen. |
| |
| Fix flakiness by clearing the storage of each cache when the cache is being cleared. |
| This ensures that the storage salt gets recreated if needed. |
| |
| To further improve repeatability, make sure that initialize based tasks happen after clear tasks are complete. |
| For that purpose, add a clear task counter and append initialize callbacks to a Vector if counter is not zero. |
| Increment counter at clear task creation and decrement counter at completion time. |
| If counter is back to 0, we can safely process the pending clear tasks. |
| |
| Covered by unflaked test. |
| |
| * NetworkProcess/cache/CacheStorageEngine.cpp: |
| (WebKit::CacheStorage::Engine::~Engine): |
| (WebKit::CacheStorage::Engine::initialize): |
| (WebKit::CacheStorage::CompletionHandler<void): |
| (WebKit::CacheStorage::Engine::clearAllCaches): |
| (WebKit::CacheStorage::Engine::clearCachesForOrigin): |
| * NetworkProcess/cache/CacheStorageEngine.h: |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::Caches::clearMemoryRepresentation): |
| |
| 2019-11-13 Chris Dumez <cdumez@apple.com> |
| |
| Rollout(r251358) Causes load hangs |
| https://bugs.webkit.org/show_bug.cgi?id=204158 |
| <rdar://problem/57120002> |
| |
| Unreviewed, revert r251358 because it causes load hangs. |
| |
| * Platform/spi/Cocoa/SecItemSPI.h: Removed. |
| * Shared/mac/SecItemRequestData.cpp: |
| (WebKit::SecItemRequestData::decode): |
| * Shared/mac/SecItemRequestData.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-11-13 Philippe Normand <pnormand@igalia.com> |
| |
| Unreviewed, fix build for ServiceWorkers disabled |
| |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::enableServiceWorkers): |
| |
| 2019-11-13 Rob Buis <rbuis@igalia.com> |
| |
| Support stale-while-revalidate cache strategy |
| https://bugs.webkit.org/show_bug.cgi?id=201461 |
| |
| Reviewed by Youenn Fablet. |
| |
| Add a new UseDecision value AsyncRevalidate for async revalidation. This is used |
| when the retrieved cache entry is a stale-while-revalidate response [1]. |
| In case of AsyncRevalidate, a check is made to see if there is a |
| current async revalidation ongoing for the entry, if not one is |
| started. Regardless, the stale entry is returned, until either the |
| async revalidation ends successfully or at the moment when the |
| response expires for real. |
| |
| [1] https://fetch.spec.whatwg.org/#concept-stale-while-revalidate-response |
| |
| * NetworkProcess/NetworkSession.cpp: |
| (WebKit::NetworkSession::NetworkSession): |
| * NetworkProcess/NetworkSession.h: |
| (WebKit::NetworkSession::isStaleWhileRevalidateEnabled const): |
| * NetworkProcess/NetworkSessionCreationParameters.cpp: |
| (WebKit::NetworkSessionCreationParameters::encode const): |
| (WebKit::NetworkSessionCreationParameters::decode): |
| * NetworkProcess/NetworkSessionCreationParameters.h: |
| * NetworkProcess/cache/AsyncRevalidation.cpp: Added. |
| (WebKit::NetworkCache::constructRevalidationRequest): |
| (WebKit::NetworkCache::AsyncRevalidation::staleWhileRevalidateEnding): |
| (WebKit::NetworkCache::AsyncRevalidation::AsyncRevalidation): |
| * NetworkProcess/cache/AsyncRevalidation.h: Added. |
| (WebKit::NetworkCache::AsyncRevalidation::load const): |
| * NetworkProcess/cache/NetworkCache.cpp: |
| (WebKit::NetworkCache::responseNeedsRevalidation): |
| (WebKit::NetworkCache::makeUseDecision): |
| (WebKit::NetworkCache::makeStoreDecision): |
| (WebKit::NetworkCache::Cache::startAsyncRevalidationIfNeeded): |
| (WebKit::NetworkCache::Cache::retrieve): |
| (WebKit::NetworkCache::responseHasExpired): Deleted. |
| * NetworkProcess/cache/NetworkCache.h: |
| * NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp: |
| (WebKit::NetworkCache::dumpHTTPHeadersDiff): |
| (WebKit::NetworkCache::requestsHeadersMatch): |
| * NetworkProcess/cache/NetworkCacheSpeculativeLoad.h: |
| * NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp: |
| (WebKit::NetworkCache::dumpHTTPHeadersDiff): Deleted. |
| (WebKit::NetworkCache::requestsHeadersMatch): Deleted. |
| * Sources.txt: |
| * UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.cpp: |
| (WKWebsiteDataStoreConfigurationGetStaleWhileRevalidateEnabled): |
| (WKWebsiteDataStoreConfigurationSetStaleWhileRevalidateEnabled): |
| * UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.h: |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp: |
| (WebKit::WebsiteDataStoreConfiguration::copy const): |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h: |
| (WebKit::WebsiteDataStoreConfiguration::staleWhileRevalidateEnabled const): |
| (WebKit::WebsiteDataStoreConfiguration::setStaleWhileRevalidateEnabled): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-11-12 Simon Fraser <simon.fraser@apple.com> |
| |
| Convert CSSPrimitiveValue::UnitType to an enum class, and cleanup |
| https://bugs.webkit.org/show_bug.cgi?id=204101 |
| |
| Reviewed by Antti Koivisto. |
| |
| Move CSSPrimitiveValue::UnitType to a standalone enum class CSSUnitType, and |
| CSSPrimitiveVallue::UnitCategory to CSSUnitCategory; these are going to more extensive |
| use in calc() and in the CSS OM. |
| |
| * WebProcess/Plugins/PDF/PDFPluginAnnotation.mm: |
| (WebKit::PDFPluginAnnotation::updateGeometry): |
| * WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm: |
| (WebKit::PDFPluginChoiceAnnotation::updateGeometry): |
| * WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm: |
| (WebKit::PDFPluginTextAnnotation::updateGeometry): |
| |
| 2019-11-12 Sihui Liu <sihui_liu@apple.com> |
| |
| Add size file for CacheStorage |
| https://bugs.webkit.org/show_bug.cgi?id=204027 |
| <rdar://problem/57100861> |
| |
| Reviewed by Youenn Fablet. |
| |
| Keep the CacheStorage size in a separate file so that we can get that value without waiting for Engine to |
| initialize and read caches from disk. |
| |
| No behavior change as the file is not in use now. |
| |
| * NetworkProcess/cache/CacheStorageEngine.cpp: |
| (WebKit::CacheStorage::Engine::writeSizeFile): |
| (WebKit::CacheStorage::Engine::readSizeFile): |
| (WebKit::CacheStorage::Engine::clearAllCachesFromDisk): |
| (WebKit::CacheStorage::Engine::deleteDirectoryRecursivelyOnBackgroundThread): |
| * NetworkProcess/cache/CacheStorageEngine.h: |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::Caches::cachesSizeFilename): |
| (WebKit::CacheStorage::Caches::updateSizeFile): |
| (WebKit::CacheStorage::Caches::initializeSize): |
| (WebKit::CacheStorage::Caches::writeRecord): |
| (WebKit::CacheStorage::Caches::removeRecord): |
| (WebKit::CacheStorage::Caches::resetSpaceUsed): |
| * NetworkProcess/cache/CacheStorageEngineCaches.h: |
| |
| 2019-11-12 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS] WKWebView does not respect system spellchecking preference |
| https://bugs.webkit.org/show_bug.cgi?id=204100 |
| <rdar://problem/56653808> |
| |
| Reviewed by Tim Horton. |
| |
| Implements a platform hook on iOS (-setContinuousSpellCheckingEnabled:) to allow UIKit to inform us when the |
| system spellchecking preference changes, and adds logic to propagate these changes to the web process. See below |
| for more details. |
| |
| Test: editing/spelling/toggle-spellchecking.html |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _setContinuousSpellCheckingEnabledForTesting:]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| |
| Add testing SPI to enable or disable continuous spellchecking, for both iOS and macOS. |
| |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::setContinuousSpellCheckingEnabled): |
| * UIProcess/TextChecker.h: |
| * UIProcess/gtk/TextCheckerGtk.cpp: |
| (WebKit::TextChecker::setContinuousSpellCheckingEnabled): |
| * UIProcess/ios/TextCheckerIOS.mm: |
| (WebKit::TextChecker::setContinuousSpellCheckingEnabled): |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView setupInteraction]): |
| (-[WKContentView setContinuousSpellCheckingEnabled:]): |
| |
| Implement this method to handle changes to the system spellchecking preference. This hook is also used by legacy |
| WebKit on iOS to turn spellchecking on or off. If the value of the preference changed, we additionally notify |
| the web process. In the future, we should consider refactoring TextCheckerState to be per-web view and per-page, |
| since Cocoa platform APIs would allow for different WKWebViews to have different spell checking preferences. |
| |
| * UIProcess/mac/TextCheckerMac.mm: |
| (WebKit::TextChecker::setContinuousSpellCheckingEnabled): |
| * UIProcess/win/TextCheckerWin.cpp: |
| (WebKit::TextChecker::setContinuousSpellCheckingEnabled): |
| * UIProcess/wpe/TextCheckerWPE.cpp: |
| (WebKit::TextChecker::setContinuousSpellCheckingEnabled): |
| |
| Adjusted setContinuousSpellCheckingEnabled to return whether or not the continuous spellchecking state changed. |
| |
| 2019-11-12 Truitt Savell <tsavell@apple.com> |
| |
| Unreviewed, rolling out r252351. |
| |
| casued 50+ crashes on Mac and iOS wk2 debug |
| |
| Reverted changeset: |
| |
| "Add size file for CacheStorage" |
| https://bugs.webkit.org/show_bug.cgi?id=204027 |
| https://trac.webkit.org/changeset/252351 |
| |
| 2019-11-12 Alex Christensen <achristensen@webkit.org> |
| |
| Revert remainder of r251676 |
| https://bugs.webkit.org/show_bug.cgi?id=203066 |
| <rdar://problem/57115922> |
| |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa): |
| * NetworkProcess/cocoa/NetworkSessionCocoa.h: |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::globalCTDataConnectionServiceType): |
| (WebKit::NetworkSessionCocoa::setCTDataConnectionServiceType): |
| (WebKit::NetworkSessionCocoa::dataConnectionServiceType const): |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: |
| (-[_WKProcessPoolConfiguration CTDataConnectionServiceType]): |
| (-[_WKProcessPoolConfiguration setCTDataConnectionServiceType:]): |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeNetworkProcess): |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::paymentCoordinatorCTDataConnectionServiceType): |
| |
| 2019-11-12 Megan Gardner <megan_gardner@apple.com> |
| |
| Rename _textSelectionAssistant to _textInteractionAssistant to reflect the only class it can now represent |
| https://bugs.webkit.org/show_bug.cgi?id=204103 |
| |
| Reviewed by Wenson Hsieh. |
| |
| No new tests - rename only. |
| |
| Now that UIWKSelectionAssistant is no longer, the _textSelectionAssistant can only be a |
| UIWKTextInteractionAssistant. There is enough confusion around all the selection and |
| interaction assistants, renaming this should alleviate some of that confusion. |
| |
| * UIProcess/ios/WKContentView.mm: |
| (-[WKContentView _didExitStableState]): |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView cleanupInteraction]): |
| (-[WKContentView becomeFirstResponderForWebView]): |
| (-[WKContentView endEditingAndUpdateFocusAppearanceWithReason:]): |
| (-[WKContentView _scrollingNodeScrollingWillBegin]): |
| (-[WKContentView _scrollingNodeScrollingDidEnd]): |
| (-[WKContentView gestureRecognizer:canBePreventedByGestureRecognizer:]): |
| (-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]): |
| (-[WKContentView _uiTextSelectionRects]): |
| (-[WKContentView textInteractionGesture:shouldBeginAtPoint:]): |
| (-[WKContentView setUpTextSelectionAssistant]): |
| (-[WKContentView _willStartScrollingOrZooming]): |
| (-[WKContentView _didEndScrollingOrZooming]): |
| (-[WKContentView _lookupForWebView:]): |
| (-[WKContentView _shareForWebView:]): |
| (-[WKContentView _addShortcutForWebView:]): |
| (-[WKContentView _promptForReplaceForWebView:]): |
| (-[WKContentView _transliterateChineseForWebView:]): |
| (-[WKContentView tintColorDidChange]): |
| (-[WKContentView _didHideMenu:]): |
| (-[WKContentView selectForWebView:]): |
| (-[WKContentView selectAllForWebView:]): |
| (-[WKContentView _showTextStyleOptionsForWebView:]): |
| (-[WKContentView _showDictionary:]): |
| (-[WKContentView interactionAssistant]): |
| (-[WKContentView _showKeyboard]): |
| (-[WKContentView _hideKeyboard]): |
| (-[WKContentView _updateChangedSelection:]): |
| (-[WKContentView _startSuppressingSelectionAssistantForReason:]): |
| (-[WKContentView _stopSuppressingSelectionAssistantForReason:]): |
| (-[WKContentView _restoreCalloutBarIfNeeded]): |
| (-[WKContentView dragInteraction:willAnimateLiftWithAnimator:session:]): |
| |
| 2019-11-12 Carlos Alberto Lopez Perez <clopez@igalia.com> |
| |
| [GTK][WPE] Support Pointer Events |
| https://bugs.webkit.org/show_bug.cgi?id=202789 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Covered by existing tests. |
| |
| * UIProcess/PageClient.h: Add a ifdef for platform COCOA on two |
| function declarations that depend on the UIGestureRecognizer ObjC type. |
| This is not needed for GTK/WPE code. |
| |
| 2019-11-12 Alex Christensen <achristensen@webkit.org> |
| |
| Revert part of r251676 |
| https://bugs.webkit.org/show_bug.cgi?id=203066 |
| <rdar://problem/57008444> |
| |
| * 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): |
| |
| 2019-11-12 Carlos Alberto Lopez Perez <clopez@igalia.com> |
| |
| [GTK][WPE] Enable CSS Painting API |
| https://bugs.webkit.org/show_bug.cgi?id=190710 |
| |
| Reviewed by Don Olmstead. |
| |
| Enable the runtime feature by default on GTK/WPE when building with |
| experimental features enabled. |
| |
| Covered by existing tests. |
| |
| * Shared/WebPreferences.yaml: |
| * Shared/WebPreferencesDefaultValues.h: |
| |
| 2019-11-12 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] WebDriver: implement new window command |
| https://bugs.webkit.org/show_bug.cgi?id=203994 |
| |
| Reviewed by Carlos Alberto Lopez Perez. |
| |
| Add new API to support new window command. The WebKitAutomationSession::create-web-view signal can now receive a |
| detail that can be "window" or "tab". Applications can use that to decide whether to add the new webview to a |
| new window or tab. WebKitWebView has a new construct only property automation-presentation-type, which is an |
| enum that can be either window or tab value. Appplications should use the new property when creating the web |
| view for automation to indicate whether the web view was added to a new window or tab. |
| |
| * UIProcess/API/glib/WebKitAutomationSession.cpp: |
| (webkit_automation_session_class_init): |
| * UIProcess/API/glib/WebKitWebView.cpp: |
| (webkitWebViewSetProperty): |
| (webkitWebViewGetProperty): |
| (webkit_web_view_class_init): |
| (webkit_web_view_get_automation_presentation_type): |
| * UIProcess/API/gtk/WebKitAutomationSession.h: |
| * UIProcess/API/gtk/WebKitWebView.h: |
| * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: |
| * UIProcess/API/wpe/WebKitWebView.h: |
| * UIProcess/API/wpe/docs/wpe-1.0-sections.txt: |
| |
| 2019-11-12 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| REGRESSION(r250707): [GTK] UIClient::setWindowFrame only works the first time |
| https://bugs.webkit.org/show_bug.cgi?id=204068 |
| |
| Reviewed by Adrian Perez de Castro. |
| |
| This is because we are connecting to configure-event of parent window, but not returning FALSE from the callback |
| to propagate the event. |
| |
| * UIProcess/API/glib/WebKitUIClient.cpp: |
| (UIClient::windowConfigureEventCallback): Make it boolean and return FALSE. |
| |
| 2019-11-11 Alex Christensen <achristensen@webkit.org> |
| |
| Add SPI to access a WebsiteDataStore without instantiating it, and its configuration |
| https://bugs.webkit.org/show_bug.cgi?id=204089 |
| |
| Reviewed by Tim Horton. |
| |
| Calling WKWebViewConfiguration.websiteDataStore instantiates the default data store. |
| We need a way to query if it has been set but not instantiate anything if it hasn't. |
| We also need a way to access the configuration used to create a WKWebsiteDataStore like we do with WKWebView. |
| These have been requested to fix <rdar://problem/57091216> and I think they're a good idea in general. |
| |
| Covered by API tests. |
| |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: |
| (-[WKWebViewConfiguration _websiteDataStoreIfExists]): |
| * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _setDelegate:]): |
| (-[WKWebsiteDataStore set_delegate:]): |
| (-[WKWebsiteDataStore _configuration]): |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp: |
| (WebKit::WebsiteDataStoreConfiguration::copy const): |
| (WebKit::WebsiteDataStoreConfiguration::copy): Deleted. |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h: |
| |
| 2019-11-11 Sihui Liu <sihui_liu@apple.com> |
| |
| Add size file for CacheStorage |
| https://bugs.webkit.org/show_bug.cgi?id=204027 |
| |
| Reviewed by Youenn Fablet. |
| |
| Keep the CacheStorage size in a separate file so that we can get that value without waiting for Engine to |
| initialize and read caches from disk. |
| |
| No behavior change as the file is not in use now. |
| |
| * NetworkProcess/cache/CacheStorageEngine.cpp: |
| (WebKit::CacheStorage::Engine::writeSizeFile): |
| (WebKit::CacheStorage::Engine::readSizeFile): |
| * NetworkProcess/cache/CacheStorageEngine.h: |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::cachesSizeFilename): |
| (WebKit::CacheStorage::Caches::updateSizeFile): |
| (WebKit::CacheStorage::Caches::initializeSize): |
| (WebKit::CacheStorage::Caches::writeRecord): |
| (WebKit::CacheStorage::Caches::removeRecord): |
| (WebKit::CacheStorage::Caches::resetSpaceUsed): |
| * NetworkProcess/cache/CacheStorageEngineCaches.h: |
| |
| 2019-11-11 Youenn Fablet <youenn@apple.com> |
| |
| Fail cross-origin redirection loads in case of CORS with redirection URLs having credentials |
| https://bugs.webkit.org/show_bug.cgi?id=204036 |
| |
| Reviewed by Alex Christensen. |
| |
| Implement https://fetch.spec.whatwg.org/#http-redirect-fetch steps 7 and 8. |
| Covered by updated tests. |
| |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::checkRedirection): |
| |
| 2019-11-11 Per Arne Vollan <pvollan@apple.com> |
| |
| [iOS] Unable to view .pages files |
| https://bugs.webkit.org/show_bug.cgi?id=204076 |
| <rdar://problem/57079557> |
| |
| Reviewed by Brent Fulgham. |
| |
| This is caused by a syscall being blocked by the sandbox. The syscall was previously unused in the |
| WebContent process. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2019-11-11 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| WebDriver: implement proxy support |
| https://bugs.webkit.org/show_bug.cgi?id=180408 |
| |
| Reviewed by Carlos Alberto Lopez Perez. |
| |
| * UIProcess/API/glib/WebKitAutomationSession.cpp: |
| (parseProxyCapabilities): Parse the proxy settings from capabilities. |
| (webkitAutomationSessionCreate): Set the proxy settings received from capabilities. |
| |
| 2019-11-10 David Kilzer <ddkilzer@apple.com> |
| |
| StorageManagerSet.m_storageAreas should use weak pointers to StorageArea |
| <https://webkit.org/b/204048> |
| <rdar://problem/55342744> |
| |
| Reviewed by Geoffrey Garen. |
| |
| * NetworkProcess/WebStorage/StorageArea.h: |
| (class WebKit::StorageArea): |
| - Inherit from CanMakeWeakPtr<StorageArea>. |
| * NetworkProcess/WebStorage/StorageManagerSet.cpp: |
| (WebKit::StorageManagerSet::removeConnection): |
| (WebKit::StorageManagerSet::waitUntilSyncingLocalStorageFinished): |
| (WebKit::StorageManagerSet::connectToLocalStorageArea): |
| (WebKit::StorageManagerSet::connectToTransientLocalStorageArea): |
| (WebKit::StorageManagerSet::connectToSessionStorageArea): |
| (WebKit::StorageManagerSet::disconnectFromStorageArea): |
| (WebKit::StorageManagerSet::getValues): Initialize `quotaError` |
| stack value since it is not guaranteed to be set. |
| (WebKit::StorageManagerSet::setItem): |
| (WebKit::StorageManagerSet::removeItem): |
| (WebKit::StorageManagerSet::clear): |
| - Use makeWeakPtr() to add StorageArea pointers to |
| m_storageAreas. |
| - Use `const auto&` to store WeakPtr<StorageArea> values from |
| m_storageAreas. |
| - Add nullptr checks before using WeakPtr<StorageArea> values. |
| * NetworkProcess/WebStorage/StorageManagerSet.h: |
| (WebKit::StorageManagerSet::m_storageAreas): |
| - Use WeakPtr<StorageArea>. |
| |
| 2019-11-09 Dean Jackson <dino@apple.com> |
| |
| Clicky Orbing support.apple.com categories shows a PNG instead of the web page preview, tapping loads image asset only instead of web page |
| https://bugs.webkit.org/show_bug.cgi?id=204037 |
| <rdar://55614939> |
| |
| Reviewed by Simon Fraser. |
| |
| When Safari adopted the ContextMenu API they began providing a PreviewViewController that |
| showed the image rather than the link, for the case of <a><img></a>. |
| |
| This could be fixed in Safari, but I noticed that we actually tell the delegate that the |
| type of the activated element is an image, which is why they treat it as such. It's not |
| clear that because the image also has a link attached, a client should defer to the link. |
| |
| Instead, I think it makes more sense to identify this as a link, because that is the more |
| important information in this API. |
| |
| While here I also changed the logic to make sure we call the API if both the API and SPI |
| are available. |
| |
| New ContextMenus and WKRequestActivatedElementInfo API tests. |
| |
| * UIProcess/API/Cocoa/_WKActivatedElementInfo.mm: Identify as a link if you have a link. |
| (-[_WKActivatedElementInfo _initWithInteractionInformationAtPosition:userInfo:]): |
| * UIProcess/ios/WKContentViewInteraction.mm: Look for the API before the SPI. |
| (-[WKContentView continueContextMenuInteraction:]): |
| |
| 2019-11-08 Brady Eidson <beidson@apple.com> |
| |
| WKWebView Find-in-page API. |
| <rdar://problem/46971112> and https://bugs.webkit.org/show_bug.cgi?id=203872 |
| |
| Reviewed by Tim Horton. |
| |
| Covered by API tests. |
| |
| - Promote _findString: |
| - Add a completion handler for it. |
| |
| * SourcesCocoa.txt: |
| |
| * UIProcess/API/Cocoa/WKFindConfiguration.h: Added. |
| * UIProcess/API/Cocoa/WKFindConfiguration.mm: Added. |
| (-[WKFindConfiguration init]): |
| (-[WKFindConfiguration copyWithZone:]): |
| |
| * UIProcess/API/Cocoa/WKFindResult.h: Added. |
| * UIProcess/API/Cocoa/WKFindResult.mm: Added. |
| (-[WKFindResult init]): |
| (-[WKFindResult _initWithMatchFound:]): |
| (-[WKFindResult copyWithZone:]): |
| * UIProcess/API/Cocoa/WKFindResultInternal.h: Added. |
| |
| * UIProcess/API/Cocoa/WKWebView.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (toFindOptions): |
| (-[WKWebView findString:withConfiguration:completionHandler:]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: |
| |
| * UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.h: |
| * UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.mm: |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::findString): |
| (WebKit::WebPageProxy::findStringCallback): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| * WebProcess/WebPage/FindController.cpp: |
| (WebKit::FindController::findString): |
| * WebProcess/WebPage/FindController.h: |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::findString): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2019-11-08 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthn] Add quirk needed to support legacy Google NFC Titan security keys |
| https://bugs.webkit.org/show_bug.cgi?id=204024 |
| <rdar://problem/56962320> |
| |
| Reviewed by Brent Fulgham. |
| |
| Some legacy U2F keys such as Google T1 Titan don't understand the FIDO applet command. Instead, |
| they are configured to only have the FIDO applet. Therefore, when the above command fails, we |
| use U2F_VERSION command to double check if the connected tag can actually speak U2F, indicating |
| we are interacting with one of these legacy keys. |
| |
| * UIProcess/WebAuthentication/Cocoa/NfcConnection.mm: |
| (WebKit::fido::compareVersion): |
| (WebKit::fido::trySelectFidoApplet): |
| (WebKit::NfcConnection::transact const): |
| (WebKit::NfcConnection::didDetectTags): |
| |
| 2019-11-08 Jonathan Bedard <jbedard@apple.com> |
| |
| Unreviewed, rolling out r252260. |
| |
| Breaks half of API tests |
| |
| Reverted changeset: |
| |
| "Make DownloadID an ObjectIdentifier" |
| https://bugs.webkit.org/show_bug.cgi?id=203962 |
| https://trac.webkit.org/changeset/252260 |
| |
| 2019-11-08 Antti Koivisto <antti@apple.com> |
| |
| Use separate cache directory for development WebKit on Mac |
| https://bugs.webkit.org/show_bug.cgi?id=204015 |
| |
| Reviewed by Youenn Fablet. |
| |
| Replace the NetworkCache::lastStableVersion scheme with a completely separate directory. |
| This way potential bugs in development WebKit can't end up affecting system WebKit cache. |
| This also removes the need to keep lastStableVersion updated. |
| |
| * NetworkProcess/cache/NetworkCacheStorage.cpp: |
| (WebKit::NetworkCache::makeCachePath): |
| |
| Add '/Development' to cache path if this is not system WebKit. |
| |
| (WebKit::NetworkCache::Storage::open): |
| (WebKit::NetworkCache::Storage::deleteOldVersions): |
| |
| No need to avoid deleting lastStableVersion anymore. |
| |
| * NetworkProcess/cache/NetworkCacheStorage.h: |
| |
| 2019-11-08 Per Arne Vollan <pvollan@apple.com> |
| |
| [macOS] [iOS] Add logging and telemetry to mach lookup rules |
| https://bugs.webkit.org/show_bug.cgi?id=203999 |
| |
| Reviewed by Brent Fulgham. |
| |
| Add logging and telemetry to help determine if mach lookups to a set of services can be denied in the WebContent process. |
| |
| No new tests, since this only adds logging and telemetry. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2019-11-08 Alex Christensen <achristensen@webkit.org> |
| |
| Make DownloadID an ObjectIdentifier |
| https://bugs.webkit.org/show_bug.cgi?id=203962 |
| |
| Reviewed by Youenn Fablet. |
| |
| Also deprecate the unused WKDownloadGetID because this identifier is internal. |
| |
| * NetworkProcess/Downloads/Download.cpp: |
| (WebKit::Download::Download): |
| (WebKit::Download::didReceiveData): |
| (WebKit::Download::didFinish): |
| (WebKit::Download::didFail): |
| (WebKit::Download::didCancel): |
| (WebKit::Download::messageSenderDestinationID const): |
| * NetworkProcess/Downloads/DownloadID.h: |
| (WebKit::DownloadID::DownloadID): Deleted. |
| (WebKit::DownloadID::operator== const): Deleted. |
| (WebKit::DownloadID::operator!= const): Deleted. |
| (WebKit::DownloadID::downloadID const): Deleted. |
| (IPC::ArgumentCoder<WebKit::DownloadID>::encode): Deleted. |
| (IPC::ArgumentCoder<WebKit::DownloadID>::decode): Deleted. |
| (WTF::DownloadIDHash::hash): Deleted. |
| (WTF::DownloadIDHash::equal): Deleted. |
| (WTF::HashTraits<WebKit::DownloadID>::emptyValue): Deleted. |
| (WTF::HashTraits<WebKit::DownloadID>::constructDeletedValue): Deleted. |
| (WTF::HashTraits<WebKit::DownloadID>::isDeletedValue): Deleted. |
| * NetworkProcess/Downloads/DownloadMonitor.cpp: |
| (WebKit::DownloadMonitor::applicationWillEnterForeground): |
| (WebKit::DownloadMonitor::applicationDidEnterBackground): |
| (WebKit::DownloadMonitor::timerFired): |
| * NetworkProcess/Downloads/PendingDownload.cpp: |
| (WebKit::PendingDownload::messageSenderDestinationID const): |
| * NetworkProcess/Downloads/PendingDownload.h: |
| * NetworkProcess/NetworkDataTask.h: |
| (WebKit::NetworkDataTask::setPendingDownloadID): |
| (WebKit::NetworkDataTask::isDownload const): |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::pendingDownloadCanceled): |
| (WebKit::NetworkProcess::findPendingDownloadLocation): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::convertToDownload): |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (-[WKNetworkSessionDelegate URLSession:task:didCompleteWithError:]): |
| (-[WKNetworkSessionDelegate URLSession:downloadTask:didFinishDownloadingToURL:]): |
| (-[WKNetworkSessionDelegate URLSession:downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:]): |
| (WebKit::NetworkSessionCocoa::continueDidReceiveChallenge): |
| * Scripts/webkit/messages.py: |
| * Shared/Authentication/AuthenticationManager.h: |
| * UIProcess/API/C/WKDownload.cpp: |
| (WKDownloadGetID): |
| * UIProcess/API/C/WKDownload.h: |
| * UIProcess/Downloads/DownloadProxy.cpp: |
| (WebKit::DownloadProxy::DownloadProxy): |
| (WebKit::generateDownloadID): Deleted. |
| * UIProcess/Downloads/DownloadProxy.h: |
| * UIProcess/Downloads/DownloadProxyMap.cpp: |
| (WebKit::DownloadProxyMap::createDownloadProxy): |
| (WebKit::DownloadProxyMap::downloadFinished): |
| (WebKit::DownloadProxyMap::invalidate): |
| * WebProcess/WebPage/WebFrame.cpp: |
| (WebKit::WebFrame::startDownload): |
| (WebKit::WebFrame::convertMainResourceLoadToDownload): |
| * WebProcess/WebPage/WebFrame.h: |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2019-11-08 Alex Christensen <achristensen@webkit.org> |
| |
| Fix flaky tests in http/tests/cache/disk-cache |
| https://bugs.webkit.org/show_bug.cgi?id=203822 |
| |
| Reviewed by Youenn Fablet. |
| |
| Right now tests that set the cache model do so using a race condition. I think this will fix the flakyness we've observed. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::setCacheModelSynchronouslyForTesting): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreSetCacheModelSynchronouslyForTesting): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::setCacheModelSynchronouslyForTesting): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::setCacheModelSynchronouslyForTesting): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| |
| 2019-11-08 Alex Christensen <achristensen@webkit.org> |
| |
| Revert some changes accidentally committed with r252257 |
| https://bugs.webkit.org/show_bug.cgi?id=202178 |
| |
| * UIProcess/API/C/WKContextPrivate.h: |
| |
| 2019-11-08 Alex Christensen <achristensen@webkit.org> |
| |
| Move schemes for SchemeRegistry from WebProcessPool to LegacyGlobalSettings |
| https://bugs.webkit.org/show_bug.cgi?id=202178 |
| |
| Reviewed by Youenn Fablet. |
| |
| The current users of the SPI to set these only have one WebProcessPool, so they intend these settings to be global. |
| Moving them to LegacyGlobalSettings allows me to make a NetworkProcessProxy without a WebProcessPool and not regress existing functionality. |
| I move only the four sets of schemes needed to launch a NetworkProcess to remove the dependency the NetworkProcess has on the WebProcessPool. |
| |
| * UIProcess/LegacyGlobalSettings.h: |
| (WebKit::LegacyGlobalSettings::schemesToRegisterAsSecure): |
| (WebKit::LegacyGlobalSettings::registerURLSchemeAsSecure): |
| (WebKit::LegacyGlobalSettings::schemesToRegisterAsBypassingContentSecurityPolicy): |
| (WebKit::LegacyGlobalSettings::registerURLSchemeAsBypassingContentSecurityPolicy): |
| (WebKit::LegacyGlobalSettings::schemesToRegisterAsLocal): |
| (WebKit::LegacyGlobalSettings::registerURLSchemeAsLocal): |
| (WebKit::LegacyGlobalSettings::schemesToRegisterAsNoAccess): |
| (WebKit::LegacyGlobalSettings::registerURLSchemeAsNoAccess): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| (WebKit::WebProcessPool::initializeNewWebProcess): |
| (WebKit::WebProcessPool::registerURLSchemeAsSecure): |
| (WebKit::WebProcessPool::registerURLSchemeAsBypassingContentSecurityPolicy): |
| (WebKit::WebProcessPool::registerURLSchemeAsLocal): |
| (WebKit::WebProcessPool::registerURLSchemeAsNoAccess): |
| * UIProcess/WebProcessPool.h: |
| |
| 2019-11-08 Daniel Bates <dabates@apple.com> |
| |
| Add WebKit Legacy SPI to retrieve editable elements in rect |
| https://bugs.webkit.org/show_bug.cgi?id=204006 |
| <rdar://problem/57024093> |
| |
| Reviewed by Wenson Hsieh. |
| |
| Write WebPage::textInputContextsInRect() in terms of Page::editableElementsInRect(). |
| Also make use of Element::clientRect() instead of elementRectInRootViewCoordinates(), |
| which duplicates what the former does. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::textInputContextsInRect): Write in terms of Page::editableElementsInRect(). |
| (WebKit::WebPage::contextForElement const): Use Element::clientRect() which does what |
| elementRectInRootViewCoordinates() does. |
| (WebKit::elementRectInRootViewCoordinates): Deleted. |
| (WebKit::isEditableTextInputElement): Deleted. |
| |
| 2019-11-06 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthn] Return NotAllowedError immediately for UI cancellations |
| https://bugs.webkit.org/show_bug.cgi?id=203937 |
| <rdar://problem/56962420> |
| |
| Reviewed by Brent Fulgham. |
| |
| NotAllowedError representing UI cancellations should be returned to sites |
| immediately such that sites could show appropriate error page immediately. |
| |
| Covered by existing tests. |
| |
| * UIProcess/WebAuthentication/AuthenticatorManager.cpp: |
| (WebKit::AuthenticatorManager::cancelRequest): |
| (WebKit::AuthenticatorManager::clearState): |
| (WebKit::AuthenticatorManager::resetState): Deleted. |
| * UIProcess/WebAuthentication/AuthenticatorManager.h: |
| |
| 2019-11-08 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Add pointer lock permission request API |
| https://bugs.webkit.org/show_bug.cgi?id=203896 |
| |
| Reviewed by Adrian Perez de Castro. |
| |
| Add a WebKitPointerLockPermissionRequest class to handle pointer lock permissions. |
| |
| * PlatformGTK.cmake: |
| * SourcesGTK.txt: |
| * UIProcess/API/glib/WebKitPointerLockPermissionRequest.cpp: Added. |
| (webkitPointerLockPermissionRequestAllow): |
| (webkitPointerLockPermissionRequestDeny): |
| (webkit_permission_request_interface_init): |
| (webkitPointerLockPermissionRequestDispose): |
| (webkit_pointer_lock_permission_request_class_init): |
| (webkitPointerLockPermissionRequestCreate): |
| (webkitPointerLockPermissionRequestDidLosePointerLock): |
| * UIProcess/API/glib/WebKitPointerLockPermissionRequestPrivate.h: Added. |
| * UIProcess/API/glib/WebKitUIClient.cpp: |
| (UIClient::~UIClient): |
| * UIProcess/API/glib/WebKitWebView.cpp: |
| (webkitWebViewPermissionRequest): |
| (webkitWebViewDenyPointerLockRequest): |
| * UIProcess/API/glib/WebKitWebViewPrivate.h: |
| * UIProcess/API/gtk/WebKitPointerLockPermissionRequest.h: Added. |
| * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: |
| * UIProcess/API/gtk/docs/webkit2gtk-4.0.types: |
| * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: |
| * UIProcess/API/gtk/webkit2.h: |
| |
| 2019-11-07 Tim Horton <timothy_horton@apple.com> |
| |
| Remove an unused icon resource |
| https://bugs.webkit.org/show_bug.cgi?id=203983 |
| |
| Reviewed by Wenson Hsieh. |
| |
| * Resources/mac/mediaIcon.pdf: Removed. |
| * WebKit.xcodeproj/project.pbxproj: |
| This file has not been used in years. |
| |
| 2019-11-07 Per Arne Vollan <pvollan@apple.com> |
| |
| [iOS] Add logging and telemetry to more mach lookup rules |
| https://bugs.webkit.org/show_bug.cgi?id=203978 |
| |
| Reviewed by Brent Fulgham. |
| |
| Add logging and telemetry to help determine if mach lookup of these services can be denied in the WebContent process. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2019-11-07 Alex Christensen <achristensen@webkit.org> |
| |
| Re-enable NSURLSession isolation after r252116 |
| https://bugs.webkit.org/show_bug.cgi?id=203934 |
| <rdar://problem/56921584> |
| |
| Reviewed by Chris Dumez. |
| |
| r252116 was a rollout of r248640, which introduced cases where data tasks from different NSURLSessions |
| which can have the same task identifiers were put into the same maps. This key collision caused data from the wrong |
| tasks to be sent to NetworkResourceLoader, causing rare and strange loading bugs. In order to prevent insertion into |
| wrong maps again, I made a new abstraction, SessionWrapper, which wraps a NSURLSession, its delegate, and all maps |
| that are scoped to that NSURLSession. Along the way I found a few other places where we had made similar mistakes. |
| |
| Covered by an API test which would've failed before r252116 because it exercises the key collision condition, |
| and by tests which were skipped in r252116 and I now unskipped. |
| |
| * NetworkProcess/Downloads/cocoa/DownloadCocoa.mm: |
| (WebKit::Download::resume): |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.h: |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): |
| (WebKit::NetworkDataTaskCocoa::~NetworkDataTaskCocoa): |
| * NetworkProcess/cocoa/NetworkSessionCocoa.h: |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (-[WKNetworkSessionDelegate initWithSessionWrapper:withCredentials:]): |
| (-[WKNetworkSessionDelegate sessionInvalidated]): |
| (-[WKNetworkSessionDelegate existingTask:]): |
| (-[WKNetworkSessionDelegate sessionCocoa]): |
| (-[WKNetworkSessionDelegate URLSession:didBecomeInvalidWithError:]): |
| (-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]): |
| (-[WKNetworkSessionDelegate URLSession:task:_schemeUpgraded:completionHandler:]): |
| (-[WKNetworkSessionDelegate URLSession:dataTask:willCacheResponse:completionHandler:]): |
| (processServerTrustEvaluation): |
| (-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]): |
| (-[WKNetworkSessionDelegate URLSession:task:didCompleteWithError:]): |
| (-[WKNetworkSessionDelegate URLSession:downloadTask:didFinishDownloadingToURL:]): |
| (-[WKNetworkSessionDelegate URLSession:downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:]): |
| (-[WKNetworkSessionDelegate URLSession:downloadTask:didResumeAtOffset:expectedTotalBytes:]): |
| (-[WKNetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]): |
| (-[WKNetworkSessionDelegate existingWebSocketTask:]): |
| (WebKit::SessionWrapper::initialize): |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| (WebKit::NetworkSessionCocoa::initializeEphemeralStatelessSession): |
| (WebKit::NetworkSessionCocoa::sessionWrapperForTask): |
| (WebKit::NetworkSessionCocoa::isolatedSession): |
| (WebKit::NetworkSessionCocoa::invalidateAndCancel): |
| (WebKit::NetworkSessionCocoa::continueDidReceiveChallenge): |
| (WebKit::NetworkSessionCocoa::createWebSocketTask): |
| (WebKit::NetworkSessionCocoa::addWebSocketTask): |
| (WebKit::NetworkSessionCocoa::removeWebSocketTask): |
| (-[WKNetworkSessionDelegate initWithNetworkSession:withCredentials:]): Deleted. |
| (WebKit::NetworkSessionCocoa::initializeEphemeralStatelessCookielessSession): Deleted. |
| (WebKit::NetworkSessionCocoa::session): Deleted. |
| (WebKit::NetworkSessionCocoa::dataTaskForIdentifier): Deleted. |
| (WebKit::NetworkSessionCocoa::downloadTaskWithResumeData): Deleted. |
| (WebKit::NetworkSessionCocoa::addDownloadID): Deleted. |
| (WebKit::NetworkSessionCocoa::downloadID): Deleted. |
| (WebKit::NetworkSessionCocoa::takeDownloadID): Deleted. |
| (WebKit::NetworkSessionCocoa::webSocketDataTaskForIdentifier): Deleted. |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _logUserInteraction:completionHandler:]): |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| |
| 2019-11-07 Peng Liu <peng.liu6@apple.com> |
| |
| ASSERTION FAILED: m_clientCounts.contains(contextId) in WebKit::VideoFullscreenManagerProxy::removeClientForContext(uint64_t) |
| https://bugs.webkit.org/show_bug.cgi?id=203918 |
| |
| Reviewed by Jer Noble. |
| |
| Postpone the transition to exit fullscreen of a video element |
| before the previous transition of fullscreen mode change is completed. |
| |
| Fix a flakey layout test (media/video-autoplay.html). No new test is needed. |
| |
| * WebProcess/cocoa/VideoFullscreenManager.mm: |
| (WebKit::VideoFullscreenManager::exitVideoFullscreenForVideoElement): |
| |
| 2019-11-07 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| WebDriver: correctly handle errors when focusing element before sending key events |
| https://bugs.webkit.org/show_bug.cgi?id=203945 |
| |
| Reviewed by Carlos Alberto Lopez Perez. |
| |
| Handle ElementNotInteractable JavaScript exception to generate the appropriate Automation error. |
| |
| * WebProcess/Automation/WebAutomationSessionProxy.cpp: |
| (WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction): |
| |
| 2019-11-06 Eric Liang <ericliang@apple.com> |
| |
| AX: WKWebView does not shift Accessibility Focus for Catalyst (203798) |
| https://bugs.webkit.org/show_bug.cgi?id=203798 |
| |
| Reviewed by Chris Fleizach. |
| |
| Added the code to register/unregister remote UI Process identifier on the host app. |
| This is used so that the host app can appear as the sender for notifications sent from its web processes. Unfortunately this has to be done in WebKit: in accessibility bundles the swizzled code is not called because of bundle loading time. |
| Added AppKit softlink for Mac catalyst. |
| |
| * SourcesCocoa.txt: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| * UIProcess/ios/AppKitSoftLink.h: Added. |
| * UIProcess/ios/AppKitSoftLink.mm: Added. |
| * UIProcess/ios/ViewGestureControllerIOS.mm: |
| (-[WKSwipeTransitionController gestureRecognizerForInteractiveTransition:WithTarget:action:]): |
| * UIProcess/ios/WKContentView.mm: |
| (-[WKContentView _updateRemoteAccessibilityRegistration:]): |
| (-[WKContentView _accessibilityRegisterUIProcessTokens]): |
| (-[WKContentView _processDidExit]): |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm: |
| * WebProcess/WebPage/mac/WebPageMac.mm: |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| |
| 2019-11-06 Keith Rollin <krollin@apple.com> |
| |
| Update availability annotations to match the macOS 10.15 and iOS 13.0 GM SDKs |
| https://bugs.webkit.org/show_bug.cgi?id=202243 |
| <rdar://problem/55720747> |
| |
| Reviewed by Brent Fulgham. |
| |
| Changed WK_MAC_TBA and WK_IOS_TBA to 10.15 and 13.0, respectively, in |
| all declarations that appear in the GM SDKs. |
| |
| * Configurations/WebKit.xcconfig: |
| * Shared/API/Cocoa/WKMain.h: |
| * UIProcess/API/Cocoa/NSAttributedString.h: |
| * UIProcess/API/Cocoa/WKContextMenuElementInfo.h: |
| * UIProcess/API/Cocoa/WKError.h: |
| * UIProcess/API/Cocoa/WKErrorPrivate.h: |
| * UIProcess/API/Cocoa/WKNavigation.h: |
| * UIProcess/API/Cocoa/WKNavigationActionPrivate.h: |
| * UIProcess/API/Cocoa/WKNavigationDelegate.h: |
| * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: |
| * UIProcess/API/Cocoa/WKNavigationResponsePrivate.h: |
| * UIProcess/API/Cocoa/WKPreferences.h: |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: |
| * UIProcess/API/Cocoa/WKPreviewActionItem.h: |
| * UIProcess/API/Cocoa/WKPreviewActionItemIdentifiers.h: |
| * UIProcess/API/Cocoa/WKPreviewElementInfo.h: |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/API/Cocoa/WKSnapshotConfiguration.h: |
| * UIProcess/API/Cocoa/WKUIDelegate.h: |
| * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: |
| * UIProcess/API/Cocoa/WKURLSchemeTaskPrivate.h: |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.h: |
| * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/API/Cocoa/WKWebpagePreferences.h: |
| * UIProcess/API/Cocoa/WKWebsiteDataRecordPrivate.h: |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| * UIProcess/API/Cocoa/_WKActivatedElementInfo.h: |
| * UIProcess/API/Cocoa/_WKAutomationSessionDelegate.h: |
| * UIProcess/API/Cocoa/_WKContentRuleListAction.h: |
| * UIProcess/API/Cocoa/_WKCustomHeaderFields.h: |
| * UIProcess/API/Cocoa/_WKDiagnosticLoggingDelegate.h: |
| * UIProcess/API/Cocoa/_WKElementAction.h: |
| * UIProcess/API/Cocoa/_WKInspectorWindow.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKTextInputContext.h: |
| * UIProcess/API/Cocoa/_WKUserContentExtensionStorePrivate.h: |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h: |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreDelegate.h: |
| * UIProcess/API/Cocoa/_WKWebsitePolicies.h: |
| * UIProcess/_WKTouchEventGenerator.h: |
| * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerPrivate.h: |
| |
| 2019-11-06 Antti Koivisto <antti@apple.com> |
| |
| REGRESSION: [ iOS ] ( r251015 ) Layout Test fast/text/whitespace/pre-wrap-overflow-selection.html is flaky |
| https://bugs.webkit.org/show_bug.cgi?id=203366 |
| <rdar://problem/56580680> |
| |
| Reviewed by Simon Fraser. |
| |
| WKBundlePageForceRepaint may fail to do synchronous layer flush if there is a pending layer flush in-flight and waiting |
| for completion message from UI process. Layer flush also flushes pending editor state so that doesn't get done either. |
| This may cause randomness in test results. |
| |
| In this case the randomness is the switch between simple and complex line layout, triggered by editor state flush. The results |
| between line layout paths are observably identical but produce slightly different render tree dumps. |
| |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: |
| (WKBundlePageFlushPendingEditorStateUpdate): |
| * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h: |
| |
| Add a function for forcing editor state flush, called from the test runner dump() function. |
| |
| 2019-11-06 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, fix watchOS build after r252011. |
| |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::startBackgroundActivityForFullscreenInput): |
| |
| 2019-11-06 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| WEBCORE_TESTSUPPORT_EXPORT should be used only for WebCoreTestSupport, not for WebCore |
| https://bugs.webkit.org/show_bug.cgi?id=203876 |
| |
| Reviewed by Ross Kirsling. |
| |
| * config.h: Removed WEBCORE_TESTSUPPORT_EXPORT definition because it shouldn't be used in WebKit. |
| |
| 2019-11-06 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, rolling out r251907. |
| |
| Causes white flashing in some cases <rdar://problem/56957850> |
| |
| Reverted changeset: |
| |
| "Take down the gesture snapshot early when the back/forward |
| cache is not leveraged" |
| https://bugs.webkit.org/show_bug.cgi?id=203713 |
| https://trac.webkit.org/changeset/251907 |
| |
| 2019-11-06 Chris Dumez <cdumez@apple.com> |
| |
| Make sure we never end up with NetworkDataTaskCocoa TaskIdentifier conflicts |
| https://bugs.webkit.org/show_bug.cgi?id=203902 |
| |
| Reviewed by Antti Koivisto. |
| |
| Consolidate the all the code related to data task registration / lookup / unregistration |
| in NetworkSessionCocoa and add a utility method (dataTaskMap()) to decide which data |
| task map to use. This makes it less error-prone and unlikely that someone would update |
| part of the code and fail to update the rest accordingly. |
| |
| I also converted the debug assertions into release ones so that we crash in case of |
| id confusion instead of having a very bad and hard to diagnose bug like Bug 201822. |
| |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.h: |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): |
| (WebKit::NetworkDataTaskCocoa::~NetworkDataTaskCocoa): |
| * NetworkProcess/cocoa/NetworkSessionCocoa.h: |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::NetworkSessionCocoa::dataTaskForIdentifier): |
| (WebKit::NetworkSessionCocoa::registerDataTask): |
| (WebKit::NetworkSessionCocoa::unregisterDataTask): |
| |
| 2019-11-06 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Implement support for Pointer Lock API |
| https://bugs.webkit.org/show_bug.cgi?id=202956 |
| |
| Reviewed by Carlos Alberto Lopez Perez. |
| |
| Add platform specific implementation of Pointer Lock for the GTK port. |
| |
| * PlatformGTK.cmake: Generate code for pointer-constraints and relative-pointer Wayland protocols. |
| * Shared/NativeWebMouseEvent.h: Add optional mouse movement delta. |
| * Shared/gtk/NativeWebMouseEventGtk.cpp: |
| (WebKit::NativeWebMouseEvent::NativeWebMouseEvent): Pass movement delta to WebEventFactory::createWebMouseEvent(). |
| * Shared/gtk/WebEventFactory.cpp: |
| (WebKit::WebEventFactory::createWebMouseEvent): Initialize deltaX and deltaY for motion events using the received delta. |
| * Shared/gtk/WebEventFactory.h: Add optional mouse movement delta. |
| * SourcesGTK.txt: Add new files to compilation. |
| * UIProcess/API/glib/WebKitUIClient.cpp: Add implementation for requestPointerLock and didLosePointerLock. |
| * UIProcess/API/glib/WebKitWebView.cpp: |
| (webkitWebViewRequestPointerLock): Call webkitWebViewBaseRequestPointerLock(). |
| (webkitWebViewDidLosePointerLock): Call webkitWebViewBaseDidLosePointerLock(). |
| * UIProcess/API/glib/WebKitWebViewPrivate.h: |
| * UIProcess/API/gtk/WebKitWebViewBase.cpp: |
| (webkitWebViewBaseDispose): Unlock the pointer and release the PointerLockManager. |
| (webkitWebViewBaseHandleMouseEvent): Initialize the mouse movement delta for motion events and save the current event. |
| (webkitWebViewBaseMotionNotifyEvent): Let PointerLockManager handle motion events while pointer is locked. |
| (webkitWebViewBaseRequestPointerLock): Create a PointerLockManager and request it to lock the pointer. |
| (webkitWebViewBaseDidLosePointerLock): Request PointerLockManager to unlock the pointer. |
| * UIProcess/API/gtk/WebKitWebViewBasePrivate.h: |
| * UIProcess/gtk/PointerLockManager.cpp: Added. |
| (WebKit::PointerLockManager::create): |
| (WebKit::PointerLockManager::PointerLockManager): |
| (WebKit::PointerLockManager::~PointerLockManager): |
| (WebKit::PointerLockManager::lock): |
| (WebKit::PointerLockManager::unlock): |
| (WebKit::PointerLockManager::handleMotion): |
| * UIProcess/gtk/PointerLockManager.h: Added. |
| (WebKit::PointerLockManager::didReceiveMotionEvent): |
| * UIProcess/gtk/PointerLockManagerWayland.cpp: Added. |
| (WebKit::PointerLockManagerWayland::PointerLockManagerWayland): |
| (WebKit::PointerLockManagerWayland::~PointerLockManagerWayland): |
| (WebKit::PointerLockManagerWayland::lock): |
| (WebKit::PointerLockManagerWayland::unlock): |
| * UIProcess/gtk/PointerLockManagerWayland.h: Added. |
| * UIProcess/gtk/PointerLockManagerX11.cpp: Added. |
| (WebKit::PointerLockManagerX11::PointerLockManagerX11): |
| (WebKit::PointerLockManagerX11::didReceiveMotionEvent): |
| * UIProcess/gtk/PointerLockManagerX11.h: Added. |
| |
| 2019-11-05 Chris Dumez <cdumez@apple.com> |
| |
| [iOS] Scroll position does not get restored when doing a history navigation while the reader view is shown |
| https://bugs.webkit.org/show_bug.cgi?id=203871 |
| <rdar://problem/56564603> |
| |
| Reviewed by Tim Horton. |
| |
| Previously, attempts to restore the scroll position on the web view while it is being dynamically resized |
| would get ignored. Instead, we now delay restoring the scroll position until after the view is resized. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _restorePageScrollPosition:scrollOrigin:previousObscuredInset:scale:]): |
| (-[WKWebView _restorePageStateToUnobscuredCenter:scale:]): |
| |
| 2019-11-05 Kate Cheney <katherine_cheney@apple.com> |
| |
| Layout test website-data-removal-for-site-navigated-to-with-link-decoration.html is a flaky failure |
| https://bugs.webkit.org/show_bug.cgi?id=203706 |
| <rdar://problem/56801615> |
| |
| Reviewed by Chris Dumez. |
| |
| No new tests, this change is tested by the existing resourceLoadStatistics |
| tests. |
| |
| This test started flaking when a new memory store was being created |
| between tests to maintain consistency. The call to grandfatherExistingWebsiteData |
| from populateMemoryStoreFromDisk in the persistent storage was |
| async, causing a race condition that led to occasional failures. |
| Adding a completion handler and changing the callsite of |
| populateMemoryStoreFromDisk should fix this problem. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsPersistentStorage.cpp: |
| (WebKit::ResourceLoadStatisticsPersistentStorage::populateMemoryStoreFromDisk): |
| * NetworkProcess/Classifier/ResourceLoadStatisticsPersistentStorage.h: |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::populateMemoryStoreFromDisk): |
| |
| 2019-11-05 John Wilander <wilander@apple.com> |
| |
| Temporarily turn off NSURLSession isolation |
| https://bugs.webkit.org/show_bug.cgi?id=201822 |
| |
| Reviewed by Chris Dumez. |
| |
| Existing tests skipped. |
| |
| Re-enabling it is tracked in rdar://problem/56921584. |
| |
| * NetworkProcess/cache/NetworkCacheStorage.h: |
| Bumps the version to force a clean cache. |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): |
| Skips setting needsIsolatedSession. |
| |
| 2019-11-05 Per Arne Vollan <pvollan@apple.com> |
| |
| Eliminate mach lookup to cfprefsd on process startup |
| https://bugs.webkit.org/show_bug.cgi?id=202866 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Currently, the WebContent and Networking process is calling CFBundleGetValueForInfoDictionaryKey on startup |
| to get the entry point function name into the WebKit bundle. This causes a mach lookup to cfprefsd which |
| should be avoided. Instead, we can send the service name as part of the bootstrap message when the UI process |
| is starting the process, and have the new process read this value from the message on startup to determine |
| the name of the entry point. This is possibly also an improvement in launch time, since we avoid reading a |
| value from Info.plist. |
| |
| * NetworkProcess/EntryPoint/Cocoa/XPCService/NetworkService/Info-OSX.plist: |
| * NetworkProcess/EntryPoint/Cocoa/XPCService/NetworkService/Info-iOS.plist: |
| * PluginProcess/EntryPoint/Cocoa/XPCService/PluginService.64.Info.plist: |
| * Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm: |
| (WebKit::XPCServiceEventHandler): |
| * UIProcess/Launcher/mac/ProcessLauncherMac.mm: |
| (WebKit::ProcessLauncher::launchProcess): |
| * WebProcess/EntryPoint/Cocoa/XPCService/WebContentService/Info-OSX.plist: |
| * WebProcess/EntryPoint/Cocoa/XPCService/WebContentService/Info-iOS.plist: |
| |
| 2019-11-05 Per Arne Vollan <pvollan@apple.com> |
| |
| [iOS] Add logging and telemetry to mach services believed to be unused |
| https://bugs.webkit.org/show_bug.cgi?id=203831 |
| |
| Reviewed by Geoffrey Garen. |
| |
| The sandbox rules for mach services believed to be unused should have logging and telemetry added to confirm |
| whether the assumption is correct. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2019-11-05 Tuomas Karkkainen <tuomas.webkit@apple.com> |
| |
| move CrashReporterClientSPI.h and parts of WKCrashReporter to WTF so it can be used in JavaScriptCore |
| https://bugs.webkit.org/show_bug.cgi?id=203803 |
| |
| Reviewed by Saam Barati. |
| |
| No new tests added because functionality is not changing, code is only |
| moved from WebKit to WTF. |
| |
| * Platform/cocoa/WKCrashReporter.mm: |
| (WebKit::setCrashReportApplicationSpecificInformation): |
| (WebKit::setCrashLogMessage): Deleted. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-11-05 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Native text substitutions interfere with HTML <datalist> options resulting in crash |
| https://bugs.webkit.org/show_bug.cgi?id=203116 |
| <rdar://problem/49875932> |
| |
| Reviewed by Tim Horton. |
| |
| On macOS, an NSTableView inside a separate window is used to render suggestions when showing a datalist. The |
| crash happens when this table view is reloaded while clicking a datalist suggestion; that is, if -[NSTableView |
| reloadData] is invoked after the user sends a platform MouseDown event on the table view cell but before the |
| MouseUp is received, the selected row of the table view will be -1 when the action, `-selectedRow:`, is invoked. |
| |
| In this particular case, the table view reload is triggered as a result of hiding the autocorrection bubble on |
| macOS, thereby committing the alternative text suggestion and changing the value of the text field via an |
| editing command. |
| |
| To avoid crashing, we simply make `-selectedRow:` robust in the case where the index is invalid. |
| |
| Test: fast/forms/datalist/datalist-click-crash.html |
| |
| * UIProcess/mac/WebDataListSuggestionsDropdownMac.mm: |
| (-[WKDataListSuggestionsController selectedRow:]): |
| |
| 2019-11-05 Sihui Liu <sihui_liu@apple.com> |
| |
| REGRESSION (r250754): web page using IDBIndex doesn't load occasionally |
| https://bugs.webkit.org/show_bug.cgi?id=203431 |
| |
| Reviewed by Brady Eidson. |
| |
| * NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp: |
| (WebKit::WebIDBConnectionToClient::didFireVersionChangeEvent): |
| * NetworkProcess/IndexedDB/WebIDBConnectionToClient.h: |
| * NetworkProcess/IndexedDB/WebIDBConnectionToClient.messages.in: |
| * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp: |
| (WebKit::WebIDBConnectionToServer::didFireVersionChangeEvent): |
| * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h: |
| |
| 2019-11-05 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| Unreviewed build fix for !ENABLE(MEDIA_STREAM) builds |
| https://bugs.webkit.org/show_bug.cgi?id=203362 |
| <rdar://problem/56648232> |
| |
| * UIProcess/UserMediaPermissionRequestProxy.h: Enclosed isUserGesturePriviledged with #if ENABLE(MEDIA_STREAM). |
| |
| 2019-11-05 youenn fablet <youenn@apple.com> |
| |
| mp4 video element broken with service worker |
| https://bugs.webkit.org/show_bug.cgi?id=184447 |
| <rdar://problem/39313155> |
| |
| Reviewed by Chris Dumez. |
| |
| Make a response as range-requested as per https://fetch.spec.whatwg.org/#http-network-or-cache-fetch step 15. |
| |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::checkRedirection): |
| (WebKit::NetworkLoadChecker::validateResponse): |
| * NetworkProcess/NetworkLoadChecker.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::didReceiveResponse): |
| (WebKit::NetworkResourceLoader::didRetrieveCacheEntry): |
| |
| 2019-11-05 youenn fablet <youenn@apple.com> |
| |
| Enforce user gesture for getUserMedia in case a previous getUserMedia call was denied |
| https://bugs.webkit.org/show_bug.cgi?id=203362 |
| |
| Reviewed by Eric Carlson. |
| |
| In case the request has user gesture priviledge, do not look at denied request history. |
| |
| * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: |
| (WebKit::UserMediaPermissionRequestManagerProxy::getRequestAction): |
| * UIProcess/UserMediaPermissionRequestProxy.h: |
| (WebKit::UserMediaPermissionRequestProxy::isUserGesturePriviledged const): |
| |
| 2019-11-04 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthn] Guard against unexpected -[_WKWebAuthenticationPanel cancel] |
| https://bugs.webkit.org/show_bug.cgi?id=203830 |
| <rdar://problem/56797134> |
| |
| Reviewed by Brent Fulgham . |
| |
| -[_WKWebAuthenticationPanel cancel] was only expected to be called on behalf of an |
| explicit user cancel from the UI. However, clients may call it in different other |
| unexpected scenarios as well. We should guard against that. |
| |
| To do so, two counter ways are implemented: |
| 1) AuthenticatorManager::cancelRequest is changed to invoke the pending request if there |
| is no GlobalFrameID. This case can only be reached via calling -[_WKWebAuthenticationPanel cancel] |
| before AuthenticatorManager::cancelRequest. |
| 2) WebAuthenticationPanelClient::updatePanel and WebAuthenticationPanelClient::dismissPanel |
| will call delegate methods in the next run loop to prevent -[_WKWebAuthenticationPanel cancel] |
| being called in the delegates. |
| |
| Covered by new API tests. |
| |
| * UIProcess/WebAuthentication/AuthenticatorManager.cpp: |
| (WebKit::AuthenticatorManager::cancelRequest): |
| (WebKit::AuthenticatorManager::createService const): |
| (WebKit::AuthenticatorManager::invokePendingCompletionHandler): |
| * UIProcess/WebAuthentication/Cocoa/WebAuthenticationPanelClient.mm: |
| (WebKit::WebAuthenticationPanelClient::updatePanel const): |
| (WebKit::WebAuthenticationPanelClient::dismissPanel const): |
| |
| 2019-11-04 Ross Kirsling <ross.kirsling@sony.com> |
| |
| Unreviewed fix for non-unified build. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| * Shared/ServiceWorkerInitializationData.cpp: |
| * UIProcess/API/APIAttachment.cpp: |
| * WebProcess/Storage/WebServiceWorkerProvider.h: |
| Add missing includes. |
| |
| 2019-11-04 Per Arne Vollan <pvollan@apple.com> |
| |
| Fix crash caused by syscall sandbox violation |
| https://bugs.webkit.org/show_bug.cgi?id=203826 |
| <rdar://problem/56332491> |
| |
| Reviewed by Brent Fulgham. |
| |
| A new syscall needs to be allowed in the WebContent process' sandbox. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2019-11-04 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Flush the shared ResourceLoadObserver when the webpage is closed by JavaScript |
| https://bugs.webkit.org/show_bug.cgi?id=203623 |
| <rdar://problem/56756427> |
| |
| Reviewed by Alex Christensen. |
| |
| This patch adds flushing of pending statistics when a window is closed by JavaScript, |
| when a webpage is removed from the web process, and when the web process prepares to |
| suspend. |
| |
| New API test added. |
| |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::resourceLoadStatisticsUpdated): |
| Now calls logTestingEvent() so that the test infrastructure can wait for updates. |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _seedResourceLoadStatisticsForTestingWithFirstParty:thirdParty:shouldScheduleNotification:completionHandler:]): |
| Test infrastructure to seed every web process' WebCore::ResourceLoadObserver with test data. |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _clearResourceLoadStatistics:]): |
| (-[WKWebsiteDataStore _isRegisteredAsSubresourceUnderFirstParty:thirdParty:completionHandler:]): |
| Test infrastructure. |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::seedResourceLoadStatisticsForTesting): |
| Test infrastructure. |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::isRegisteredAsSubresourceUnder): |
| Made sure the completion handler is called even if there is no network process. |
| (WebKit::WebsiteDataStore::setResourceLoadStatisticsEnabled): |
| Now tells all web processes to turn ITP on or off. |
| * WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp: |
| (WebKit::WebResourceLoadObserver::~WebResourceLoadObserver): |
| (WebKit::WebResourceLoadObserver::logSubresourceLoadingForTesting): |
| Test infrastructure to seed the observer with test data. |
| * WebProcess/WebCoreSupport/WebResourceLoadObserver.h: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::setWebsiteDataStoreParameters): |
| Now checks whether a shared observer already exists before setting one. |
| (WebKit::WebProcess::removeWebPage): |
| (WebKit::WebProcess::prepareToSuspend): |
| These two functions now call WebProcess::flushResourceLoadStatistics(). |
| (WebKit::WebProcess::setResourceLoadStatisticsEnabled): |
| This function now sets the process' shared WebCore::ResourceLoadObserver if none exists. |
| (WebKit::WebProcess::flushResourceLoadStatistics): |
| This function tells the shared WebCore::ResourceLoadObserver to send any pending |
| statistics to the central ITP store. |
| (WebKit::WebProcess::seedResourceLoadStatisticsForTesting): |
| Test infrastructure to seed the shared observer with test data. |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| |
| 2019-11-04 Chris Dumez <cdumez@apple.com> |
| |
| [iOS][WK2] Simplify process assertion handling for the network process and service worker processes |
| https://bugs.webkit.org/show_bug.cgi?id=203633 |
| |
| Reviewed by Alex Christensen. |
| |
| Simplify process assertion handling for the network process and service worker processes. |
| In particular, the following changes were made: |
| 1. Put the NetworkProcessProxy in charge of keeping the network process runnable instead |
| of relying on the WebProcessPool to do it. |
| 2. Put the WebProcessProxy in charge of keeping the web process runnable due to service |
| worker activity, instead of relying on the WebProcessPool to do it. |
| 3. Introduce a new Variant data type which can store a foreground activity, a background |
| activity or no activity. This avoid having 2 separate and mutually-exclusive data |
| members for foreground and background activities. |
| 4. The new code is a bit more correct because it makes sure the the activity we're holding |
| is valid, instead of simply checking that it has an activity. This means that if the |
| process assertion was previously invalidated, we will now properly take a new activity, |
| which will re-take a process assertion. |
| |
| This patch also reduces the #ifdefing for IOS_FAMILY, since ProcessThrottler and |
| ProcessAssertion exist on all platforms. |
| |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::updateProcessAssertion): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/ProcessThrottler.cpp: |
| (WebKit::ProcessThrottler::isValidBackgroundActivity): |
| (WebKit::ProcessThrottler::isValidForegroundActivity): |
| * UIProcess/ProcessThrottler.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::m_backgroundWebProcessCounter): |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| (WebKit::WebProcessPool::networkProcessCrashed): |
| (WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess): |
| (WebKit::WebProcessPool::disconnectProcess): |
| (WebKit::WebProcessPool::terminateNetworkProcess): |
| (WebKit::WebProcessPool::updateProcessAssertions): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::didSetAssertionState): |
| (WebKit::WebProcessProxy::updateServiceWorkerProcessAssertion): |
| (WebKit::WebProcessProxy::enableServiceWorkers): |
| * UIProcess/WebProcessProxy.h: |
| (WebKit::WebProcessProxy::isStandaloneServiceWorkerProcess const): |
| |
| 2019-11-03 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthn] CtapAuthenticator::tryDowngrade should distinguish requestData().options |
| https://bugs.webkit.org/show_bug.cgi?id=203771 |
| <rdar://problem/56832618> |
| |
| Reviewed by Brent Fulgham. |
| |
| CtapAuthenticator::tryDowngrade assumes the request is a getAssertion request. This is true |
| for most cases but not for Google's registration. For Google's registration, a quirk is |
| implemented to use U2F commands for registration if GoogleLegacyAppIdSupportExtension asks |
| us to do so. |
| |
| No tests given there is no way to simulate google.com in our test infrastructures. |
| |
| * UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp: |
| (WebKit::CtapAuthenticator::tryDowngrade): |
| |
| 2019-11-03 Tim Horton <timothy_horton@apple.com> |
| |
| WKWebView can get stuck blank (Web Content process thinks the app is backgrounded) |
| https://bugs.webkit.org/show_bug.cgi?id=203774 |
| <rdar://problem/53399054> |
| |
| Reviewed by Chris Dumez. |
| |
| With careful timing, if a WKWebView swaps out its content view in the |
| background, the incoming view can fail to inform the Web Content process |
| when the app comes to the foreground, leaving the layer tree frozen. |
| |
| This occurs because the last-sent state is stored per-WKApplicationStateTrackingView, |
| and the content view is the WKApplicationStateTrackingView, so it is possible |
| for e.g. a WKPDFView to be in the hierarchy, keeping the correct state, |
| with an initialized-but-never-parented WKContentView hanging off the WKWebView. |
| |
| If it is never parented, WKContentView will think that the current application |
| state is foreground (_lastObservedStateWasBackground is initialized to NO). |
| |
| If you go into the background with a WKPDFView as the current content view, |
| it will inform the Web Content process that the application has backgrounded. |
| |
| If, still in the background, WKWebView swaps from the WKPDFView to |
| the WKContentView, and then comes into the foreground, when we get the |
| notification that the app came to the foreground, we will not forward it |
| to the Web Content process, because WKContentView's _lastObservedStateWasBackground |
| remains NO. |
| |
| To fix this, move _lastObservedStateWasBackground to WebPageProxy, so that |
| it always tracks the most recently sent state, regardless of which content view |
| is active. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::resetState): |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::lastObservedStateWasBackground const): |
| * UIProcess/ios/WKApplicationStateTrackingView.mm: |
| (-[WKApplicationStateTrackingView willMoveToWindow:]): |
| (-[WKApplicationStateTrackingView didMoveToWindow]): |
| (-[WKApplicationStateTrackingView _applicationDidEnterBackground]): |
| (-[WKApplicationStateTrackingView _applicationWillEnterForeground]): |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::applicationDidEnterBackground): |
| (WebKit::WebPageProxy::applicationWillEnterForeground): |
| |
| 2019-11-02 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Add diagnostic logging for frontend feature usage |
| https://bugs.webkit.org/show_bug.cgi?id=203579 |
| <rdar://problem/56717410> |
| |
| Reviewed by Brian Burg. |
| |
| This patch enables diagnostic logging for the Web Inspector web process |
| and adds the necessary `InspectorFrontendClient` plumbing to `WebInspectorUI`. |
| |
| Original patch by Matt Baker <mattbaker@apple.com>. |
| |
| * WebProcess/WebPage/WebInspectorUI.h: |
| * WebProcess/WebPage/WebInspectorUI.cpp: |
| (WebKit::WebInspectorUI::supportsDiagnosticLogging): Added. |
| (WebKit::WebInspectorUI::logDagnosticEvent): Added. |
| * WebProcess/WebPage/RemoteWebInspectorUI.h: |
| * WebProcess/WebPage/RemoteWebInspectorUI.cpp: |
| (WebKit::RemoteWebInspectorUI::supportsDiagnosticLogging): Added. |
| (WebKit::RemoteWebInspectorUI::logDiagnosticEvent): Added. |
| |
| * UIProcess/mac/WKInspectorViewController.mm: |
| (-[WKInspectorViewController configuration]): |
| Default to enabling diagnostic logging for the Web Inspector frontend window. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| Add `ENABLE_INSPECTOR_TELEMETRY`, which is only enabled for macOS. |
| |
| 2019-11-01 Brady Eidson <beidson@apple.com> |
| |
| Promote "_getWebArchive" to API. |
| <rdar://problem/17317547> and https://bugs.webkit.org/show_bug.cgi?id=203767 |
| |
| Reviewed by Andy Estes. |
| |
| * UIProcess/API/Cocoa/WKWebView.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView createWebArchiveDataWithCompletionHandler:]): |
| (-[WKWebView _getWebArchiveDataWithCompletionHandler:]): |
| |
| 2019-11-01 Brady Eidson <beidson@apple.com> |
| |
| Rejigger WKWebArchive headers. |
| https://bugs.webkit.org/show_bug.cgi?id=203648 |
| |
| Reviewed by Andy Estes. |
| |
| * Shared/API/c/mac/WKWebArchiveRef.cpp: Renamed from Source/WebKit/Shared/API/c/mac/WKWebArchive.cpp. |
| (WKWebArchiveGetTypeID): |
| (WKWebArchiveCreate): |
| (WKWebArchiveCreateWithData): |
| (WKWebArchiveCreateFromRange): |
| (WKWebArchiveCopyMainResource): |
| (WKWebArchiveCopySubresources): |
| (WKWebArchiveCopySubframeArchives): |
| (WKWebArchiveCopyData): |
| * Shared/API/c/mac/WKWebArchiveRef.h: Copied from Source/WebKit/Shared/API/c/mac/WKWebArchive.h. |
| * SourcesCocoa.txt: |
| * UIProcess/API/Cocoa/WKWebArchive.h: Renamed from Source/WebKit/Shared/API/c/mac/WKWebArchive.h. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-11-01 Eric Carlson <eric.carlson@apple.com> |
| |
| Add experimental TextTrackCue API |
| https://bugs.webkit.org/show_bug.cgi?id=203649 |
| <rdar://problem/55675172> |
| |
| Reviewed by Jer Noble. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2019-11-01 Brian Burg <bburg@apple.com> |
| |
| REGRESSION(r248696): Element Click on Mac is adding an extra page topContentInsets to y-coordinate |
| https://bugs.webkit.org/show_bug.cgi?id=203765 |
| <rdar://problem/56014369> |
| |
| Reviewed by Devin Rousso. |
| |
| * UIProcess/Automation/mac/WebAutomationSessionMac.mm: |
| (WebKit::WebAutomationSession::platformSimulateMouseInteraction): |
| The topContentInsets is accounted for by rootViewToWindow(), so don't add it in manually. |
| |
| 2019-11-01 Per Arne Vollan <pvollan@apple.com> |
| |
| Investigate if mach lookup access to *.apple-extension-service, *.viewservice, and com.apple.uikit.viewservice.* can be denied |
| https://bugs.webkit.org/show_bug.cgi?id=203626 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| Modify the allow rule for these services to include the telemetry option. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2019-11-01 Peng Liu <peng.liu6@apple.com> |
| |
| Turn on the Picture-in-Picture API feature by default |
| https://bugs.webkit.org/show_bug.cgi?id=203725 |
| |
| Reviewed by Jer Noble. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2019-10-31 Chris Dumez <cdumez@apple.com> |
| |
| Take down the gesture snapshot early when the back/forward cache is not leveraged |
| https://bugs.webkit.org/show_bug.cgi?id=203713 |
| <rdar://problem/56803910> |
| |
| Reviewed by Tim Horton. |
| |
| Take down the gesture snapshot as soon as the gesture is done when the back/forward cache |
| is not leveraged. Otherwise, the snapshot may stay up for a long time (while we load, parse |
| and restore scroll position) and it would look to the user as if the view was unresponsive. |
| Showing the page slowly loading in such cases is less confusing as the user knows what's |
| going on and is even able to interact with the partially loaded page. |
| |
| * Shared/WebBackForwardListItem.cpp: |
| (WebKit::WebBackForwardListItem::hasCachedWebPage const): |
| * Shared/WebBackForwardListItem.h: |
| * UIProcess/ViewGestureController.cpp: |
| (WebKit::ViewGestureController::endSwipeGesture): |
| * UIProcess/ViewGestureController.h: |
| * UIProcess/ios/ViewGestureControllerIOS.mm: |
| (WebKit::ViewGestureController::makeSnapshotBlank): |
| (WebKit::ViewGestureController::endSwipeGesture): |
| * UIProcess/mac/ViewGestureControllerMac.mm: |
| (WebKit::ViewGestureController::makeSnapshotBlank): |
| |
| 2019-10-31 Per Arne Vollan <pvollan@apple.com> |
| |
| [iOS] Fix mach lookup sandbox violations in the Mail app |
| https://bugs.webkit.org/show_bug.cgi?id=203697 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| Allow mach lookup to the services "com.apple.logd.events" and "com.apple.distributed_notifications@1v3", |
| which are seen when running the Mail application. Also allow "com.apple.aggregated", which was previously |
| allowed, and is showing up in reports. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2019-10-31 Tim Horton <timothy_horton@apple.com> |
| |
| Turn on IOSurface support in the iOS Simulator |
| https://bugs.webkit.org/show_bug.cgi?id=203026 |
| <rdar://problem/56320993> |
| |
| Reviewed by Simon Fraser. |
| |
| * Configurations/WebKit.xcconfig: |
| Always link IOSurface now that we always have it. |
| |
| * Shared/WebPreferences.yaml: |
| * Shared/WebPreferencesDefaultValues.h: |
| Turn on Accelerated Drawing and Accelerated Drawing for Canvas by default. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _takeViewSnapshot]): |
| Don't use RGB10 if we don't have it. |
| |
| (-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]): |
| Don't use render server snapshotting in hidden windows, because it |
| (correctly, but unhelpfully) cannot capture contents in that case. |
| |
| 2019-10-31 Dean Jackson <dino@apple.com> |
| |
| REGRESSION (r251215): Mail failed to build |
| https://bugs.webkit.org/show_bug.cgi?id=203700 |
| <rdar://problem/56787012> |
| |
| Reviewed by Antoine Quint. |
| |
| Revert the private modulemap. It didn't include enough things |
| and caused some internal builds to fail. |
| |
| We'll put it back with everything included sometime soon. |
| |
| * Configurations/WebKit.xcconfig: |
| * Modules/OSX.modulemap: Renamed from Source/WebKit/Modules/macOS.modulemap. |
| * Modules/iOS.private.modulemap: Removed. |
| * Modules/macOS.private.modulemap: Removed. |
| * Shared/API/Cocoa/WebKitPrivate.h: |
| |
| 2019-10-31 Alex Christensen <achristensen@apple.com> |
| |
| Enable more features in Mac CMake build |
| https://bugs.webkit.org/show_bug.cgi?id=203699 |
| |
| Rubber-stamped by Tim Horton. |
| |
| * PlatformMac.cmake: |
| * WebProcess/cocoa/UserMediaCaptureManager.cpp: |
| (WebKit::UserMediaCaptureManager::createCaptureSource): |
| |
| 2019-10-31 Russell Epstein <repstein@apple.com> |
| |
| Unreviewed, rolling out r251861. |
| |
| Caused 50+ Layout Test Crashes |
| |
| Reverted changeset: |
| |
| "Use SecurityOriginData in NetworkProcess where possible |
| without other changes" |
| https://bugs.webkit.org/show_bug.cgi?id=203615 |
| https://trac.webkit.org/changeset/251861 |
| |
| 2019-10-31 Truitt Savell <tsavell@apple.com> |
| |
| Unreviewed, rolling out r251854. |
| |
| Broke iOS build |
| |
| Reverted changeset: |
| |
| "Rejigger WKWebArchive headers." |
| https://bugs.webkit.org/show_bug.cgi?id=203648 |
| https://trac.webkit.org/changeset/251854 |
| |
| 2019-10-31 Alex Christensen <achristensen@webkit.org> |
| |
| Remove unneeded HAVE_TIMINGDATAOPTIONS |
| https://bugs.webkit.org/show_bug.cgi?id=202990 |
| |
| Reviewed by Brady Eidson. |
| |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| |
| 2019-10-31 Alex Christensen <achristensen@webkit.org> |
| |
| Use SecurityOriginData in NetworkProcess where possible without other changes |
| https://bugs.webkit.org/show_bug.cgi?id=203615 |
| |
| Reviewed by Brady Eidson. |
| |
| * NetworkProcess/NetworkResourceLoadParameters.cpp: |
| (WebKit::NetworkResourceLoadParameters::encode const): |
| * NetworkProcess/NetworkResourceLoadParameters.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::shouldInterruptLoadForXFrameOptions): |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess): |
| |
| 2019-10-31 Alex Christensen <achristensen@webkit.org> |
| |
| Expose more WKPreferences SPI |
| https://bugs.webkit.org/show_bug.cgi?id=203631 |
| <rdar://problem/56717160> |
| |
| Reviewed by Brady Eidson. |
| |
| I added a unit test for the one that can be easily tested. |
| |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences _setWebAudioEnabled:]): |
| (-[WKPreferences _webAudioEnabled]): |
| (-[WKPreferences _setAcceleratedCompositingEnabled:]): |
| (-[WKPreferences _acceleratedCompositingEnabled]): |
| (-[WKPreferences _setRequestAnimationFrameEnabled:]): |
| (-[WKPreferences _requestAnimationFrameEnabled]): |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: |
| |
| 2019-10-31 Alex Christensen <achristensen@webkit.org> |
| |
| CMake build should make WebKit framework able to be used by Safari |
| https://bugs.webkit.org/show_bug.cgi?id=203685 |
| |
| Rubber-stamped by Tim Horton. |
| |
| * PlatformMac.cmake: |
| |
| 2019-10-31 Brady Eidson <beidson@apple.com> |
| |
| Rejigger WKWebArchive headers. |
| https://bugs.webkit.org/show_bug.cgi?id=203648 |
| |
| Reviewed by Andy Estes. |
| |
| * Shared/API/c/mac/WKWebArchiveRef.cpp: Renamed from Source/WebKit/Shared/API/c/mac/WKWebArchive.cpp. |
| (WKWebArchiveGetTypeID): |
| (WKWebArchiveCreate): |
| (WKWebArchiveCreateWithData): |
| (WKWebArchiveCreateFromRange): |
| (WKWebArchiveCopyMainResource): |
| (WKWebArchiveCopySubresources): |
| (WKWebArchiveCopySubframeArchives): |
| (WKWebArchiveCopyData): |
| * Shared/API/c/mac/WKWebArchiveRef.h: Copied from Source/WebKit/Shared/API/c/mac/WKWebArchive.h. |
| * SourcesCocoa.txt: |
| * UIProcess/API/Cocoa/WKWebArchive.h: Renamed from Source/WebKit/Shared/API/c/mac/WKWebArchive.h. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-10-31 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Add telemetry to test a potential cause of crashes under -[WKContentView _interpretKeyEvent:isCharEvent:] |
| https://bugs.webkit.org/show_bug.cgi?id=203630 |
| <rdar://problem/56769229> |
| |
| Reviewed by Simon Fraser. |
| |
| This iOS-specific crash occurs under `-_interpretKeyEvent:isCharEvent:`, when we first try to access WebEvent's |
| properties with `event.keyboardFlags`. This suggests that between storing the WebEvent in WebPageProxy's |
| m_keyEventQueue, and later receiving an InterpretKeyEvent sync IPC message in the UI process, something ends up |
| overreleasing (or otherwise writing over or corrupting) the WebEvent. |
| |
| However, from code inspection, nothing appears to overrelease the WebEvent; an alternate possibility is that the |
| API is somehow being invoked from a background thread, which would explain why the WebEvent may sometimes get |
| destroyed too early. |
| |
| To try and detect this scenario (and avoid keeping any strong references to WebEvent at all), add an |
| `os_log_fault` in case the API is being called on a background thread, and bail immediately. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView handleKeyWebEvent:withCompletionHandler:]): |
| |
| 2019-10-31 Miguel Gomez <magomez@igalia.com> |
| |
| [CoordGraphics] Avoid painting backing stores for zero-opacity layers |
| https://bugs.webkit.org/show_bug.cgi?id=184143 |
| |
| Reviewed by Žan Doberšek. |
| |
| Do not check whether a backingStore is required by a layer inside CoordinatedGraphicsScene. This |
| decision is made by the appropriate CoordinatedGraphicsLayer and propagated to the scene by |
| sending a valid or null Nicosia::BackingStore instance through the state. |
| |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: |
| (WebKit::updateBackingStore): |
| (WebKit::layerShouldHaveBackingStore): Deleted. |
| |
| 2019-10-30 Peng Liu <peng.liu6@apple.com> |
| |
| [Picture-in-Picture Web API] Enable the support for iOS |
| https://bugs.webkit.org/show_bug.cgi?id=202618 |
| |
| Reviewed by Jer Noble. |
| |
| Enable the Picture-in-Picture API support for iOS (iPad only). |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * WebProcess/cocoa/VideoFullscreenManager.mm: |
| |
| 2019-10-30 Alex Christensen <achristensen@webkit.org> |
| |
| Prevent Mac CMake build from bit rotting |
| https://bugs.webkit.org/show_bug.cgi?id=203647 |
| |
| Rubber-stamped by Tim Horton. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::m_messagePortChannelRegistry): |
| * PlatformMac.cmake: |
| * UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm: |
| (-[_WKWebAuthenticationPanel delegate]): |
| (-[_WKWebAuthenticationPanel setDelegate:]): |
| * UIProcess/WebProcessProxy.cpp: |
| |
| 2019-10-30 Per Arne Vollan <pvollan@apple.com> |
| |
| It should be possible to create a mach sandbox extension for the WebContent process before the audit token is known |
| https://bugs.webkit.org/show_bug.cgi?id=203618 |
| |
| Reviewed by Brent Fulgham. |
| |
| Currently, we are only able to create a mach sandbox extension for the WebContent process if we know its |
| audit token. It should be possible to create a mach extension without the audit token, since this is |
| needed when we want to create extensions before the PID or audit token is known. These extensions are |
| typically sent in the WebProcess creation parameters. |
| |
| No new tests, this is not a behavior change, but a patch in preparation for future patches. |
| |
| * Shared/Cocoa/SandboxExtensionCocoa.mm: |
| (WebKit::SandboxExtensionImpl::sandboxExtensionForType): |
| (WebKit::SandboxExtension::createHandleForMachLookup): |
| (WebKit::SandboxExtension::createHandleForMachLookupByAuditToken): Deleted. |
| * Shared/SandboxExtension.h: |
| * UIProcess/ios/WebProcessProxyIOS.mm: |
| (WebKit::WebProcessProxy::unblockAccessibilityServerIfNeeded): |
| |
| 2019-10-30 Per Arne Vollan <pvollan@apple.com> |
| |
| Fix some sysctl read violations in the WebContent process |
| https://bugs.webkit.org/show_bug.cgi?id=203632 |
| |
| Reviewed by Brent Fulgham. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2019-10-30 Dean Jackson <dino@apple.com> |
| |
| REGRESSION(r251568) If we didn't start a Service Worker, don't try talking to it |
| https://bugs.webkit.org/show_bug.cgi?id=203639 |
| <rdar://problem/56762071> |
| |
| Reviewed by Chris Dumez. |
| |
| Similar to the fix that introduced this regression, if the UI process does |
| not have the entitlement to start a service worker, we should not try |
| to load with one. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::scheduleResourceLoad): If the |
| parent process doesn't have a service worker, use the regular load path. |
| |
| 2019-10-30 Simon Fraser <simon.fraser@apple.com> |
| |
| Turn Resize Observer on by default |
| https://bugs.webkit.org/show_bug.cgi?id=203644 |
| rdar://problem/56026799 |
| |
| Reviewed by Tim Horton. |
| |
| Change the defaultValue of Resize Observer to true. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2019-10-30 Per Arne Vollan <pvollan@apple.com> |
| |
| Lookup to mach services with the WebKit extension should list the allowed services |
| https://bugs.webkit.org/show_bug.cgi?id=203619 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| To tighten the mach lookup rule which allows lookup to services with the "com.apple.webkit.extension.mach" |
| extension, all allowed services should be listed. Currently, we are only creating mach lookup extensions to |
| "com.apple.iphone.axserver-systemwide", but more will come in the future. |
| |
| No new tests. Testing this requires UI interaction on the device to enable Accessibility. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2019-10-30 Alex Christensen <achristensen@webkit.org> |
| |
| WKContentRuleLists should block requests from service workers |
| https://bugs.webkit.org/show_bug.cgi?id=201980 |
| <rdar://problem/55516735> |
| |
| Reviewed by Chris Dumez. |
| |
| Test: http/tests/contentextensions/service-worker.https.html |
| |
| Also covered by an API test. |
| |
| * Shared/ServiceWorkerInitializationData.cpp: Added. |
| (WebKit::ServiceWorkerInitializationData::encode const): |
| (WebKit::ServiceWorkerInitializationData::decode): |
| * Shared/ServiceWorkerInitializationData.h: Added. |
| * Sources.txt: |
| * UIProcess/UserContent/WebUserContentControllerProxy.cpp: |
| (WebKit::WebUserContentControllerProxy::addProcess): |
| (WebKit::WebUserContentControllerProxy::contentRuleListData): |
| * UIProcess/UserContent/WebUserContentControllerProxy.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess): |
| (WebKit::WebProcessPool::createWebPage): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::createForServiceWorkers): |
| (WebKit::WebProcessProxy::establishServiceWorkerContext): |
| (WebKit::contentRuleListsFromIdentifier): |
| (WebKit::WebProcessProxy::enableServiceWorkers): |
| * UIProcess/WebProcessProxy.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::WebSWContextManagerConnection): |
| (WebKit::m_userAgent): |
| (WebKit::WebSWContextManagerConnection::installServiceWorker): |
| * WebProcess/Storage/WebSWContextManagerConnection.h: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::establishWorkerContextConnectionToNetworkProcess): |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| |
| 2019-10-30 Andres Gonzalez <andresg_22@apple.com> |
| |
| Create base class common to AccessibilityObject and AXIsolatedTreeNode. |
| https://bugs.webkit.org/show_bug.cgi?id=203408 |
| |
| Reviewed by Chris Fleizach. |
| |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: |
| (WKAccessibilityRootObject): |
| (WKAccessibilityFocusedObject): |
| |
| 2019-10-30 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, fix reversed assertion landed in r251778. |
| |
| * UIProcess/ProcessThrottler.h: |
| (WebKit::ProcessThrottler::Activity::invalidate): |
| |
| 2019-10-30 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, fix WatchOS build after r251778. |
| |
| * UIProcess/WebProcessProxy.h: |
| |
| 2019-10-30 Chris Dumez <cdumez@apple.com> |
| |
| WKFrameIsDisplayingMarkupDocument() should return true after a window.open/document.write |
| https://bugs.webkit.org/show_bug.cgi?id=203587 |
| <rdar://problem/56717726> |
| |
| Reviewed by Alex Christensen. |
| |
| When doing a document.open(), we were propagating the document's URL to the UIProcess but not its |
| MIME type. WKFrameIsDisplayingMarkupDocument() was relying on this MIME type. |
| |
| * UIProcess/WebFrameProxy.cpp: |
| (WebKit::WebFrameProxy::didExplicitOpen): |
| * UIProcess/WebFrameProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didExplicitOpenForFrame): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDidExplicitOpen): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: |
| |
| 2019-10-30 Chris Dumez <cdumez@apple.com> |
| |
| REGRESSION (r238252): HTTP POST is losing application/x-www-form-urlencoded body if there's a redirect to different host |
| https://bugs.webkit.org/show_bug.cgi?id=201950 |
| <rdar://problem/55577782> |
| |
| Reviewed by Alex Christensen. |
| |
| The resource request body was getting lost on cross-site redirects. This was caused by the fact that a cross-site |
| redirect would cause a process-swap and the request to start again from a new process. This would work fine if |
| the request does not have a body. However, we have an optimization in place which avoids encoding the request body |
| whenever it is sent over IPC. Because the WebResourceLoader::WillSendRequest IPC would not encode the request body, |
| any decision to process swap as a result of this IPC (i.e. redirect) would cause the new request in the new process |
| to be missing its body. To address the issue, we now make sure to pass the request body in the WillSendRequest IPC |
| and reconsile the request with its body on the recipient side. |
| |
| Test: http/tests/misc/form-submit-file-cross-site-redirect.html |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::continueWillSendRedirectedRequest): |
| * NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp: |
| (WebKit::ServiceWorkerFetchTask::didReceiveRedirectResponse): |
| * WebProcess/Network/WebResourceLoader.cpp: |
| (WebKit::WebResourceLoader::willSendRequest): |
| * WebProcess/Network/WebResourceLoader.h: |
| * WebProcess/Network/WebResourceLoader.messages.in: |
| |
| 2019-10-30 Jer Noble <jer.noble@apple.com> |
| |
| Enable Remote Playback API by default |
| https://bugs.webkit.org/show_bug.cgi?id=203595 |
| |
| Reviewed by Eric Carlson. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2019-10-30 Chris Dumez <cdumez@apple.com> |
| |
| [iOS] [WK2] Improve process assertion-related logging to help identify causes of leaked assertions |
| https://bugs.webkit.org/show_bug.cgi?id=203438 |
| |
| Reviewed by Antti Koivisto. |
| |
| Improve process assertion-related logging to help identify causes of leaked assertions. Previously, |
| whenever our code needed to prevent suspension of a child process due to some kind of activity, it |
| would simply grab a "token" from the child process' ProcessThrottler. This, in-turn, would cause |
| the ProcessThrottler to take the right kind of ProcessAssertion or release it when nobody holds |
| any tokens any more. |
| |
| We frequently have issues where the UIProcess keeps its assertions around for too long after getting |
| backgrounding. This causes the assertions to get invalidated and the UIProcess will usually suspend |
| (albeit with a delay, which is bad for power). Sometimes though, we get killed because our invalidation |
| handler does not get a chance to release the assertion in time. |
| |
| Finding out why we're keeping around assertions is currently very difficult because we cannot easily |
| see in the logs who is still holding ProcessThrottler tokens. To make such debugging easier, clients |
| now notify the ProcessThrottler when they start some activity and provide a user-readable description |
| of the activity. The client then gets a ForegroundActivity or BackgroundActivity object instead of |
| simply a token. As a result, we are now able to log when a given activity that prevents suspension |
| begins and ends, with a user-friendly string. Also, when the assertion gets invalidated, it will |
| invalidate all these pending activities and we'll see in the logs the name of the activities that |
| were still going on upon invalidation. |
| |
| * Shared/API/Cocoa/RemoteObjectRegistry.h: |
| (WebKit::RemoteObjectRegistry::backgroundActivity): |
| * Shared/API/Cocoa/RemoteObjectRegistry.mm: |
| (WebKit::RemoteObjectRegistry::sendInvocation): |
| * UIProcess/Cocoa/DownloadClient.h: |
| * UIProcess/Cocoa/DownloadClient.mm: |
| (WebKit::DownloadClient::takeActivityToken): |
| (WebKit::DownloadClient::releaseActivityTokenIfNecessary): |
| * UIProcess/Cocoa/NavigationState.h: |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationState): |
| (WebKit::NavigationState::releaseNetworkActivity): |
| (WebKit::NavigationState::didChangeIsLoading): |
| (WebKit::NavigationState::didSwapWebProcesses): |
| * UIProcess/Cocoa/UIRemoteObjectRegistry.cpp: |
| (WebKit::UIRemoteObjectRegistry::backgroundActivity): |
| * UIProcess/Cocoa/UIRemoteObjectRegistry.h: |
| * UIProcess/Cocoa/WebProcessProxyCocoa.mm: |
| (WebKit::WebProcessProxy::processWasResumed): |
| * UIProcess/GenericCallback.h: |
| (WebKit::CallbackBase::CallbackBase): |
| (WebKit::GenericCallback::create): |
| (WebKit::GenericCallback::GenericCallback): |
| (WebKit::CallbackMap::put): |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::fetchWebsiteData): |
| (WebKit::NetworkProcessProxy::deleteWebsiteData): |
| (WebKit::NetworkProcessProxy::deleteWebsiteDataForOrigins): |
| (WebKit::NetworkProcessProxy::didClose): |
| (WebKit::NetworkProcessProxy::setIsHoldingLockedFiles): |
| (WebKit::NetworkProcessProxy::syncAllCookies): |
| (WebKit::NetworkProcessProxy::didSyncAllCookies): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/ProcessThrottler.cpp: |
| (WebKit::ProcessThrottler::ProcessThrottler): |
| (WebKit::ProcessThrottler::~ProcessThrottler): |
| (WebKit::ProcessThrottler::addActivity): |
| (WebKit::ProcessThrottler::removeActivity): |
| (WebKit::ProcessThrottler::invalidateAllActivities): |
| (WebKit::ProcessThrottler::expectedAssertionState): |
| (WebKit::ProcessThrottler::setAssertionState): |
| (WebKit::ProcessThrottler::uiAssertionWillExpireImminently): |
| * UIProcess/ProcessThrottler.h: |
| (WebKit::ProcessThrottler::Activity::Activity): |
| (WebKit::ProcessThrottler::Activity::~Activity): |
| (WebKit::ProcessThrottler::Activity::isValid const): |
| (WebKit::ProcessThrottler::Activity::invalidate): |
| (WebKit::ProcessThrottler::shouldBeRunnable const): |
| (WebKit::ProcessThrottler::foregroundActivity): |
| (WebKit::ProcessThrottler::backgroundActivity): |
| * UIProcess/ProvisionalPageProxy.cpp: |
| (WebKit::ProvisionalPageProxy::ProvisionalPageProxy): |
| * UIProcess/ProvisionalPageProxy.h: |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm: |
| (WebKit::RemoteLayerTreeDrawingAreaProxy::dispatchAfterEnsuringDrawing): |
| * UIProcess/SuspendedPageProxy.cpp: |
| (WebKit::SuspendedPageProxy::SuspendedPageProxy): |
| (WebKit::SuspendedPageProxy::didProcessRequestToSuspend): |
| * UIProcess/SuspendedPageProxy.h: |
| * UIProcess/WebBackForwardCacheEntry.cpp: |
| (WebKit::WebBackForwardCacheEntry::~WebBackForwardCacheEntry): |
| * UIProcess/WebCookieManagerProxy.cpp: |
| (WebKit::WebCookieManagerProxy::getHostnamesWithCookies): |
| (WebKit::WebCookieManagerProxy::deleteCookie): |
| (WebKit::WebCookieManagerProxy::deleteAllCookiesModifiedSince): |
| (WebKit::WebCookieManagerProxy::setCookies): |
| (WebKit::WebCookieManagerProxy::getAllCookies): |
| (WebKit::WebCookieManagerProxy::getCookies): |
| (WebKit::WebCookieManagerProxy::setHTTPCookieAcceptPolicy): |
| (WebKit::WebCookieManagerProxy::getHTTPCookieAcceptPolicy): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::close): |
| (WebKit::WebPageProxy::updateThrottleState): |
| (WebKit::WebPageProxy::waitForDidUpdateActivityState): |
| (WebKit::WebPageProxy::setInitialFocus): |
| (WebKit::WebPageProxy::validateCommand): |
| (WebKit::WebPageProxy::executeEditCommand): |
| (WebKit::WebPageProxy::requestFontAttributesAtSelectionStart): |
| (WebKit::WebPageProxy::replaceMatches): |
| (WebKit::WebPageProxy::runJavaScriptInMainFrameScriptWorld): |
| (WebKit::WebPageProxy::runJavaScriptInFrame): |
| (WebKit::WebPageProxy::getRenderTreeExternalRepresentation): |
| (WebKit::WebPageProxy::getSourceForFrame): |
| (WebKit::WebPageProxy::getContentsAsString): |
| (WebKit::WebPageProxy::getBytecodeProfile): |
| (WebKit::WebPageProxy::getSamplingProfilerOutput): |
| (WebKit::WebPageProxy::getContentsAsMHTMLData): |
| (WebKit::WebPageProxy::getSelectionOrContentsAsString): |
| (WebKit::WebPageProxy::getSelectionAsWebArchiveData): |
| (WebKit::WebPageProxy::getMainResourceDataOfFrame): |
| (WebKit::WebPageProxy::getResourceDataFromFrame): |
| (WebKit::WebPageProxy::getWebArchiveOfFrame): |
| (WebKit::WebPageProxy::forceRepaint): |
| (WebKit::WebPageProxy::resetStateAfterProcessExited): |
| (WebKit::WebPageProxy::drawToPDF): |
| (WebKit::WebPageProxy::getMarkedRangeAsync): |
| (WebKit::WebPageProxy::getSelectedRangeAsync): |
| (WebKit::WebPageProxy::characterIndexForPointAsync): |
| (WebKit::WebPageProxy::firstRectForCharacterRangeAsync): |
| (WebKit::WebPageProxy::takeSnapshot): |
| (WebKit::WebPageProxy::installActivityStateChangeCompletionHandler): |
| (WebKit::WebPageProxy::getLoadDecisionForIcon): |
| (WebKit::WebPageProxy::insertAttachment): |
| (WebKit::WebPageProxy::updateAttachmentAttributes): |
| (WebKit::WebPageProxy::getApplicationManifest): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::initializeNewWebProcess): |
| (WebKit::WebProcessPool::updateProcessAssertions): |
| (WebKit::WebProcessPool::reinstateNetworkProcessAssertionState): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::shutDown): |
| (WebKit::WebProcessProxy::fetchWebsiteData): |
| (WebKit::WebProcessProxy::deleteWebsiteData): |
| (WebKit::WebProcessProxy::deleteWebsiteDataForOrigins): |
| (WebKit::WebProcessProxy::setIsHoldingLockedFiles): |
| (WebKit::WebProcessProxy::startBackgroundActivityForFullscreenInput): |
| (WebKit::WebProcessProxy::endBackgroundActivityForFullscreenInput): |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView presentViewControllerForCurrentFocusedElement]): |
| (-[WKContentView dismissAllInputViewControllers:]): |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::requestFocusedElementInformation): |
| (WebKit::WebPageProxy::selectWithGesture): |
| (WebKit::WebPageProxy::updateSelectionWithTouches): |
| (WebKit::WebPageProxy::applyAutocorrection): |
| (WebKit::WebPageProxy::selectTextWithGranularityAtPoint): |
| (WebKit::WebPageProxy::selectPositionAtBoundaryWithDirection): |
| (WebKit::WebPageProxy::moveSelectionAtBoundaryWithDirection): |
| (WebKit::WebPageProxy::selectPositionAtPoint): |
| (WebKit::WebPageProxy::beginSelectionInDirection): |
| (WebKit::WebPageProxy::updateSelectionWithExtentPoint): |
| (WebKit::WebPageProxy::updateSelectionWithExtentPointAndBoundary): |
| (WebKit::WebPageProxy::requestDictationContext): |
| (WebKit::WebPageProxy::getSelectionContext): |
| (WebKit::WebPageProxy::selectWithTwoTouches): |
| (WebKit::WebPageProxy::applicationDidEnterBackground): |
| (WebKit::WebPageProxy::requestRectsForGranularityWithSelectionOffset): |
| (WebKit::WebPageProxy::requestRectsAtSelectionOffsetWithText): |
| (WebKit::WebPageProxy::moveSelectionByOffset): |
| (WebKit::WebPageProxy::focusNextFocusedElement): |
| (WebKit::WebPageProxy::computePagesForPrintingAndDrawToPDF): |
| |
| 2019-10-30 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| REGRESSION(2.27.2): [GTK] Overview item remove button broken |
| https://bugs.webkit.org/show_bug.cgi?id=203461 |
| |
| Reviewed by Adrian Perez de Castro. |
| |
| This is a regression of the switch to new custom protocols implementation. Epiphany is passing NULL as content |
| type of ephy-resource requests, in which case we should try to guess the mime type, but we are not doing it. |
| |
| * UIProcess/API/glib/WebKitURISchemeRequest.cpp: |
| (webkitURISchemeRequestReadCallback): Use MIMETypeRegistry to guess the mime type when content type is nullptr, |
| like NetworkDataTask does. |
| |
| 2019-10-29 Andy Estes <aestes@apple.com> |
| |
| [Quick Look] Clean up LegacyPreviewLoaderClients |
| https://bugs.webkit.org/show_bug.cgi?id=203472 |
| |
| Reviewed by Brady Eidson. |
| |
| Replaced QuickLookDocumentData with ShareableResource. |
| |
| Removed messages WebPageProxy::DidRequestPasswordForQuickLookDocumentInMainFrame and |
| WebPage::DidReceivePasswordForQuickLookDocument, replacing them with async message |
| WebPageProxy::RequestPasswordForQuickLookDocumentInMainFrame. |
| |
| * Shared/ios/QuickLookDocumentData.cpp: Removed. |
| * Shared/ios/QuickLookDocumentData.h: Removed. |
| * SourcesCocoa.txt: |
| * UIProcess/API/APILoaderClient.h: |
| * UIProcess/API/APINavigationClient.h: |
| (API::NavigationClient::didFinishLoadForQuickLookDocumentInMainFrame): |
| * UIProcess/Cocoa/NavigationState.h: |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationClient::didFinishLoadForQuickLookDocumentInMainFrame): |
| * UIProcess/ProvisionalPageProxy.cpp: |
| (WebKit::ProvisionalPageProxy::requestPasswordForQuickLookDocumentInMainFrame): |
| (WebKit::ProvisionalPageProxy::didReceiveMessage): |
| (WebKit::ProvisionalPageProxy::didRequestPasswordForQuickLookDocumentInMainFrame): Deleted. |
| * UIProcess/ProvisionalPageProxy.h: |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::didFinishLoadForQuickLookDocumentInMainFrame): |
| (WebKit::WebPageProxy::requestPasswordForQuickLookDocumentInMainFrame): |
| (WebKit::WebPageProxy::requestPasswordForQuickLookDocumentInMainFrameShared): |
| (WebKit::WebPageProxy::didRequestPasswordForQuickLookDocumentInMainFrame): Deleted. |
| (WebKit::WebPageProxy::didRequestPasswordForQuickLookDocumentInMainFrameShared): Deleted. |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebCoreSupport/ios/WebPreviewLoaderClient.cpp: |
| (WebKit::WebPreviewLoaderClient::WebPreviewLoaderClient): |
| (WebKit::WebPreviewLoaderClient::didReceiveBuffer): |
| (WebKit::WebPreviewLoaderClient::didFinishLoading): |
| (WebKit::WebPreviewLoaderClient::didFail): |
| (WebKit::WebPreviewLoaderClient::didRequestPassword): |
| (WebKit::passwordCallbacks): Deleted. |
| (WebKit::WebPreviewLoaderClient::~WebPreviewLoaderClient): Deleted. |
| (WebKit::WebPreviewLoaderClient::didReceiveDataArray): Deleted. |
| (WebKit::WebPreviewLoaderClient::didReceivePassword): Deleted. |
| * WebProcess/WebCoreSupport/ios/WebPreviewLoaderClient.h: |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::didStartLoadForQuickLookDocumentInMainFrame): |
| (WebKit::WebPage::didFinishLoadForQuickLookDocumentInMainFrame): |
| (WebKit::WebPage::requestPasswordForQuickLookDocumentInMainFrame): |
| (WebKit::WebPage::didReceivePasswordForQuickLookDocument): Deleted. |
| |
| 2019-10-29 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthn] Add more information to _WKWebAuthenticationPanel |
| https://bugs.webkit.org/show_bug.cgi?id=202561 |
| <rdar://problem/55973910> |
| |
| Reviewed by Youenn Fablet and Brent Fulgham. |
| |
| This change adds transports and type to _WKWebAuthenticationPanel such that |
| clients can know what transport the current ceremony demands and the type of |
| the current ceremony. These extra information allow clients to give users |
| more specific instructions to interact with authenticators. |
| |
| To pass transports to client, the way how them is collected is changed significantly: |
| 1) The timing is moved to runPanel before the client delegate call. |
| 2) NfcService::isAvailable is added for AuthenticatorManager to determine if NFC |
| is available in the current device. |
| 3) AuthenticatorManager::filterTransports is added to filter transports requested |
| by RP to ones that are available. This process is handled by each service naturally |
| before. |
| 4) AuthenticatorManager::startRequest is now being splitted into AuthenticatorManager::handleRequest, |
| AuthenticatorManager::runPanel and AuthenticatorManager::getTransports. |
| |
| To pass type to _WKWebAuthenticationPanel, ClientDataType is moved from |
| WebCore::AuthenticatorCoordinator to WebCore::WebAuthenticationConstants in |
| order to be reused to indicate the ceremony type. |
| |
| * UIProcess/API/APIWebAuthenticationPanel.cpp: |
| (API::WebAuthenticationPanel::create): |
| (API::WebAuthenticationPanel::WebAuthenticationPanel): |
| * UIProcess/API/APIWebAuthenticationPanel.h: |
| * UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h: |
| * UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm: |
| (-[_WKWebAuthenticationPanel relyingPartyID]): |
| (wkWebAuthenticationTransport): |
| (-[_WKWebAuthenticationPanel transports]): |
| (wkWebAuthenticationType): |
| (-[_WKWebAuthenticationPanel type]): |
| * UIProcess/WebAuthentication/AuthenticatorManager.cpp: |
| (WebKit::WebCore::collectTransports): |
| (WebKit::WebCore::getClientDataType): |
| (WebKit::AuthenticatorManager::handleRequest): |
| (WebKit::AuthenticatorManager::filterTransports const): |
| (WebKit::AuthenticatorManager::startDiscovery): |
| (WebKit::AuthenticatorManager::initTimeOutTimer): |
| (WebKit::AuthenticatorManager::runPanel): |
| (WebKit::AuthenticatorManager::getTransports const): |
| (WebKit::AuthenticatorManager::respondReceivedInternal): Deleted. |
| (WebKit::AuthenticatorManager::startRequest): Deleted. |
| * UIProcess/WebAuthentication/AuthenticatorManager.h: |
| (WebKit::AuthenticatorManager::respondReceivedInternal): |
| * UIProcess/WebAuthentication/Cocoa/NfcService.h: |
| * UIProcess/WebAuthentication/Cocoa/NfcService.mm: |
| (WebKit::NfcService::isAvailable): |
| (WebKit::NfcService::platformStartDiscovery): |
| * UIProcess/WebAuthentication/Mock/MockAuthenticatorManager.cpp: |
| (WebKit::MockAuthenticatorManager::filterTransports const): |
| * UIProcess/WebAuthentication/Mock/MockAuthenticatorManager.h: |
| |
| 2019-10-29 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| REGRESSION (r251693): [iOS] Unable to change selection in a focused element if the element's bounds change |
| https://bugs.webkit.org/show_bug.cgi?id=203582 |
| |
| Reviewed by Tim Horton. |
| |
| The refactoring in r251693 broke the ability to change selection in an editable area by tapping in iOS Safari, |
| in the case where the editable element's bounds change after focus. This is because the aforementioned change |
| now compares position informations' element context against the focused element information's element context to |
| check whether or not the position information request was inside the focused element. However, if the bounds of |
| the focused element change in between the position information request and when the element is initially |
| focused, the `operator==` comparison will fail, causing us to prevent text selection. |
| |
| To fix this, only check whether or not the two element contexts refer to the same element in the DOM by |
| comparing page, document and element identifiers, but not the element's bounding rect. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _didGetTapHighlightForRequest:color:quads:topLeftRadius:topRightRadius:bottomLeftRadius:bottomRightRadius:nodeHasBuiltInClickHandling:]): |
| (-[WKContentView gestureRecognizerShouldBegin:]): |
| (-[WKContentView textInteractionGesture:shouldBeginAtPoint:]): |
| |
| 2019-10-07 Jer Noble <jer.noble@apple.com> |
| |
| Implement the Remote Playback API. |
| https://bugs.webkit.org/show_bug.cgi?id=162971 |
| |
| Reviewed by Youenn Fablet. |
| |
| Add a preference to enable the Remote Playback API. Pass the playbackTargetPickerWasDismissed() |
| notification on to Page. |
| |
| * Shared/WebPreferencesDefinitions.h: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesGetRemotePlaybackEnabled): |
| (WKPreferencesSetRemotePlaybackEnabled): |
| * UIProcess/API/C/WKPreferencesRef.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::playbackTargetPickerWasDismissed): |
| * UIProcess/WebPageProxy.h: |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::mockMediaPlaybackTargetPickerDismissPopup): |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::updatePreferences): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/mac/WebPageMac.mm: |
| (WebKit::WebPage::playbackTargetPickerWasDismissed): |
| |
| 2019-10-29 Per Arne Vollan <pvollan@apple.com> |
| |
| REGRESSION: WebContent getting killed due to syscall filter violation |
| https://bugs.webkit.org/show_bug.cgi?id=203575 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| The sandbox profile on macOS needs to open up for a syscall. |
| |
| No new tests, covered by existing tests. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2019-10-29 Brent Fulgham <bfulgham@apple.com> |
| |
| [iOS] Clean up sandbox to group similar rules together |
| https://bugs.webkit.org/show_bug.cgi?id=203525 |
| <rdar://problem/56686416> |
| |
| Reviewed by Per Arne Vollan. |
| |
| Clean up the sandbox rules by grouping rules by feature areas to make future editing easier. |
| This change should have no impact on behavior. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2019-10-29 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| REGRESSION (r251413): Nightly build crashes on launch due to -[WKPreferences _setShouldAllowDesignSystemUIFonts:]: unrecognized selector |
| https://bugs.webkit.org/show_bug.cgi?id=203549 |
| |
| Reviewed by Simon Fraser. |
| |
| r251413 deleted an SPI that new Safari stopped calling. However, |
| old Safari continues to call it. The solution is just to add stub |
| implementations so old Safari doesn't fail to link at runtime. |
| |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences _shouldAllowDesignSystemUIFonts]): |
| (-[WKPreferences _setShouldAllowDesignSystemUIFonts:]): |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: |
| |
| 2019-10-27 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Add enterkeyhint support |
| https://bugs.webkit.org/show_bug.cgi?id=189546 |
| <rdar://problem/51021148> |
| |
| Reviewed by Tim Horton. |
| |
| This patch adds support for the enterkeyhint HTML attribute on iOS. |
| |
| Tests: EnterKeyHintTests.EnterKeyHintInContentEditableElement |
| EnterKeyHintTests.EnterKeyHintInTextInput |
| EnterKeyHintTests.EnterKeyHintInTextArea |
| |
| * Shared/FocusedElementInformation.cpp: |
| (WebKit::FocusedElementInformation::encode const): |
| (WebKit::FocusedElementInformation::decode): |
| * Shared/FocusedElementInformation.h: |
| |
| Add a new flag to FocusedElementInformation to indicate the EnterKeyHint type that should be used when bringing |
| up an input view for the focused element. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView textInputTraits]): |
| |
| Map the given EnterKeyHint type to a UIReturnKeyType. If an unsupported (i.e. "previous") or default |
| EnterKeyHint value is used, then we fall back to existing behavior which deduces the default enterkeyhint value |
| from the input type if the focused element is inside an actionable form; otherwise, we avoid setting any value |
| for the `returnKeyType`, defaulting to `UIReturnKeyDefault`. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::getFocusedElementInformation): |
| |
| 2019-10-29 Kate Cheney <katherine_cheney@apple.com> |
| |
| Layout Test http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration-database.html is a flaky failure |
| https://bugs.webkit.org/show_bug.cgi?id=203542#add_comment |
| <rdar://problem/56689764> |
| |
| Reviewed by John Wilander. |
| |
| This test was a flaky failure due to its calling |
| scheduleStatisticsProcessingRequestIfNecessary() after logging a cross |
| site load with link decoration. This call is currently unecessary |
| because this function is not yet used to classify resources, and is |
| causing the test to execute a callback before it is ready. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: |
| |
| 2019-10-29 Truitt Savell <tsavell@apple.com> |
| |
| Unreviewed, rolling out r251639. |
| |
| Caused flakey API failures for GetDisplayMediaTest.Constraints |
| |
| Reverted changeset: |
| |
| "Enforce user gesture for getUserMedia in case a previous |
| getUserMedia call was denied" |
| https://bugs.webkit.org/show_bug.cgi?id=203362 |
| https://trac.webkit.org/changeset/251639 |
| |
| 2019-10-29 Truitt Savell <tsavell@apple.com> |
| |
| Unreviewed, rolling out r251646. |
| |
| Caused flakey API failures for GetDisplayMediaTest.Constraints |
| |
| Reverted changeset: |
| |
| "Unreviewed build fix for !ENABLE(MEDIA_STREAM) builds" |
| https://bugs.webkit.org/show_bug.cgi?id=203362 |
| https://trac.webkit.org/changeset/251646 |
| |
| 2019-10-29 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, rolling out r251594. |
| |
| Caused an API test failure |
| |
| Reverted changeset: |
| |
| "mp4 video element broken with service worker" |
| https://bugs.webkit.org/show_bug.cgi?id=184447 |
| https://trac.webkit.org/changeset/251594 |
| |
| 2019-10-29 Chris Dumez <cdumez@apple.com> |
| |
| Notification permissions are not remembered for origins without port |
| https://bugs.webkit.org/show_bug.cgi?id=203537 |
| <rdar://problem/55281080> |
| |
| Reviewed by Brady Eidson. |
| |
| When WKSecurityOriginCreate() gets called with a port that is invalid, then pass |
| WTF::nullopt to construct the security origin instead of the invalid port. |
| |
| The issue is that the port for security origins is optional internally. However, |
| our API (WKSecurityOriginGetPort() & WKSecurityOrigin.port) will return 0 when |
| there is no port. As a result, clients such as Safari sometimes pass 0 as port to construct |
| a new WKSecurityOriginRef(). |
| |
| This was causing issues with regards to notifications because Safari would construct |
| origins whose string representation looks like "https://www.apple.com:0" and it would |
| not match the "https://www.apple.com" we expect internally. |
| |
| * Shared/API/c/WKSecurityOriginRef.cpp: |
| (WKSecurityOriginCreate): |
| |
| 2019-10-29 Adrian Perez de Castro <aperez@igalia.com> |
| |
| Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.27.2 release |
| |
| * wpe/NEWS: Add release notes for 2.27.2. |
| |
| 2019-10-28 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Replace InteractionInformationAtPosition.nodeAtPositionIsFocusedElement with an element context |
| https://bugs.webkit.org/show_bug.cgi?id=203498 |
| |
| Reviewed by Tim Horton. |
| |
| Refactors InteractionInformationAtPosition, such that it doesn't need a special flag to indicate whether there |
| is a focused element at the position. This is a followup to webkit.org/b/203264; no new tests, as there should |
| be no change in behavior. |
| |
| * Shared/FocusedElementInformation.cpp: |
| (WebKit::FocusedElementInformation::encode const): |
| (WebKit::FocusedElementInformation::decode): |
| * Shared/FocusedElementInformation.h: |
| |
| Add an elementContext to FocusedElementInformation to represent the focused element; then, instead of checking |
| whether there is a focused element underneath the request position, simply check that the position information's |
| element context matches the FocusedElementInformation's element context. |
| |
| Additionally, rename elementRect in FocusedElementInformation to interactionRect, to draw a distinction between |
| this rect and the new ElementContext's boundingRect. |
| |
| * Shared/ios/InteractionInformationAtPosition.h: |
| * Shared/ios/InteractionInformationAtPosition.mm: |
| (WebKit::InteractionInformationAtPosition::encode const): |
| (WebKit::InteractionInformationAtPosition::decode): |
| |
| Remove the nodeAtPositionIsFocusedElement flag. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _didGetTapHighlightForRequest:color:quads:topLeftRadius:topRightRadius:bottomLeftRadius:bottomRightRadius:nodeHasBuiltInClickHandling:]): |
| (-[WKContentView _zoomToRevealFocusedElement]): |
| (-[WKContentView _selectionClipRect]): |
| (-[WKContentView gestureRecognizerShouldBegin:]): |
| (-[WKContentView textInteractionGesture:shouldBeginAtPoint:]): |
| |
| In various places that consult nodeAtPositionIsFocusedElement, instead check that the position information's |
| hit-tested element context is the same as the focused element, via FocusedElementInformation. |
| |
| (-[WKContentView _didCommitLoadForMainFrame]): |
| |
| Nuke the cached position information data upon navigation; without this tweak, we will fail when running several |
| iOS layout tests back-to-back, that tap in exactly the same location. |
| |
| (rectToRevealWhenZoomingToFocusedElement): |
| (-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:activityStateChanges:userObject:]): |
| (-[WKContentView _elementDidBlur]): |
| (-[WKContentView rectForFocusedFormControlView:]): |
| (-[WKContentView _didChangeFocusedElementRect:toRect:]): Deleted. |
| |
| Remove code to invalidate cached position information when changing the focused element rect. |
| |
| * UIProcess/ios/forms/WKFormPopover.mm: |
| (-[WKRotatingPopover presentPopoverAnimated:]): |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::positionInformation): |
| (WebKit::WebPage::getFocusedElementInformation): |
| |
| 2019-10-28 Adrian Perez de Castro <aperez@igalia.com> |
| |
| [GTK][WPE] Fix various non-unified build issues introduced since r251436 |
| https://bugs.webkit.org/show_bug.cgi?id=203492 |
| |
| Reviewed by Alex Christensen and Mark Lam. |
| |
| * UIProcess/InspectorTargetProxy.h: Add forward declaration of ProvisionalPageProxy. |
| * UIProcess/Plugins/PluginProcessProxy.cpp: Add missin inclusion of |
| WebProcessProxyMessages.h |
| * UIProcess/ProcessThrottler.cpp: Add missing inclusion of wtf/CompletionHandler.h |
| * UIProcess/ProvisionalPageProxy.h: Add missing inclusion of WebCore/FrameIdentifier.h |
| * UIProcess/WebPageInspectorController.h: Add missing inclusion of WebCore/PageIdentifier.h |
| * WebProcess/WebPage/WebPageInspectorTargetController.cpp: Add missing inclusion of |
| WebPageInspectorTargetFrontendChannel.h |
| |
| 2019-10-28 Per Arne Vollan <pvollan@apple.com> |
| |
| [iOS] Fix sandbox violations |
| https://bugs.webkit.org/show_bug.cgi?id=203505 |
| |
| Reviewed by Brent Fulgham. |
| |
| Running layout tests shows that allowing mach lookup is needed for a set of services which was previously denied. |
| This patch add rules for allowing these services again. The service 'com.apple.logd.events' is still denied, since |
| it has not been observed to be in use. |
| |
| No new tests, covered by existing tests. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2019-10-28 Alex Christensen <achristensen@webkit.org> |
| |
| Unreviewed, rolling out r251675. |
| |
| Broke some builds |
| |
| Reverted changeset: |
| |
| "Remove unused WKWebsiteDataStore setter SPI" |
| https://bugs.webkit.org/show_bug.cgi?id=203114 |
| https://trac.webkit.org/changeset/251675 |
| |
| 2019-10-28 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Add bindings support for the enterkeyhint HTML attribute |
| https://bugs.webkit.org/show_bug.cgi?id=203440 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Add a new runtime switch for the enterkeyhint attribute, and enable it by default on macOS and iOS. |
| |
| * Shared/WebPreferences.yaml: |
| * Shared/WebPreferencesDefaultValues.h: |
| |
| 2019-10-28 Alex Christensen <achristensen@webkit.org> |
| |
| Remove unused _WKProcessPoolConfiguration SPI |
| https://bugs.webkit.org/show_bug.cgi?id=203066 |
| |
| Reviewed by Youenn Fablet. |
| |
| After rdar://problem/56260478 this is not used, so away it goes! |
| |
| * NetworkProcess/NetworkProcess.h: |
| (WebKit::NetworkProcess::suppressesConnectionTerminationOnSystemChange const): Deleted. |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa): |
| * NetworkProcess/cocoa/NetworkSessionCocoa.h: |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| (WebKit::globalCTDataConnectionServiceType): Deleted. |
| (WebKit::NetworkSessionCocoa::ctDataConnectionServiceType const): Deleted. |
| (WebKit::NetworkSessionCocoa::setCTDataConnectionServiceType): Deleted. |
| * NetworkProcess/ios/NetworkConnectionToWebProcessIOS.mm: |
| (WebKit::NetworkConnectionToWebProcess::paymentCoordinatorCTDataConnectionServiceType): |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| (API::ProcessPoolConfiguration::copy): |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: |
| (-[_WKProcessPoolConfiguration suppressesConnectionTerminationOnSystemChange]): Deleted. |
| (-[_WKProcessPoolConfiguration setSuppressesConnectionTerminationOnSystemChange:]): Deleted. |
| (-[_WKProcessPoolConfiguration CTDataConnectionServiceType]): Deleted. |
| (-[_WKProcessPoolConfiguration setCTDataConnectionServiceType:]): Deleted. |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeNetworkProcess): |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::paymentCoordinatorCTDataConnectionServiceType): |
| |
| 2019-10-28 Alex Christensen <achristensen@webkit.org> |
| |
| Remove unused WKWebsiteDataStore setter SPI |
| https://bugs.webkit.org/show_bug.cgi?id=203114 |
| |
| Reviewed by Anders Carlsson. |
| |
| They have been replaced by _WKWebsiteDataStoreConfiguration SPI which was adopted in rdar://problem/56349165 |
| |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _setBoundInterfaceIdentifier:]): Deleted. |
| (-[WKWebsiteDataStore _boundInterfaceIdentifier]): Deleted. |
| (-[WKWebsiteDataStore _setAllowsCellularAccess:]): Deleted. |
| (-[WKWebsiteDataStore _allowsCellularAccess]): Deleted. |
| (-[WKWebsiteDataStore _setProxyConfiguration:]): Deleted. |
| (-[WKWebsiteDataStore _proxyConfiguration]): Deleted. |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| (WebKit::WebsiteDataStore::setBoundInterfaceIdentifier): Deleted. |
| (WebKit::WebsiteDataStore::setAllowsCellularAccess): Deleted. |
| (WebKit::WebsiteDataStore::setProxyConfiguration): Deleted. |
| |
| 2019-10-28 Brady Eidson <beidson@apple.com> |
| |
| Expose _printOperationWithPrintInfo: SPI as API |
| <rdar://problem/36557179> and https://bugs.webkit.org/show_bug.cgi?id=203496 |
| |
| Reviewed by Andy Estes. |
| |
| * UIProcess/API/Cocoa/WKWebView.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView printOperationWithPrintInfo:]): |
| (-[WKWebView _printOperationWithPrintInfo:]): |
| |
| 2019-10-28 Kate Cheney <katherine_cheney@apple.com> |
| |
| Layout Test http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration.html is a flaky failure |
| https://bugs.webkit.org/show_bug.cgi?id=203491 |
| <rdar://problem/56674176> |
| |
| Reviewed by Chris Dumez. |
| |
| No new tests, this change is tested by the existing resourceLoadStatistics |
| tests. |
| |
| This test started flaking when a new memory store was being created |
| between tests to maintain consistency. The call to grandfatherExistingWebsiteData |
| from populateMemoryStoreFromDisk in the persistent storage was |
| async, causing a race condition that led to occasional failures. |
| Adding a completion handler and changing the callsite of |
| populateMemoryStoreFromDisk should fix this problem. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsPersistentStorage.cpp: |
| (WebKit::ResourceLoadStatisticsPersistentStorage::ResourceLoadStatisticsPersistentStorage): |
| * NetworkProcess/Classifier/ResourceLoadStatisticsPersistentStorage.h: |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore): |
| The persistent store in the databaseEnabled case was never being used |
| and is unnecessary. |
| |
| (WebKit::WebResourceLoadStatisticsStore::populateMemoryStoreFromDisk): |
| Since persistent storage only exists when using the memory store, |
| populateMemoryStoreFromDisk should check if |
| m_persistentStorage has been initialized. |
| |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h: |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::setUseITPDatabase): |
| * NetworkProcess/NetworkSession.cpp: |
| (WebKit::NetworkSession::setResourceLoadStatisticsEnabled): |
| (WebKit::NetworkSession::recreateResourceLoadStatisticStore): |
| * NetworkProcess/NetworkSession.h: |
| |
| 2019-10-28 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS] 3 editing/pasteboard/smart-paste-paragraph-* tests are flaky |
| https://bugs.webkit.org/show_bug.cgi?id=203264 |
| <rdar://problem/56512107> |
| |
| Reviewed by Tim Horton. |
| |
| Fixes several flaky layout tests that exercise a corner case in our logic for caching position information |
| responses in the UI process. When focusing an element via a tap, we send a position information request for the |
| tap location in -_webTouchEventsRecognized:. After the web process computes the information and hands it back to |
| the UI process, we cache this in WKContentView's _positionInformation. |
| |
| However, at the time of computing the request, the tapped element has not been focused yet, so the value of the |
| position information's nodeAtPositionIsFocusedElement flag is false. After the tap is recognized, we'll then |
| focus the element, such that if a subsequent position information request were to arrive at the same location, |
| it would have a nodeAtPositionIsFocusedElement flag set to true. |
| |
| In this state, if the user taps _exactly_ at the same location again, UIKit (through text interaction gestures) |
| will ask us for information at the same point; we will end up using the cached information, for which |
| nodeAtPositionIsFocusedElement is false, causing us to incorrectly prevent the text interaction. In this |
| particular case, we fail to select text via a double tap gesture. |
| |
| To address this, we invalidate the cached position information in the UI process whenever the focused element |
| rect changes (e.g. when the focused element changes); the only exception to this is when the previously cached |
| position information was not over the focused element, and the new focused element rect is empty, in which case |
| the value of nodeAtPositionIsFocusedElement is guaranteed to have not changed. |
| |
| While this may potentially leads to an additional synchronous position information request when tapping at the |
| same location after focusing an element, this is very difficult to achieve in practice, since the tap location |
| would need to be _exactly_ at the same location. |
| |
| No new test, since this is exercised by existing flaky layout tests. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:activityStateChanges:userObject:]): |
| (-[WKContentView _elementDidBlur]): |
| |
| Also, add a FIXME about how we clear out surprisingly little of _focusedElementInformation when blurring the |
| focused element. |
| |
| (-[WKContentView _didChangeFocusedElementRect:toRect:]): |
| |
| 2019-10-28 John Wilander <wilander@apple.com> |
| |
| Storage Access API: Make the API work with the experimental 3rd-party cookie blocking |
| https://bugs.webkit.org/show_bug.cgi?id=203428 |
| <rdar://problem/56626949> |
| |
| Reviewed by Alex Christensen. |
| |
| Tests: http/tests/storageAccess/deny-due-to-no-interaction-under-general-third-party-cookie-blocking.html |
| http/tests/storageAccess/grant-with-prompt-under-general-third-party-cookie-blocking.html |
| http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-with-cookie.html |
| http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-without-cookie.html |
| |
| This patch adds Storage Access API support for the experimental 3rd-party cookie blocking that |
| landed in <https://trac.webkit.org/changeset/251467>. |
| |
| There are three policies at play because it can be changed with the experimental setting: |
| 1. The underlying cookie policy. |
| 2. Shipping ITP. |
| 3. The off by default, experimental 3rd-party cookie blocking. |
| |
| To support them all, a CookieAccess enum was added to encode how the API should respond. |
| The enum has these values: |
| CannotRequest - This third-party cannot request storage access based on the current policy. |
| BasedOnCookiePolicy – This third-party should be treated according to the underlying cookie policy. |
| OnlyIfGranted – This third-party can and must get access through the Storage Access API. |
| |
| Here's the truth table I used to work through the logic for both |
| document.hasStorageAccess() and document.requestStorageAccess(): |
| |
| Access | Is | User | Has | 3rd-party | | |
| granted | prevalent | interaction | cookie | cookie block | RESULT | |
| ------------------------------------------------------------------- |
| | | | | | | false | |
| ------------------------------------------------------------------- |
| | | | | | true | false | |
| ------------------------------------------------------------------- |
| | | | | true | | true | |
| ------------------------------------------------------------------- |
| | | | | true | true | false | |
| ------------------------------------------------------------------- |
| | | | true | | | false | |
| ------------------------------------------------------------------- |
| | | | true | | true | false | |
| ------------------------------------------------------------------- |
| | | | true | true | | true | |
| ------------------------------------------------------------------- |
| | | | true | true | true | false | |
| ------------------------------------------------------------------- |
| | | true | !care | !care | !care | false | |
| ------------------------------------------------------------------- |
| | true | !care | !care | !care | !care | true | |
| ------------------------------------------------------------------- |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: |
| (WebKit::ResourceLoadStatisticsDatabaseStore::cookieAccess const): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::hasStorageAccess): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::requestStorageAccess): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::requestStorageAccessUnderOpener): |
| Extra checks removed since there's no harm in granting access |
| to a third-party that already has access by way of the underlying |
| cookie policy. Also, this is a temporary compatibility fix. |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h: |
| * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ResourceLoadStatisticsMemoryStore::cookieAccess const): |
| (WebKit::ResourceLoadStatisticsMemoryStore::hasStorageAccess): |
| (WebKit::ResourceLoadStatisticsMemoryStore::requestStorageAccess): |
| (WebKit::ResourceLoadStatisticsMemoryStore::requestStorageAccessUnderOpener): |
| Extra checks removed since there's no harm in granting access |
| to a third-party that already has access by way of the underlying |
| cookie policy. Also, this is a temporary compatibility fix. |
| * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h: |
| * NetworkProcess/Classifier/ResourceLoadStatisticsStore.h: |
| (WebKit::ResourceLoadStatisticsStore::setIsThirdPartyCookieBlockingEnabled): |
| (WebKit::ResourceLoadStatisticsStore::isThirdPartyCookieBlockingEnabled const): |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::setIsThirdPartyCookieBlockingEnabled): |
| This is now the single path to control this setting in both ITP |
| and the network storage session. See comment below. |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h: |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::setShouldBlockThirdPartyCookiesForTesting): |
| * NetworkProcess/NetworkSession.cpp: |
| (WebKit::NetworkSession::setResourceLoadStatisticsEnabled): |
| (WebKit::NetworkSession::setIsThirdPartyCookieBlockingEnabled): |
| Restructured these so that they are initiated like the rest of the |
| parameters and only have a single path for changes so that a |
| reset to consistent state resets all the state. |
| * NetworkProcess/NetworkSession.h: |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| |
| 2019-10-28 Alex Christensen <achristensen@webkit.org> |
| |
| Remove unused NetworkProcessCreationParameters.urlSchemesRegisteredAsCanDisplayOnlyIfCanRequest |
| https://bugs.webkit.org/show_bug.cgi?id=203393 |
| |
| Reviewed by Chris Dumez. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| (WebKit::NetworkProcess::registerURLSchemeAsCanDisplayOnlyIfCanRequest const): Deleted. |
| * 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::registerURLSchemeAsCanDisplayOnlyIfCanRequest): |
| |
| 2019-10-28 Carlos Alberto Lopez Perez <clopez@igalia.com> |
| |
| [GTK][WPE] Enable CSS typed OM |
| https://bugs.webkit.org/show_bug.cgi?id=192875 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Enable the runtime feature by default on GTK/WPE when building with |
| experimental features enabled. |
| |
| Covered by existing tests. |
| |
| * Shared/WebPreferences.yaml: |
| * Shared/WebPreferencesDefaultValues.h: |
| |
| 2019-10-28 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Simplify the Input Method implementation |
| https://bugs.webkit.org/show_bug.cgi?id=203149 |
| |
| Reviewed by Adrian Perez de Castro. |
| |
| * Shared/NativeWebKeyboardEvent.h: Stop using WebCore::CompositionResults. |
| (WebKit::NativeWebKeyboardEvent::text const): |
| (WebKit::NativeWebKeyboardEvent::handledByInputMethod const): |
| (WebKit::NativeWebKeyboardEvent::fakedForComposition const): |
| * Shared/gtk/NativeWebKeyboardEventGtk.cpp: Ditto. |
| (WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent): |
| * Shared/gtk/WebEventFactory.cpp: |
| (WebKit::WebEventFactory::createWebKeyboardEvent): Ditto. |
| * Shared/gtk/WebEventFactory.h: |
| * UIProcess/API/gtk/PageClientImpl.cpp: |
| (WebKit::PageClientImpl::doneWithKeyEvent): Updated to use the new name. |
| * UIProcess/API/gtk/WebKitWebViewBase.cpp: Stop using WebCore::CompositionResults. |
| (webkitWebViewBaseKeyPressEvent): |
| (webkitWebViewBaseKeyReleaseEvent): |
| * UIProcess/API/gtk/WebKitWebViewBasePrivate.h: Remove unused function. |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::setComposition): Use EditingRange instead of two integers and remove replacement range |
| that is unused. |
| (WebKit::WebPageProxy::confirmComposition): Remove unused selection range parameters. |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/gtk/InputMethodFilter.cpp: |
| (WebKit::InputMethodFilter::handleKeyboardEvent): |
| (WebKit::InputMethodFilter::handleKeyboardEventWithCompositionResults): |
| (WebKit::InputMethodFilter::confirmComposition): |
| (WebKit::InputMethodFilter::updatePreedit): |
| (WebKit::InputMethodFilter::confirmCurrentComposition): |
| (WebKit::InputMethodFilter::sendCompositionAndPreeditWithFakeKeyEvents): |
| (WebKit::InputMethodFilter::logHandleKeyboardEventForTesting): |
| (WebKit::InputMethodFilter::logHandleKeyboardEventWithCompositionResultsForTesting): |
| * UIProcess/gtk/InputMethodFilter.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::targetFrameForEditing): Receive a reference instead of a pointer. |
| (WebKit::WebPage::confirmComposition): Remove the unused code to handle the selection range. |
| (WebKit::WebPage::setComposition): Remove the unused code to handle the replacement range. |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2019-10-27 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| Unreviewed build fix for !ENABLE(MEDIA_STREAM) builds |
| https://bugs.webkit.org/show_bug.cgi?id=203362 |
| <rdar://problem/56648232> |
| |
| * UIProcess/UserMediaPermissionRequestProxy.h: Enclosed isUserGesturePriviledged with #if ENABLE(MEDIA_STREAM). |
| |
| 2019-10-21 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthn] Warn users when multiple NFC tags present |
| https://bugs.webkit.org/show_bug.cgi?id=200932 |
| <rdar://problem/54890736> |
| |
| Reviewed by Brent Fulgham. |
| |
| This patch utilizes -[_WKWebAuthenticationPanelDelegate panel:updateWebAuthenticationPanel:] to |
| inform clients about multiple physical tags are presenting such that clients can instruct users |
| to select only one of them physically. Given a physical tag could have multiple different |
| interfaces, which NearField will treat them into different NFTags, the tagID is then used to |
| identify if there are actually multiple physical tags. |
| |
| This patch also adds the ability to restart polling of a partiuclar NFReaderSession to NfcConnection |
| and the ability to restart the whole session to NfcService. The former is used to recover from errors |
| in the discovery stages, and the latter is used to recover from errors returned from authenticators |
| in the request stages. For the latter, given NfcConnection is not awared of the syntax of FIDO2/U2F |
| protocol, and CtapAuthenticator/U2fAuthenticator are not awared the transport of the underneath driver. |
| A generic restartDiscovery process is added to each service and it is up to the actual service to |
| implement the actual process such that AuthenticatorManager can arbitrarily call it after exceptions |
| are returned to restart the whole NFC session. To achieve restartDiscovery, NfcConnection is made |
| RefCounted as well such that both the NfcService and the CtapNfcDriver could hold it at the same time. |
| CtapNfcDriver uses the connection to complete requests as before while NfcService has the new capability |
| to use it to stop the current session when restartDiscovery kicks off. |
| |
| * Platform/spi/Cocoa/NearFieldSPI.h: |
| * UIProcess/WebAuthentication/AuthenticatorManager.cpp: |
| (WebKit::AuthenticatorManager::serviceStatusUpdated): |
| (WebKit::AuthenticatorManager::respondReceived): |
| (WebKit::AuthenticatorManager::restartDiscovery): |
| * UIProcess/WebAuthentication/AuthenticatorManager.h: |
| * UIProcess/WebAuthentication/AuthenticatorTransportService.cpp: |
| (WebKit::AuthenticatorTransportService::startDiscovery): |
| (WebKit::AuthenticatorTransportService::restartDiscovery): |
| * UIProcess/WebAuthentication/AuthenticatorTransportService.h: |
| (WebKit::AuthenticatorTransportService::restartDiscoveryInternal): |
| * UIProcess/WebAuthentication/Cocoa/NfcConnection.h: |
| * UIProcess/WebAuthentication/Cocoa/NfcConnection.mm: |
| (WebKit::NfcConnection::create): |
| (WebKit::NfcConnection::NfcConnection): |
| (WebKit::NfcConnection::~NfcConnection): |
| (WebKit::NfcConnection::stop const): |
| (WebKit::NfcConnection::didDetectTags): |
| (WebKit::NfcConnection::restartPolling): |
| (WebKit::NfcConnection::startPolling): |
| (WebKit::NfcConnection::didDetectTags const): Deleted. |
| * UIProcess/WebAuthentication/Cocoa/NfcService.h: |
| * UIProcess/WebAuthentication/Cocoa/NfcService.mm: |
| (WebKit::NfcService::NfcService): |
| (WebKit::NfcService::didConnectTag): |
| (WebKit::NfcService::didDetectMultipleTags const): |
| (WebKit::NfcService::setConnection): |
| (WebKit::NfcService::restartDiscoveryInternal): |
| (WebKit::NfcService::platformStartDiscovery): |
| (WebKit::NfcService::setDriver): Deleted. |
| * UIProcess/WebAuthentication/Mock/MockNfcService.h: |
| * UIProcess/WebAuthentication/Mock/MockNfcService.mm: |
| (-[WKMockNFTag tagID]): |
| (-[WKMockNFTag initWithNFTag:]): |
| (-[WKMockNFTag dealloc]): |
| (-[WKMockNFTag initWithType:]): |
| (-[WKMockNFTag initWithType:tagID:]): |
| (WebKit::MockNfcService::receiveStopPolling): |
| (WebKit::MockNfcService::receiveStartPolling): |
| (WebKit::MockNfcService::platformStartDiscovery): |
| (WebKit::MockNfcService::detectTags): |
| (WebKit::MockNfcService::detectTags const): Deleted. |
| * UIProcess/WebAuthentication/fido/CtapNfcDriver.cpp: |
| (WebKit::CtapNfcDriver::CtapNfcDriver): |
| * UIProcess/WebAuthentication/fido/CtapNfcDriver.h: |
| * UIProcess/WebAuthentication/fido/U2fAuthenticator.cpp: |
| |
| 2019-10-26 youenn fablet <youenn@apple.com> |
| |
| Enforce user gesture for getUserMedia in case a previous getUserMedia call was denied |
| https://bugs.webkit.org/show_bug.cgi?id=203362 |
| |
| Reviewed by Eric Carlson. |
| |
| In case the request has user gesture priviledge, do not look at denied request history. |
| |
| * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: |
| (WebKit::UserMediaPermissionRequestManagerProxy::getRequestAction): |
| * UIProcess/UserMediaPermissionRequestProxy.h: |
| (WebKit::UserMediaPermissionRequestProxy::isUserGesturePriviledged const): |
| |
| 2019-10-26 Chris Lord <clord@igalia.com> |
| |
| Put OffscreenCanvas behind a build flag |
| https://bugs.webkit.org/show_bug.cgi?id=203146 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Split the ImageBitmapOffscreenCanvas setting into two separate |
| settings so OffscreenCanvas can be disabled at build time. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * Shared/WebPreferences.yaml: |
| * Shared/WebPreferencesDefaultValues.h: |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): |
| * WebProcess/WebPage/WebInspectorUI.cpp: |
| (WebKit::WebInspectorUI::WebInspectorUI): |
| |
| 2019-10-25 Chris Dumez <cdumez@apple.com> |
| |
| REGRESSION(r251599): Crash in MobileSafari tests (ASSERTION FAILED: m_pendingRequestToSuspendID) |
| https://bugs.webkit.org/show_bug.cgi?id=203437 |
| <rdar://problem/56633399> |
| |
| Reviewed by Geoffrey Garen. |
| |
| * UIProcess/ProcessThrottler.cpp: |
| (WebKit::ProcessThrottler::updateAssertionIfNeeded): |
| Start the timer before sending the PrepareToSuspend IPC. The reason is that if the process has been |
| terminated, the completion handler may run synchronously and cancel the request to suspend / stop |
| the timer. Therefore, re-starting the timer after would be a mistake. |
| |
| 2019-10-25 David Kilzer <ddkilzer@apple.com> |
| |
| Unused arguments in MESSAGE_CHECK_CONTEXTID() macros |
| <https://webkit.org/b/203389> |
| <rdar://problem/55935374> |
| |
| Reviewed by Alex Christensen. |
| |
| * UIProcess/Cocoa/PlaybackSessionManagerProxy.mm: |
| (#define MESSAGE_CHECK_CONTEXTID): |
| - Rename macro argument from `contextID` to `identifier` |
| and change `contextId`to `identifier` in the body of |
| the macro so that the argument is always used. |
| (WebKit::PlaybackSessionManagerProxy::setUpPlaybackControlsManagerWithID): |
| (WebKit::PlaybackSessionManagerProxy::currentTimeChanged): |
| (WebKit::PlaybackSessionManagerProxy::bufferedTimeChanged): |
| (WebKit::PlaybackSessionManagerProxy::seekableRangesVectorChanged): |
| (WebKit::PlaybackSessionManagerProxy::canPlayFastReverseChanged): |
| (WebKit::PlaybackSessionManagerProxy::audioMediaSelectionOptionsChanged): |
| (WebKit::PlaybackSessionManagerProxy::legibleMediaSelectionOptionsChanged): |
| (WebKit::PlaybackSessionManagerProxy::audioMediaSelectionIndexChanged): |
| (WebKit::PlaybackSessionManagerProxy::legibleMediaSelectionIndexChanged): |
| (WebKit::PlaybackSessionManagerProxy::externalPlaybackPropertiesChanged): |
| (WebKit::PlaybackSessionManagerProxy::wirelessVideoPlaybackDisabledChanged): |
| (WebKit::PlaybackSessionManagerProxy::mutedChanged): |
| (WebKit::PlaybackSessionManagerProxy::volumeChanged): |
| (WebKit::PlaybackSessionManagerProxy::durationChanged): |
| (WebKit::PlaybackSessionManagerProxy::playbackStartedTimeChanged): |
| (WebKit::PlaybackSessionManagerProxy::rateChanged): |
| (WebKit::PlaybackSessionManagerProxy::pictureInPictureSupportedChanged): |
| (WebKit::PlaybackSessionManagerProxy::pictureInPictureActiveChanged): |
| (WebKit::PlaybackSessionManagerProxy::handleControlledElementIDResponse const): |
| - Change `contextID` to `contextId` to match local variable name |
| now that MESSAGE_CHECK_CONTEXTID() doesn't paper over this |
| typo for us. |
| |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.mm: |
| (#define MESSAGE_CHECK_CONTEXTID): |
| - Rename macro argument from `contextID` to `identifier` |
| and change `contextId`to `identifier` in the body of |
| the macro so that the argument is always used. |
| |
| * UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp: |
| (#define MESSAGE_CHECK_CONTEXTID): |
| - Rename macro argument and variable in the body of the |
| macro from `id` to `identifier` for consistency. |
| |
| 2019-10-25 Per Arne Vollan <pvollan@apple.com> |
| |
| [iOS] Fix sandbox violations seen while running layout tests |
| https://bugs.webkit.org/show_bug.cgi?id=203419 |
| |
| Reviewed by Brent Fulgham. |
| |
| Deny mach lookup to 'com.apple.logd' and 'com.apple.logd.events' and suppress logs, since these are |
| believed to be unneeded in the WebContent process. Allow sysctl write to 'vm.footprint_suspend'. |
| Deny mach lookup to 'com.apple.system.notification_center' and suppress logs, since allowing this |
| is not believed to be needed in the WebContent process. |
| |
| No new tests, covered by existing tests. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2019-10-25 Matt Lewis <jlewis3@apple.com> |
| |
| Rolling out r251579,r251162,r251512,r251500, and r251498 for build failures |
| and test failures |
| |
| Unreviewed rollout. |
| |
| * Platform/spi/Cocoa/NearFieldSPI.h: |
| * UIProcess/API/APIWebAuthenticationPanel.cpp: |
| (API::WebAuthenticationPanel::create): |
| (API::WebAuthenticationPanel::WebAuthenticationPanel): |
| * UIProcess/API/APIWebAuthenticationPanel.h: |
| * UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h: |
| * UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm: |
| (-[_WKWebAuthenticationPanel relyingPartyID]): |
| (wkWebAuthenticationTransport): Deleted. |
| (-[_WKWebAuthenticationPanel transports]): Deleted. |
| (wkWebAuthenticationType): Deleted. |
| (-[_WKWebAuthenticationPanel type]): Deleted. |
| * UIProcess/WebAuthentication/AuthenticatorManager.cpp: |
| (WebKit::WebCore::collectTransports): |
| (WebKit::AuthenticatorManager::handleRequest): |
| (WebKit::AuthenticatorManager::respondReceived): |
| (WebKit::AuthenticatorManager::respondReceivedInternal): |
| (WebKit::AuthenticatorManager::startDiscovery): |
| (WebKit::AuthenticatorManager::initTimeOutTimer): |
| (WebKit::AuthenticatorManager::runPanel): |
| (WebKit::AuthenticatorManager::startRequest): |
| (WebKit::AuthenticatorManager::invokePendingCompletionHandler): |
| (WebKit::WebCore::getClientDataType): Deleted. |
| (WebKit::AuthenticatorManager::serviceStatusUpdated): Deleted. |
| (WebKit::AuthenticatorManager::filterTransports const): Deleted. |
| (WebKit::AuthenticatorManager::getTransports const): Deleted. |
| (WebKit::AuthenticatorManager::restartDiscovery): Deleted. |
| * UIProcess/WebAuthentication/AuthenticatorManager.h: |
| (WebKit::AuthenticatorManager::respondReceivedInternal): Deleted. |
| * UIProcess/WebAuthentication/AuthenticatorTransportService.cpp: |
| (WebKit::AuthenticatorTransportService::startDiscovery): |
| (WebKit::AuthenticatorTransportService::restartDiscovery): Deleted. |
| * UIProcess/WebAuthentication/AuthenticatorTransportService.h: |
| (WebKit::AuthenticatorTransportService::restartDiscoveryInternal): Deleted. |
| * UIProcess/WebAuthentication/Cocoa/NfcConnection.h: |
| * UIProcess/WebAuthentication/Cocoa/NfcConnection.mm: |
| (WebKit::NfcConnection::NfcConnection): |
| (WebKit::NfcConnection::~NfcConnection): |
| (WebKit::NfcConnection::didDetectTags const): |
| (WebKit::NfcConnection::create): Deleted. |
| (WebKit::NfcConnection::stop const): Deleted. |
| (WebKit::NfcConnection::didDetectTags): Deleted. |
| (WebKit::NfcConnection::restartPolling): Deleted. |
| (WebKit::NfcConnection::startPolling): Deleted. |
| * UIProcess/WebAuthentication/Cocoa/NfcService.h: |
| * UIProcess/WebAuthentication/Cocoa/NfcService.mm: |
| (WebKit::NfcService::NfcService): |
| (WebKit::NfcService::didConnectTag): |
| (WebKit::NfcService::setDriver): |
| (WebKit::NfcService::platformStartDiscovery): |
| (WebKit::NfcService::isAvailable): Deleted. |
| (WebKit::NfcService::didDetectMultipleTags const): Deleted. |
| (WebKit::NfcService::setConnection): Deleted. |
| (WebKit::NfcService::restartDiscoveryInternal): Deleted. |
| * UIProcess/WebAuthentication/Mock/MockAuthenticatorManager.cpp: |
| (WebKit::MockAuthenticatorManager::filterTransports const): Deleted. |
| * UIProcess/WebAuthentication/Mock/MockAuthenticatorManager.h: |
| * UIProcess/WebAuthentication/Mock/MockNfcService.h: |
| * UIProcess/WebAuthentication/Mock/MockNfcService.mm: |
| (-[WKMockNFTag initWithNFTag:]): |
| (-[WKMockNFTag dealloc]): |
| (-[WKMockNFTag initWithType:]): |
| (WebKit::MockNfcService::platformStartDiscovery): |
| (WebKit::MockNfcService::detectTags const): |
| (-[WKMockNFTag tagID]): Deleted. |
| (-[WKMockNFTag initWithType:tagID:]): Deleted. |
| (WebKit::MockNfcService::receiveStopPolling): Deleted. |
| (WebKit::MockNfcService::receiveStartPolling): Deleted. |
| * UIProcess/WebAuthentication/fido/CtapNfcDriver.cpp: |
| (WebKit::CtapNfcDriver::CtapNfcDriver): |
| * UIProcess/WebAuthentication/fido/CtapNfcDriver.h: |
| * UIProcess/WebAuthentication/fido/U2fAuthenticator.cpp: |
| |
| 2019-10-24 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS 13] fast/forms/ios/accessory-bar-navigation.html is a flaky failure |
| https://bugs.webkit.org/show_bug.cgi?id=203294 |
| <rdar://problem/54520848> |
| |
| Reviewed by Tim Horton. |
| |
| Add an SPI declaration (as well as an internal-SKD-only header import) for UIKeyboardPreferencesController. |
| See Tools/ChangeLog for more details. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| |
| 2019-10-24 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Add exclusion rules to text manipulation SPI |
| https://bugs.webkit.org/show_bug.cgi?id=203398 |
| <rdar://problem/56567256> |
| |
| Reviewed by Wenson Hsieh. |
| |
| Added SPI to specify the configuration for the text manipulation (see r251574), in particular, the set of rules |
| governing which content should be excluded or included in text manipulations. |
| |
| Test: TextManipulation.StartTextManipulationExitEarlyWithoutDelegate |
| |
| * SourcesCocoa.txt: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _startTextManipulationsWithConfiguration:completion:]): Takes _WKTextManipulationConfiguration |
| as an argument. Also fixed a bug that we weren't calling the completion handler when the delegate was not set. |
| (-[WKWebView _completeTextManipulation:completion:]): |
| (-[WKWebView _startTextManipulationsWithCompletionHandler:]): Deleted. |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/API/Cocoa/_WKTextManipulationConfiguration.h: Added. |
| * UIProcess/API/Cocoa/_WKTextManipulationConfiguration.mm: Added. |
| * UIProcess/API/Cocoa/_WKTextManipulationExclusionRule.h: Added. |
| * UIProcess/API/Cocoa/_WKTextManipulationExclusionRule.mm: Added. |
| (-[_WKTextManipulationExclusionRule initExclusion:forElement:]): Added. |
| (-[_WKTextManipulationExclusionRule initExclusion:forAttribute:value:]): Added. |
| (-[_WKTextManipulationExclusionRule elementName]): Added. |
| (-[_WKTextManipulationExclusionRule attributeName]): Added. |
| (-[_WKTextManipulationExclusionRule attributeValue]): Added. |
| * UIProcess/API/Cocoa/_WKTextManipulationToken.h: Added excluded boolean property. |
| * UIProcess/API/Cocoa/_WKTextManipulationToken.mm: Removed the superflous import of RetainPtr.h |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::startTextManipulations): |
| (WebKit::WebPageProxy::completeTextManipulation): |
| * UIProcess/WebPageProxy.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::startTextManipulations): |
| (WebKit::WebPage::completeTextManipulation): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2019-10-25 Chris Dumez <cdumez@apple.com> |
| |
| [iOS][WK2] Use sendWithAsyncReply() to simplify the prepareToSuspend logic |
| https://bugs.webkit.org/show_bug.cgi?id=203422 |
| |
| Reviewed by Alex Christensen. |
| |
| Use sendWithAsyncReply() to simplify the prepareToSuspend logic and make it easier to |
| understand. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::processWillSuspendImminentlyForTestingSync): |
| (WebKit::NetworkProcess::prepareToSuspend): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _processWillSuspendImminentlyForTesting]): |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::sendPrepareToSuspend): |
| (WebKit::NetworkProcessProxy::processReadyToSuspend): Deleted. |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| * UIProcess/ProcessThrottler.cpp: |
| (WebKit::ProcessThrottler::processReadyToSuspend): |
| (WebKit::ProcessThrottler::sendPrepareToSuspendIPC): |
| * UIProcess/ProcessThrottler.h: |
| * UIProcess/ProcessThrottlerClient.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::sendPrepareToSuspend): |
| (WebKit::WebProcessProxy::processReadyToSuspend): Deleted. |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebProcessProxy.messages.in: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::prepareToSuspend): |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| |
| 2019-10-25 youenn fablet <youenn@apple.com> |
| |
| WebProcess should unregister its interest for a SWServerRegistration when all its corresponding ServiceWorkerRegistrations are destroyed |
| https://bugs.webkit.org/show_bug.cgi?id=203410 |
| |
| Reviewed by Chris Dumez. |
| |
| A SWServerRegistration is keeping a list of web processes that should be notified of change to its state. |
| Previously, WebProcesses were registering their interest to a SWServerRegistration on construction of a ServiceWorkerRegistration, |
| and unregistering their interest on destruction of a ServiceWorkerRegistration. |
| |
| This does not work in case two ServiceWorkerRegistrations are created for the same SWServerRegistration in the same WebProcess. |
| In that case, when one of the two ServiceWorkerRegistration is destroyed, the WebProcess will no longer be notified of changes to the SWServerRegistration, |
| thus breaking the second ServiceWorkerRegistration behavior. |
| |
| We introduce a map at WebProcess level to keep track of the number of ServiceWorkerRegistration created for a given SWServerRegistration. |
| |
| Covered by re-enabled tests. |
| |
| * WebProcess/Storage/WebSWClientConnection.cpp: |
| (WebKit::WebSWClientConnection::addServiceWorkerRegistrationInServer): |
| (WebKit::WebSWClientConnection::removeServiceWorkerRegistrationInServer): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::addServiceWorkerRegistration): |
| (WebKit::WebProcess::removeServiceWorkerRegistration): |
| * WebProcess/WebProcess.h: |
| |
| 2019-10-25 youenn fablet <youenn@apple.com> |
| |
| mp4 video element broken with service worker |
| https://bugs.webkit.org/show_bug.cgi?id=184447 |
| <rdar://problem/39313155> |
| |
| Reviewed by Chris Dumez. |
| |
| Make a response as range-requested as per https://fetch.spec.whatwg.org/#http-network-or-cache-fetch step 15. |
| |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::checkRedirection): |
| (WebKit::NetworkLoadChecker::validateResponse): |
| * NetworkProcess/NetworkLoadChecker.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::didReceiveResponse): |
| (WebKit::NetworkResourceLoader::didRetrieveCacheEntry): |
| |
| 2019-10-25 Chris Dumez <cdumez@apple.com> |
| |
| [iOS] Regression(r251067) WebProcesses with service workers no longer keep their network process alive |
| https://bugs.webkit.org/show_bug.cgi?id=203388 |
| <rdar://problem/56600074> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Historically, WebProcessProxy::didSetAssertionState() used to return early for service worker processes |
| because we did not want service worker processes to prevent the network process from suspending. The |
| WebProcesses using the service worker process would prevent the network process from suspending when |
| they are visible, so it would work fine. |
| |
| However, after r251067, there is no longer a concept of service worker process per se. Service workers |
| will now sometimes run in regular WebProcesses where we have pages. In such cases, didSetAssertionState() |
| would still return early and fail to keep its network process alive, even when the page(s) in this process |
| are visible on screen. |
| |
| To address the issue, we now only return early if the process has a service worker but no page. |
| This should restore pre-existing behavior. |
| |
| Note that this was causing hangs such as <rdar://problem/56245136> because the WebProcess would be |
| stuck on sync IPC to a suspended network process. |
| |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::didSetAssertionState): |
| |
| 2019-10-25 Chris Dumez <cdumez@apple.com> |
| |
| Standardize "PageID=" vs "pageID =" in release logging |
| https://bugs.webkit.org/show_bug.cgi?id=203002 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _didCommitLayerTree:]): |
| (-[WKWebView _updateVisibleContentRects]): |
| (-[WKWebView _cancelAnimatedResize]): |
| (-[WKWebView _didCompleteAnimatedResize]): |
| (-[WKWebView _beginAnimatedResizeWithUpdates:]): |
| (-[WKWebView _endAnimatedResize]): |
| (-[WKWebView _resizeWhileHidingContentWithUpdates:]): |
| * UIProcess/ProvisionalPageProxy.cpp: |
| (WebKit::ProvisionalPageProxy::ProvisionalPageProxy): |
| (WebKit::ProvisionalPageProxy::processDidTerminate): |
| (WebKit::ProvisionalPageProxy::cancel): |
| (WebKit::ProvisionalPageProxy::loadData): |
| (WebKit::ProvisionalPageProxy::loadRequest): |
| (WebKit::ProvisionalPageProxy::goToBackForwardItem): |
| (WebKit::ProvisionalPageProxy::didCreateMainFrame): |
| (WebKit::ProvisionalPageProxy::didStartProvisionalLoadForFrame): |
| (WebKit::ProvisionalPageProxy::didFailProvisionalLoadForFrame): |
| (WebKit::ProvisionalPageProxy::didCommitLoadForFrame): |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::loadResource): |
| (WebKit::WebLoaderStrategy::scheduleLoad): |
| (WebKit::WebLoaderStrategy::tryLoadingUsingURLSchemeHandler): |
| (WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess): |
| (WebKit::WebLoaderStrategy::loadResourceSynchronously): |
| * WebProcess/Network/WebResourceLoader.cpp: |
| (WebKit::WebResourceLoader::willSendRequest): |
| (WebKit::WebResourceLoader::didReceiveResponse): |
| (WebKit::WebResourceLoader::didReceiveData): |
| (WebKit::WebResourceLoader::didFinishResourceLoad): |
| (WebKit::WebResourceLoader::serviceWorkerDidNotHandle): |
| (WebKit::WebResourceLoader::didFailResourceLoad): |
| (WebKit::WebResourceLoader::didBlockAuthenticationChallenge): |
| (WebKit::WebResourceLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied): |
| (WebKit::WebResourceLoader::didReceiveResource): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad): |
| (WebKit::WebFrameLoaderClient::dispatchDidFailLoad): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::freezeLayerTree): |
| (WebKit::WebPage::unfreezeLayerTree): |
| |
| 2019-10-24 Chris Dumez <cdumez@apple.com> |
| |
| Simplify ProcessThrottler implementation |
| https://bugs.webkit.org/show_bug.cgi?id=203370 |
| |
| Reviewed by Alex Christensen. |
| |
| Simplify ProcessThrottler implementation by: |
| - Getting rid of CancelPrepareToSuspend IPC. Instead a regular ProcessDidResume IPC is sent to |
| the child process. |
| - Getting rid of the ProcessWillSuspendImminently IPC and send a regular ProcessDidResume IPC |
| with a 'isSuspensionImminent' flag instead. |
| - Whether the suspension is imminent or not, the child process now always responds with |
| a ProcessReadyToSuspend IPC. This simplifies our logic as the idea is that treating imminent |
| and non-imminent suspension should share as much of the same logic as possible. |
| - All PrepareToSuspend IPCs now have an associated identifier and the child process sends back |
| this identifier when responding with a ProcessReadyToSuspend IPC. This allows the |
| ProcessThrottler to easily ignore outdated requests to suspend, without requiring the |
| m_suspendMessageCount data member we had. |
| |
| This patch also adds more logging to ProcessThrottler and the suspension logic in the child |
| processes. All ProcessThrottler logging now also shows the child process's PID for clarity. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::processWillSuspendImminentlyForTestingSync): |
| (WebKit::NetworkProcess::prepareToSuspend): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _processWillSuspendImminentlyForTesting]): |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::sendPrepareToSuspend): |
| (WebKit::NetworkProcessProxy::processReadyToSuspend): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| * UIProcess/ProcessThrottler.cpp: |
| (WebKit::generatePrepareToSuspendRequestID): |
| (WebKit::ProcessThrottler::ProcessThrottler): |
| (WebKit::m_backgroundCounter): |
| (WebKit::ProcessThrottler::expectedAssertionState): |
| (WebKit::ProcessThrottler::updateAssertionStateNow): |
| (WebKit::ProcessThrottler::setAssertionState): |
| (WebKit::ProcessThrottler::updateAssertionIfNeeded): |
| (WebKit::ProcessThrottler::didConnectToProcess): |
| (WebKit::ProcessThrottler::prepareToSuspendTimeoutTimerFired): |
| (WebKit::ProcessThrottler::processReadyToSuspend): |
| (WebKit::ProcessThrottler::clearPendingRequestToSuspend): |
| (WebKit::ProcessThrottler::sendPrepareToSuspendIPC): |
| (WebKit::ProcessThrottler::uiAssertionWillExpireImminently): |
| * UIProcess/ProcessThrottler.h: |
| * UIProcess/ProcessThrottlerClient.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::sendPrepareToSuspend): |
| (WebKit::WebProcessProxy::processReadyToSuspend): |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebProcessProxy.messages.in: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::prepareToSuspend): |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| |
| 2019-10-23 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Add a mechanism to find and manipulate text by paragraphs |
| https://bugs.webkit.org/show_bug.cgi?id=203286 |
| |
| Reviewed by Wenson Hsieh. |
| |
| This patch introduces a new SPI to find paragraphs of text and let client replace the content of each paragraph. |
| For now, this SPI is limited to find & replace contents of main frame's document. |
| |
| WKWebView's _startTextManipulationsWithCompletionHandler sends StartTextManipulations message to WebContent process |
| to find all paragraphs in the main frame. WebContent process will send back DidFindTextManipulationItem message |
| for each paragraph, which in turn calls back _WKTextManipulationDelegate's _webView: didFindTextManipulationItem:. |
| |
| Upon receiving this delegate callback, the client can invoke WKWebView's _completeTextManipulation to replace |
| the content. It will send CompleteTextManipulation to WebContent process, which will invoke completeManipulation |
| on main frame's document's TextManipulationController. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _textManipulationDelegate]): Aded. |
| (-[WKWebView _setTextManipulationDelegate:]): Aded. |
| (-[WKWebView _startTextManipulationsWithCompletionHandler:]): |
| (-[WKWebView _completeTextManipulation:completion:]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/API/Cocoa/_WKTextManipulationDelegate.h: Added. |
| * UIProcess/API/Cocoa/_WKTextManipulationItem.h: Added. |
| * UIProcess/API/Cocoa/_WKTextManipulationItem.mm: Added. |
| (-[_WKTextManipulationItem initWithIdentifier:tokens:]): |
| (-[_WKTextManipulationItem identifier]): |
| (-[_WKTextManipulationItem tokens]): |
| * UIProcess/API/Cocoa/_WKTextManipulationToken.h: Added. |
| * UIProcess/API/Cocoa/_WKTextManipulationToken.mm: Added. |
| (-[_WKTextManipulationToken init]): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::startTextManipulations): |
| (WebKit::WebPageProxy::didFindTextManipulationItem): |
| (WebKit::WebPageProxy::completeTextManipulation): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::startTextManipulations): |
| (WebKit::WebPage::completeTextManipulation): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2019-10-24 Matt Lewis <jlewis3@apple.com> |
| |
| Unreviewed, rolling out r251558. |
| |
| This broke internal builds |
| |
| Reverted changeset: |
| |
| "Add a mechanism to find and manipulate text by paragraphs" |
| https://bugs.webkit.org/show_bug.cgi?id=203286 |
| https://trac.webkit.org/changeset/251558 |
| |
| 2019-10-24 Alex Christensen <achristensen@webkit.org> |
| |
| REGRESSION(r251409) Service worker connection should not be established without service worker entitlement |
| https://bugs.webkit.org/show_bug.cgi?id=203385 |
| <rdar://problem/37790257> |
| |
| Reviewed by Chris Dumez. |
| |
| r251409 introduced a new call to establishSWServerConnection that should have an entitlement check. |
| This was caught by a unit test in CI that is not easy to reproduce in WebKit's test. See the radar. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess): |
| |
| 2019-10-24 Brent Fulgham <bfulgham@apple.com> |
| |
| [iOS] Mismatch in com.apple.coremedia.audiodeviceclock declarations |
| https://bugs.webkit.org/show_bug.cgi?id=203367 |
| <rdar://problem/56581166> |
| |
| Reviewed by Per Arne Vollan. |
| |
| The 'common.sb' sandbox allows access to "com.apple.coremedia.audiodeviceclock.xpc", but |
| the WebContent sandbox blocked access to "com.apple.coremedia.audiodeviceclock". This means |
| we aren't blocking that endpoint. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2019-10-24 Brent Fulgham <bfulgham@apple.com> |
| |
| [iOS] Mismatch in com.apple.MediaPlayer.RemotePlayerService declarations |
| https://bugs.webkit.org/show_bug.cgi?id=203368 |
| <rdar://problem/56581152> |
| |
| Reviewed by Per Arne Vollan. |
| |
| The 'common.sb' sandbox allows access to the xpc-service-name "com.apple.MediaPlayer.RemotePlayerService", |
| but we block access to the global-name "com.apple.MediaPlayer.RemoteService". We aren't blocking |
| the right thing. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2019-10-24 Brady Eidson <beidson@apple.com> |
| |
| Expose pageZoom as API. |
| https://bugs.webkit.org/show_bug.cgi?id=203381 |
| |
| Reviewed by Andy Estes. |
| |
| No new tests (No behavior change, identical to SPI) |
| |
| * UIProcess/API/Cocoa/WKWebView.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView setPageZoom:]): |
| (-[WKWebView pageZoom]): |
| (-[WKWebView _pageZoomFactor]): |
| (-[WKWebView _setPageZoomFactor:]): |
| |
| 2019-10-23 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Add a mechanism to find and manipulate text by paragraphs |
| https://bugs.webkit.org/show_bug.cgi?id=203286 |
| |
| Reviewed by Wenson Hsieh. |
| |
| This patch introduces a new SPI to find paragraphs of text and let client replace the content of each paragraph. |
| For now, this SPI is limited to find & replace contents of main frame's document. |
| |
| WKWebView's _startTextManipulationsWithCompletionHandler sends StartTextManipulations message to WebContent process |
| to find all paragraphs in the main frame. WebContent process will send back DidFindTextManipulationItem message |
| for each paragraph, which in turn calls back _WKTextManipulationDelegate's _webView: didFindTextManipulationItem:. |
| |
| Upon receiving this delegate callback, the client can invoke WKWebView's _completeTextManipulation to replace |
| the content. It will send CompleteTextManipulation to WebContent process, which will invoke completeManipulation |
| on main frame's document's TextManipulationController. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _textManipulationDelegate]): Aded. |
| (-[WKWebView _setTextManipulationDelegate:]): Aded. |
| (-[WKWebView _startTextManipulationsWithCompletionHandler:]): |
| (-[WKWebView _completeTextManipulation:completion:]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/API/Cocoa/_WKTextManipulationDelegate.h: Added. |
| * UIProcess/API/Cocoa/_WKTextManipulationItem.h: Added. |
| * UIProcess/API/Cocoa/_WKTextManipulationItem.mm: Added. |
| (-[_WKTextManipulationItem initWithIdentifier:tokens:]): |
| (-[_WKTextManipulationItem identifier]): |
| (-[_WKTextManipulationItem tokens]): |
| * UIProcess/API/Cocoa/_WKTextManipulationToken.h: Added. |
| * UIProcess/API/Cocoa/_WKTextManipulationToken.mm: Added. |
| (-[_WKTextManipulationToken init]): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::startTextManipulations): |
| (WebKit::WebPageProxy::didFindTextManipulationItem): |
| (WebKit::WebPageProxy::completeTextManipulation): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::startTextManipulations): |
| (WebKit::WebPage::completeTextManipulation): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2019-10-24 Brent Fulgham <bfulgham@apple.com> |
| |
| Unreviewed fix after r251511. |
| |
| Some syctl names were omitted from the initial checkin. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2019-10-24 Brady Eidson <beidson@apple.com> |
| |
| Formalize PDF snapshot API. |
| https://bugs.webkit.org/show_bug.cgi?id=203374 |
| |
| Reviewed by Tim Horton. |
| |
| Covered by API tests and MiniBrowser usage. |
| |
| * SourcesCocoa.txt: |
| * UIProcess/API/Cocoa/WKPDFConfiguration.h: Added. |
| * UIProcess/API/Cocoa/WKPDFConfiguration.mm: Added. |
| (-[WKPDFConfiguration init]): |
| (-[WKPDFConfiguration copyWithZone:]): |
| |
| * UIProcess/API/Cocoa/WKWebView.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView createPDFWithConfiguration:completionHandler:]): |
| (-[WKWebView _takePDFSnapshotWithConfiguration:completionHandler:]): |
| |
| * UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.h: Unified build strikes again. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-10-24 Brent Fulgham <bfulgham@apple.com> |
| |
| [iOS] Remove 'deny' rules that do not have a corresponding 'allow' rule |
| https://bugs.webkit.org/show_bug.cgi?id=203352 |
| |
| Reviewed by Per Arne Vollan. |
| |
| Now that we no longer import 'common.sb', and have removed entries that allowed |
| services that we block, we can remove the 'deny' command. This is safe because |
| everything is denied by default. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2019-10-24 Alex Christensen <achristensen@webkit.org> |
| |
| Pass CORS-enabled schemes through WebProcess instead of having them NetworkProcess-global |
| https://bugs.webkit.org/show_bug.cgi?id=202891 |
| |
| Reviewed by Youenn Fablet. |
| |
| No change in behavior. Now the LegacySchemeRegistry is not used as much in the NetworkProcess, a step towards no use at all. |
| This functionality is currently only available through the glib API webkit_security_manager_register_uri_scheme_as_cors_enabled |
| but it has been requested in bug 201180 and bug 199064. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess): |
| (WebKit::NetworkConnectionToWebProcess::loadPing): |
| (WebKit::NetworkConnectionToWebProcess::registerURLSchemesAsCORSEnabled): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| (WebKit::NetworkConnectionToWebProcess::schemeRegistry): |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::NetworkLoadChecker): |
| (WebKit::NetworkLoadChecker::doesNotNeedCORSCheck const): |
| * NetworkProcess/NetworkLoadChecker.h: |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| (WebKit::NetworkProcess::registerURLSchemeAsCORSEnabled const): Deleted. |
| * NetworkProcess/NetworkProcess.messages.in: |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::m_shouldCaptureExtraNetworkLoadMetrics): |
| * NetworkProcess/NetworkSchemeRegistry.cpp: Added. |
| (WebKit::NetworkSchemeRegistry::registerURLSchemeAsCORSEnabled): |
| (WebKit::NetworkSchemeRegistry::shouldTreatURLSchemeAsCORSEnabled): |
| * NetworkProcess/NetworkSchemeRegistry.h: Added. |
| (WebKit::NetworkSchemeRegistry::create): |
| * NetworkProcess/PingLoad.cpp: |
| (WebKit::PingLoad::PingLoad): |
| Use nullptr, indicating that the PingLoad constructor that is used in ad click attribution should not check the custom scheme registry. |
| This is Ok because ad click attribution is only used for HTTP family schemes. |
| (WebKit::m_blobFiles): |
| * NetworkProcess/PingLoad.h: |
| * Sources.txt: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| (WebKit::WebProcessPool::registerURLSchemeAsCORSEnabled): |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeWebProcess): |
| (WebKit::WebProcess::registerURLSchemeAsCORSEnabled): |
| (WebKit::WebProcess::ensureNetworkProcessConnection): |
| (WebKit::WebProcess::registerURLSchemeAsCORSEnabled const): Deleted. |
| * WebProcess/WebProcess.h: |
| |
| 2019-10-24 Carlos Alberto Lopez Perez <clopez@igalia.com> |
| |
| [GTK][WPE] Enable runtime setting with experimental features for Server Timing API |
| https://bugs.webkit.org/show_bug.cgi?id=203295 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Enable the runtime ServerTiming by default when GTK or WPE is built |
| with experimental features enabled. |
| |
| No new tests, no change in behaviour for WTR. |
| |
| * Shared/WebPreferences.yaml: |
| * Shared/WebPreferencesDefaultValues.h: |
| |
| 2019-10-23 Chris Dumez <cdumez@apple.com> |
| |
| WebBackForwardCache::removeEntriesMatching() may re-enter and crash |
| https://bugs.webkit.org/show_bug.cgi?id=203341 |
| <rdar://problem/56553939> |
| |
| Reviewed by Geoffrey Garen. |
| |
| When WebBackForwardCache::removeEntriesMatching() was clearing the WebBackForwardListItem's |
| WebBackForwardCacheEntry, it could destroyed a SuspendedPageProxy which could shutdown a |
| WebProcess. Upon shutting down, we would try to remove WebBackForwardCache entries associated |
| with a given process, re-enter removeEntriesMatching() and crash. |
| |
| To address the issue, I made WebBackForwardCache::removeEntriesMatching() safe to re-enter. |
| We now clear the WebBackForwardListItems' WebBackForwardCacheEntries only after we're done |
| updating m_itemsWithCachedPage. |
| |
| * UIProcess/WebBackForwardCache.cpp: |
| (WebKit::WebBackForwardCache::removeEntriesMatching): |
| |
| 2019-10-23 Megan Gardner <megan_gardner@apple.com> |
| |
| Rename force-press-related functions to refer to context menus, and fix a former force-press test |
| https://bugs.webkit.org/show_bug.cgi?id=202663 |
| <rdar://problem/52699530> |
| |
| Reviewed by Dean Jackson. |
| |
| Add plumbing for contextMenu tests to function again, and rename all |
| relevant fuctions to more correctly reflect that this does not specifically |
| require a force press to activate any longer. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _didShowContextMenu]): |
| (-[WKWebView _didDismissContextMenu]): |
| (-[WKWebView _didShowForcePressPreview]): Deleted. |
| (-[WKWebView _didDismissForcePressPreview]): Deleted. |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _contextMenuInteraction:configurationForMenuAtLocation:completion:]): |
| (-[WKContentView _presentedViewControllerForPreviewItemController:]): |
| (-[WKContentView _previewItemController:didDismissPreview:committing:]): |
| (-[WKContentView _previewItemControllerDidCancelPreview:]): |
| |
| 2019-10-23 Tim Horton <timothy_horton@apple.com> |
| |
| macCatalyst: Should dispatch contextmenu event on right click |
| https://bugs.webkit.org/show_bug.cgi?id=203316 |
| <rdar://problem/54617376> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::isContextClick): |
| (WebKit::handleContextMenuEvent): |
| (WebKit::WebPage::contextMenuForKeyEvent): |
| (WebKit::handleMouseEvent): |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2019-10-23 Brent Fulgham <bfulgham@apple.com> |
| |
| [iOS] Stop including 'common.sb' |
| https://bugs.webkit.org/show_bug.cgi?id=203318 |
| |
| Reviewed by Per Arne Vollan. |
| |
| Replace the 'import' of common.sb with the equivalent statements. This is the |
| first step in a task to remove uneeded sandbox rules. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2019-10-23 Kate Cheney <katherine_cheney@apple.com> |
| |
| Implement dumpResourceLoadStatistics in SQLite ITP Database |
| https://bugs.webkit.org/show_bug.cgi?id=203224 |
| <rdar://problem/56482165> |
| |
| Reviewed by John Wilander. |
| |
| This patch implements dumpResourceLoadStatistics() in the ITP database |
| store. This function required a boolean flag isScheduledForWebsiteDataRemoval that |
| now must be stored in the database, resulting in a small schema change. |
| |
| Because of the schema change, this patch also compares any existing |
| database file against the new schema, and deletes the existing file if the schema is |
| not current. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: |
| The logic for topFrameLinkDecorationsFromQuery was the opposite |
| of all other "xyzFrom" queries. When merging data from the memory |
| store, the load statistic being inserted holds a list of topFrames |
| which it has been redirected to from. I think it makes more sense |
| to also organize the table this way. |
| |
| (WebKit::ObservedDomainsTableSchemaV1): |
| (WebKit::ObservedDomainsTableSchemaV1Alternate): |
| For support on both iOS and MacOS, there are two CREATE TABLE queries |
| to compare to, depending on whether the query result contains quotes |
| around the table name. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::ResourceLoadStatisticsDatabaseStore): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::openITPDatabase): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::openAndDropOldDatabaseIfNecessary): |
| The code to check for the current schema was adapted from SQLiteIDBBackingStore.cpp |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::prepareStatements): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::insertObservedDomain): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::ensureAndMakeDomainList): |
| The previous naming of the list parameter in this function was |
| confusing because it is used by many different relationships not just |
| subframes under top frames. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::insertDomainRelationshipList): |
| topFrameLinkDecorationsFrom were never inserted into the database. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::insertDomainRelationships): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::merge): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::mergeStatistic): |
| Since the statement to get all data for a given domain is now used in |
| multiple places, I stored the query as a constexpr auto. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::logCrossSiteLoadWithLinkDecoration): |
| Matched the memory store functionality, which calls the boolean |
| "gotLinkDecorationFromPrevalentResource." I thought isScheduledForWebsiteDataRemoval |
| would be more clear of a name, because this flag gets cleared even when |
| prevalent top frame link decorations for this domain still exist in the table. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::dumpResourceLoadStatistics): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::setIsScheduledForWebsiteDataRemoval): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::prevalentDomains): Deleted. |
| (WebKit::ResourceLoadStatisticsDatabaseStore::domains): |
| To match memory store functionality, the check for website data to |
| delete should check all domains, not just prevalent ones. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::hasHadUnexpiredRecentUserInteraction): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::shouldRemoveAllWebsiteDataFor): |
| This now needs to check if the resource is prevalent, because it is |
| no longer guaranteed. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::shouldRemoveAllButCookiesFor): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::registrableDomainsToRemoveWebsiteDataFor): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::getDomainStringFromDomainID): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::getSubStatisticStatement): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::appendSubStatisticList): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::resourceToString): |
| This functionality matches the toString function in |
| ResourceLoadStatistics.cpp. |
| |
| (WebKit::CompletionHandler<void): |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h: |
| |
| 2019-10-23 Yury Semikhatsky <yurys@chromium.org> |
| |
| Web Inspector: notify inspector when provisional page is created, committed and destroyed |
| https://bugs.webkit.org/show_bug.cgi?id=202704 |
| |
| Reviewed by Devin Rousso. |
| |
| Target.targetCreated event is now generated for provisional pages as well as for regular |
| ones. This is the first step toward reattaching inspector earlier during PSON. In the future |
| if debugging is in progress the provisional target (page) will be paused until a signal from |
| inspector frontend. This will enable the frontend configure all agents before navigation starts. |
| |
| * Sources.txt: |
| * UIProcess/API/APIWebAuthenticationPanel.cpp: |
| (API::WebAuthenticationPanel::WebAuthenticationPanel): Added explicit namespace specifier |
| to the constructor's argument as otherwise compilation fails due to conflict between API::String |
| and WTF::String. |
| |
| * UIProcess/InspectorTargetProxy.cpp: |
| (WebKit::InspectorTargetProxy::create): |
| (WebKit::InspectorTargetProxy::connect): |
| (WebKit::InspectorTargetProxy::disconnect): |
| (WebKit::InspectorTargetProxy::sendMessageToTargetBackend): |
| (WebKit::InspectorTargetProxy::didCommitProvisionalTarget): |
| (WebKit::InspectorTargetProxy::isProvisional const): |
| (WebKit::InspectorTargetProxy::previousTargetID const): |
| * UIProcess/InspectorTargetProxy.h: Target proxy can start as a provisional target (with a pointer to |
| ProvisionalPageProxy) and later either be committed or destroyed. |
| |
| * UIProcess/ProvisionalPageProxy.cpp: |
| (WebKit::ProvisionalPageProxy::ProvisionalPageProxy): |
| (WebKit::ProvisionalPageProxy::~ProvisionalPageProxy): |
| (WebKit::ProvisionalPageProxy::didReceiveMessage): Forward inspector messages to parent page's WebPageInspectorController. |
| Since each WebPage has a unique identifier the target ids will be globally unique and there is no risk of collisions. |
| |
| * UIProcess/ProvisionalPageProxy.h: |
| (WebKit::ProvisionalPageProxy::page const): |
| * UIProcess/WebPageInspectorController.cpp: |
| (WebKit::getTargetID): |
| (WebKit::WebPageInspectorController::WebPageInspectorController): |
| (WebKit::WebPageInspectorController::clearTargets): |
| (WebKit::WebPageInspectorController::createInspectorTarget): |
| (WebKit::WebPageInspectorController::destroyInspectorTarget): |
| (WebKit::WebPageInspectorController::didCreateProvisionalPage): |
| (WebKit::WebPageInspectorController::didDestroyProvisionalPage): |
| (WebKit::WebPageInspectorController::didCommitProvisionalPage): |
| (WebKit::WebPageInspectorController::addTarget): |
| * UIProcess/WebPageInspectorController.h: |
| * UIProcess/WebPageInspectorTargetAgent.cpp: Removed. Merged this agent into InspectorTargetAgent. |
| * UIProcess/WebPageInspectorTargetAgent.h: Removed. |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::m_resetRecentCrashCountTimer): |
| (WebKit::WebPageProxy::finishAttachingToWebProcess): |
| (WebKit::WebPageProxy::commitProvisionalPage): |
| * UIProcess/WebPageProxy.h: Moved the target management logic into WebPageInspectorController. |
| WebPageProxy/ProvisionalPageProxy are expected to notifiy it about key lifecycle events and also |
| forward to it messages from inspector in the inspected WebProcess. How it translates to Target |
| events is inspector's business. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebPage/WebPageInspectorTarget.cpp: |
| (WebKit::WebPageInspectorTarget::identifier const): |
| (WebKit::WebPageInspectorTarget::connect): |
| (WebKit::WebPageInspectorTarget::disconnect): |
| (WebKit::WebPageInspectorTarget::toTargetID): |
| * WebProcess/WebPage/WebPageInspectorTarget.h: Made the target own frontend channel instance as it's the |
| only place where the page specific channel is used. |
| |
| * WebProcess/WebPage/WebPageInspectorTargetController.cpp: |
| (WebKit::WebPageInspectorTargetController::removeTarget): |
| (WebKit::WebPageInspectorTargetController::connectInspector): |
| (WebKit::WebPageInspectorTargetController::disconnectInspector): |
| * WebProcess/WebPage/WebPageInspectorTargetController.h: |
| * WebProcess/WebPage/WebPageInspectorTargetFrontendChannel.cpp: |
| (WebKit::WebPageInspectorTargetFrontendChannel::WebPageInspectorTargetFrontendChannel): |
| (WebKit::WebPageInspectorTargetFrontendChannel::sendMessageToFrontend): |
| * WebProcess/WebPage/WebPageInspectorTargetFrontendChannel.h: The channel's lifetime is managed by owning |
| target. No need to reference count it. |
| |
| 2019-10-22 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthn] Supply FrameInfo in -[WKUIDelegatePrivate _webView:runWebAuthenticationPanel:initiatedByFrame:completionHandler:] |
| https://bugs.webkit.org/show_bug.cgi?id=202563 |
| <rdar://problem/55973968> |
| |
| Reviewed by Brent Fulgham. |
| |
| This patch makes WKFrameInfo available to clients via the above SPI. To do so, |
| SecuirtyOrigin of the caller document is passed from WebContent Process. |
| |
| * UIProcess/API/APIUIClient.h: |
| (API::UIClient::runWebAuthenticationPanel): |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetPageUIClient): |
| * UIProcess/Cocoa/UIDelegate.h: |
| * UIProcess/Cocoa/UIDelegate.mm: |
| (WebKit::UIDelegate::UIClient::runWebAuthenticationPanel): |
| * UIProcess/WebAuthentication/AuthenticatorManager.cpp: |
| (WebKit::AuthenticatorManager::runPanel): |
| * UIProcess/WebAuthentication/WebAuthenticationRequestData.h: |
| * UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp: |
| (WebKit::WebAuthenticatorCoordinatorProxy::makeCredential): |
| (WebKit::WebAuthenticatorCoordinatorProxy::getAssertion): |
| (WebKit::WebAuthenticatorCoordinatorProxy::handleRequest): |
| * UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.h: |
| * UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.messages.in: |
| * WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp: |
| (WebKit::WebAuthenticatorCoordinator::makeCredential): |
| (WebKit::WebAuthenticatorCoordinator::getAssertion): |
| * WebProcess/WebAuthentication/WebAuthenticatorCoordinator.h: |
| |
| 2019-10-23 Andy Estes <aestes@apple.com> |
| |
| [Quick Look] Rename PreviewLoader{,Client} to LegacyPreviewLoader{,Client} |
| https://bugs.webkit.org/show_bug.cgi?id=203306 |
| |
| Reviewed by Tim Horton. |
| |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: |
| * WebProcess/WebCoreSupport/ios/WebFrameLoaderClientIOS.mm: |
| (WebKit::WebFrameLoaderClient::createPreviewLoaderClient): |
| * WebProcess/WebCoreSupport/ios/WebPreviewLoaderClient.h: |
| |
| 2019-10-22 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| Unreviewed build fix for non-unified source builds |
| https://bugs.webkit.org/show_bug.cgi?id=203055 |
| <rdar://problem/56504295> |
| |
| * WebProcess/Storage/WebServiceWorkerProvider.cpp: Added #include <WebCore/RuntimeEnabledFeatures.h>. |
| |
| 2019-10-22 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics (experimental): Block all third-party cookies |
| https://bugs.webkit.org/show_bug.cgi?id=203266 |
| <rdar://problem/56512858> |
| |
| Reviewed by Alex Christensen. |
| |
| This change updates the experimental change in |
| <https://trac.webkit.org/changeset/251213> to block all |
| third-party cookies, regardless of user interaction with |
| the first-party website. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::setShouldBlockThirdPartyCookiesForTesting): |
| * NetworkProcess/NetworkSessionCreationParameters.cpp: |
| (WebKit::NetworkSessionCreationParameters::encode const): |
| (WebKit::NetworkSessionCreationParameters::decode): |
| * NetworkProcess/NetworkSessionCreationParameters.h: |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| * Shared/WebPreferences.yaml: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| |
| 2019-10-22 Tim Horton <timothy_horton@apple.com> |
| |
| Make it possible to not include IPC Messages headers in other headers |
| https://bugs.webkit.org/show_bug.cgi?id=203074 |
| |
| * Scripts/webkit/messages_unittest.py: |
| (GeneratedFileContentsTest.assertHeaderEqual): |
| (GeneratedFileContentsTest.assertImplementationEqual): |
| (UnsupportedPrecompilerDirectiveTest.test_error_at_else): |
| (UnsupportedPrecompilerDirectiveTest.test_error_at_elif): |
| Fix the message generator unit tests. |
| |
| 2019-10-22 Alex Christensen <achristensen@webkit.org> |
| |
| Re-enable legacy TLS by default, keep runtime switch |
| https://bugs.webkit.org/show_bug.cgi?id=203253 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeNetworkProcess): |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| |
| 2019-10-22 Alex Christensen <achristensen@webkit.org> |
| |
| Revert r243010 on pre-Catalina macOS |
| https://bugs.webkit.org/show_bug.cgi?id=203265 |
| <rdar://problem/55570995> |
| |
| Reviewed by Per Arne Vollan. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2019-10-22 Tim Horton <timothy_horton@apple.com> |
| |
| Update xcfilelists |
| |
| * DerivedSources-output.xcfilelist: |
| |
| 2019-10-22 Tim Horton <timothy_horton@apple.com> |
| |
| Make it possible to not include IPC Messages headers in other headers |
| https://bugs.webkit.org/show_bug.cgi?id=203074 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Make the Messages generator generate a new -MessagesReplies.h file, which |
| only includes headers for and definitions of DelayedReply/AsyncReply types, |
| which need to be mentioned as arguments to message hander methods, and |
| thus must be available in various headers throughout the project. |
| |
| In order to do this, we have to de-nest them from the primary message |
| class, but we then 'using' them back into place inside the message class |
| so that most of the code doesn't need to change. |
| |
| This helps to wildly decrease the header load of WebPage.h and WebPageProxy.h, |
| especially, because the number of headers needed for types in their replies |
| is much smaller than the number needed for all message receivers. |
| |
| Also, only invoke the Messages generator once per source file, and |
| only parse the source file once, generating all three output files |
| in one invocation. |
| |
| And then clean up all the missing indirect includes that we lost by doing this. |
| |
| All-in-all this is worth roughly 8% on the WebKit2 Build Time Benchmark. |
| |
| * CMakeLists.txt: |
| * DerivedSources-input.xcfilelist: |
| * DerivedSources.make: |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| * NetworkProcess/NetworkResourceLoader.h: |
| * PluginProcess/PluginControllerProxy.cpp: |
| * PluginProcess/PluginControllerProxy.h: |
| * PluginProcess/WebProcessConnection.h: |
| * Scripts/Makefile: |
| * Scripts/generate-message-receiver.py: |
| (main): |
| * Scripts/generate-messages-header.py: Removed. |
| * Scripts/webkit/LegacyMessageReceiver-expected.cpp: |
| * Scripts/webkit/LegacyMessages-expected.h: |
| * Scripts/webkit/LegacyMessagesReplies-expected.h: Added. |
| * Scripts/webkit/MessageReceiver-expected.cpp: |
| * Scripts/webkit/MessageReceiverSuperclass-expected.cpp: |
| * Scripts/webkit/Messages-expected.h: |
| * Scripts/webkit/MessagesReplies-expected.h: Added. |
| * Scripts/webkit/MessagesRepliesSuperclassReplies-expected.h: Added. |
| * Scripts/webkit/MessagesSuperclass-expected.h: |
| * Scripts/webkit/messages.py: |
| * UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp: |
| * UIProcess/Cocoa/UserMediaCaptureManagerProxy.h: |
| * UIProcess/Downloads/DownloadProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Plugins/PluginProcessManager.cpp: |
| * UIProcess/Plugins/PluginProcessManager.h: |
| * UIProcess/Plugins/PluginProcessProxy.h: |
| * UIProcess/ProvisionalPageProxy.h: |
| * UIProcess/SuspendedPageProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebProcessPool.cpp: |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/ios/WKContentView.mm: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| * WebProcess/Storage/WebSWContextManagerConnection.h: |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| * WebProcess/cocoa/VideoFullscreenManager.h: |
| * WebProcess/cocoa/VideoFullscreenManager.mm: |
| |
| 2019-10-22 Chris Dumez <cdumez@apple.com> |
| |
| Simplify "Unexpectedly Resumed" assertion handling |
| https://bugs.webkit.org/show_bug.cgi?id=203254 |
| |
| Reviewed by Geoffrey Garen. |
| |
| When the WebContent process gets resumed from suspension, it now unconditionally takes a |
| process assertion on behalf on the UIProcess and sends a ProcessDidResume IPC to the |
| UIProcess. The UIProcess then sends a DidHandleProcessWasResumed IPC back after handing |
| the ProcessDidResume IPC allowing the WebContent process to release its assertion on |
| behalf on the UIProcess. |
| |
| The previous code was racy because it relied on the m_processIsSuspended flag, which was |
| queried and set from different threads. Also, the 'unexpectedly resumed' naming was |
| confusing since we'd often take this assertion whenever the WebProcess got resumed, |
| wether unexpected or not, simply because the processTaskStateDidChange IPC won the race |
| with the ProcessDidResume IPC from the UIProcess. |
| |
| * UIProcess/Cocoa/WebProcessProxyCocoa.mm: |
| (WebKit::WebProcessProxy::processWasResumed): |
| (WebKit::WebProcessProxy::processWasUnexpectedlyUnsuspended): Deleted. |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebProcessProxy.messages.in: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::processDidResume): |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::processTaskStateDidChange): |
| (WebKit::WebProcess::didHandleProcessWasResumed): |
| |
| 2019-10-22 youenn fablet <youenn@apple.com> |
| |
| Remove mayHaveServiceWorkerRegisteredForOrigin |
| https://bugs.webkit.org/show_bug.cgi?id=203055 |
| |
| Reviewed by Alex Christensen. |
| |
| This optimization was used for ensuring we would not create a storage process when no service worker registration is stored on disk. |
| Now that we do not have a storage process and we are doing registration matching direclty in network process, we can safely remove that optimization. |
| We also move the throttle state handling in WK2 layer. This allows us to not create a network process connection to update throttle state until |
| there is a network process connection. This allows continuing passing an API test checking network process connections after crashes. |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::creationParameters): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess): |
| (WebKit::WebProcessPool::updateServiceWorkerUserAgent): |
| * UIProcess/WebProcessPool.h: |
| * WebProcess/Network/NetworkProcessConnection.h: |
| * WebProcess/Storage/WebSWClientConnection.h: |
| * WebProcess/Storage/WebServiceWorkerProvider.cpp: |
| (WebKit::WebServiceWorkerProvider::serviceWorkerConnection): |
| (WebKit::WebServiceWorkerProvider::updateThrottleState): |
| * WebProcess/Storage/WebServiceWorkerProvider.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_textAutoSizingAdjustmentTimer): |
| (WebKit::WebPage::updateThrottleState): |
| |
| 2019-10-22 Yury Semikhatsky <yurys@chromium.org> |
| |
| [GTK] Web Inspector: add an option for disabling minification and concatenation of inspector UI in release build |
| https://bugs.webkit.org/show_bug.cgi?id=203201 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Allow passing COMBINE_INSPECTOR_RESOURCES and COMBINE_TEST_RESOURCES as cmake arguments. This |
| enables to avoid minification of Web Inspector scripts in release binaries which is very |
| convenient during inspector UI development. |
| |
| * InspectorGResources.cmake: |
| |
| 2019-10-22 Adrian Perez de Castro <aperez@igalia.com> |
| |
| [GTK][WPE] Fix non-unified builds after r251326 |
| https://bugs.webkit.org/show_bug.cgi?id=203244 |
| |
| Reviewed by Youenn Fablet. |
| |
| * Shared/UserData.cpp: Add missing inclusion of WebCoreArgumentCoders.h |
| * UIProcess/Automation/SimulatedInputDispatcher.cpp: Add missing inclusion of wtf/Variant.h |
| * UIProcess/ProvisionalPageProxy.h: Add missing inclusion of WebCore/ResourceRequest.h |
| * UIProcess/WebTextChecker.cpp: Add missing inclusion of WebPageProxy.h |
| * WebProcess/Databases/WebDatabaseProvider.cpp: Add missing inclusion of WebIDBConnectionToServer.h |
| |
| 2019-10-22 youenn fablet <youenn@apple.com> |
| |
| WebSWServerToContextConnection should not assert when failing loads at destruction time |
| https://bugs.webkit.org/show_bug.cgi?id=203243 |
| |
| Reviewed by Alex Christensen. |
| |
| On WebSWServerToContextConnection destruction, we move the fetch task map and fail the tasks. |
| At destruction of the tasks, which happens synchronously, they will try to unregister themselves |
| and the assertion that the task is in the map will fail. |
| To fix that, add a specific contextClosed method that will clear the task connection weak pointer. |
| |
| * NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp: |
| (WebKit::ServiceWorkerFetchTask::contextClosed): |
| * NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h: |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp: |
| (WebKit::WebSWServerToContextConnection::~WebSWServerToContextConnection): |
| |
| 2019-10-22 youenn fablet <youenn@apple.com> |
| |
| ServiceWorkerFetchTask can use the NetworkConnectionToWebProcess sessionID |
| https://bugs.webkit.org/show_bug.cgi?id=202208 |
| |
| Reviewed by Alex Christensen. |
| |
| No need to store the sessionID in ServiceWorkerFetchTask since we can get it from its loader. |
| |
| * NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp: |
| (WebKit::ServiceWorkerFetchTask::ServiceWorkerFetchTask): |
| * NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h: |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::createFetchTask): |
| |
| 2019-10-22 youenn fablet <youenn@apple.com> |
| |
| Remove the ability to fallback to custom scheme handlers after a service worker did not handle the load |
| https://bugs.webkit.org/show_bug.cgi?id=203239 |
| |
| Reviewed by Alex Christensen. |
| |
| We remove the ability for service workers to intercept custom scheme handlers. |
| We can then remove the ability for loads that are not handled by service workers to go through custom scheme handlers. |
| |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::scheduleLoad): |
| (WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess): |
| * WebProcess/Network/WebResourceLoader.cpp: |
| (WebKit::WebResourceLoader::serviceWorkerDidNotHandle): |
| |
| 2019-10-22 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Update OptionsGTK.cmake and NEWS for 2.27.2 release |
| |
| * gtk/NEWS: Add release notes for 2.27.2. |
| |
| 2019-10-21 Yusuke Suzuki <ysuzuki@apple.com> |
| |
| [JSC] Thread JSGlobalObject* instead of ExecState* |
| https://bugs.webkit.org/show_bug.cgi?id=202392 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * WebProcess/InjectedBundle/API/glib/WebKitFrame.cpp: |
| (webkit_frame_get_js_value_for_dom_object_in_script_world): |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::reportException): |
| (WebKit::InjectedBundle::createWebDataFromUint8Array): |
| * WebProcess/Plugins/Netscape/JSNPMethod.cpp: |
| (WebKit::callMethod): |
| * WebProcess/Plugins/Netscape/JSNPMethod.h: |
| * WebProcess/Plugins/Netscape/JSNPObject.cpp: |
| (WebKit::JSNPObject::callMethod): |
| (WebKit::JSNPObject::callObject): |
| (WebKit::JSNPObject::callConstructor): |
| (WebKit::callNPJSObject): |
| (WebKit::constructWithConstructor): |
| (WebKit::JSNPObject::getOwnPropertySlot): |
| (WebKit::JSNPObject::put): |
| (WebKit::JSNPObject::deleteProperty): |
| (WebKit::JSNPObject::deletePropertyByIndex): |
| (WebKit::JSNPObject::getOwnPropertyNames): |
| (WebKit::JSNPObject::propertyGetter): |
| (WebKit::JSNPObject::methodGetter): |
| (WebKit::JSNPObject::throwInvalidAccessError): |
| * WebProcess/Plugins/Netscape/JSNPObject.h: |
| * WebProcess/Plugins/Netscape/NPJSObject.cpp: |
| (WebKit::identifierFromIdentifierRep): |
| (WebKit::NPJSObject::hasMethod): |
| (WebKit::NPJSObject::invoke): |
| (WebKit::NPJSObject::invokeDefault): |
| (WebKit::NPJSObject::hasProperty): |
| (WebKit::NPJSObject::getProperty): |
| (WebKit::NPJSObject::setProperty): |
| (WebKit::NPJSObject::removeProperty): |
| (WebKit::NPJSObject::enumerate): |
| (WebKit::NPJSObject::construct): |
| * WebProcess/Plugins/Netscape/NPJSObject.h: |
| * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp: |
| (WebKit::NPRuntimeObjectMap::convertNPVariantToJSValue): |
| (WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant): |
| (WebKit::NPRuntimeObjectMap::evaluate): |
| (WebKit::NPRuntimeObjectMap::moveGlobalExceptionToExecState): |
| (WebKit::NPRuntimeObjectMap::globalExec const): Deleted. |
| * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.h: |
| * WebProcess/Plugins/PluginView.cpp: |
| (WebKit::PluginView::performJavaScriptURLRequest): |
| * WebProcess/WebPage/WebFrame.cpp: |
| (WebKit::WebFrame::jsContext): |
| (WebKit::WebFrame::jsContextForWorld): |
| (WebKit::WebFrame::frameForContext): |
| (WebKit::WebFrame::jsWrapperForWorld): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::freezeLayerTree): |
| (WebKit::WebPage::unfreezeLayerTree): |
| (WebKit::WebPage::runJavaScript): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::networkProcessConnectionClosed): |
| |
| 2019-10-22 Carlos Alberto Lopez Perez <clopez@igalia.com> |
| |
| [GTK][WPE] Enable service workers by default |
| https://bugs.webkit.org/show_bug.cgi?id=200815 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Flip the run-time switch to be enabled by default and not only |
| when building with experimental features enabled. |
| |
| * Shared/WebPreferencesDefaultValues.h: |
| |
| 2019-10-22 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] C++ comments used in C header files |
| https://bugs.webkit.org/show_bug.cgi?id=203191 |
| |
| Reviewed by Žan Doberšek. |
| |
| * UIProcess/API/gtk/WebKitAutocleanups.h: |
| * UIProcess/API/gtk/WebKitDefines.h: |
| * UIProcess/API/gtk/WebKitForwardDeclarations.h: |
| * UIProcess/API/gtk/WebKitWebViewBase.h: |
| * UIProcess/API/wpe/WebKitAutocleanups.h: |
| * UIProcess/API/wpe/WebKitDefines.h: |
| * WebProcess/InjectedBundle/API/gtk/WebKitWebEditor.h: |
| * WebProcess/InjectedBundle/API/gtk/WebKitWebExtensionAutocleanups.h: |
| * WebProcess/InjectedBundle/API/wpe/WebKitWebEditor.h: |
| * WebProcess/InjectedBundle/API/wpe/WebKitWebExtensionAutocleanups.h: |
| |
| 2019-10-22 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| imported/w3c/web-platform-tests/clipboard-apis/async-navigator-clipboard-basics.https.html is flaky |
| https://bugs.webkit.org/show_bug.cgi?id=203181 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Add a changeCount argument to informationForItemAtIndex and allPasteboardItemInfo, and also make then return |
| optional values; also, adjust changeCount to be an `int64_t` in a few places. See WebCore ChangeLog for more |
| details. |
| |
| * UIProcess/Cocoa/WebPasteboardProxyCocoa.mm: |
| (WebKit::WebPasteboardProxy::pasteboardCopy): |
| (WebKit::WebPasteboardProxy::getPasteboardChangeCount): |
| (WebKit::WebPasteboardProxy::addPasteboardTypes): |
| (WebKit::WebPasteboardProxy::setPasteboardTypes): |
| (WebKit::WebPasteboardProxy::setPasteboardURL): |
| (WebKit::WebPasteboardProxy::setPasteboardColor): |
| (WebKit::WebPasteboardProxy::setPasteboardStringForType): |
| (WebKit::WebPasteboardProxy::setPasteboardBufferForType): |
| (WebKit::WebPasteboardProxy::writeCustomData): |
| (WebKit::WebPasteboardProxy::allPasteboardItemInfo): |
| (WebKit::WebPasteboardProxy::informationForItemAtIndex): |
| * UIProcess/WebPasteboardProxy.cpp: |
| (WebKit::WebPasteboardProxy::allPasteboardItemInfo): |
| (WebKit::WebPasteboardProxy::informationForItemAtIndex): |
| * UIProcess/WebPasteboardProxy.h: |
| * UIProcess/WebPasteboardProxy.messages.in: |
| * WebProcess/Plugins/PDF/PDFPlugin.mm: |
| (WebKit::PDFPlugin::writeItemsToPasteboard): |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: |
| (WebKit::WebPlatformStrategies::changeCount): |
| (WebKit::WebPlatformStrategies::addTypes): |
| (WebKit::WebPlatformStrategies::setTypes): |
| (WebKit::WebPlatformStrategies::setBufferForType): |
| (WebKit::WebPlatformStrategies::setURL): |
| (WebKit::WebPlatformStrategies::setColor): |
| (WebKit::WebPlatformStrategies::setStringForType): |
| (WebKit::WebPlatformStrategies::writeCustomData): |
| (WebKit::WebPlatformStrategies::allPasteboardItemInfo): |
| (WebKit::WebPlatformStrategies::informationForItemAtIndex): |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.h: |
| |
| 2019-10-21 Daniel Bates <dabates@apple.com> |
| |
| Add some PencilKit extension points |
| https://bugs.webkit.org/show_bug.cgi?id=202962 |
| <rdar://problem/56269759> |
| |
| Reviewed by Andy Estes. |
| |
| This is the WebKit part corresponding to <rdar://problem/56261392>. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView setupInteraction]): Call extension point. |
| (-[WKContentView cleanupInteraction]): Ditto. |
| |
| 2019-10-21 Matt Lewis <jlewis3@apple.com> |
| |
| Unreviewed, rolling out r251381. |
| |
| This broke an internal build. |
| |
| Reverted changeset: |
| |
| "Add some PencilKit extension points" |
| https://bugs.webkit.org/show_bug.cgi?id=202962 |
| https://trac.webkit.org/changeset/251381 |
| |
| 2019-10-21 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| [Cocoa] Move ui-serif, ui-monospaced, and ui-rounded out from behind SPI |
| https://bugs.webkit.org/show_bug.cgi?id=203129 |
| |
| Reviewed by Tim Horton. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences _shouldAllowDesignSystemUIFonts]): Deleted. |
| (-[WKPreferences _setShouldAllowDesignSystemUIFonts:]): Deleted. |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: |
| |
| 2019-10-21 youenn fablet <youenn@apple.com> |
| |
| Move service worker registration matching for navigation loads to network process |
| https://bugs.webkit.org/show_bug.cgi?id=203144 |
| |
| Reviewed by Chris Dumez. |
| |
| Create a WebSWServerConnection whenever receiving a load request in NetworkProcess. |
| This connection is used to check for service worker registration in case of navigation loads. |
| Similarly, we create a WebSWClientConnection whenever WebProcess needs it, including when receiving WebSWClientConnection messages from NetworkProcess. |
| This for instance happens when service worker registration import is complete to fill the shared registration origin store. |
| |
| Delay loads until SWServer has finished importing its registrations. |
| This is needed since we might otherwise not intercept loads that could be intercepted. |
| Waiting for importing registrations was previously ensured by WebProcess getting a matching registration in DocumentLoader. |
| |
| NetworkResourceLoader is now checking for service worker interception in case of redirections for navigations. |
| This is needed as redirections could end up using a new registration. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess): |
| (WebKit::NetworkConnectionToWebProcess::scheduleResourceLoad): |
| (WebKit::NetworkConnectionToWebProcess::establishSWServerConnection): |
| (WebKit::NetworkConnectionToWebProcess::swConnection): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::continueWillSendRequest): |
| (WebKit::NetworkResourceLoader::startWithServiceWorker): |
| (WebKit::NetworkResourceLoader::serviceWorkerDidNotHandle): |
| * NetworkProcess/NetworkResourceLoader.h: |
| * NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp: |
| (WebKit::ServiceWorkerFetchTask::ServiceWorkerFetchTask): |
| (WebKit::ServiceWorkerFetchTask::start): |
| (WebKit::ServiceWorkerFetchTask::startFetch): |
| (WebKit::ServiceWorkerFetchTask::continueFetchTaskWith): |
| * NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h: |
| (WebKit::ServiceWorkerFetchTask::takeRequest): |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::controlClient): |
| (WebKit::WebSWServerConnection::createFetchTask): |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.h: |
| * WebProcess/Network/NetworkProcessConnection.cpp: |
| (WebKit::NetworkProcessConnection::didReceiveMessage): |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::scheduleLoad): |
| * WebProcess/Storage/WebSWClientConnection.cpp: |
| (WebKit::WebSWClientConnection::WebSWClientConnection): |
| (WebKit::WebSWClientConnection::registrationReady): |
| (WebKit::WebSWClientConnection::documentIsControlled): |
| * WebProcess/Storage/WebSWClientConnection.h: |
| * WebProcess/Storage/WebSWClientConnection.messages.in: |
| |
| 2019-10-21 Sihui Liu <sihui_liu@apple.com> |
| |
| Remove IDBBackingStoreTemporaryFileHandler |
| https://bugs.webkit.org/show_bug.cgi?id=203128 |
| |
| Reviewed by Alex Christensen. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::createIDBServer): |
| (WebKit::NetworkProcess::accessToTemporaryFileComplete): Deleted. |
| * NetworkProcess/NetworkProcess.h: |
| |
| 2019-10-21 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Update cookie blocking in NetworkStorageSession after first user interaction |
| https://bugs.webkit.org/show_bug.cgi?id=203195 |
| <rdar://problem/56464567> |
| |
| Reviewed by Alex Christensen and Chris Dumez. |
| |
| This change makes sure that the state of cookie blocking in |
| WebCore:: NetworkStorageSession is immediately updated if the logged |
| user interaction was new for this domain. It adds a completion |
| handler to WebResourceLoadStatisticsStore::logUserInteraction() so |
| that the call properly waits for everything to be updated. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: |
| (WebKit::CompletionHandler<void): |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h: |
| * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ResourceLoadStatisticsMemoryStore::logUserInteraction): |
| * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h: |
| * NetworkProcess/Classifier/ResourceLoadStatisticsStore.h: |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::logUserInteraction): |
| |
| 2019-10-21 Dean Jackson <dino@apple.com> |
| |
| Dispatch AR event on the originating anchor element |
| https://bugs.webkit.org/show_bug.cgi?id=203198 |
| <rdar://55743929> |
| |
| Reviewed by Simon Fraser. |
| |
| Use the ElementContext on SystemPreviewInfo. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _triggerSystemPreviewActionOnElement:frame:page:]): |
| (-[WKWebView _triggerSystemPreviewActionOnFrame:page:]): Deleted. |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: |
| * UIProcess/SystemPreviewController.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::systemPreviewActionTriggered): |
| |
| 2019-10-21 Dean Jackson <dino@apple.com> |
| |
| Move ElementContext from WebKit to WebCore |
| https://bugs.webkit.org/show_bug.cgi?id=203210 |
| <rdar://problem/56475682> |
| |
| Reviewed by Simon Fraser. |
| |
| * Scripts/webkit/messages.py: |
| * Shared/DocumentEditingContext.h: |
| * Shared/DocumentEditingContext.mm: |
| (IPC::ArgumentCoder<WebKit::DocumentEditingContextRequest>::decode): |
| * Shared/ElementContext.cpp: Removed. |
| * Shared/ElementContext.h: Removed. |
| * Shared/WebPreferencesDefaultValues.cpp: |
| (WebKit::defaultCSSOMViewScrollingAPIEnabled): |
| * Shared/WebsitePoliciesData.cpp: |
| (WebKit::WebsitePoliciesData::decode): |
| * Shared/ios/InteractionInformationAtPosition.h: |
| * Sources.txt: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _requestTextInputContextsInRect:completionHandler:]): |
| * UIProcess/API/Cocoa/_WKTextInputContext.mm: |
| (-[_WKTextInputContext _initWithTextInputContext:]): |
| (-[_WKTextInputContext _textInputContext]): |
| * UIProcess/API/Cocoa/_WKTextInputContextInternal.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::textInputContextsInRect): |
| (WebKit::WebPageProxy::focusTextInputContext): |
| * UIProcess/WebPageProxy.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::textInputContextsInRect): |
| (WebKit::WebPage::focusTextInputContext): |
| (WebKit::WebPage::elementForContext const): |
| (WebKit::WebPage::contextForElement const): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::startInteractionWithElementContextOrPosition): |
| |
| 2019-10-21 Alex Christensen <achristensen@webkit.org> |
| |
| ServiceWorker tests should use TCPServer instead of WKURLSchemeHandler |
| https://bugs.webkit.org/show_bug.cgi?id=203141 |
| |
| Reviewed by Youenn Fablet. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| (WebKit::NetworkProcess::addWebsiteDataStore): |
| (WebKit::NetworkProcess::swServerForSession): |
| (WebKit::NetworkProcess::addServiceWorkerSession): |
| * NetworkProcess/NetworkProcess.h: |
| * Shared/WebsiteDataStoreParameters.cpp: |
| (WebKit::WebsiteDataStoreParameters::encode const): |
| (WebKit::WebsiteDataStoreParameters::decode): |
| * Shared/WebsiteDataStoreParameters.h: |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h: |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm: |
| (-[_WKWebsiteDataStoreConfiguration registerURLSchemeServiceWorkersCanHandleForTesting:]): Deleted. |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::initializeNewWebProcess): |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp: |
| (WebKit::WebsiteDataStoreConfiguration::copy): |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h: |
| (WebKit::WebsiteDataStoreConfiguration::serviceWorkerRegisteredSchemes const): Deleted. |
| (WebKit::WebsiteDataStoreConfiguration::registerServiceWorkerScheme): Deleted. |
| |
| 2019-10-21 Tim Horton <timothy_horton@apple.com> |
| |
| macCatalyst: Swipe navigation gestures do not work |
| https://bugs.webkit.org/show_bug.cgi?id=203205 |
| <rdar://problem/54617473> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/ios/ViewGestureControllerIOS.mm: |
| (-[WKSwipeTransitionController gestureRecognizerForInteractiveTransition:WithTarget:action:]): |
| Use a different gesture recognizer for swipe in macCatalyst that behaves |
| more like the macOS implementation, based on scrolling instead of the |
| gesture coming from a screen edge. |
| |
| 2019-10-21 Daniel Bates <dabates@apple.com> |
| |
| Add some PencilKit extension points |
| https://bugs.webkit.org/show_bug.cgi?id=202962 |
| <rdar://problem/56269759> |
| |
| Reviewed by Andy Estes. |
| |
| This is the WebKit part corresponding to <rdar://problem/56261392>. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView setupInteraction]): Call extension point. |
| (-[WKContentView cleanupInteraction]): Ditto. |
| |
| 2019-10-21 Chris Dumez <cdumez@apple.com> |
| |
| Add more release logging for "Unexpectedly resumed" assertion |
| https://bugs.webkit.org/show_bug.cgi?id=203196 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::processDidResume): |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::processTaskStateDidChange): |
| |
| 2019-10-21 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Objects category in emoji picker is empty |
| https://bugs.webkit.org/show_bug.cgi?id=203189 |
| |
| Reviewed by Adrian Perez de Castro. |
| |
| There's a typo in the first emopi name of objects section. |
| |
| * UIProcess/API/gtk/WebKitEmojiChooser.cpp: |
| (webkitEmojiChooserSetupEmojiSections): uted speaker -> muted speaker |
| |
| 2019-10-21 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK][WPE] IconDatabase is not thread safe yet |
| https://bugs.webkit.org/show_bug.cgi?id=202980 |
| |
| Reviewed by Adrian Perez de Castro. |
| |
| Current implementation is safer, but we still need to protect members used by both threads. |
| |
| * UIProcess/API/glib/IconDatabase.cpp: |
| (WebKit::IconDatabase::populatePageURLToIconURLMap): |
| (WebKit::IconDatabase::clearLoadedIconsTimerFired): |
| (WebKit::IconDatabase::checkIconURLAndSetPageURLIfNeeded): |
| (WebKit::IconDatabase::loadIconForPageURL): |
| (WebKit::IconDatabase::iconURLForPageURL): |
| (WebKit::IconDatabase::setIconForPageURL): |
| (WebKit::IconDatabase::clear): |
| * UIProcess/API/glib/IconDatabase.h: |
| |
| 2019-10-21 Tim Horton <timothy_horton@apple.com> |
| |
| Clean up some includes to improve WebKit2 build speed |
| https://bugs.webkit.org/show_bug.cgi?id=203071 |
| |
| Reviewed by Wenson Hsieh. |
| |
| This is worth about 6% on WebKit2, and unlocks another 8% improvement |
| down the line (but which is less mechanical). |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp: |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h: |
| * NetworkProcess/NetworkSocketChannel.h: |
| * NetworkProcess/WebStorage/StorageArea.h: |
| * NetworkProcess/WebStorage/StorageManager.cpp: |
| * NetworkProcess/WebStorage/StorageManagerSet.cpp: |
| * Platform/IPC/Connection.h: |
| * Shared/API/APIURL.h: |
| * Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.h: |
| * Shared/WebCoreArgumentCoders.cpp: |
| * Shared/WebCoreArgumentCoders.h: |
| * UIProcess/API/APIAttachment.h: |
| * UIProcess/API/Cocoa/_WKInspector.mm: |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeNode.h: |
| * UIProcess/TextCheckerCompletion.cpp: |
| * UIProcess/TextCheckerCompletion.h: |
| * UIProcess/UserContent/WebUserContentControllerProxy.cpp: |
| (WebKit::WebUserContentControllerProxy::addNetworkProcess): |
| (WebKit::WebUserContentControllerProxy::removeNetworkProcess): |
| * UIProcess/UserContent/WebUserContentControllerProxy.h: |
| (WebKit::WebUserContentControllerProxy::addNetworkProcess): Deleted. |
| (WebKit::WebUserContentControllerProxy::removeNetworkProcess): Deleted. |
| * WebProcess/Automation/WebAutomationSessionProxy.h: |
| * WebProcess/Network/NetworkProcessConnection.cpp: |
| * WebProcess/Network/NetworkProcessConnection.h: |
| * WebProcess/Plugins/Netscape/NetscapePlugin.cpp: |
| * WebProcess/Plugins/PDF/PDFPlugin.mm: |
| * WebProcess/Plugins/Plugin.cpp: |
| * WebProcess/Plugins/Plugin.h: |
| * WebProcess/WebProcess.cpp: |
| |
| 2019-10-20 Brent Fulgham <bfulgham@apple.com> |
| |
| Improve serialization logic |
| https://bugs.webkit.org/show_bug.cgi?id=203039 |
| <rdar://problem/55631691> |
| |
| Reviewed by Alex Christensen. |
| |
| Check that the SecItemRequestData only contains relevant types for |
| CFNetwork uses. |
| |
| * Platform/spi/Cocoa/SecItemSPI.h: Added. |
| * Shared/mac/SecItemRequestData.cpp: |
| (WebKit::arrayContainsInvalidType): Added. |
| (WebKit::dictionaryContainsInvalidType): Added. |
| (WebKit::validTypeIDs): Added. |
| (WebKit::isValidType): Added. |
| (WebKit::SecItemRequestData::decode): Check types during decode. |
| * Shared/mac/SecItemRequestData.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-10-19 Adrian Perez de Castro <aperez@igalia.com> |
| |
| [GTK][WPE] Fix non-unified builds after r250857 |
| https://bugs.webkit.org/show_bug.cgi?id=203145 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * UIProcess/WebProcessProxy.cpp: Add missing inclusion of the WebBackForwardCache.h header. |
| |
| 2019-10-18 Tim Horton <timothy_horton@apple.com> |
| |
| macCatalyst: Cursor should send mouse events, not touch events |
| https://bugs.webkit.org/show_bug.cgi?id=203175 |
| <rdar://problem/56321134> |
| |
| Reviewed by Simon Fraser. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * Shared/NativeWebMouseEvent.h: |
| * Shared/ios/NativeWebMouseEventIOS.mm: |
| (WebKit::NativeWebMouseEvent::NativeWebMouseEvent): |
| Add a NativeWebMouseEvent constructor that doesn't actually wrap a native event, |
| for creating totally-synthetic events. |
| |
| * UIProcess/ios/WKMouseGestureRecognizer.h: Added. |
| * UIProcess/ios/WKMouseGestureRecognizer.mm: Added. |
| (webEventModifiersForUIKeyModifierFlags): |
| (-[WKMouseGestureRecognizer initWithTarget:action:]): |
| (-[WKMouseGestureRecognizer setView:]): |
| (-[WKMouseGestureRecognizer lastMouseEvent]): |
| (-[WKMouseGestureRecognizer lastMouseLocation]): |
| (-[WKMouseGestureRecognizer mouseTouch]): |
| (-[WKMouseGestureRecognizer _wantsHoverEvents]): |
| (-[WKMouseGestureRecognizer reset]): |
| (-[WKMouseGestureRecognizer _shouldReceiveTouch:forEvent:recognizerView:]): |
| (-[WKMouseGestureRecognizer _shouldReceivePress:]): |
| (-[WKMouseGestureRecognizer createMouseEventWithType:]): |
| (-[WKMouseGestureRecognizer touchesBegan:withEvent:]): |
| (-[WKMouseGestureRecognizer touchesMoved:withEvent:]): |
| (-[WKMouseGestureRecognizer touchesEnded:withEvent:]): |
| (-[WKMouseGestureRecognizer touchesCancelled:withEvent:]): |
| (-[WKMouseGestureRecognizer _hoverEntered:withEvent:]): |
| (-[WKMouseGestureRecognizer _hoverMoved:withEvent:]): |
| (-[WKMouseGestureRecognizer _hoverExited:withEvent:]): |
| (-[WKMouseGestureRecognizer _hoverCancelled:withEvent:]): |
| (-[WKMouseGestureRecognizer locationInView:]): |
| (-[WKMouseGestureRecognizer canPreventGestureRecognizer:]): |
| (-[WKMouseGestureRecognizer canBePreventedByGestureRecognizer:]): |
| Instead of just using UIHoverGestureRecognizer, introduce a new gesture |
| recognizer that does what it did, but also supports cases where the button |
| is pressed (so, mousedown and mouseup instead of just mousemove), |
| and synthesizes mouse events for all state transitions. These events |
| should look roughly identical to what a non-macCatalyst app would get |
| in AppKit's mouseUp/mouseDown/mouseMoved NSResponder methods. |
| |
| * SourcesCocoa.txt: |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView setupInteraction]): |
| (-[WKContentView cleanupInteraction]): |
| (-[WKContentView _removeDefaultGestureRecognizers]): |
| (-[WKContentView _addDefaultGestureRecognizers]): |
| (-[WKContentView gestureRecognizer:shouldReceiveTouch:]): |
| (-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]): |
| (-[WKContentView _showShareSheet:inRect:completionHandler:]): |
| (-[WKContentView _mouseGestureRecognizerChanged:]): |
| (webEventFlagsForUIKeyModifierFlags): Deleted. |
| (-[WKContentView _hoverGestureRecognizerChanged:]): Deleted. |
| * WebKit.xcodeproj/project.pbxproj: |
| Make use of WKMouseGestureRecognizer to plumb the synthesized events directly |
| to the macOS-style "handleMouseEvent" codepath, instead of going through |
| the touch events path (and then subsequently generating synthetic clicks). |
| Also, ensure that other gesture recognizers ignore the mouse "touch" entirely |
| by returning NO in shouldReceiveTouch. |
| |
| 2019-10-18 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthn] Warn users when no credentials are found |
| https://bugs.webkit.org/show_bug.cgi?id=203147 |
| <rdar://problem/55931123> |
| |
| Reviewed by Brent Fulgham. |
| |
| This patch returns _WKWebAuthenticationPanelUpdateNoCredentialsFound to client via |
| -[_WKWebAuthenticationPanelDelegate panel:updateWebAuthenticationPanel:] when either |
| CtapAuthenticator receives kCtap2ErrNoCredentials or U2fAuthenticator exhausts the |
| allow list. |
| |
| This patch also enhances CtapAuthenticator::tryDowngrade to check if the CTAP command |
| can be converted to U2F commands to ensure kCtap2ErrNoCredentials is returned if it |
| is the case. Otherwise, after downgrading, U2fAuthenticator will return NotSupportedError |
| given it can't convert the commands. |
| |
| * UIProcess/API/APIUIClient.h: |
| * UIProcess/API/APIWebAuthenticationPanelClient.h: |
| (API::WebAuthenticationPanelClient::updatePanel const): |
| * UIProcess/WebAuthentication/Authenticator.h: |
| * UIProcess/WebAuthentication/AuthenticatorManager.cpp: |
| (WebKit::AuthenticatorManager::authenticatorStatusUpdated): |
| * UIProcess/WebAuthentication/AuthenticatorManager.h: |
| * UIProcess/WebAuthentication/Cocoa/WebAuthenticationPanelClient.h: |
| * UIProcess/WebAuthentication/Cocoa/WebAuthenticationPanelClient.mm: |
| (WebKit::WebAuthenticationPanelClient::WebAuthenticationPanelClient): |
| (WebKit::wkWebAuthenticationPanelUpdate): |
| (WebKit::WebAuthenticationPanelClient::updatePanel const): |
| * UIProcess/WebAuthentication/WebAuthenticationFlags.h: Renamed from Source/WebKit/UIProcess/WebAuthentication/WebAuthenticationPanelFlags.h. |
| * UIProcess/WebAuthentication/WebAuthenticationRequestData.h: |
| * UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp: |
| * UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp: |
| (WebKit::CtapAuthenticator::continueGetAssertionAfterResponseReceived): |
| (WebKit::CtapAuthenticator::tryDowngrade): |
| * UIProcess/WebAuthentication/fido/U2fAuthenticator.cpp: |
| (WebKit::U2fAuthenticator::issueSignCommand): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-10-18 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Clipboard API] Refactor Pasteboard::read() to take an optional item index |
| https://bugs.webkit.org/show_bug.cgi?id=203161 |
| |
| Reviewed by Tim Horton. |
| |
| * Shared/mac/PasteboardTypes.mm: |
| (WebKit::PasteboardTypes::forEditing): |
| (WebKit::PasteboardTypes::forSelection): |
| |
| Support "com.apple.webarchive" alongside the private "Apple Web Archive pasteboard type". |
| |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::setPromisedDataForImage): |
| |
| 2019-10-18 Ryosuke Niwa <rniwa@webkit.org> |
| |
| [iOS] REGRESSION(r251269): fast/events/ios/rotation/do-not-shrink-to-fit-content-after-rotation.html and fast/events/ios/rotation/layout-viewport-during-safari-type-rotation.html fail |
| https://bugs.webkit.org/show_bug.cgi?id=203162 |
| <rdar://problem/56418459> |
| |
| Reviewed by Simon Fraser. |
| |
| Synchronously update the rendering before the orientation change and other viewport size updates. |
| |
| Otherwise, resize event will be dispatched in the middle of orientation animation, |
| and would result in non-determistic results. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::dynamicViewportSizeUpdate): |
| |
| 2019-10-18 Chris Dumez <cdumez@apple.com> |
| |
| [iOS] "Unexpectedly Resumed" process assertion may cause us to get terminated |
| https://bugs.webkit.org/show_bug.cgi?id=203046 |
| <rdar://problem/56179592> |
| |
| Reviewed by Geoffrey Garen. |
| |
| This patch implements the following to avoid getting terminated: |
| 1. Schedule the task to release the assertion on a background thread instead of |
| the main thread so that we end up releasing the task even if the main thread |
| is somehow hung. |
| 2. Add an invalidation handler to the process assertion which releases the assertion |
| upon expiration. |
| |
| * UIProcess/Cocoa/WebProcessProxyCocoa.mm: |
| (WebKit::WebProcessProxy::processWasUnexpectedlyUnsuspended): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::processDidResume): |
| * WebProcess/WebProcess.h: |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::processTaskStateDidChange): |
| |
| 2019-10-18 Jer Noble <jer.noble@apple.com> |
| |
| Add experimental HDR MediaCapabilities support. |
| https://bugs.webkit.org/show_bug.cgi?id=203113 |
| |
| Reviewed by Eric Carlson. |
| |
| Add experimental hdrMediaCapabilitiesEnabled preference. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2019-10-18 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthn] Implement AuthenticatorCancel |
| https://bugs.webkit.org/show_bug.cgi?id=191523 |
| <rdar://problem/55920204> |
| |
| Reviewed by Brent Fulgham. |
| |
| This patch implement two ways to cancel a pending WebAuthn ceremony: |
| 1) Via navigation activities. Activities include i) main frame navigation, ii) main frame reload, |
| iii) main frame destruction, iv) sub frame navigation, and v) sub frame destruction. All the above |
| activities will cancel any pending WebAuthn ceremony that is associated with the frame. To prove |
| the association, a GlobalFrameIdentifier is bridged into WebAuthenticationRequestData. Navigation |
| cancel is done in WebPageProxy::didStartProvisionalLoadForFrameShared, and destruction cancel is done |
| in WebProcessProxy::didDestroyFrame and WebPageProxy::resetState. |
| 2) Via UI. This path is simply bridged -[_WKWebAuthenticationPanel cancel] into AuthenticatorManager. |
| Noted, this patch follows the spec to wait until time out to notify RPs. |
| References: i) Step 20 of https://www.w3.org/TR/webauthn/#createCredential, ii) Step 18 of |
| https://www.w3.org/TR/webauthn/#getAssertion |
| |
| As for what the cancel actually does, it: |
| 1) stops any HID/NFC scanning; |
| 2) sends CTAPHID_CANCEL to any HID authenticators that have been added. Reference: |
| https://fidoalliance.org/specs/fido-v2.0-ps-20190130/fido-client-to-authenticator-protocol-v2.0-ps-20190130.html#usb-hid-cancel |
| Sending CTAPHID_CANCEL, however, is not trivial. An abstract class FidoAuthenticator is crafted to |
| do this labor for both CtapAuthenticator and U2fAuthenticator during the time of destructions. |
| Noted: The CtapHidDriver is the only CtapDriver implements the cancel method. Since the message |
| is sent during state reset, lifecycle of the HidConenction and HidService which manage the underlying |
| IOHIDDeviceRef is very hard to hold. This is required for the regular async sender. Therefore, |
| HidConnection::sendSync is crafted to send the message synchronously to get rid of the tediousness |
| of managing those lifecycles. |
| |
| P.S. Vector::grow doesn't initialize POD types. Therefore, this patch also appends it with memset |
| for FidoHidPacket. |
| |
| P.S.S. This patch also simplifies AuthenticatorCoordinatorClient by: i) moving code from AuthenticatorCoordinatorClient |
| to WebAuthenticatorCoordinatorClient, and ii) using sendWithAsyncReply. The latter allows us to |
| get rid of the complex mechanism of ensuring the right reply is returned. |
| |
| * DerivedSources.make: |
| * Sources.txt: |
| * UIProcess/API/APIWebAuthenticationPanel.cpp: |
| (API::WebAuthenticationPanel::create): |
| (API::WebAuthenticationPanel::WebAuthenticationPanel): |
| (API::WebAuthenticationPanel::cancel const): |
| * UIProcess/API/APIWebAuthenticationPanel.h: |
| * UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm: |
| (-[_WKWebAuthenticationPanel cancel]): |
| * UIProcess/WebAuthentication/AuthenticatorManager.cpp: |
| (WebKit::AuthenticatorManager::cancelRequest): |
| (WebKit::AuthenticatorManager::clearState): |
| (WebKit::AuthenticatorManager::runPanel): |
| (WebKit::AuthenticatorManager::resetState): |
| * UIProcess/WebAuthentication/AuthenticatorManager.h: |
| * UIProcess/WebAuthentication/Cocoa/HidConnection.h: |
| (WebKit::HidConnection::isInitialized const): |
| (WebKit::HidConnection::setIsInitialized): |
| * UIProcess/WebAuthentication/Cocoa/HidConnection.mm: |
| (WebKit::HidConnection::~HidConnection): |
| (WebKit::HidConnection::initialize): |
| (WebKit::HidConnection::terminate): |
| (WebKit::HidConnection::sendSync): |
| (WebKit::HidConnection::send): |
| (WebKit::HidConnection::registerDataReceivedCallback): |
| * UIProcess/WebAuthentication/Mock/MockHidConnection.cpp: |
| (WebKit::MockHidConnection::initialize): |
| (WebKit::MockHidConnection::terminate): |
| (WebKit::MockHidConnection::sendSync): |
| (WebKit::MockHidConnection::send): |
| (WebKit::MockHidConnection::feedReports): |
| * UIProcess/WebAuthentication/Mock/MockHidConnection.h: |
| * UIProcess/WebAuthentication/WebAuthenticationRequestData.h: |
| * UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp: |
| (WebKit::WebAuthenticatorCoordinatorProxy::makeCredential): |
| (WebKit::WebAuthenticatorCoordinatorProxy::getAssertion): |
| (WebKit::WebAuthenticatorCoordinatorProxy::handleRequest): |
| (WebKit::WebAuthenticatorCoordinatorProxy::isUserVerifyingPlatformAuthenticatorAvailable): |
| (WebKit::WebAuthenticatorCoordinatorProxy::requestReply): Deleted. |
| * UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.h: |
| * UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.messages.in: |
| * UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp: |
| (WebKit::CtapAuthenticator::CtapAuthenticator): |
| (WebKit::CtapAuthenticator::makeCredential): |
| (WebKit::CtapAuthenticator::getAssertion): |
| (WebKit::CtapAuthenticator::tryDowngrade): |
| * UIProcess/WebAuthentication/fido/CtapAuthenticator.h: |
| * UIProcess/WebAuthentication/fido/CtapDriver.h: |
| (WebKit::CtapDriver::cancel): |
| * UIProcess/WebAuthentication/fido/CtapHidDriver.cpp: |
| (WebKit::CtapHidDriver::Worker::write): |
| (WebKit::CtapHidDriver::Worker::read): |
| (WebKit::CtapHidDriver::Worker::returnMessage): |
| (WebKit::CtapHidDriver::Worker::reset): |
| (WebKit::CtapHidDriver::Worker::cancel): |
| (WebKit::CtapHidDriver::continueAfterChannelAllocated): |
| (WebKit::CtapHidDriver::continueAfterResponseReceived): |
| (WebKit::CtapHidDriver::returnResponse): |
| (WebKit::CtapHidDriver::reset): |
| (WebKit::CtapHidDriver::cancel): |
| * UIProcess/WebAuthentication/fido/CtapHidDriver.h: |
| * UIProcess/WebAuthentication/fido/FidoAuthenticator.cpp: Copied from Source/WebKit/UIProcess/API/APIWebAuthenticationPanel.cpp. |
| (WebKit::FidoAuthenticator::FidoAuthenticator): |
| (WebKit::FidoAuthenticator::~FidoAuthenticator): |
| (WebKit::FidoAuthenticator::driver const): |
| (WebKit::FidoAuthenticator::releaseDriver): |
| * UIProcess/WebAuthentication/fido/FidoAuthenticator.h: Copied from Source/WebKit/UIProcess/API/APIWebAuthenticationPanel.cpp. |
| * UIProcess/WebAuthentication/fido/FidoService.cpp: |
| (WebKit::FidoService::continueAfterGetInfo): |
| * UIProcess/WebAuthentication/fido/U2fAuthenticator.cpp: |
| (WebKit::U2fAuthenticator::U2fAuthenticator): |
| (WebKit::U2fAuthenticator::issueCommand): |
| * UIProcess/WebAuthentication/fido/U2fAuthenticator.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didStartProvisionalLoadForFrameShared): |
| (WebKit::WebPageProxy::resetState): |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::didDestroyFrame): |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp: |
| (WebKit::WebAuthenticatorCoordinator::WebAuthenticatorCoordinator): |
| (WebKit::WebAuthenticatorCoordinator::makeCredential): |
| (WebKit::WebAuthenticatorCoordinator::getAssertion): |
| (WebKit::WebAuthenticatorCoordinator::isUserVerifyingPlatformAuthenticatorAvailable): |
| (WebKit::WebAuthenticatorCoordinator::~WebAuthenticatorCoordinator): Deleted. |
| * WebProcess/WebAuthentication/WebAuthenticatorCoordinator.h: |
| * WebProcess/WebAuthentication/WebAuthenticatorCoordinator.messages.in: Removed. |
| * WebProcess/WebPage/WebFrame.cpp: |
| (WebKit::WebFrame::fromCoreFrame): |
| * WebProcess/WebPage/WebFrame.h: |
| |
| 2019-10-18 Zan Dobersek <zdobersek@igalia.com> |
| |
| Avoid crashes on GCC-compiled binaries by avoiding a use-after-move |
| that's the result of differring call conventions. |
| |
| Rubber-stamped by Carlos Garcia Campos. |
| |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::startFetch): Copy the SW identifier from |
| the ServiceWorkerFetchTask before it's moved into the lambda. |
| |
| 2019-10-17 Mark Lam <mark.lam@apple.com> |
| |
| Use constexpr in more places and remove some unnecessary external linkage. |
| https://bugs.webkit.org/show_bug.cgi?id=203115 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| * UIProcess/API/APIContentRuleListStore.h: |
| * WebProcess/Plugins/Netscape/mac/PluginProxyMac.mm: |
| |
| 2019-10-17 Antoine Quint <graouts@apple.com> |
| |
| [Web Animations] Enable the Web Animations JavaScript API by default |
| https://bugs.webkit.org/show_bug.cgi?id=203075 |
| |
| Reviewed by Antti Koivisto. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2019-10-17 Carlos Alberto Lopez Perez <clopez@igalia.com> |
| |
| [GTK][WPE] File and Directory Entries API is not enabled |
| https://bugs.webkit.org/show_bug.cgi?id=202796 |
| |
| Reviewed by Adrian Perez de Castro. |
| |
| Enable by default the DirectoryUpload runtime setting that is |
| used to enable the APIs of the File and Directory Entries API. |
| |
| Enable also the DataTransferItemsEnabled runtime setting that |
| exposes the DataTransferItem API. This makes the manual tests |
| available at https://w3c-test.org/entries-api mostly pass on |
| platform GTK (those tests need also the DataTransferItem API |
| to enable the drag-and-drop). |
| |
| The bug <https://webkit.org/b/98940> for DataTransferItem API |
| remains open because the layout test editing/pasteboard/data-transfer-items.html |
| is still not passing completely. However other manual tests for |
| DataTransferItem pass after enabling it. |
| |
| * Shared/WebPreferencesDefaultValues.h: |
| |
| 2019-10-17 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: rework frontend agent construction to allow commands/events to be controlled by the related target's type |
| https://bugs.webkit.org/show_bug.cgi?id=200384 |
| <rdar://problem/53850352> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * WebProcess/WebPage/RemoteWebInspectorUI.h: |
| (WebKit::WebInspectorUI::backendCommandsURL const): Added. |
| (WebKit::WebInspectorUI::debuggableType const): Added. |
| (WebKit::WebInspectorUI::backendCommandsURL): Deleted. |
| (WebKit::WebInspectorUI::debuggableType): Deleted. |
| * WebProcess/WebPage/WebInspectorUI.h: |
| (WebKit::WebInspectorUI::backendCommandsURL const): Added. |
| (WebKit::WebInspectorUI::debuggableType const): Added. |
| * UIProcess/WebPageDebuggable.h: |
| (WebKit::WebPageDebuggable::type const): |
| * UIProcess/glib/RemoteInspectorClient.cpp: |
| (WebKit::RemoteInspectorClient::RemoteInspectorClient): |
| * UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.h: |
| * UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm: |
| (debuggableTypeString): |
| Split the `Web` debuggable type into `Page` (WebCore::Page) and `WebPage` (WebKit::WebPageProxy). |
| |
| 2019-10-16 Emilio Cobos Álvarez <emilio@crisal.io> |
| |
| Pass network cache directory in WebsiteDataStore::parameters() for non-Cocoa platforms. |
| https://bugs.webkit.org/show_bug.cgi?id=203043 |
| |
| This was causing various errors in the network process that were |
| visible in debug builds. |
| |
| Reviewed by Alex Christensen. |
| |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::parameters): |
| |
| 2019-10-16 Chris Dumez <cdumez@apple.com> |
| |
| Rename PageCache to BackForwardCache |
| https://bugs.webkit.org/show_bug.cgi?id=203048 |
| |
| Reviewed by Alex Christensen. |
| |
| Rename PageCache to BackForwardCache for clarity and consistency with the UIProcess's WebBackForwardCache. |
| |
| * Shared/CacheModel.cpp: |
| (WebKit::calculateMemoryCacheSizes): |
| * Shared/CacheModel.h: |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/APINavigationClient.h: |
| (API::NavigationClient::willGoToBackForwardListItem): |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| (API::ProcessPoolConfiguration::copy): |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetPageCacheEnabled): |
| (WKPreferencesGetPageCacheEnabled): |
| (WKPreferencesSetPageCacheSupportsPlugins): |
| (WKPreferencesGetPageCacheSupportsPlugins): |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences _setUsesPageCache:]): |
| (-[WKPreferences _usesPageCache]): |
| (-[WKPreferences _setPageCacheSupportsPlugins:]): |
| (-[WKPreferences _pageCacheSupportsPlugins]): |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: |
| (-[_WKProcessPoolConfiguration pageCacheEnabled]): |
| (-[_WKProcessPoolConfiguration setPageCacheEnabled:]): |
| * UIProcess/API/glib/WebKitSettings.cpp: |
| (webkit_settings_get_enable_page_cache): |
| (webkit_settings_set_enable_page_cache): |
| * UIProcess/Cocoa/NavigationState.h: |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::setNavigationDelegate): |
| (WebKit::NavigationState::NavigationClient::willGoToBackForwardListItem): |
| (WebKit::NavigationState::NavigationClient::didStartProvisionalNavigation): |
| (WebKit::NavigationState::NavigationClient::didReceiveServerRedirectForProvisionalNavigation): |
| (WebKit::NavigationState::NavigationClient::didFailProvisionalNavigationWithError): |
| (WebKit::NavigationState::NavigationClient::didCommitNavigation): |
| (WebKit::NavigationState::NavigationClient::didFinishDocumentLoad): |
| (WebKit::NavigationState::NavigationClient::didFinishNavigation): |
| (WebKit::NavigationState::NavigationClient::didFailNavigationWithError): |
| (WebKit::NavigationState::NavigationClient::didSameDocumentNavigation): |
| * UIProcess/ViewGestureController.cpp: |
| (WebKit::ViewGestureController::didReachMainFrameLoadTerminalState): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::shouldUseBackForwardCache const): |
| (WebKit::WebPageProxy::willGoToBackForwardListItem): |
| (WebKit::WebPageProxy::didStartProvisionalLoadForFrameShared): |
| (WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrameShared): |
| (WebKit::WebPageProxy::didFailProvisionalLoadForFrameShared): |
| (WebKit::WebPageProxy::didCommitLoadForFrame): |
| (WebKit::WebPageProxy::didFinishDocumentLoadForFrame): |
| (WebKit::WebPageProxy::didFinishLoadForFrame): |
| (WebKit::WebPageProxy::didFailLoadForFrame): |
| (WebKit::WebPageProxy::didSameDocumentNavigationForFrame): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::updateBackForwardCacheCapacity): |
| * WebProcess/InjectedBundle/API/c/WKBundleBackForwardListItem.cpp: |
| (WKBundleBackForwardListItemIsInBackForwardCache): |
| * WebProcess/InjectedBundle/API/c/WKBundleBackForwardListItem.h: |
| * WebProcess/WebCoreSupport/SessionStateConversion.cpp: |
| (WebKit::toBackForwardListItemState): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::WebFrameLoaderClient): |
| (WebKit::WebFrameLoaderClient::shouldGoToHistoryItem const): |
| (WebKit::WebFrameLoaderClient::transitionToCommittedFromCachedFrame): |
| (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage): |
| (WebKit::WebFrameLoaderClient::didRestoreFromBackForwardCache): |
| (WebKit::WebFrameLoaderClient::createPlugin): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: |
| * WebProcess/WebCoreSupport/ios/WebFrameLoaderClientIOS.mm: |
| (WebKit::WebFrameLoaderClient::forceLayoutOnRestoreFromBackForwardCache): |
| * WebProcess/WebPage/VisitedLinkTableController.cpp: |
| * WebProcess/WebPage/WebBackForwardListProxy.cpp: |
| (WebKit::WebBackForwardListProxy::removeItem): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::suspendForProcessSwap): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeWebProcess): |
| (WebKit::WebProcess::setCacheModel): |
| (WebKit::WebProcess::deleteWebsiteData): |
| (WebKit::WebProcess::setBackForwardCacheCapacity): |
| (WebKit::WebProcess::clearCachedPage): |
| * WebProcess/WebProcess.h: |
| |
| 2019-10-16 Per Arne Vollan <pvollan@apple.com> |
| |
| [iOS] Remove ubiquity client rule from sandbox |
| https://bugs.webkit.org/show_bug.cgi?id=201347 |
| |
| Reviewed by Brent Fulgham. |
| |
| This rule is most likely not needed, since we have already blocked all of its associated mach services, |
| and no issues have been reported. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2019-10-16 Tim Horton <timothy_horton@apple.com> |
| |
| iOS: inputmode=none is not respected with a hardware keyboard attached |
| https://bugs.webkit.org/show_bug.cgi?id=203061 |
| |
| Reviewed by Daniel Bates. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView shouldShowAutomaticKeyboardUI]): |
| We can resolve this FIXME, as the underlying bug was fixed in <rdar://problem/52706523>. |
| This now means that we will respect inputmode=none even when a hardware |
| keyboard is attached, significantly improving the experience on sites that use it |
| by avoiding an intermittent input bar. |
| |
| 2019-10-16 Per Arne Vollan <pvollan@apple.com> |
| |
| [iOS] Remove send-signal from mach-lookup rule |
| https://bugs.webkit.org/show_bug.cgi?id=201203 |
| |
| Reviewed by Brent Fulgham. |
| |
| The send-signal can be removed, since crashes have not been reported from this rule. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2019-10-16 Dean Jackson <dino@apple.com> |
| |
| Add Swift modulemap for WebKit Private APIs |
| https://bugs.webkit.org/show_bug.cgi?id=203059 |
| |
| Reviewed by Tim Horton. |
| |
| Provide a Swift modulemap for WebKit_Private, and |
| ensure WKPreferencesPrivate.h is exposed. |
| |
| Renamed OSX.modulemap to macOS.modulemap while here. |
| |
| * Configurations/WebKit.xcconfig: |
| * Modules/iOS.private.modulemap: Added. |
| * Modules/macOS.modulemap: Renamed from Source/WebKit/Modules/OSX.modulemap. |
| * Modules/macOS.private.modulemap: Added. |
| * Shared/API/Cocoa/WebKitPrivate.h: Include WKPreferencesPrivate.h. |
| |
| 2019-10-16 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics (experimental): Block all third-party cookies on websites without prior user interaction |
| https://bugs.webkit.org/show_bug.cgi?id=203017 |
| <rdar://problem/56262708> |
| |
| Reviewed by Alex Christensen. |
| |
| This enhancement is off by default and controlled by an internal feature flag. |
| |
| The functional change is in WebCore::NetworkStorageSession::shouldBlockCookies() which is |
| called from: |
| - NetworkDataTaskCocoa::NetworkDataTaskCocoa() |
| - NetworkDataTaskCocoa::willPerformHTTPRedirection |
| |
| shouldBlockCookies() now checks if the first-party website has received user interaction |
| and if not, blocks all third-party cookies, regardless of the status of those third-party |
| domains (prevalent or not). |
| |
| The changes to ResourceLoadStatisticsDatabaseStore and ResourceLoadStatisticsMemoryStore |
| are about communicating which domains have received user interaction (prevalent or not) |
| to the network storage session so that it can enforce the new restriction. |
| |
| The C API change and piping through the WebsiteDataStore is test infrastructure. |
| |
| Bundled cleanup task: Remove the two month old feature flag for NSURLSession switching. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: |
| (WebKit::CompletionHandler<void): |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h: |
| * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ResourceLoadStatisticsMemoryStore::clear): |
| (WebKit::ResourceLoadStatisticsMemoryStore::updateCookieBlocking): |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::callUpdatePrevalentDomainsToBlockCookiesForHandler): |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h: |
| (WebKit::RegistrableDomainsToBlockCookiesFor::isolatedCopy const): |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| (WebKit::NetworkProcess::setShouldBlockThirdPartyCookiesForTesting): |
| * NetworkProcess/NetworkProcess.messages.in: |
| * NetworkProcess/NetworkSession.cpp: |
| (WebKit::NetworkSession::NetworkSession): |
| * NetworkProcess/NetworkSession.h: |
| (WebKit::NetworkSession::setResourceLoadStatisticsLogTestingEvent): |
| (WebKit::NetworkSession::shouldIsolateSessionsForPrevalentTopFrames const): Deleted. |
| * NetworkProcess/NetworkSessionCreationParameters.cpp: |
| (WebKit::NetworkSessionCreationParameters::encode const): |
| (WebKit::NetworkSessionCreationParameters::decode): |
| * NetworkProcess/NetworkSessionCreationParameters.h: |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreSetResourceLoadStatisticsShouldBlockThirdPartyCookiesForTesting): |
| (WKWebsiteDataStoreStatisticsResetToConsistentState): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::setShouldBlockThirdPartyCookiesForTesting): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::setResourceLoadStatisticsShouldBlockThirdPartyCookiesForTesting): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| |
| 2019-10-16 Kate Cheney <katherine_cheney@apple.com> |
| |
| WKWebsiteDataStoreStatisticsResetToConsistentState() should call store.setUseITPDatabase(false) |
| https://bugs.webkit.org/show_bug.cgi?id=203020 |
| <rdar://problem/56314484> |
| |
| Reviewed by Chris Dumez. |
| |
| The resourceLoadStatisticsStore should be reset between tests to use |
| a memory store, and any test that needs to use the database store |
| can use the setUseITPDatabase function. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::setUseITPDatabase): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreSetUseITPDatabase): |
| (WKWebsiteDataStoreStatisticsResetToConsistentState): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::setUseITPDatabase): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::setUseITPDatabase): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| |
| 2019-10-16 Chris Dumez <cdumez@apple.com> |
| |
| [WK2] Handle back/forward cache entry expiration in the UIProcess instead of the WebProcess |
| https://bugs.webkit.org/show_bug.cgi?id=203034 |
| <rdar://problem/56332453> |
| |
| Reviewed by Antti Koivisto. |
| |
| Handle back/forward cache entry expiration in the UIProcess instead of the WebProcess, |
| now that back/forward cache management is done in the UIProcess. |
| |
| * UIProcess/WebBackForwardCacheEntry.cpp: |
| (WebKit::WebBackForwardCacheEntry::WebBackForwardCacheEntry): |
| (WebKit::WebBackForwardCacheEntry::takeSuspendedPage): |
| (WebKit::WebBackForwardCacheEntry::expirationTimerFired): |
| * UIProcess/WebBackForwardCacheEntry.h: |
| Add a Timer to WebBackForwardCacheEntry to make the entry expire after 30 minutes, which is what used |
| to happen on WebContent process side. One difference in behavior is that when the entry expires we |
| now remove it from the cache right away to free-up memory, instead of simply refusing to use it later |
| on. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| Disable back forward cache expiration in the WebContent process when using modern |
| WebKit. |
| |
| 2019-10-16 Chris Dumez <cdumez@apple.com> |
| |
| [iOS] Stop terminating the prewarmed process on application suspension |
| https://bugs.webkit.org/show_bug.cgi?id=203033 |
| |
| Reviewed by Alex Christensen. |
| |
| Stop terminating the prewarmed process on application suspension. Having no prewarmed process when the |
| application resumes means the next cross-site load will be significantly slower. If the system needs |
| memory, this process can be jetsammed. |
| |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::applicationIsAboutToSuspend): |
| |
| 2019-10-16 Chris Dumez <cdumez@apple.com> |
| |
| Drop unused WKPageSetResourceCachingDisabled() SPI |
| https://bugs.webkit.org/show_bug.cgi?id=203035 |
| |
| Reviewed by Alex Christensen. |
| |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageGetResourceCachingDisabled): Deleted. |
| (WKPageSetResourceCachingDisabled): Deleted. |
| * UIProcess/API/C/WKPagePrivate.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::setResourceCachingDisabled): Deleted. |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::isResourceCachingDisabled const): Deleted. |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::setResourceCachingDisabled): Deleted. |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2019-10-16 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Unreviewed, fix the internal macOS 10.13 and 10.14 builds after r251171 |
| |
| * Platform/spi/mac/ApplicationServicesSPI.h: Guard SPI declarations that use AXClientType with HAVE(AX_CLIENT_TYPE). |
| |
| 2019-10-15 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK][WPE] Add user messages API |
| https://bugs.webkit.org/show_bug.cgi?id=202847 |
| |
| Reviewed by Adrian Perez de Castro. |
| |
| We have never exposed an API to send/receive messages to/from Web extensions, to allow applications use their own |
| IPC. Now, with PSON enabled, it's a lot more difficult to implement the custom IPC on the application side, |
| because applications need to keep track of all the web processes launched, and the changes of web process in the |
| web view to send the messages to the right extension. That's already done internally by WebKit, so it would be |
| easier to provide a simple API so that apps don't need to worry about the web process being used. This patch adds |
| WebKitUserMessage, a simple message API consisting on a message name, parameters and file descriptors. Messages |
| can be sent from a WebKitWebContext to all the WebKitWebExtensions, or from a WebKitWebExtension to its |
| WebKitWebContext, or from a WebKitWebView to its WebKitWebPage (and vice versa). |
| |
| * PlatformGTK.cmake: |
| * PlatformWPE.cmake: |
| * Shared/API/glib/WebKitUserMessage.cpp: Added. |
| (webkitUserMessageDispose): |
| (webkitUserMessageGetProperty): |
| (webkitUserMessageSetProperty): |
| (webkit_user_message_class_init): |
| (webkitUserMessageCreate): |
| (webkitUserMessageGetMessage): |
| (webkit_user_message_new): |
| (webkit_user_message_new_with_fd_list): |
| (webkit_user_message_get_name): |
| (webkit_user_message_get_parameters): |
| (webkit_user_message_get_fd_list): |
| (webkit_user_message_send_reply): |
| * Shared/API/glib/WebKitUserMessagePrivate.h: Added. |
| * Shared/glib/ArgumentCodersGLib.cpp: Added. |
| (IPC::encode): |
| (IPC::decode): |
| * Shared/glib/ArgumentCodersGLib.h: Added. |
| * Shared/glib/UserMessage.cpp: Added. |
| (WebKit::UserMessage::encode const): |
| (WebKit::UserMessage::decode): |
| * Shared/glib/UserMessage.h: Added. |
| (WebKit::UserMessage::UserMessage): |
| * SourcesGTK.txt: |
| * SourcesWPE.txt: |
| * UIProcess/API/glib/WebKitWebContext.cpp: |
| (webkitWebContextConstructed): |
| (webkit_web_context_class_init): |
| (webkit_web_context_send_message_to_all_extensions): |
| * UIProcess/API/glib/WebKitWebView.cpp: |
| (webkit_web_view_class_init): |
| (webkitWebViewDidReceiveUserMessage): |
| (webkit_web_view_send_message_to_page): |
| (webkit_web_view_send_message_to_page_finish): |
| * UIProcess/API/glib/WebKitWebViewPrivate.h: |
| * UIProcess/API/gtk/WebKitUserMessage.h: Added. |
| * UIProcess/API/gtk/WebKitWebContext.h: |
| * UIProcess/API/gtk/WebKitWebView.h: |
| * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: |
| * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: |
| * UIProcess/API/gtk/webkit2.h: |
| * UIProcess/API/wpe/APIViewClient.h: |
| (API::ViewClient::didReceiveUserMessage): |
| * UIProcess/API/wpe/PageClientImpl.cpp: |
| (WebKit::PageClientImpl::sendMessageToWebView): |
| * UIProcess/API/wpe/PageClientImpl.h: |
| * UIProcess/API/wpe/WPEView.cpp: |
| (WKWPE::View::didReceiveUserMessage): |
| * UIProcess/API/wpe/WPEView.h: |
| * UIProcess/API/wpe/WebKitUserMessage.h: Added. |
| * UIProcess/API/wpe/WebKitWebContext.h: |
| * UIProcess/API/wpe/WebKitWebView.h: |
| * UIProcess/API/wpe/docs/wpe-1.0-sections.txt: |
| * UIProcess/API/wpe/docs/wpe-docs.sgml: |
| * UIProcess/API/wpe/webkit.h: |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebProcessProxy.messages.in: |
| * UIProcess/glib/WebProcessProxyGLib.cpp: |
| (WebKit::WebProcessProxy::sendMessageToWebContextWithReply): |
| (WebKit::WebProcessProxy::sendMessageToWebContext): |
| * UIProcess/gtk/WebPageProxyGtk.cpp: |
| (WebKit::WebPageProxy::sendMessageToWebViewWithReply): |
| (WebKit::WebPageProxy::sendMessageToWebView): |
| * UIProcess/wpe/WebPageProxyWPE.cpp: |
| (WebKit::WebPageProxy::sendMessageToWebViewWithReply): |
| (WebKit::WebPageProxy::sendMessageToWebView): |
| * WebProcess/InjectedBundle/API/glib/WebKitExtensionManager.h: |
| (WebKit::WebKitExtensionManager::extension const): |
| * WebProcess/InjectedBundle/API/glib/WebKitWebExtension.cpp: |
| (webkitWebExtensionDidReceiveUserMessage): |
| (webkit_web_extension_send_message_to_context): |
| (webkit_web_extension_send_message_to_context_finish): |
| * WebProcess/InjectedBundle/API/glib/WebKitWebExtensionPrivate.h: |
| * WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp: |
| (webkit_web_page_class_init): |
| (webkitWebPageDidReceiveUserMessage): |
| (webkit_web_page_send_message_to_view): |
| (webkit_web_page_send_message_to_view_finish): |
| * WebProcess/InjectedBundle/API/glib/WebKitWebPagePrivate.h: |
| * WebProcess/InjectedBundle/API/gtk/WebKitWebExtension.h: |
| * WebProcess/InjectedBundle/API/gtk/WebKitWebPage.h: |
| * WebProcess/InjectedBundle/API/gtk/webkit-web-extension.h: |
| * WebProcess/InjectedBundle/API/wpe/WebKitWebExtension.h: |
| * WebProcess/InjectedBundle/API/wpe/WebKitWebPage.h: |
| * WebProcess/InjectedBundle/API/wpe/docs/wpe-webextensions-1.0-sections.txt: |
| * WebProcess/InjectedBundle/API/wpe/webkit-web-extension.h: |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/glib/WebPageGLib.cpp: Added. |
| (WebKit::WebPage::sendMessageToWebExtensionWithReply): |
| (WebKit::WebPage::sendMessageToWebExtension): |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| * WebProcess/glib/WebProcessGLib.cpp: |
| (WebKit::WebProcess::sendMessageToWebExtension): |
| |
| 2019-10-15 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Fix the internal macOS build after r251171 |
| https://bugs.webkit.org/show_bug.cgi?id=203022 |
| |
| Reviewed by Dan Bernstein. |
| |
| Attempts to include <HIServices/AccessibilityPriv.h> in WebKit result in: |
| |
| ``` |
| fatal error: 'HIServices/AccessibilityPriv.h' file not found |
| ``` |
| |
| At least on macOS 10.15, it appears that HIServices.framework exists within the ApplicationServices framework. |
| To fix this build error, we can instead turn AccessibilityPrivSPI.h into an SPI header for ApplicationServices, |
| ApplicationServicesSPI.h, and use it in several places where we currently directly import <ApplicationServices/ |
| ApplicationServicesPriv.h>. |
| |
| * Platform/IPC/cocoa/ConnectionCocoa.mm: |
| |
| Bring some more constants that were defined in the !USE(APPLE_INTERNAL_SDK) case into the ApplicationServices |
| SPI header. |
| |
| * Platform/spi/mac/ApplicationServicesSPI.h: Renamed from Source/WebKit/Platform/spi/mac/AccessibilityPrivSPI.h. |
| * Shared/mac/AuxiliaryProcessMac.mm: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm: |
| |
| 2019-10-15 Kate Cheney <katherine_cheney@apple.com> |
| |
| REGRESSION (~244100) [Mac WK2 Debug] Layout Test http/tests/resourceLoadStatistics/prune-statistics.html is a flaky failure (197285) |
| https://bugs.webkit.org/show_bug.cgi?id=197285 |
| <rdar://problem/50208370> |
| |
| Reviewed by Chris Dumez. |
| |
| This patch fixes a flaky failure which was being caused by other |
| resourceLoadStatistics tests scheduling processing checks which |
| were called during execution of prune-statistics.html. |
| Now, any pending processing checks are cancelled between tests. |
| |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent): |
| |
| 2019-10-15 Chris Dumez <cdumez@apple.com> |
| |
| [iOS] Maintain the last Back/Forward cache entry when the application gets suspended |
| https://bugs.webkit.org/show_bug.cgi?id=203014 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Previously, we would clear all back/forward cache entries when the application is about to |
| be suspended. This means that we would lose fast-back when coming back to the application. |
| To be memory-friendly but maintain the fast-back when coming back to the application, we now |
| maintain the last back/forward cache entry when the application gets suspended. |
| |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::applicationIsAboutToSuspend): |
| (WebKit::WebProcessPool::notifyProcessPoolsApplicationIsAboutToSuspend): |
| * UIProcess/WebBackForwardCache.cpp: |
| (WebKit::WebBackForwardCache::pruneToSize): |
| * UIProcess/WebBackForwardCache.h: |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/ios/ProcessAssertionIOS.mm: |
| (-[WKProcessAssertionBackgroundTaskManager init]): |
| (-[WKProcessAssertionBackgroundTaskManager _releaseBackgroundTask]): |
| |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeWebProcess): |
| A WebProcess no longer clears its PageCache on suspension on iOS. We let the UIProcess's |
| back/forward cache control when PageCache entries should get destroyed. The back/forward |
| cache will properly wake up a suspended process to clear one of its PageCache entries if |
| needed. |
| |
| 2019-10-15 Andres Gonzalez <andresg_22@apple.com> |
| |
| AX: Make AXIsolatedTree compile again |
| https://bugs.webkit.org/show_bug.cgi?id=202702 |
| <rdar://problem/56084968> |
| |
| Reviewed by Joanmarie Diggs. |
| |
| Re-submitting r251045 with a fix for internal builds. |
| |
| * Platform/spi/mac/AccessibilityPrivSPI.h: |
| * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm: |
| (-[WKAccessibilityWebPageObjectBase isolatedTreeRootObject]): |
| |
| 2019-10-15 Chris Dumez <cdumez@apple.com> |
| |
| Webview's drawing area may stay frozen on cross-site back/forward navigation |
| https://bugs.webkit.org/show_bug.cgi?id=203004 |
| |
| Reviewed by Tim Horton. |
| |
| Whenever the UIScene becomes foreground / background, the WebPageProxy notifies its currently associated |
| WebPage in the committed WebProcess so that it can freeze / unfreeze its layer tree with the |
| BackgroundApplication reason. The issue is that if a WebPage gets suspended on cross-site navigation |
| (because the UIScene is in the background when the load commits), then the suspended WebPage kept its |
| a BackgroundApplication freeze. When the UIScene becomes foreground, the WebPage only notifies its |
| committed page so the suspended page keeps its BackgroundApplication freeze still. If the user now |
| navigates back, it will restore the suspended WebPage and the view will stay frozen. |
| |
| To address the issue, we now have the WebPage drop its BackgroundApplication freeze reason, whenever |
| it transitions from committed to suspended. |
| |
| * UIProcess/ios/WKApplicationStateTrackingView.mm: |
| (-[WKApplicationStateTrackingView didMoveToWindow]): |
| Fix logging, [self isBackground] needs to be called *after* _applicationStateTracker has been |
| initialized, or it will return YES unconditionally. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::setIsSuspended): |
| |
| 2019-10-15 Peng Liu <peng.liu6@apple.com> |
| |
| [Picture-in-Picture Web API] Implement HTMLVideoElement.requestPictureInPicture() / Document.exitPictureInPicture() |
| https://bugs.webkit.org/show_bug.cgi?id=201024 |
| |
| Reviewed by Eric Carlson. |
| |
| Add configurations for Picture-in-Picture API and add a preference option for it. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * Shared/WebPreferences.yaml: |
| |
| 2019-10-15 youenn fablet <youenn@apple.com> |
| |
| Move headers to keep from a HTTPHeaderNameSet to an OptionSet |
| https://bugs.webkit.org/show_bug.cgi?id=202977 |
| |
| Reviewed by Anders Carlsson. |
| |
| * NetworkProcess/NetworkResourceLoadParameters.cpp: |
| (WebKit::NetworkResourceLoadParameters::decode): |
| * NetworkProcess/NetworkResourceLoadParameters.h: |
| |
| 2019-10-15 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthn] Rename -[WKUIDelegatePrivate webView:runWebAuthenticationPanel:initiatedByFrame:completionHandler:] to -[WKUIDelegatePrivate _webView:runWebAuthenticationPanel:initiatedByFrame:completionHandler:] |
| https://bugs.webkit.org/show_bug.cgi?id=202564 |
| <rdar://problem/55974027> |
| |
| Reviewed by Brent Fulgham. |
| |
| Rename the SPI to a proper SPI style. |
| |
| * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: |
| * UIProcess/Cocoa/UIDelegate.mm: |
| (WebKit::UIDelegate::setDelegate): |
| (WebKit::UIDelegate::UIClient::runWebAuthenticationPanel): |
| |
| 2019-10-15 youenn fablet <youenn@apple.com> |
| |
| Scheduling a service worker job in server should wait for finishing the registration import |
| https://bugs.webkit.org/show_bug.cgi?id=202975 |
| |
| Reviewed by Chris Dumez. |
| |
| * WebProcess/Storage/WebSWClientConnection.cpp: |
| (WebKit::WebSWClientConnection::scheduleJobInServer): |
| We should not schedule a job until the registrations are fully imported. |
| Covered by ServiceWorkerBasic API test flakily hitting debug asserts. |
| |
| 2019-10-15 Alex Christensen <achristensen@webkit.org> |
| |
| Unreviewed, rolling out r251138. |
| |
| Broke API tests |
| |
| Reverted changeset: |
| |
| "Pass CORS-enabled schemes through WebProcess instead of |
| having them NetworkProcess-global" |
| https://bugs.webkit.org/show_bug.cgi?id=202891 |
| https://trac.webkit.org/changeset/251138 |
| |
| 2019-10-15 Chris Dumez <cdumez@apple.com> |
| |
| Stop using inheritance for WebBackForwardCacheEntry |
| https://bugs.webkit.org/show_bug.cgi?id=202989 |
| |
| Reviewed by Alex Christensen. |
| |
| Stop using inheritance for WebBackForwardCacheEntry. This simplifies the code a bit. |
| |
| * Sources.txt: |
| * UIProcess/WebBackForwardCache.cpp: |
| (WebKit::WebBackForwardCache::addEntry): |
| (): Deleted. |
| * UIProcess/WebBackForwardCacheEntry.cpp: Copied from Source/WebKit/UIProcess/WebBackForwardCacheEntry.h. |
| (WebKit::WebBackForwardCacheEntry::WebBackForwardCacheEntry): |
| (WebKit::WebBackForwardCacheEntry::~WebBackForwardCacheEntry): |
| (WebKit::WebBackForwardCacheEntry::takeSuspendedPage): |
| (WebKit::WebBackForwardCacheEntry::process const): |
| * UIProcess/WebBackForwardCacheEntry.h: |
| (WebKit::WebBackForwardCacheEntry::suspendedPage const): |
| (WebKit::WebBackForwardCacheEntry::processIdentifier const): |
| (WebKit::WebBackForwardCacheEntry::WebBackForwardCacheEntry): Deleted. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-10-15 Alex Christensen <achristensen@webkit.org> |
| |
| Pass CORS-enabled schemes through WebProcess instead of having them NetworkProcess-global |
| https://bugs.webkit.org/show_bug.cgi?id=202891 |
| |
| Reviewed by Youenn Fablet. |
| |
| No change in behavior. Now the LegacySchemeRegistry is not used as much in the NetworkProcess, a step towards no use at all. |
| This functionality is currently only available through the glib API webkit_security_manager_register_uri_scheme_as_cors_enabled |
| but it has been requested in bug 201180 and bug 199064. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess): |
| (WebKit::NetworkConnectionToWebProcess::loadPing): |
| (WebKit::NetworkConnectionToWebProcess::registerURLSchemesAsCORSEnabled): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| (WebKit::NetworkConnectionToWebProcess::schemeRegistry): |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::NetworkLoadChecker): |
| (WebKit::NetworkLoadChecker::doesNotNeedCORSCheck const): |
| * NetworkProcess/NetworkLoadChecker.h: |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| (WebKit::NetworkProcess::registerURLSchemeAsCORSEnabled const): Deleted. |
| * NetworkProcess/NetworkProcess.messages.in: |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::m_shouldCaptureExtraNetworkLoadMetrics): |
| * NetworkProcess/NetworkSchemeRegistry.cpp: Added. |
| (WebKit::NetworkSchemeRegistry::registerURLSchemeAsCORSEnabled): |
| (WebKit::NetworkSchemeRegistry::shouldTreatURLSchemeAsCORSEnabled): |
| * NetworkProcess/NetworkSchemeRegistry.h: Added. |
| (WebKit::NetworkSchemeRegistry::create): |
| * NetworkProcess/PingLoad.cpp: |
| (WebKit::PingLoad::PingLoad): |
| Use nullptr, indicating that the PingLoad constructor that is used in ad click attribution should not check the custom scheme registry. |
| This is Ok because ad click attribution is only used for HTTP family schemes. |
| (WebKit::m_blobFiles): |
| * NetworkProcess/PingLoad.h: |
| * Sources.txt: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| (WebKit::WebProcessPool::registerURLSchemeAsCORSEnabled): |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeWebProcess): |
| (WebKit::WebProcess::registerURLSchemeAsCORSEnabled): |
| (WebKit::WebProcess::ensureNetworkProcessConnection): |
| (WebKit::WebProcess::registerURLSchemeAsCORSEnabled const): Deleted. |
| * WebProcess/WebProcess.h: |
| |
| 2019-10-15 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Fix several GTK tests in /WebKit2Gtk/TestUIClient crashing since r241988 |
| |
| Show a warning message and return nullptr from WebKitWebView::create if the new web view is not related to the |
| given one. Also make it clear in the documentation that the new web view should be related to the given one. |
| |
| * UIProcess/API/glib/WebKitWebView.cpp: |
| (webkit_web_view_class_init): |
| (webkitWebViewCreateNewPage): |
| |
| 2019-10-15 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Fix GTK test /webkit/Authentication/authentication-storage after r249962 |
| |
| * UIProcess/API/glib/WebKitWebView.cpp: |
| (webkitWebViewHandleAuthenticationChallenge): Do not use webkit_settings_get_enable_private_browsing(). |
| |
| 2019-10-15 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Fix GTK test /webkit/WebKitSettings/webkit-settings after r249962. |
| |
| Legacy private browsing was removed in r249962, so webkit_settings_set_enable_private_browsing() is now no-op. |
| |
| * UIProcess/API/glib/WebKitSettings.cpp: |
| (webKitSettingsSetProperty): Only call webkit_settings_set_enable_private_browsing() when trying to enable it. |
| (webkit_settings_set_enable_private_browsing): Show a warning to let users know that it does nothing now. |
| |
| 2019-10-15 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK][WPE] WebKitWebContext should identify web views by their WebPageProxy identifier |
| https://bugs.webkit.org/show_bug.cgi?id=202924 |
| |
| Reviewed by Adrian Perez de Castro. |
| |
| Instead of the WebPage identifier, since it maps WebPageProxy to WebKitWebView. |
| |
| * UIProcess/API/glib/WebKitWebContext.cpp: |
| (webkitWebContextCreatePageForWebView): |
| (webkitWebContextWebViewDestroyed): |
| (webkitWebContextGetWebViewForPage): |
| |
| 2019-10-15 youenn fablet <youenn@apple.com> |
| |
| Handle service worker loads through NetworkResourceLoader |
| https://bugs.webkit.org/show_bug.cgi?id=202309 |
| |
| Unreviewed. |
| Fix !ENABLE(SERVICE_WORKER) builds. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::continueWillSendRequest): |
| (WebKit::NetworkResourceLoader::continueDidReceiveResponse): |
| (WebKit::NetworkResourceLoader::serviceWorkerDidNotHandle): |
| |
| 2019-10-14 Youenn Fablet <youenn@apple.com> |
| |
| Handle service worker loads through NetworkResourceLoader |
| https://bugs.webkit.org/show_bug.cgi?id=202309 |
| |
| Reviewed by Alex Christensen. |
| |
| Remove ServiceWorkerFetchClient. |
| Instead we use the normal NetworkResourceLoader/WebResourceLoader communication channel. |
| We pass additional parameters, in particular service worker mode and registration identifier. |
| |
| Based on that information, network process will decide whether to load from service worker or network. |
| The first advantage is that in case of service worker not handling the load, going to the network is faster. |
| This will also allow us to do the registration matching in network process when receiving a navigation request. |
| |
| ServiceWorkerFetchTask is now beefed up to do the link between service worker and NetworkResourceLoader/WebResourceLoader. |
| To support the same console logging, we add a new message called DidFailServiceWorkerLoad. |
| |
| To support API tests, we continue to go to the service worker before trying to go to URL scheme handlers. |
| This adds some burden as we need to go to network process/service worker process and, in case load is not handled |
| by service worker, we go back to the web process to do the load through URL scheme handlers. |
| For that purpose we use ServiceWorkersMode::Only. |
| |
| * CMakeLists.txt: |
| * DerivedSources-input.xcfilelist: |
| * DerivedSources-output.xcfilelist: |
| * DerivedSources.make: |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::scheduleResourceLoad): |
| * NetworkProcess/NetworkResourceLoadParameters.cpp: |
| (WebKit::NetworkResourceLoadParameters::encode const): |
| (WebKit::NetworkResourceLoadParameters::decode): |
| * NetworkProcess/NetworkResourceLoadParameters.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::abort): |
| (WebKit::NetworkResourceLoader::didFailLoading): |
| (WebKit::NetworkResourceLoader::continueWillSendRequest): |
| (WebKit::NetworkResourceLoader::continueDidReceiveResponse): |
| (WebKit::NetworkResourceLoader::startWithServiceWorker): |
| (WebKit::NetworkResourceLoader::serviceWorkerDidNotHandle): |
| * NetworkProcess/NetworkResourceLoader.h: |
| * NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp: |
| (WebKit::ServiceWorkerFetchTask::ServiceWorkerFetchTask): |
| (WebKit::ServiceWorkerFetchTask::~ServiceWorkerFetchTask): |
| (WebKit::ServiceWorkerFetchTask::sendToServiceWorker): |
| (WebKit::ServiceWorkerFetchTask::sendToClient): |
| (WebKit::ServiceWorkerFetchTask::start): |
| (WebKit::ServiceWorkerFetchTask::startFetch): |
| (WebKit::ServiceWorkerFetchTask::didReceiveRedirectResponse): |
| (WebKit::ServiceWorkerFetchTask::didReceiveResponse): |
| (WebKit::ServiceWorkerFetchTask::didReceiveData): |
| (WebKit::ServiceWorkerFetchTask::didReceiveFormData): |
| (WebKit::ServiceWorkerFetchTask::didFinish): |
| (WebKit::ServiceWorkerFetchTask::didFail): |
| (WebKit::ServiceWorkerFetchTask::didNotHandle): |
| (WebKit::ServiceWorkerFetchTask::cancelFromClient): |
| (WebKit::ServiceWorkerFetchTask::continueDidReceiveFetchResponse): |
| (WebKit::ServiceWorkerFetchTask::continueFetchTaskWith): |
| (WebKit::ServiceWorkerFetchTask::timeoutTimerFired): |
| * NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h: |
| (WebKit::ServiceWorkerFetchTask::fetchIdentifier const): |
| (WebKit::ServiceWorkerFetchTask::serviceWorkerIdentifier const): |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::cancelFetch): |
| (WebKit::WebSWServerConnection::createFetchTask): |
| (WebKit::WebSWServerConnection::startFetch): |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.h: |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.messages.in: |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp: |
| (WebKit::WebSWServerToContextConnection::startFetch): |
| (WebKit::WebSWServerToContextConnection::continueDidReceiveFetchResponse): |
| (WebKit::WebSWServerToContextConnection::didReceiveFetchTaskMessage): |
| (WebKit::WebSWServerToContextConnection::registerFetch): |
| (WebKit::WebSWServerToContextConnection::unregisterFetch): |
| (WebKit::WebSWServerToContextConnection::fetchTaskTimedOut): |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h: |
| (WebKit::WebSWServerToContextConnection::ipcConnection const): |
| * Sources.txt: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/Network/NetworkProcessConnection.cpp: |
| (WebKit::NetworkProcessConnection::didReceiveMessage): |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::scheduleLoad): |
| * WebProcess/Network/WebResourceLoader.cpp: |
| (WebKit::WebResourceLoader::didFailServiceWorkerLoad): |
| (WebKit::WebResourceLoader::serviceWorkerDidNotHandle): |
| * WebProcess/Network/WebResourceLoader.h: |
| * WebProcess/Network/WebResourceLoader.messages.in: |
| * WebProcess/Storage/ServiceWorkerClientFetch.cpp: Removed. |
| * WebProcess/Storage/ServiceWorkerClientFetch.h: Removed. |
| * WebProcess/Storage/ServiceWorkerClientFetch.messages.in: Removed. |
| * WebProcess/Storage/WebSWClientConnection.cpp: |
| * WebProcess/Storage/WebSWClientConnection.h: |
| * WebProcess/Storage/WebServiceWorkerProvider.cpp: |
| * WebProcess/Storage/WebServiceWorkerProvider.h: |
| |
| 2019-10-14 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] White pages in AC mode: Cannot get default EGL display: EGL_BAD_PARAMETER |
| https://bugs.webkit.org/show_bug.cgi?id=202362 |
| |
| Reviewed by Carlos Alberto Lopez Perez. |
| |
| * WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp: |
| (WebKit::DrawingAreaCoordinatedGraphics::updatePreferences): Disable accelerated compositing mode when we failed |
| to reate the shared display for compositing. |
| * WebProcess/glib/WebProcessGLib.cpp: |
| (WebKit::WebProcess::platformInitializeWebProcess): Destroy the wpe display when initialization fails. |
| |
| 2019-10-14 Chris Dumez <cdumez@apple.com> |
| |
| [WK2] Have WebBackForwardCache class coordinate page caching in all WebProcesses |
| https://bugs.webkit.org/show_bug.cgi?id=202929 |
| <rdar://problem/56250421> |
| |
| Reviewed by Alex Christensen. |
| |
| Have WebBackForwardCache class coordinate page caching in all WebProcesses. To achieve this, the |
| following changes were made: |
| 1. Whenever HistoryItem::m_cachedPage changes in WebCore, we notify the client that the HistoryItem |
| has changed. I added a "hasCachedPage" boolean to the item info being passed the the UIProcess |
| that is set based on whether or not HistoryItem::m_cachedPage is null. |
| 2. The WebBackForwardCache now contains WebBackForwardCacheEntry objects instead of SuspendedPage |
| objects. A WebBackForwardCacheEntry may have a SuspendedPage or not. As a result, we can now |
| add the the back/forward cache CachedPage entries from the WebContent process, which do not have |
| a SuspendedPageProxy in the UIProcess. |
| 3. Now that WebBackForwardCache is aware of all CachedPages, it can properly enforce a cache capacity |
| across call processes. Whenever a WebBackForwardCacheEntry is pruned from the cache and this entry |
| does not have a SuspendedPageProxy, we send an IPC to the WebContent process to remove this |
| cached page from the PageCache in WebCore. |
| |
| Previously, as soon as we would cache a page in the WebContent process, we would send an IPC to the |
| UIProcess so that it would clear the PageCache in any previous WebContent process. This was a stop-gap |
| measure to avoid blowing up memory in a multi-process model by keeping a PageCache around in all |
| WebContent process. This would make sure only one process could have a PageCache at any point in time. |
| This logic is now dropped since the WebBackForwardCache can keep track of all cached pages across all |
| processes and enforce a cross-process limit on the number of cached pages. This means we can now have |
| PageCache entries across several WebContent processes, as long as we do not exceed the maximum number |
| of cached pages. |
| |
| * Platform/Logging.h: |
| Add new BackForwardCache logging channel. |
| |
| * Shared/SessionState.cpp: |
| (WebKit::BackForwardListItemState::encode const): |
| (WebKit::BackForwardListItemState::decode): |
| * Shared/SessionState.h: |
| Add new bit to BackForwardListItemState to indicate whether a HistoryItem has an associated |
| CachedPage or not. |
| |
| * Shared/WebBackForwardListItem.cpp: |
| (WebKit::WebBackForwardListItem::~WebBackForwardListItem): |
| (WebKit::WebBackForwardListItem::wasRemovedFromBackForwardList): |
| (WebKit::WebBackForwardListItem::removeFromBackForwardCache): |
| (WebKit::WebBackForwardListItem::setBackForwardCacheEntry): |
| (WebKit::WebBackForwardListItem::suspendedPage const): |
| (WebKit::WebBackForwardListItem::loggingString): |
| * Shared/WebBackForwardListItem.h: |
| (WebKit::WebBackForwardListItem::backForwardCacheEntry const): |
| WebBackForwardListItem now own a WebBackForwardCacheEntry instead of simply a |
| SuspendedPage. The WebBackForwardCacheEntry may have a SuspendedPage or not. |
| Now, whenever a HistoryItem has a CachedPage in WebCore, its corresponding |
| WebBackForwardListItem in the UIProcess has an associated WebBackForwardCacheEntry |
| whether we have a SuspendedPageProxy for it in the UIProcess or not. |
| |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::encode const): |
| (WebKit::WebProcessCreationParameters::decode): |
| * Shared/WebProcessCreationParameters.h: |
| Pass the PageCache capacity to the WebContent process on creation, so that it matches the |
| capacity of the WebBackForwardCache in the UIProcess. |
| |
| * UIProcess/ProvisionalPageProxy.cpp: |
| (WebKit::ProvisionalPageProxy::goToBackForwardItem): |
| * UIProcess/SuspendedPageProxy.cpp: |
| (WebKit::messageNamesToIgnoreWhileSuspended): |
| (WebKit::SuspendedPageProxy::suspensionTimedOut): |
| * UIProcess/SuspendedPageProxy.h: |
| Stop storing the WebBackForwardListItem on the SuspendedPageProxy. This avoids having to |
| keep this pointer up to date. We do not really need it as we can now ask the WebBackForwardCache |
| to clear an entry by giving it a SuspendedPageProxy to match. Given how many entries we have at |
| most in the cache (2), iterating over them to find the one with a given suspended page is cheap. |
| |
| * UIProcess/WebBackForwardCache.cpp: |
| (WebKit::WebBackForwardCache::WebBackForwardCache): |
| (WebKit::WebBackForwardCache::~WebBackForwardCache): |
| |
| (WebKit::WebBackForwardCache::setCapacity): |
| Send an IPC of each WebProcess whenever the capacity of the WebBackForwardCache changes, in order |
| to update the capacity of the PageCache in those processes. |
| |
| (WebKit::WebBackForwardCache::addEntry): |
| (WebKit::WebBackForwardCache::removeEntry): |
| (WebKit::WebBackForwardCache::takeSuspendedPage): |
| (WebKit::WebBackForwardCache::removeEntriesForProcess): |
| (WebKit::WebBackForwardCache::removeEntriesForSession): |
| (WebKit::WebBackForwardCache::removeEntriesMatching): |
| (WebKit::WebBackForwardCache::clear): |
| |
| * UIProcess/WebBackForwardCache.h: |
| Use a Vector instead of a ListHashSet to store the entries. Given that we have at most 2 entries, using |
| a Vector will likely be more efficient and definitely use less memory. |
| |
| * UIProcess/WebBackForwardCacheEntry.h: Added. |
| (WebKit::WebBackForwardCacheEntry::backForwardCache const): |
| (WebKit::WebBackForwardCacheEntry::WebBackForwardCacheEntry): |
| Add new WebBackForwardCacheEntry abstraction to match the concept of WebCore::CachedPage in the UIProcess. |
| A WebBackForwardCacheEntry may have a SuspendedPageProxy associated with it in the UIProcess or not. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::receivedNavigationPolicyDecision): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| Drop didSaveToPageCache as it is no longer necessary. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::initializeNewWebProcess): |
| (WebKit::WebProcessPool::disconnectProcess): |
| * UIProcess/WebProcessPool.h: |
| |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::updateBackForwardItem): |
| Whenever we get a BackForwardItem from the WebContent process, we now check it now has |
| an associated CachedPage or not. If it does, we make sure we add a corresponding |
| entry in the WebBackForwardCache so that the UIProcess knows about it. If it no longer |
| has a CachedPage and we don't have a SuspendedPageProxy for this item in the UIProcess, |
| then we remove the corresponding entry from the back/forward cache. Note that we don't |
| drop SuspendedPageProxy objects in the UIProcess simply because their corresponding |
| CachedPage in the WebProcess is gone, to maintain previous behavior. This is an |
| optimization that is useful on iOS, where we do not have a WebProcessCache, since we |
| can reuse processes from SuspendedPageProxies on navigation. |
| |
| * UIProcess/WebProcessProxy.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebCoreSupport/SessionStateConversion.cpp: |
| (WebKit::toBackForwardListItemState): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeWebProcess): |
| (WebKit::WebProcess::setBackForwardCacheCapacity): |
| (WebKit::WebProcess::clearCachedPage): |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| |
| 2019-10-14 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Clipboard API] Refactor custom pasteboard writing codepaths to handle multiple items |
| https://bugs.webkit.org/show_bug.cgi?id=202916 |
| |
| Reviewed by Tim Horton. |
| |
| Change more function and method signatures from `const PasteboardCustomData&` to |
| `const Vector<PasteboardCustomData>&`. |
| |
| * UIProcess/Cocoa/WebPasteboardProxyCocoa.mm: |
| (WebKit::WebPasteboardProxy::writeCustomData): |
| * UIProcess/WebPasteboardProxy.cpp: |
| (WebKit::WebPasteboardProxy::writeCustomData): |
| * UIProcess/WebPasteboardProxy.h: |
| * UIProcess/WebPasteboardProxy.messages.in: |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: |
| (WebKit::WebPlatformStrategies::writeCustomData): |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.h: |
| |
| 2019-10-14 Per Arne Vollan <pvollan@apple.com> |
| |
| REGRESSION(251087): Several API tests are failing |
| https://bugs.webkit.org/show_bug.cgi?id=202961 |
| |
| Reviewed by Brent Fulgham. |
| |
| WebPageProxy::maybeInitializeSandboxExtensionHandle returns early if the WebContent process is currently launching, |
| since the audit token is needed to create the sandbox extension. The audit token will not be available until the |
| process has finished launching. In the same way, the method should return early if the WebContent process has |
| terminated. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle): |
| |
| 2019-10-14 Matt Mokary <mmokary@apple.com> |
| |
| FindController::findString always updates foundStringMatchIndex even if match is the same as before |
| https://bugs.webkit.org/show_bug.cgi?id=201775 |
| <rdar://problem/55352425> |
| |
| Reviewed by Tim Horton. |
| |
| Allow an update to a find string without changing current match index, as is often the desired behavior when |
| modifying a query rather than moving forward or backward through a match set. |
| |
| * Shared/WebFindOptions.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (toFindOptions): |
| * UIProcess/API/Cocoa/_WKFindOptions.h: |
| * WebProcess/WebPage/FindController.cpp: |
| (WebKit::FindController::findString): |
| Do not change match index if NoIndexChange bit is set. Otherwise, no change in behavior. |
| |
| 2019-10-14 David Quesada <david_quesada@apple.com> |
| |
| Remove WebCore::IOSApplication::isWebApp() |
| https://bugs.webkit.org/show_bug.cgi?id=181259 |
| |
| Reviewed by Alex Christensen. |
| |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::defaultApplicationCacheDirectory): |
| Remove the wording "this is not supported as of right now", as it seems to be supported |
| since r247686, which added SPI on _WKWebsiteDataStoreConfiguration to set the application |
| cache directory. |
| |
| 2019-10-14 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Clipboard API] Support writing multiple PasteboardCustomData with SharedBuffers to the pasteboard |
| https://bugs.webkit.org/show_bug.cgi?id=202851 |
| |
| Reviewed by Darin Adler. |
| |
| See WebCore ChangeLog for more details. |
| |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<PasteboardCustomData::Entry>::encode): |
| (IPC::ArgumentCoder<PasteboardCustomData::Entry>::decode): |
| |
| Add helpers to encode and decode PasteboardCustomData::Entry. |
| |
| (IPC::ArgumentCoder<PasteboardCustomData>::encode): |
| (IPC::ArgumentCoder<PasteboardCustomData>::decode): |
| * Shared/WebCoreArgumentCoders.h: |
| |
| Add support for encoding and decoding PasteboardCustomData by encoding and decoding each of its items (see |
| above). |
| |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::requestDOMPasteAccess): |
| * UIProcess/WebPasteboardProxy.h: |
| * UIProcess/WebPasteboardProxy.messages.in: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView canPerformActionForWebView:withSender:]): |
| (allPasteboardItemOriginsMatchOrigin): |
| (-[WKContentView _didHandleAdditionalDragItemsRequest:]): |
| |
| Tweak several methods to use the new methods on PasteboardCustomData instead of accessing the member variables |
| directly. |
| |
| (-[WKContentView cleanUpDragSourceSessionState]): |
| (-[WKContentView _prepareToDragPromisedAttachment:]): |
| (-[WKContentView _itemsForBeginningOrAddingToSessionWithRegistrationLists:stagedDragSource:]): |
| (-[WKContentView dragInteraction:itemsForBeginningSession:]): |
| (-[WKContentView _itemsForBeginningOrAddingToSessionWithRegistrationList:stagedDragSource:]): Deleted. |
| |
| Adjust these methods to handle multiple staged item providers (for now, it remains that iOS drag and drop |
| codepaths will still only write a single item to the pasteboard). |
| |
| 2019-10-14 Per Arne Vollan <pvollan@apple.com> |
| |
| [macOS] Sandbox extensions should be created with audit tokens, not PIDs |
| https://bugs.webkit.org/show_bug.cgi?id=201828 |
| |
| Reviewed by Brent Fulgham. |
| |
| Stop issuing mach/read sandbox extensions by PID in the UI process, and use audit tokens instead. |
| The audit tokens for the WebContent processes are retrieved from the IPC connection to the process. |
| |
| * Shared/Cocoa/SandboxExtensionCocoa.mm: |
| (WebKit::SandboxExtensionImpl::create): |
| (WebKit::SandboxExtensionImpl::sandboxExtensionForType): |
| (WebKit::SandboxExtensionImpl::SandboxExtensionImpl): |
| (WebKit::SandboxExtension::createHandleForMachLookupByAuditToken): |
| (WebKit::SandboxExtension::createHandleForReadByAuditToken): |
| (WebKit::SandboxExtension::createHandleForMachLookupByPid): Deleted. |
| (WebKit::SandboxExtension::createHandleForReadByPid): Deleted. |
| * Shared/SandboxExtension.h: |
| * UIProcess/Cocoa/WebPageProxyCocoa.mm: |
| (WebKit::WebPageProxy::createSandboxExtensionsIfNeeded): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle): |
| (WebKit::WebPageProxy::loadRequestWithNavigationShared): |
| (WebKit::WebPageProxy::loadFile): |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::shouldSendPendingMessage): |
| (WebKit::WebProcessProxy::didFinishLaunching): |
| * UIProcess/ios/WebProcessProxyIOS.mm: |
| (WebKit::WebProcessProxy::unblockAccessibilityServerIfNeeded): |
| |
| 2019-10-14 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| [Cocoa] REGRESSION (r245672): Contenteditable with optical sizing freezes Safari |
| https://bugs.webkit.org/show_bug.cgi?id=202262 |
| |
| Reviewed by Tim Horton. |
| |
| r250640 didn't go far enough. We need to apply the same fix everywhere [NSFontDescriptor fontDescriptorWithFontAttributes:] is called. |
| |
| * Shared/Cocoa/ArgumentCodersCocoa.mm: |
| (IPC::decodeFontInternal): |
| * Shared/Cocoa/CoreTextHelpers.h: Added. |
| * Shared/Cocoa/CoreTextHelpers.mm: Added. |
| (fontDescriptorWithFontAttributes): |
| * SourcesCocoa.txt: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::updateFontManagerIfNeeded): |
| * UIProcess/mac/WebPopupMenuProxyMac.mm: |
| (WebKit::WebPopupMenuProxyMac::showPopupMenu): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-10-14 Truitt Savell <tsavell@apple.com> |
| |
| Unreviewed, rolling out r251045. |
| |
| Broke internal builds |
| |
| Reverted changeset: |
| |
| "AX: Make AXIsolatedTree compile again" |
| https://bugs.webkit.org/show_bug.cgi?id=202702 |
| https://trac.webkit.org/changeset/251045 |
| |
| 2019-10-14 youenn fablet <youenn@apple.com> |
| |
| Reuse existing web processes for running service workers |
| https://bugs.webkit.org/show_bug.cgi?id=202195 |
| |
| Unreviewed. |
| |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::disableServiceWorkers): |
| (WebKit::WebProcessProxy::enableServiceWorkers): |
| Fix case where ENABLE_SERVICE_WORKER is not defined. |
| |
| 2019-10-14 Philippe Normand <pnormand@igalia.com> |
| |
| [GTK][WebInspector] Support for saving data |
| https://bugs.webkit.org/show_bug.cgi?id=202894 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Implement the WebInspectorProxy::platformSave() method. This |
| allows users to save the inspector performance measurements, for |
| instance. |
| |
| * UIProcess/gtk/WebInspectorProxyGtk.cpp: |
| (WebKit::WebInspectorProxy::platformSave): |
| * WebProcess/WebPage/gtk/WebInspectorUIGtk.cpp: |
| (WebKit::WebInspectorUI::canSave): |
| |
| 2019-10-14 youenn fablet <youenn@apple.com> |
| |
| Reuse existing web processes for running service workers |
| https://bugs.webkit.org/show_bug.cgi?id=202195 |
| |
| Reviewed by Chris Dumez. |
| |
| When network process asks for a service worker context connection, |
| we now iterate through existing web processes and reuse one if both session |
| and registrable domain match. |
| We then ask the web process to create a context connection to the network process. |
| |
| When network process no longer needs the connection, it instructs the UIProcess |
| that will update its state so that the web process is no longer considered as running |
| service workers. |
| UIProcess then instructs the web process to stop its service workers and its connection. |
| |
| Later on, the same web process may be reused for running service workers in which case |
| a new connection will replace the stopped connection. |
| |
| Similarly, on network process crash, all web process running service workers are updated |
| so that they are no longer considered as running service workers. |
| |
| Add a boolean state to WebProcessPool to control whether creating a separate service worker process. |
| |
| We no longer terminate the web process when stopping service workers or when network process crash. |
| We use the enableTermination/disableTermination at context connection start/stop time. |
| We consider that the context connection is similar to running a page in the process and creating/removing a page |
| calls disableTermination/enableTermination. |
| |
| NetworkProcess is handling the management of service worker processes by checking for clients. |
| In case there is no client, the process is terminated. |
| This removes the need for the WebProcessPool service worker process timer. |
| This patch removes this timer. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::didReceiveMessage): |
| (WebKit::NetworkConnectionToWebProcess::establishSWContextConnection): |
| (WebKit::NetworkConnectionToWebProcess::closeSWContextConnection): |
| (WebKit::NetworkConnectionToWebProcess::serverToContextConnectionNoLongerNeeded): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkHTTPSUpgradeChecker.cpp: |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp: |
| (WebKit::WebSWServerToContextConnection::WebSWServerToContextConnection): |
| (WebKit::WebSWServerToContextConnection::~WebSWServerToContextConnection): |
| (WebKit::WebSWServerToContextConnection::messageSenderConnection const): |
| (WebKit::WebSWServerToContextConnection::connectionIsNoLongerNeeded): |
| (WebKit::WebSWServerToContextConnection::startFetch): |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h: |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextSetUseSeparateServiceWorkerProcess): |
| * UIProcess/API/C/WKContextPrivate.h: |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _setUseSeparateServiceWorkerProcess:]): |
| (-[WKProcessPool _webPageContentProcessCount]): |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::workerContextConnectionNoLongerNeeded): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::networkProcessCrashed): |
| (WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess): |
| (WebKit::WebProcessPool::removeFromServiceWorkerProcesses): |
| (WebKit::WebProcessPool::disconnectProcess): |
| (WebKit::WebProcessPool::createWebPage): |
| (WebKit::WebProcessPool::terminateNetworkProcess): |
| (WebKit::WebProcessPool::setUseSeparateServiceWorkerProcess): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::createForServiceWorkers): |
| (WebKit::WebProcessProxy::canTerminateAuxiliaryProcess): |
| (WebKit::WebProcessProxy::didStartProvisionalLoadForMainFrame): |
| (WebKit::WebProcessProxy::disableServiceWorkers): |
| (WebKit::WebProcessProxy::enableServiceWorkers): |
| * UIProcess/WebProcessProxy.h: |
| (WebKit::WebProcessProxy::isMatchingRegistrableDomain const): |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::m_userAgent): |
| (WebKit::WebSWContextManagerConnection::terminateWorker): |
| (WebKit::WebSWContextManagerConnection::syncTerminateWorker): |
| (WebKit::WebSWContextManagerConnection::close): |
| * WebProcess/Storage/WebSWContextManagerConnection.h: |
| * WebProcess/Storage/WebSWContextManagerConnection.messages.in: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::networkProcessConnectionClosed): |
| (WebKit::WebProcess::registerServiceWorkerClients): |
| |
| 2019-10-12 Chris Dumez <cdumez@apple.com> |
| |
| Back/Forward cache does not work after doing a favorite navigation |
| https://bugs.webkit.org/show_bug.cgi?id=202762 |
| <rdar://problem/56126911> |
| |
| Reviewed by Antti Koivisto. |
| |
| When a process-swap was forced by the client, we would always close the page in the previous |
| process after navigating. This would prevent leveraging the back/forward cache when navigating |
| back after such a process-swap. The reason we were doing this is that other pages may have |
| opener link to this page and closing the page was an easy way to break this opener link. |
| |
| To address the issue, we no longer close the previous page when a process-swap is forced by the |
| client. Instead, we make sure to disconnect the frames' openees from their opener then the opener |
| enters the page cache. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::suspendCurrentPageIfPossible): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::suspendForProcessSwap): |
| |
| 2019-10-12 Chris Dumez <cdumez@apple.com> |
| |
| Clearing Website data for a given session should not shut down cached processes for other sessions |
| https://bugs.webkit.org/show_bug.cgi?id=202865 |
| <rdar://problem/56202912> |
| |
| Reviewed by Antti Koivisto. |
| |
| When clearing Website data for a given data store, we now only clear cached processes |
| (either if BackForwardCache or WebProcessCache) if they are associated with this |
| particular data store. It is very wasteful otherwise. |
| |
| * UIProcess/ProvisionalPageProxy.cpp: |
| (WebKit::ProvisionalPageProxy::~ProvisionalPageProxy): |
| * UIProcess/SuspendedPageProxy.cpp: |
| (WebKit::SuspendedPageProxy::~SuspendedPageProxy): |
| ProvisionalPageProxy & SuspendedPageProxy's destructors no longer call |
| WebProcessProxy::maybeShutdown() asynchronously. We now call maybeShutdown() |
| synchronously in WebProcessProxy::decrementSuspendedPageCount() and |
| WebProcessProxy::removeProvisionalPageProxy() instead. This makes things a |
| lot more predictable. |
| |
| * UIProcess/WebBackForwardCache.cpp: |
| (WebKit::WebBackForwardCache::removeEntriesForSession): |
| Add new removeEntriesForSession() method to clear only back / forward cache |
| entries associated with a particular session. |
| |
| (WebKit::WebBackForwardCache::clear): |
| Stop taking a parameter indicating if we allow the processes to enter the |
| process cache. Now that we call maybeShutdown() synchronously when destroying |
| a SuspendedPageProxy, we can simply allow the processes to enter the process |
| cache unconditionally. If the caller does not want this processes in the page |
| cache, they can clear the process cache afterwards. |
| |
| * UIProcess/WebBackForwardCache.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::receivedNavigationPolicyDecision): |
| Now that destroying a SuspendedPageProxy or a ProvisionalPageProxy may shutdown |
| their process synchronously, add a scope here to prevent shutdown of the process |
| for the duration of this scope, since we're about to use it for a navigation and |
| we don't want it to get shutdown, even if there is no longer anything using it. |
| |
| (WebKit::WebPageProxy::continueNavigationInNewProcess): |
| Add new assertion and rename parameter for consistency. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::handleMemoryPressureWarning): |
| |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::addProvisionalPageProxy): |
| Add new assertion. |
| |
| (WebKit::WebProcessProxy::removeProvisionalPageProxy): |
| Call maybeShutDown() if this was the last provisional page. |
| |
| (WebKit::WebProcessProxy::maybeShutDown): |
| Drop parameter indicating if we want to allow the process to enter the process |
| cache and allow caching unconditionally. |
| |
| (WebKit::WebProcessProxy::canTerminateAuxiliaryProcess): |
| Prevent termination if there is a ScopePreventingShutdown. |
| |
| (WebKit::WebProcessProxy::decrementSuspendedPageCount): |
| Call maybeShutDown() if this was the last suspended page. |
| |
| * UIProcess/WebProcessProxy.h: |
| (WebKit::WebProcessProxy::ScopePreventingShutdown::ScopePreventingShutdown): |
| (WebKit::WebProcessProxy::ScopePreventingShutdown::~ScopePreventingShutdown): |
| (WebKit::WebProcessProxy::makeScopePreventingShutdown): |
| Add new facility to prevent shutdown of a process for the duration of the scope. |
| |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::removeData): |
| When removing website data, only clear cached processes if they are associated with |
| the current data store. |
| |
| 2019-10-12 Chris Fleizach <cfleizach@apple.com> |
| |
| AX: Make AXIsolatedTree compile again |
| https://bugs.webkit.org/show_bug.cgi?id=202702 |
| <rdar://problem/56084968> |
| |
| Reviewed by Joanmarie Diggs. |
| |
| * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm: |
| (-[WKAccessibilityWebPageObjectBase isolatedTreeRootObject]): |
| |
| 2019-10-11 Rob Buis <rbuis@igalia.com> |
| |
| Cleanup RuntimeEnabledFeatures includes |
| https://bugs.webkit.org/show_bug.cgi?id=202857 |
| |
| Reviewed by Eric Carlson. |
| |
| These classes must have had made use of runtime flags before |
| but are not using them anymore. |
| |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: |
| * UIProcess/Plugins/mac/PluginInfoStoreMac.mm: |
| * UIProcess/WebAuthentication/Cocoa/LocalService.mm: |
| * UIProcess/WebProcessPool.cpp: |
| |
| 2019-10-11 Chris Dumez <cdumez@apple.com> |
| |
| Move SuspendedPage logic from WebProcessPool to new WebBackForwardCache class |
| https://bugs.webkit.org/show_bug.cgi?id=202660 |
| |
| Reviewed by Antti Koivisto. |
| |
| Move SuspendedPage logic from WebProcessPool to new WebBackForwardCache class. This is |
| a first step towards implementing back / forward cache handling in the UIProcess. |
| |
| The following changes were made: |
| 1. SuspendedPageProxy objects are now normally owned by their associated WebBackForwardListItem |
| (Similarly to CachedPage objects being owned by their HistoryItem in WebCore) instead of the |
| WebProcessPool. |
| 2. A new WebBackForwardCache class is introduced to cap the number of cached pages and clear |
| them (similary to the PageCache in WebCore). |
| |
| * Shared/WebBackForwardListItem.cpp: |
| (WebKit::WebBackForwardListItem::~WebBackForwardListItem): |
| (WebKit::WebBackForwardListItem::wasRemovedFromBackForwardList): |
| (WebKit::WebBackForwardListItem::setSuspendedPage): |
| (WebKit::WebBackForwardListItem::takeSuspendedPage): |
| (WebKit::WebBackForwardListItem::suspendedPage const): |
| * Shared/WebBackForwardListItem.h: |
| * Sources.txt: |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _maximumSuspendedPageCount]): |
| * UIProcess/RemoteLayerTree/mac/ScrollingTreeOverflowScrollingNodeRemoteMac.cpp: |
| * UIProcess/SuspendedPageProxy.cpp: |
| (WebKit::SuspendedPageProxy::findReusableSuspendedPageProcess): |
| (WebKit::SuspendedPageProxy::SuspendedPageProxy): |
| (WebKit::SuspendedPageProxy::~SuspendedPageProxy): |
| (WebKit::SuspendedPageProxy::setBackForwardListItem): |
| (WebKit::SuspendedPageProxy::clearBackForwardListItem): |
| (WebKit::SuspendedPageProxy::backForwardCache const): |
| (WebKit::SuspendedPageProxy::suspensionTimedOut): |
| * UIProcess/SuspendedPageProxy.h: |
| * UIProcess/WebAuthentication/Mock/MockHidConnection.h: |
| * UIProcess/WebAuthentication/Mock/MockHidService.h: |
| * UIProcess/WebBackForwardCache.cpp: Added. |
| (WebKit::WebBackForwardCache::removeOldestEntry): |
| (WebKit::WebBackForwardCache::setCapacity): |
| (WebKit::WebBackForwardCache::addEntry): |
| (WebKit::WebBackForwardCache::removeEntry): |
| (WebKit::WebBackForwardCache::takeEntry): |
| (WebKit::WebBackForwardCache::removeEntriesForProcess): |
| (WebKit::WebBackForwardCache::removeEntriesForPage): |
| (WebKit::WebBackForwardCache::removeEntriesMatching): |
| (WebKit::WebBackForwardCache::clear): |
| * UIProcess/WebBackForwardCache.h: Copied from Source/WebKit/UIProcess/WebAuthentication/Mock/MockHidService.h. |
| (WebKit::WebBackForwardCache::capacity const): |
| (WebKit::WebBackForwardCache::size const): |
| * UIProcess/WebBackForwardList.cpp: |
| (WebKit::WebBackForwardList::didRemoveItem): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::suspendCurrentPageIfPossible): |
| (WebKit::WebPageProxy::backForwardCache const): |
| (WebKit::WebPageProxy::shouldUseBackForwardCache const): |
| (WebKit::WebPageProxy::close): |
| (WebKit::WebPageProxy::receivedNavigationPolicyDecision): |
| (WebKit::WebPageProxy::resetState): |
| (WebKit::WebPageProxy::enterAcceleratedCompositingMode): |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::process const): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::m_webProcessCache): |
| (WebKit::WebProcessPool::disconnectProcess): |
| (WebKit::WebProcessPool::processForRegistrableDomain): |
| (WebKit::WebProcessPool::handleMemoryPressureWarning): |
| (WebKit::WebProcessPool::updateBackForwardCacheCapacity): |
| (WebKit::WebProcessPool::setCacheModel): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::removeData): |
| (WebKit::WebsiteDataStore::setMockWebAuthenticationConfiguration): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-10-11 Alex Christensen <achristensen@webkit.org> |
| |
| Only use CFNetwork SPI for metrics where needed |
| https://bugs.webkit.org/show_bug.cgi?id=202825 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (stringForSSLProtocolVersion): |
| (-[WKNetworkSessionDelegate URLSession:task:didFinishCollectingMetrics:]): |
| |
| 2019-10-11 Kate Cheney <katherine_cheney@apple.com> |
| |
| Get StorageAccess API features working on SQLite database implementation (195422) |
| https://bugs.webkit.org/show_bug.cgi?id=195422 |
| <rdar://problem/54213519> |
| |
| Reviewed by Brent Fulgham. |
| |
| This patch migrates the http/tests/storageAccess/ Layout tests to |
| use the ITP database and uncovered 3 bugs in the process. |
| |
| 1. It was previously blocking cookies to a third party domain which |
| was not marked as prevalent. Now it ensures that the user is prompted |
| using the storage acess API regarding that third party domain. |
| |
| 2. It was not requesting storage access if cookies had previously been |
| blocked. Now it will only return early from |
| ResourceLoadStatisticsDatabaseStore::requestStorageAccessUnderOpener |
| if cookie access is allowed, and request storage access otherwise. |
| |
| 3. hasUserGrantedStorageAccessThroughPrompt was returning true even |
| if the result was not previously granted storage access. |
| |
| All of these fixes match behavior in |
| ResourceLoadStatisticsMemoryStore. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: |
| (WebKit::ResourceLoadStatisticsDatabaseStore::requestStorageAccess): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::requestStorageAccessUnderOpener): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::hasUserGrantedStorageAccessThroughPrompt): |
| |
| 2019-10-11 Dean Jackson <dino@apple.com> |
| |
| REGRESSION: fast/events/touch/ios/long-press-on-image.html is failing |
| https://bugs.webkit.org/show_bug.cgi?id=202845 |
| |
| Reviewed by Antoine Quint. |
| |
| Update _contentsOfUserInterfaceItem so that it returns more information |
| on a context menu. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _contentsOfUserInterfaceItem:]): |
| |
| 2019-10-11 Alex Christensen <achristensen@webkit.org> |
| |
| Use sendWithAsyncReply for cookie getting/clearing functions |
| https://bugs.webkit.org/show_bug.cgi?id=202841 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| No change in behavior. This just simplifies the message sending a bit. |
| |
| * NetworkProcess/Cookies/WebCookieManager.cpp: |
| (WebKit::WebCookieManager::getHostnamesWithCookies): |
| (WebKit::WebCookieManager::deleteAllCookies): |
| (WebKit::WebCookieManager::deleteCookie): |
| (WebKit::WebCookieManager::deleteAllCookiesModifiedSince): |
| (WebKit::WebCookieManager::getAllCookies): |
| (WebKit::WebCookieManager::getCookies): |
| (WebKit::WebCookieManager::setCookie): |
| (WebKit::WebCookieManager::setCookies): |
| (WebKit::WebCookieManager::setHTTPCookieAcceptPolicy): |
| (WebKit::WebCookieManager::getHTTPCookieAcceptPolicy): |
| * NetworkProcess/Cookies/WebCookieManager.h: |
| * NetworkProcess/Cookies/WebCookieManager.messages.in: |
| * NetworkProcess/Cookies/mac/WebCookieManagerMac.mm: |
| * UIProcess/API/APIHTTPCookieStore.cpp: |
| (API::HTTPCookieStore::cookies): |
| (API::HTTPCookieStore::setCookies): |
| (API::HTTPCookieStore::deleteCookie): |
| (API::HTTPCookieStore::setHTTPCookieAcceptPolicy): |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _setCookieAcceptPolicy:]): |
| * UIProcess/API/glib/WebKitCookieManager.cpp: |
| (webkit_cookie_manager_set_accept_policy): |
| (webkit_cookie_manager_get_accept_policy): |
| (webkit_cookie_manager_add_cookie): |
| (webkit_cookie_manager_get_cookies): |
| (webkit_cookie_manager_delete_cookie): |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::addSingleCookie): |
| * UIProcess/AuxiliaryProcessProxy.h: |
| (WebKit::AuxiliaryProcessProxy::sendWithAsyncReply): |
| * UIProcess/WebCookieManagerProxy.cpp: |
| (WebKit::WebCookieManagerProxy::processPoolDestroyed): |
| (WebKit::WebCookieManagerProxy::processDidClose): |
| (WebKit::WebCookieManagerProxy::getHostnamesWithCookies): |
| (WebKit::WebCookieManagerProxy::deleteCookie): |
| (WebKit::WebCookieManagerProxy::deleteAllCookiesModifiedSince): |
| (WebKit::WebCookieManagerProxy::setCookies): |
| (WebKit::WebCookieManagerProxy::getAllCookies): |
| (WebKit::WebCookieManagerProxy::getCookies): |
| (WebKit::WebCookieManagerProxy::setHTTPCookieAcceptPolicy): |
| (WebKit::WebCookieManagerProxy::getHTTPCookieAcceptPolicy): |
| (WebKit::WebCookieManagerProxy::didGetHostnamesWithCookies): Deleted. |
| (WebKit::WebCookieManagerProxy::didSetCookies): Deleted. |
| (WebKit::WebCookieManagerProxy::didGetCookies): Deleted. |
| (WebKit::WebCookieManagerProxy::didDeleteCookies): Deleted. |
| (WebKit::WebCookieManagerProxy::didGetHTTPCookieAcceptPolicy): Deleted. |
| (WebKit::WebCookieManagerProxy::didSetHTTPCookieAcceptPolicy): Deleted. |
| * UIProcess/WebCookieManagerProxy.h: |
| * UIProcess/WebCookieManagerProxy.messages.in: |
| |
| 2019-10-10 Alex Christensen <achristensen@webkit.org> |
| |
| Remove unused WebProcessPool::requestNetworkingStatistics |
| https://bugs.webkit.org/show_bug.cgi?id=202818 |
| |
| Reviewed by Chris Dumez. |
| |
| Its only use was removed in rdar://problem/56160996 |
| |
| * NetworkProcess/Downloads/DownloadManager.h: |
| (WebKit::DownloadManager::isDownloading const): |
| (WebKit::DownloadManager::activeDownloadCount const): Deleted. |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::getNetworkProcessStatistics): Deleted. |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * Shared/Authentication/AuthenticationManager.h: |
| (WebKit::AuthenticationManager::outstandingAuthenticationChallengeCount const): Deleted. |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::didReceiveMessage): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::getStatistics): |
| (WebKit::WebProcessPool::requestNetworkingStatistics): Deleted. |
| * UIProcess/WebProcessPool.h: |
| |
| 2019-10-10 Basuke Suzuki <Basuke.Suzuki@sony.com> |
| |
| [WinCairo] Move remote communication handling from RemoteInspectorServer to RemoteInspector. |
| https://bugs.webkit.org/show_bug.cgi?id=202763 |
| |
| Reviewed by Ross Kirsling. |
| |
| Remove deleted method invocations. |
| |
| * UIProcess/win/WebProcessPoolWin.cpp: |
| (WebKit::initializeRemoteInspectorServer): |
| (WebKit::WebProcessPool::platformInitialize): |
| |
| 2019-10-10 Youenn Fablet <youenn@apple.com> |
| |
| Do not timeout a load intercepted by service worker that receives a response |
| https://bugs.webkit.org/show_bug.cgi?id=202787 |
| |
| Reviewed by Chris Dumez. |
| |
| Stop making ServiceWorkerFetchTask ref counted since it is not needed and |
| can potentially make ServiceWorkerFetchTask oulive its WebSWServerToContextConnection member. |
| |
| Stop the ServiceWorkerFetchTask timeout timer whenever receiving a response so that the load will not timeout in that case. |
| This ensures that a load that is starting in a service worker will not be failing. |
| Instead the load will go to network process. |
| |
| Removed m_didReachTerminalState which is not needed as WebSWServerToContextConnection unregisters the ServiceWorkerFetchTask |
| as an IPC listener for all terminating messages. |
| |
| * NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp: |
| (WebKit::ServiceWorkerFetchTask::didReceiveRedirectResponse): |
| (WebKit::ServiceWorkerFetchTask::didReceiveResponse): |
| (WebKit::ServiceWorkerFetchTask::didReceiveData): |
| (WebKit::ServiceWorkerFetchTask::didReceiveFormData): |
| (WebKit::ServiceWorkerFetchTask::didFinish): |
| (WebKit::ServiceWorkerFetchTask::didFail): |
| (WebKit::ServiceWorkerFetchTask::didNotHandle): |
| (WebKit::ServiceWorkerFetchTask::timeoutTimerFired): |
| * NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h: |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp: |
| (WebKit::WebSWServerToContextConnection::startFetch): |
| (WebKit::WebSWServerToContextConnection::fetchTaskTimedOut): |
| Use a Vector instead of a HasSet for performance reasons. |
| Update according fetch map using unique_ptr instead of Ref<>. |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h: |
| |
| 2019-10-10 Rob Buis <rbuis@igalia.com> |
| |
| SpeculativeLoad should use CompletionHandler |
| https://bugs.webkit.org/show_bug.cgi?id=202795 |
| |
| Reviewed by Chris Dumez. |
| |
| SpeculativeLoad should use CompletionHandler, as remarked in |
| Bug 201641 review. |
| |
| * NetworkProcess/cache/NetworkCacheSpeculativeLoad.h: |
| |
| 2019-10-10 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Support programmatic paste requests on macOS |
| https://bugs.webkit.org/show_bug.cgi?id=202773 |
| <rdar://problem/48957166> |
| |
| Reviewed by Tim Horton. |
| |
| Adds support for programmatic paste requests on macOS, as well as some testing SPI in WKWebView to allow |
| WebKitTestRunner to grab the NSMenu used for the DOM paste request. This patch adopts the same strategy taken to |
| allow programmatic paste on iOS, by allowing programmatic pastes coming from the page to show platform UI which |
| the user must then interact with in order to proceed with the paste. See below for more details. |
| |
| * Shared/WebPreferencesDefaultValues.h: |
| |
| Make this available on both iOS and macOS (iOS family is omitted for now, since callout bar UI is not generally |
| present on non-iOS iOS-family platforms such as Apple Watch). |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _web_grantDOMPasteAccess]): |
| |
| This selector is called when the user taps the Paste option in the presented NSMenu. |
| |
| (-[WKWebView _activeMenu]): |
| |
| Returns the currently active NSMenu. Only for testing purposes. |
| |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/API/mac/WKView.mm: |
| (-[WKView _web_grantDOMPasteAccess]): |
| |
| Same exercise as above, only for WKView instead of WKWebView. |
| |
| * UIProcess/Cocoa/WebViewImpl.h: |
| (WebKit::WebViewImpl::domPasteMenu const): |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (-[WKDOMPasteMenuDelegate initWithWebViewImpl:]): |
| (-[WKDOMPasteMenuDelegate menuDidClose:]): |
| (-[WKDOMPasteMenuDelegate numberOfItemsInMenu:]): |
| (-[WKDOMPasteMenuDelegate confinementRectForMenu:onScreen:]): |
| |
| Adds a new object, whose purpose is to be a delegate for the NSMenu that is presented when requesting DOM paste |
| access. This object is used instead of WKWebView, since API clients may end up making the WKWebView the delegate |
| for a different menu, in which case some implementations (either theirs or ours) of NSMenuDelegate methods would |
| not be called. Avoiding this would require the client to be aware that WKWebView conforms to NSMenuDelegate, |
| which is only declared privately. |
| |
| (WebKit::WebViewImpl::handleProcessSwapOrExit): |
| |
| On process swap or exit, automatically bail out of any pending DOM paste request by denying it. |
| |
| (WebKit::WebViewImpl::requestDOMPasteAccess): |
| (WebKit::WebViewImpl::handleDOMPasteRequestWithResult): |
| |
| Handle the DOM paste request by showing an NSMenu near the mouse cursor with a single option to paste. |
| |
| * UIProcess/mac/PageClientImplMac.h: |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::requestDOMPasteAccess): |
| |
| 2019-10-10 youenn fablet <youenn@apple.com> |
| |
| Remove unified plan runtime flag |
| https://bugs.webkit.org/show_bug.cgi?id=202721 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/glib/WebKitSettings.cpp: |
| (webKitSettingsConstructed): Remove ability to disable unified plan. |
| |
| 2019-10-10 Adrian Perez de Castro <aperez@igalia.com> |
| |
| Remove a "The " in "The The HTTP headers of the response" |
| https://bugs.webkit.org/show_bug.cgi?id=194851 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * Shared/API/glib/WebKitURIResponse.cpp: |
| (webkit_uri_response_class_init): Fix typo in description of the WebKitURIResponse::http-headers property. |
| |
| 2019-10-10 youenn fablet <youenn@apple.com> |
| |
| [Mac] Allow SYS___pthread_markcancel call |
| https://bugs.webkit.org/show_bug.cgi?id=202723 |
| |
| Reviewed by Alex Christensen. |
| |
| Allow this pthread call as libwebrtc uses it on the Mac as well. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2019-10-09 youenn fablet <youenn@apple.com> |
| |
| A service worker process should not be created when enqueuing a service worker job |
| https://bugs.webkit.org/show_bug.cgi?id=202578 |
| <rdar://problem/55979690> |
| |
| Reviewed by Chris Dumez. |
| |
| Remove the calls to create service worker context connection. |
| They are now done at SWServer level when trying to either run a service worker or install one. |
| |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::startFetch): |
| (WebKit::WebSWServerConnection::postMessageToServiceWorker): |
| (WebKit::WebSWServerConnection::scheduleJobInServer): |
| |
| 2019-10-09 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Clipboard API] Refactor Pasteboard item reading functions to work on both iOS and macOS |
| https://bugs.webkit.org/show_bug.cgi?id=202647 |
| |
| Reviewed by Tim Horton. |
| |
| Refactor iOS-specific pasteboard functions to be platform-agnostic. See WebCore ChangeLog for more details. |
| |
| * UIProcess/Cocoa/WebPasteboardProxyCocoa.mm: |
| (WebKit::WebPasteboardProxy::allPasteboardItemInfo): |
| (WebKit::WebPasteboardProxy::informationForItemAtIndex): |
| (WebKit::WebPasteboardProxy::getPasteboardItemsCount): |
| (WebKit::WebPasteboardProxy::readStringFromPasteboard): |
| (WebKit::WebPasteboardProxy::readURLFromPasteboard): |
| (WebKit::WebPasteboardProxy::readBufferFromPasteboard): |
| (WebKit::WebPasteboardProxy::writeURLToPasteboard): |
| (WebKit::WebPasteboardProxy::writeWebContentToPasteboard): |
| (WebKit::WebPasteboardProxy::writeImageToPasteboard): |
| (WebKit::WebPasteboardProxy::writeStringToPasteboard): |
| * UIProcess/WebPasteboardProxy.cpp: |
| (WebKit::WebPasteboardProxy::allPasteboardItemInfo): |
| (WebKit::WebPasteboardProxy::informationForItemAtIndex): |
| (WebKit::WebPasteboardProxy::getPasteboardItemsCount): |
| (WebKit::WebPasteboardProxy::readStringFromPasteboard): |
| (WebKit::WebPasteboardProxy::readURLFromPasteboard): |
| (WebKit::WebPasteboardProxy::readBufferFromPasteboard): |
| * UIProcess/WebPasteboardProxy.h: |
| * UIProcess/WebPasteboardProxy.messages.in: |
| * UIProcess/wpe/WebPasteboardProxyWPE.cpp: |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: |
| (WebKit::WebPlatformStrategies::informationForItemAtIndex): |
| (WebKit::WebPlatformStrategies::readBufferFromPasteboard): |
| (WebKit::WebPlatformStrategies::readURLFromPasteboard): |
| (WebKit::WebPlatformStrategies::readStringFromPasteboard): |
| (WebKit::WebPlatformStrategies::writeToPasteboard): |
| (WebKit::WebPlatformStrategies::updateSupportedTypeIdentifiers): |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.h: |
| |
| 2019-10-09 John Wilander <wilander@apple.com> |
| |
| IsLoggedIn: Add as experimental feature |
| https://bugs.webkit.org/show_bug.cgi?id=202707 |
| <rdar://problem/56095064> |
| |
| Reviewed by Brent Fulgham and Chris Dumez. |
| |
| IsLoggedIn was proposed to the WebAppSec WG at TPAC 2019. |
| So far there is only an explainer posted to the mailing list: |
| https://lists.w3.org/Archives/Public/public-webappsec/2019Sep/0004.html |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2019-10-09 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthn] Move the mock testing entrance to Internals |
| https://bugs.webkit.org/show_bug.cgi?id=202560 |
| <rdar://problem/55973793> |
| |
| Reviewed by Chris Dumez. |
| |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreSetWebAuthenticationMockConfiguration): Deleted. |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| * UIProcess/WebAuthentication/AuthenticatorTransportService.cpp: |
| (WebKit::AuthenticatorTransportService::createMock): |
| * UIProcess/WebAuthentication/AuthenticatorTransportService.h: |
| * UIProcess/WebAuthentication/Mock/MockAuthenticatorManager.cpp: |
| (WebKit::MockAuthenticatorManager::MockAuthenticatorManager): |
| * UIProcess/WebAuthentication/Mock/MockAuthenticatorManager.h: |
| * UIProcess/WebAuthentication/Mock/MockHidConnection.cpp: |
| (WebKit::MockHidConnection::send): |
| (WebKit::MockHidConnection::registerDataReceivedCallbackInternal): |
| (WebKit::MockHidConnection::parseRequest): |
| (WebKit::MockHidConnection::feedReports): |
| (WebKit::MockHidConnection::shouldContinueFeedReports): |
| * UIProcess/WebAuthentication/Mock/MockHidConnection.h: |
| * UIProcess/WebAuthentication/Mock/MockHidService.cpp: |
| (WebKit::MockHidService::MockHidService): |
| * UIProcess/WebAuthentication/Mock/MockHidService.h: |
| * UIProcess/WebAuthentication/Mock/MockLocalConnection.h: |
| * UIProcess/WebAuthentication/Mock/MockLocalConnection.mm: |
| (WebKit::MockLocalConnection::MockLocalConnection): |
| * UIProcess/WebAuthentication/Mock/MockLocalService.h: |
| * UIProcess/WebAuthentication/Mock/MockLocalService.mm: |
| (WebKit::MockLocalService::MockLocalService): |
| * UIProcess/WebAuthentication/Mock/MockNfcService.h: |
| * UIProcess/WebAuthentication/Mock/MockNfcService.mm: |
| (WebKit::MockNfcService::MockNfcService): |
| (WebKit::MockNfcService::platformStartDiscovery): |
| (WebKit::MockNfcService::detectTags const): |
| * UIProcess/WebAuthentication/Mock/MockWebAuthenticationConfiguration.h: Removed. |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::setMockWebAuthenticationConfiguration): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::setMockWebAuthenticationConfiguration): |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| |
| 2019-10-09 Simon Fraser <simon.fraser@apple.com> |
| |
| Rename WheelEventTestTrigger and improve naming in related code |
| https://bugs.webkit.org/show_bug.cgi?id=202772 |
| |
| Reviewed by Tim Horton. |
| |
| Change the "test trigger" terminology to "monitor wheel events"; after all, tests |
| call monitorWheelEvents() and callAfterScrollingCompletes(), and this is not triggering |
| a test. |
| |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageClearWheelEventTestMonitor): |
| (WKPageClearWheelEventTestTrigger): Deleted. |
| * UIProcess/API/C/WKPage.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::clearWheelEventTestMonitor): |
| (WebKit::WebPageProxy::clearWheelEventTestTrigger): Deleted. |
| * UIProcess/WebPageProxy.h: |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: |
| (WKBundlePageStartMonitoringScrollOperations): |
| (WKBundlePageRegisterScrollOperationCompletionCallback): |
| * WebProcess/Plugins/PDF/PDFPlugin.mm: |
| (WebKit::PDFPlugin::createScrollbar): |
| * WebProcess/WebPage/EventDispatcher.cpp: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::clearWheelEventTestMonitor): |
| (WebKit::WebPage::clearWheelEventTestTrigger): Deleted. |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2019-10-09 Andy Estes <aestes@apple.com> |
| |
| [Cocoa] IPC::decode should gracefully handle a nil allowed class |
| https://bugs.webkit.org/show_bug.cgi?id=202753 |
| |
| Reviewed by Geoffrey Garen. |
| |
| If IPC::decode is called with a nil allowed class, an NSInvalidArgumentException will be |
| thrown when trying to create an NSArray literal with a nil value. Depending on who calls |
| IPC::decode, this exception might or might not be caught, leading to dropped messages or |
| crashes. |
| |
| One case of this happening is tracked by rdar://problem/55839467. In this case, the nil |
| allowed class was due to a build misconfiguration, and the exception caused the UI process |
| to not respond to a synchronous IPC message, hanging the WebContent process. |
| |
| rdar://problem/55839467 was resolved by fixing the build misconfiguration, but this patch |
| improves IPC::decode so that a nil allowed class results in a message decoding failure |
| rather than a maybe-caught NSException. |
| |
| * Shared/Cocoa/ArgumentCodersCocoa.h: |
| (IPC::decode): |
| |
| 2019-10-09 youenn fablet <youenn@apple.com> |
| |
| Remove testRunner.setWebRTCUnifiedPlanEnabled |
| https://bugs.webkit.org/show_bug.cgi?id=202700 |
| |
| Reviewed by Eric Carlson. |
| |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): |
| |
| 2019-10-09 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| REGRESSION(r250597): [GTK][WPE] 2.27.1 shows HTML content as text/plain in custom protocols when passing a charset in content type |
| https://bugs.webkit.org/show_bug.cgi?id=202633 |
| |
| Reviewed by Žan Doberšek. |
| |
| This is a regression of the switch to use the new custom protocols implementation. Before r250597, we extracted |
| the mime type and charset from content type in the network process, but we are now sending the response directly |
| from the UI process, so we need to do that when building our response. Rename the mime_type parameter as |
| content_type to avoid confusion, since it's documented as the content type. |
| |
| * UIProcess/API/glib/WebKitURISchemeRequest.cpp: |
| (webkitURISchemeRequestReadCallback): |
| (webkit_uri_scheme_request_finish): |
| * UIProcess/API/gtk/WebKitURISchemeRequest.h: |
| * UIProcess/API/wpe/WebKitURISchemeRequest.h: |
| |
| 2019-10-09 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK][WPE] about:gpu should also show the client EGL extensions |
| https://bugs.webkit.org/show_bug.cgi?id=202690 |
| |
| Reviewed by Carlos Alberto Lopez Perez. |
| |
| We are showing the extensions supported by the display. |
| |
| * UIProcess/API/glib/WebKitProtocolHandler.cpp: |
| (WebKit::WebKitProtocolHandler::handleGPU): |
| |
| 2019-10-09 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| CustomProtocols: convert log messages in WebURLSchemeTaskProxy to RELEASE_LOG |
| https://bugs.webkit.org/show_bug.cgi?id=202686 |
| |
| Reviewed by Alex Christensen. |
| |
| Instead of using WTFLogAlways, since those messages are confusing on stdout. |
| |
| * WebProcess/WebPage/WebURLSchemeTaskProxy.cpp: |
| (WebKit::WebURLSchemeTaskProxy::didPerformRedirection): |
| (WebKit::WebURLSchemeTaskProxy::didReceiveResponse): |
| (WebKit::WebURLSchemeTaskProxy::didReceiveData): |
| |
| 2019-10-09 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [WPE][GTK] WebKitSecurityManager should consider webkit:// to be a local URI scheme |
| https://bugs.webkit.org/show_bug.cgi?id=202638 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * UIProcess/API/glib/WebKitProtocolHandler.cpp: |
| (WebKit::WebKitProtocolHandler::WebKitProtocolHandler): |
| |
| 2019-10-08 Antti Koivisto <antti@apple.com> |
| |
| [CSS Shadow Parts] Enable by default |
| https://bugs.webkit.org/show_bug.cgi?id=202644 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * Shared/WebPreferences.yaml: |
| |
| Flip the switch. |
| |
| 2019-10-08 Andy Estes <aestes@apple.com> |
| |
| [iOS] Add a fast path that avoids hit testing during context menu interactions on elements |
| https://bugs.webkit.org/show_bug.cgi?id=202510 |
| <rdar://problem/55939313> |
| |
| Reviewed by Tim Horton. |
| |
| When computing position information for an element, we can store sufficient context |
| information in InteractionInformationAtPosition such that the same element could be |
| retrieved again without hit testing. The existing TextInputContext can already store an |
| element's page identifier, document identifier, and element identifier, which is sufficient |
| context for such a task. |
| |
| This patch renames TextInputContext to ElementContext and uses it when populating new |
| InteractionInformationAtPosition structs in elementPositionInformation(). When a context |
| menu interaction occurs, WebPage::startInteractionWithElementContextOrPosition() uses this |
| context to look up the interaction element by its identifier triplet, falling back to hit |
| testing if this lookup fails. |
| |
| * Scripts/webkit/messages.py: |
| * Shared/DocumentEditingContext.h: |
| * Shared/DocumentEditingContext.mm: |
| (IPC::ArgumentCoder<WebKit::DocumentEditingContextRequest>::decode): |
| * Shared/ElementContext.cpp: Renamed from Source/WebKit/Shared/TextInputContext.cpp. |
| (IPC::ArgumentCoder<WebKit::ElementContext>::encode): |
| (IPC::ArgumentCoder<WebKit::ElementContext>::decode): |
| * Shared/ElementContext.h: Renamed from Source/WebKit/Shared/TextInputContext.h. |
| (WebKit::operator==): |
| * Shared/ios/InteractionInformationAtPosition.h: |
| * Shared/ios/InteractionInformationAtPosition.mm: |
| (WebKit::InteractionInformationAtPosition::encode const): |
| (WebKit::InteractionInformationAtPosition::decode): |
| * Sources.txt: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _requestTextInputContextsInRect:completionHandler:]): |
| * UIProcess/API/Cocoa/_WKTextInputContext.mm: |
| (-[_WKTextInputContext _initWithTextInputContext:]): |
| (-[_WKTextInputContext _textInputContext]): |
| * UIProcess/API/Cocoa/_WKTextInputContextInternal.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::textInputContextsInRect): |
| (WebKit::WebPageProxy::focusTextInputContext): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView actionSheetAssistant:willStartInteractionWithElement:]): |
| (-[WKContentView assignLegacyDataForContextMenuInteraction]): |
| (-[WKContentView continueContextMenuInteraction:]): |
| (-[WKContentView continueContextMenuInteractionWithDataDetectors:]): |
| (-[WKContentView _presentedViewControllerForPreviewItemController:]): |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::startInteractionWithPositionInformation): |
| (WebKit::WebPageProxy::startInteractionWithElementAtPosition): Deleted. |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::textInputContextsInRect): |
| (WebKit::WebPage::focusTextInputContext): |
| (WebKit::WebPage::elementForContext const): |
| (WebKit::WebPage::contextForElement const): |
| (WebKit::WebPage::elementForTextInputContext): Deleted. |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::elementPositionInformation): |
| (WebKit::WebPage::startInteractionWithElementContextOrPosition): |
| (WebKit::WebPage::requestDocumentEditingContext): |
| (WebKit::WebPage::startInteractionWithElementAtPosition): Deleted. |
| |
| 2019-10-08 Adrian Perez de Castro <aperez@igalia.com> |
| |
| Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.27.1 release |
| |
| * wpe/NEWS: Add release notes for 2.27.1 |
| |
| 2019-10-08 Kate Cheney <katherine_cheney@apple.com> |
| |
| Implement Telemetry and Dumping Routines for SQLite backend (195088) |
| https://bugs.webkit.org/show_bug.cgi?id=195088 |
| <rdar://problem/54213407> |
| |
| Reviewed by John Wilander. |
| |
| Implemented database telemetry calculating for ITP. Mimicked |
| ResourceLoadStatisticsMemoryStore telemetry logging behavior using |
| SQLite Queries as opposed to vector sorting/manipulation. Once fully |
| integrated, this will simplify analysis of ITP data by transitioning |
| ITP data storage from a plist to a SQLite database. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: |
| (WebKit::ResourceLoadStatisticsDatabaseStore::ResourceLoadStatisticsDatabaseStore): |
| Added SQL queries to be initialized in the constructor. These queries |
| are needed to mimic the telemetry calculations done in |
| ResourceLoadStatisticsMemoryStore. |
| |
| (WebKit::resetStatement): |
| To reduce code duplication, this function holds common code to reset |
| a SQL query. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::prepareStatements): |
| Added SQL queries needed for telemetry calculations to be prepared. |
| |
| (WebKit::joinSubStatisticsForSorting): |
| This function returns the query string for sorting resources that is |
| shared by many queries. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::getMedianOfPrevalentResourcesWithUserInteraction const): |
| Implemented a function to take the median days since user interaction |
| from all prevalent resources in the database with user interaction |
| (sorted by max count of subframes, subresources and unique redirects under |
| the top frame domain). |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::getNumberOfPrevalentResources const): |
| Executes a SQL query to get the number of prevalent resources to log as |
| telemetry. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::getNumberOfPrevalentResourcesWithUI const): |
| Executes a SQL query to get the number of prevalent resources with user |
| interaction to log as telemetry. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::getTopPrevelentResourceDaysSinceUI const): |
| Prepares and executes a SQL query to get the days since user |
| interaction from the top prevalent resource to be recorded as |
| telemetry data. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::getMedianStatisticOfPrevalentResourceWithoutUserInteraction const): |
| Implemented a function which takes a statistic and returns the value |
| of that statistic for the median prevalent resource without user |
| interaction to be recorded as telemetry data. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::getNumberOfPrevalentResourcesInTopResources const): |
| Returns the count of prevalent resources in the top x resources |
| sorted by sum of substatistics again to be logged as telemetry. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::calculateTelemetryData const): |
| Function which executes all functions which populate the struct with |
| telemetry data. This struct will then be passed to |
| WebResourceLoadStatisticsTelemetry to be logged. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::calculateAndSubmitTelemetry const): |
| Initializes the telemetry struct and calls the function to populate |
| it, then passes it to the WebResourceLoadStatisticsTelemetry object |
| to be recorded. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h: |
| Describe PrevalentResourceDatabaseTelemetry Struct to be passed and |
| logged as telemetry data. |
| |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsTelemetry.cpp: |
| (WebKit::databaseSubmitTopLists): |
| Logging telemetry data by looping through 2D array of statistics for |
| the top 1, 3, 10, 50, and 100 prevalent resources sorted by the sum |
| of substatistics under the top frame domain. This matches the logging |
| already done in ResourceLoadStatisticsMemoryStore. |
| |
| (WebKit::WebResourceLoadStatisticsTelemetry::submitTelemetry): |
| Submits data to the webPageProxy logs and plists. |
| |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsTelemetry.h: |
| Added new submitTopList function to accomodate database telemetry |
| logging. |
| |
| * NetworkProcess/NetworkSession.cpp: |
| (WebKit::NetworkSession::notifyPageStatisticsTelemetryFinished): |
| * NetworkProcess/NetworkSession.h: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::notifyResourceLoadStatisticsTelemetryFinished): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| Updated the current testing for telemetry which only tested 3 |
| statistics. With this patch it now tests 10 statistics. |
| |
| 2019-10-08 Adrian Perez de Castro <aperez@igalia.com> |
| |
| [GTK][WPE] Fix non-unified builds after r250486 |
| https://bugs.webkit.org/show_bug.cgi?id=202636 |
| |
| Reviewed by Youenn Fablet. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: Add missing inclusion of the |
| Logging.h header. |
| |
| 2019-10-08 Brady Eidson <beidson@apple.com> |
| |
| Service Worker Fetch events should time out. |
| https://bugs.webkit.org/show_bug.cgi?id=202188 |
| |
| Reviewed by Alex Christensen. |
| |
| When we start a fetch task in the server, we also start a timeout on that fetch task. |
| |
| "Time out" means the fetch task must continue to make progress at the given frequency (once every 60 seconds by default) |
| |
| If any given fetch task times out in a service worker instance, that instance loses the right to handle fetches. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::setServiceWorkerFetchTimeoutForTesting): |
| (WebKit::NetworkProcess::resetServiceWorkerFetchTimeoutForTesting): |
| * NetworkProcess/NetworkProcess.h: |
| (WebKit::NetworkProcess::serviceWorkerFetchTimeout const): |
| * NetworkProcess/NetworkProcess.messages.in: |
| |
| * NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp: |
| (WebKit::ServiceWorkerFetchTask::ServiceWorkerFetchTask): |
| (WebKit::ServiceWorkerFetchTask::didReceiveRedirectResponse): |
| (WebKit::ServiceWorkerFetchTask::didReceiveResponse): |
| (WebKit::ServiceWorkerFetchTask::didReceiveData): |
| (WebKit::ServiceWorkerFetchTask::didReceiveFormData): |
| (WebKit::ServiceWorkerFetchTask::didFinish): |
| (WebKit::ServiceWorkerFetchTask::didFail): |
| (WebKit::ServiceWorkerFetchTask::didNotHandle): |
| * NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h: |
| (WebKit::ServiceWorkerFetchTask::create): |
| (WebKit::ServiceWorkerFetchTask::serviceWorkerIdentifier const): |
| (WebKit::ServiceWorkerFetchTask::wasHandled const): |
| (WebKit::ServiceWorkerFetchTask::ServiceWorkerFetchTask): Deleted. |
| |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::startFetch): |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.h: |
| |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp: |
| (WebKit::WebSWServerToContextConnection::startFetch): |
| (WebKit::WebSWServerToContextConnection::fetchTaskTimedOut): |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h: |
| |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextSetServiceWorkerFetchTimeoutForTesting): |
| (WKContextResetServiceWorkerFetchTimeoutForTesting): |
| * UIProcess/API/C/WKContext.h: |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::setServiceWorkerTimeoutForTesting): |
| (WebKit::WebProcessPool::resetServiceWorkerTimeoutForTesting): |
| * UIProcess/WebProcessPool.h: |
| |
| 2019-10-08 Ross Kirsling <ross.kirsling@sony.com> |
| |
| Unreviewed. Restabilize non-unified build. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h: |
| |
| 2019-10-08 Dean Jackson <dino@apple.com> |
| |
| Sort Internal and Experimental features by human readable name |
| https://bugs.webkit.org/show_bug.cgi?id=202667 |
| |
| Reviewed by Zalan Bujtas. |
| |
| Sort the statically generated vectors of internal and |
| experimental features by their human readable name, rather than |
| the feature key, so that looking at them in the Settings app |
| doesn't make people who like alphabetical order angry. |
| |
| * Scripts/GeneratePreferences.rb: Add an extra sort call to the list generation. |
| |
| 2019-10-08 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Clipboard API] Introduce bindings for the async Clipboard API |
| https://bugs.webkit.org/show_bug.cgi?id=202622 |
| <rdar://problem/56038126> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Adds a new experimental feature flag. See WebCore ChangeLog for more details. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2019-10-08 Alexander Mikhaylenko <alexm@gnome.org> |
| |
| [GTK] Navigation gesture improvements |
| https://bugs.webkit.org/show_bug.cgi?id=202645 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Measure velocity threshold in pixels per second rather than distance (range [0-1]) |
| per second. The value is the same as it was on touchpads, since a fixed distance is |
| used, but is now consistent on touchscreens, regardless of the webview width. |
| |
| Add a threshold for cancelling gesture when the page is more than halfway |
| through, so that it's symmetric with the first half. |
| |
| Align the moving page to pixel grid on hidpi devices correctly. Just |
| rounding the position doesn't work correctly, since the cairo context is |
| pre-scaled. Multiplying by scale factor, rounding and then dividing by |
| scale factor fixes this. |
| |
| * UIProcess/ViewGestureController.h: |
| * UIProcess/gtk/ViewGestureControllerGtk.cpp: |
| (WebKit::ViewGestureController::SwipeProgressTracker::reset): |
| (WebKit::ViewGestureController::SwipeProgressTracker::handleEvent): |
| (WebKit::ViewGestureController::SwipeProgressTracker::shouldCancel): |
| (WebKit::ViewGestureController::draw): |
| |
| 2019-10-08 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Remove unused WebKitSoupRequestGeneric after r250597 |
| |
| * NetworkProcess/CustomProtocols/LegacyCustomProtocolManager.h: |
| |
| 2019-10-08 Adrian Perez de Castro <aperez@igalia.com> |
| |
| [WPE][GTK] Build fails with ENABLE_WEBDRIVER=OFF |
| https://bugs.webkit.org/show_bug.cgi?id=202658 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp: Add missing |
| ENABLE(WEBDRIVER_MOUSE_INTERACTIONS) and ENABLE(WEBDRIVER_KEYBOARD_INTERACTIONS) |
| preprocessor guards. |
| * UIProcess/Automation/wpe/WebAutomationSessionWPE.cpp: Ditto. |
| |
| 2019-10-07 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Add IDL for requestIdleCallback |
| https://bugs.webkit.org/show_bug.cgi?id=202653 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2019-10-07 Kate Cheney <katherine_cheney@apple.com> |
| |
| Domain relationships in the ITP Database should be inserted in a single query and ignore repeat insert attempts. (202604) |
| https://bugs.webkit.org/show_bug.cgi?id=202604 |
| <rdar://problem/55995831> |
| |
| Reviewed by Chris Dumez. |
| |
| This patch addresses two clean-ups for the ITP SQLite Database Store. |
| First, by using INSERT OR IGNORE as opposed to INSERT, it eliminates |
| the need to check if a relationship already exists in the database |
| before inserting it. Second, instead of looping through domain lists |
| and inserting each relationship as a separate query, this patch now |
| converts lists to a string which SQLite can use to insert multiple |
| rows into a database using a single query. |
| |
| Some Exists queries could not be deleted because they were being |
| used for testing. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: |
| (WebKit::ResourceLoadStatisticsDatabaseStore::ResourceLoadStatisticsDatabaseStore): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::prepareStatements): |
| Removed old insert queries and replaced them with queries able to |
| insert string-lists of domains in a single query. Also reorganized |
| the queries by functionality to make them easier to find and edit. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::createUniqueIndices): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::createSchema): |
| In order to properly take advantage of the INSERT OR IGNORE |
| functionality, unique indices must be established so the SQLite table |
| is aware of what patterns to look for when ignoring a new insert. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::ensureAndmakeDomainList): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::insertDomainRelationshipList): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::insertDomainRelationships): |
| Looping through the domain list is no longer needed with the new query |
| changes. Additionally, ensuring a domain is in the Observed Domains |
| table of the database must be done before utilizing any inserting of |
| relationships because the relationship queries rely on fetching the |
| topFrame domainID from the ObservedDomains table. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::grantStorageAccess): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::logFrameNavigation): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::logCrossSiteLoadWithLinkDecoration): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::setSubframeUnderTopFrameDomain): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::setSubresourceUnderTopFrameDomain): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::setSubresourceUniqueRedirectTo): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::setSubresourceUniqueRedirectFrom): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::setTopFrameUniqueRedirectTo): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::setTopFrameUniqueRedirectFrom): |
| With the ensure check being done once in the ensureAndmakeDomainList |
| function, these functions no longer have to make that check before |
| inserting. |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h: |
| |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::mergeStatisticForTesting): |
| (WebKit::WebResourceLoadStatisticsStore::isRelationshipOnlyInDatabaseOnce): |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h: |
| Changes in WeResourceLoadStatisticsStore were for testing only. This |
| patch updated the merge statistic testing to also test this change by |
| having a topFrameDomain list with more than one domain. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::mergeStatisticForTesting): |
| (WebKit::NetworkProcess::isRelationshipOnlyInDatabaseOnce): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreSetStatisticsMergeStatistic): |
| (WKWebsiteDataStoreIsStatisticsOnlyInDatabaseOnce): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::mergeStatisticForTesting): |
| (WebKit::NetworkProcessProxy::isRelationshipOnlyInDatabaseOnce): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::mergeStatisticForTesting): |
| (WebKit::WebsiteDataStore::isRelationshipOnlyInDatabaseOnce): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| Added a new function for testing that there are no repeat inserts |
| into the database. Updated mergeStatistics to test the list-insert |
| functionality. |
| |
| 2019-10-07 Yusuke Suzuki <ysuzuki@apple.com> |
| |
| [JSC] Change signature of HostFunction to (JSGlobalObject*, CallFrame*) |
| https://bugs.webkit.org/show_bug.cgi?id=202569 |
| |
| Reviewed by Saam Barati. |
| |
| * WebProcess/Plugins/Netscape/JSNPMethod.cpp: |
| (WebKit::callMethod): |
| * WebProcess/Plugins/Netscape/JSNPObject.cpp: |
| (WebKit::callNPJSObject): |
| (WebKit::constructWithConstructor): |
| * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.h: |
| |
| 2019-10-07 Megan Gardner <megan_gardner@apple.com> |
| |
| Switch to WKShareSheet for WKPDFView |
| https://bugs.webkit.org/show_bug.cgi?id=202338 |
| |
| Reviewed by Tim Horton. |
| |
| Switch to WKShareSheet from the share sheet in UIWKSelectionAssistant, since this is the only instance |
| of UIWKSelectionAssistant any more. This will keep all our share sheet code together, and allow |
| us to eliminate this class that will be completely unused with this change. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/ios/WKPDFView.h: |
| * UIProcess/ios/WKPDFView.mm: |
| (-[WKPDFView dealloc]): |
| (-[WKPDFView actionSheetAssistant:shareElementWithURL:rect:]): |
| (-[WKPDFView shareSheetDidDismiss:]): |
| |
| 2019-10-07 Per Arne Vollan <pvollan@apple.com> |
| |
| [macOS] Layering violation in AuxiliaryProcessProxy::didFinishLaunching |
| https://bugs.webkit.org/show_bug.cgi?id=201617 |
| |
| Reviewed by Brent Fulgham. |
| |
| The commit <https://trac.webkit.org/changeset/249649> introduced a layering violation in AuxiliaryProcessProxy::didFinishLaunching |
| where we inspect the pending message queue looking for a local file load message which needs the PID to create a sandbox extension |
| for the WebContent process. The layering violation can be fixed by creating a virtual method in AuxiliaryProcessProxy and override |
| the method in the WebProcessProxy to do the work needed to replace the message with a load request message containing a sandbox |
| extension created using the PID of the WebContent process. No new tests have been created, since this is covered by existing tests. |
| |
| * UIProcess/AuxiliaryProcessProxy.cpp: |
| (WebKit::AuxiliaryProcessProxy::didFinishLaunching): |
| * UIProcess/AuxiliaryProcessProxy.h: |
| (WebKit::AuxiliaryProcessProxy::shouldSendPendingMessage): |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::shouldSendPendingMessage): |
| * UIProcess/WebProcessProxy.h: |
| |
| 2019-10-07 Dean Jackson <dino@apple.com> |
| |
| Provide options for DTTZ to happen in more situations |
| https://bugs.webkit.org/show_bug.cgi?id=202634 |
| <rdar://problem/55732762> |
| |
| Reviewed by Antoine Quint. |
| |
| Add two options that can be enabled to trigger double tap zooming |
| in more places. |
| |
| Firstly, an option to keep listening for a double-tap-to-zoom if the |
| first tap found a click handler on the body or document element. The |
| tap will still be dispatched. This is probably the most common case |
| for disabling a DTTZ. |
| |
| Secondly, an option to always keep listening for a double-tap-to-zoom, |
| even if there was a clickable (non-root) element under the first tap. |
| |
| * Shared/WebPreferences.yaml: Add ZoomOnDoubleTapWhenRoot and AlwaysZoomOnDoubleTap. |
| * UIProcess/PageClient.h: The message from the WebProcess now tells the UIProcess if |
| the tapped element was a root-level (document or body). |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::handleSmartMagnificationInformationForPotentialTap): |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _endPotentialTapAndEnableDoubleTapGesturesIfNecessary]): |
| (-[WKContentView _handleSmartMagnificationInformationForPotentialTap:renderRect:fitEntireRect:viewportMinimumScale:viewportMaximumScale:nodeIsRootLevel:]): |
| Handle the two new options. |
| |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::handleSmartMagnificationInformationForPotentialTap): |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::potentialTapAtPosition): Check if the tap was on a root-level element. |
| |
| 2019-10-07 Matt Mokary <mmokary@apple.com> |
| |
| foundStringMatchIndex in FindController::findString gets reset on page scroll |
| https://bugs.webkit.org/show_bug.cgi?id=201773 |
| <rdar://problem/55351892> |
| |
| Reviewed by Tim Horton. |
| |
| Decouple hiding of the find indicator from resetting match index, and only reset match index when there is not |
| an active match. |
| |
| * WebProcess/WebPage/FindController.cpp: |
| (WebKit::FindController::updateFindUIAfterPageScroll): |
| (WebKit::FindController::hideFindUI): |
| (WebKit::FindController::hideFindIndicator): |
| (WebKit::FindController::resetMatchIndex): |
| * WebProcess/WebPage/FindController.h: |
| * WebProcess/WebPage/ios/FindControllerIOS.mm: |
| (WebKit::FindController::hideFindIndicator): |
| (WebKit::FindController::resetMatchIndex): |
| |
| 2019-10-07 youenn fablet <youenn@apple.com> |
| |
| WebPageProxy::updatePlayingMediaDidChange should protect from a null m_userMediaPermissionRequestManager |
| https://bugs.webkit.org/show_bug.cgi?id=202628 |
| <rdar://problem/55935091> |
| |
| Reviewed by Eric Carlson. |
| |
| On process swap on navigation or process crash, m_userMediaPermissionRequestManager is made null. |
| At the same time, the media state is set back to not playing. |
| Future calls of updatePlayingMediaDidChange should not have any capture state change until getUserMedia/getDisplayMedia |
| is called, which would create m_userMediaPermissionRequestManager. |
| But this assumption is not always true given that the media state is computed as process-wide in MediaStreamTrack::captureState on iOS. |
| The above behavior is fixed as part of https://bugs.webkit.org/show_bug.cgi?id=202627. |
| Since the call to updatePlayingMediaDidChange is triggered straight from IPC, it should not be trusted and a null check should be added. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::updatePlayingMediaDidChange): |
| |
| 2019-10-04 Dean Jackson <dino@apple.com> |
| |
| Use a better name than allowFastClicksEverywhere |
| https://bugs.webkit.org/show_bug.cgi?id=202607 |
| <rdar://problem/55997133> |
| |
| Reviewed by Tim Horton. |
| |
| This preference name is quite confusing. Change it to |
| PreferFasterClickOverDoubleTap. |
| |
| * Shared/WebPreferences.yaml: |
| * Shared/WebPreferencesDefaultValues.h: |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::preferFasterClickOverDoubleTap const): |
| (WebKit::WebPageProxy::allowsFastClicksEverywhere const): Deleted. |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _handleSmartMagnificationInformationForPotentialTap:renderRect:fitEntireRect:viewportMinimumScale:viewportMaximumScale:]): |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::effectiveContentModeAfterAdjustingPolicies): |
| |
| 2019-10-04 Ross Kirsling <ross.kirsling@sony.com> |
| |
| Socket-based RWI should base64-encode backend commands on client, not server |
| https://bugs.webkit.org/show_bug.cgi?id=202605 |
| |
| Reviewed by Don Olmstead. |
| |
| * UIProcess/socket/RemoteInspectorClient.cpp: |
| (WebKit::RemoteInspectorClient::setBackendCommands): |
| |
| 2019-10-04 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Unreviewed, build fix after r250729 |
| |
| * UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm: |
| * UIProcess/API/Cocoa/_WKWebAuthenticationPanelInternal.h: |
| |
| 2019-10-04 Keith Rollin <krollin@apple.com> |
| |
| Fix determination of the top-level resource |
| https://bugs.webkit.org/show_bug.cgi?id=202491 |
| <rdar://problem/50780648> |
| |
| Reviewed by Youenn Fablet. |
| |
| When loading the resources associated with a page, the Networking |
| process needs to know the main resource for the main frame. It uses |
| this information to keep track of page loads and the resources that |
| are loaded in those pages. By keeping track of this information, |
| WebKit can track and report difficult (slow or incomplete) resource |
| loads and their impact on the overall page. |
| |
| The initial determination of the top resource only looked at whether |
| the resource was the "main" resource of a frame or not. However, this |
| determination was insufficient, and would confuse the tracking |
| mechanism when sub-frames also had main frames. Therefore, augment the |
| test by also looking to see if the hosting frame is the main frame. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::startTrackingResourceLoad): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::start): |
| |
| 2019-10-04 Ross Kirsling <ross.kirsling@sony.com> |
| |
| Unreviewed WinCairo build fix for r250717. |
| |
| * WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h: |
| (WebKit::LayerTreeHost::invalidate): Deleted. |
| |
| 2019-10-04 Alex Christensen <achristensen@webkit.org> |
| |
| Stop sending list of display-isolated schemes to NetworkProcess |
| https://bugs.webkit.org/show_bug.cgi?id=202557 |
| |
| Reviewed by Youenn Fablet. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| (WebKit::NetworkProcess::registerURLSchemeAsDisplayIsolated const): Deleted. |
| * 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::registerURLSchemeAsDisplayIsolated): |
| |
| 2019-10-04 Alex Christensen <achristensen@webkit.org> |
| |
| Rename SchemeRegistry to LegacySchemeRegistry |
| https://bugs.webkit.org/show_bug.cgi?id=202586 |
| |
| Reviewed by Tim Horton. |
| |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::doesNotNeedCORSCheck const): |
| * NetworkProcess/NetworkProcess.cpp: |
| (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): |
| * Shared/AuxiliaryProcess.cpp: |
| (WebKit::AuxiliaryProcess::registerURLSchemeServiceWorkersCanHandle const): |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (+[WKWebView handlesURLScheme:]): |
| * UIProcess/API/glib/WebKitSecurityManager.cpp: |
| (registerSecurityPolicyForURIScheme): |
| (checkSecurityPolicyForURIScheme): |
| * WebProcess/Plugins/WebPluginInfoProvider.cpp: |
| (WebKit::WebPluginInfoProvider::webVisiblePluginInfo): |
| * WebProcess/Storage/WebServiceWorkerProvider.cpp: |
| (WebKit::WebServiceWorkerProvider::handleFetch): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::canHandleRequest): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::registerURLSchemeAsEmptyDocument): |
| (WebKit::WebProcess::registerURLSchemeAsSecure const): |
| (WebKit::WebProcess::registerURLSchemeAsBypassingContentSecurityPolicy const): |
| (WebKit::WebProcess::setDomainRelaxationForbiddenForURLScheme const): |
| (WebKit::WebProcess::registerURLSchemeAsLocal const): |
| (WebKit::WebProcess::registerURLSchemeAsNoAccess const): |
| (WebKit::WebProcess::registerURLSchemeAsDisplayIsolated const): |
| (WebKit::WebProcess::registerURLSchemeAsCORSEnabled const): |
| (WebKit::WebProcess::registerURLSchemeAsAlwaysRevalidated const): |
| (WebKit::WebProcess::registerURLSchemeAsCachePartitioned const): |
| (WebKit::WebProcess::registerURLSchemeAsCanDisplayOnlyIfCanRequest const): |
| * WebProcess/WebStorage/StorageAreaImpl.cpp: |
| |
| 2019-10-04 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthn] Implement _WKWebAuthenticationPanel SPI |
| https://bugs.webkit.org/show_bug.cgi?id=202559 |
| <rdar://problem/55932094> |
| |
| Reviewed by Brent Fulgham. |
| |
| This patch implements _WKWebAuthenticationPanel SPI. Here is the structure: |
| 1) API::WebAuthenticationPanel is the APIObject of _WKWebAuthenticationPanel. It is owned by AuthenticatorManager. |
| The lifetime of _WKWebAuthenticationPanel on the other hand is managed by clients. This binding is the surface |
| where clients could interact with WebKit's WebAuthentication implementation. |
| 2) API::WebAuthenticationPanelClient is a base class representing _WKWebAuthenticationPanelDelegate. Its subclass |
| WebKit::WebAuthenticationPanelClient implements bridges to _WKWebAuthenticationPanelDelegate methods. It is owned by |
| API::WebAuthenticationPanel. A weak pointer of WebKit::WebAuthenticationPanelClient is kept in _WKWebAuthenticationPanel |
| to get the _WKWebAuthenticationPanelDelegate set by clients or nil otherwise. This binding is the surface where WebKit |
| interacts with clients. |
| 3) WebAuthenticationPanelFlags is the mirror of enums within _WKWebAuthenticationPanel. |
| |
| Implementation wise, this patch implements: |
| 1) -[WKUIDelegatePrivate webView:runWebAuthenticationPanel:initiatedByFrame:completionHandler:], this is bridged from |
| the regular UIDelegate route. Noted, WKFrameInfo is nil for now, a follow up on Bug 202563 will take care of it. This |
| will be called from AuthenticatorManager::runPanel() which gates the start of discovery on the callback. For clients |
| that don't implement the delegate, the callback will always be called with _WKWebAuthenticationPanelResultUnavailable |
| to allow WebKit run on non-UI mode. A specific C API hack is added to always return _WKWebAuthenticationPanelResultPresented |
| in WebKitTestRunner for layout tests. |
| 2) -[_WKWebAuthenticationPanelDelegate panel:updateWebAuthenticationPanel:] will be implemented in Bug 200932. |
| 3) -[_WKWebAuthenticationPanelDelegate panel:dismissWebAuthenticationPanelWithResult:], this is bridged from |
| API::WebAuthenticationPanel/API::WebAuthenticationPanelClient. This will be called whenever AuthenticatorManager::m_pendingCompletionHandler |
| is invoked. Depending on the respond, _WKWebAuthenticationResult will be returned accordingly. To facilitate that, |
| invokePendingCompletionHandler is crafted to bundle those two operations. |
| 4) -[_WKWebAuthenticationPanel cancel] will be implemented in Bug 191523. |
| |
| Besides the above, this patch also silents the NFC action sheet. |
| |
| * Platform/spi/Cocoa/NearFieldSPI.h: |
| * Shared/API/APIObject.h: |
| * Shared/Cocoa/APIObject.mm: |
| (API::Object::newObject): |
| * Sources.txt: |
| * SourcesCocoa.txt: |
| * UIProcess/API/APIUIClient.h: |
| (API::UIClient::runWebAuthenticationPanel): |
| * UIProcess/API/APIWebAuthenticationPanel.cpp: Copied from Source/WebKit/UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm. |
| (API::WebAuthenticationPanel::create): |
| (API::WebAuthenticationPanel::WebAuthenticationPanel): |
| (API::WebAuthenticationPanel::setClient): |
| * UIProcess/API/APIWebAuthenticationPanel.h: Copied from Source/WebKit/UIProcess/WebAuthentication/WebAuthenticationRequestData.h. |
| * UIProcess/API/APIWebAuthenticationPanelClient.h: Copied from Source/WebKit/UIProcess/API/Cocoa/_WKWebAuthenticationPanelInternal.h. |
| (API::WebAuthenticationPanelClient::dismissPanel const): |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetPageUIClient): |
| * UIProcess/API/C/WKPageUIClient.h: |
| * UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm: |
| (-[_WKWebAuthenticationPanel dealloc]): |
| (-[_WKWebAuthenticationPanel relyingPartyID]): |
| (-[_WKWebAuthenticationPanel delegate]): |
| (-[_WKWebAuthenticationPanel setDelegate:]): |
| (-[_WKWebAuthenticationPanel _apiObject]): |
| (-[_WKWebAuthenticationPanel _initWithRelayingPartyID:]): Deleted. |
| * UIProcess/API/Cocoa/_WKWebAuthenticationPanelInternal.h: |
| * UIProcess/Cocoa/UIDelegate.h: |
| * UIProcess/Cocoa/UIDelegate.mm: |
| (WebKit::UIDelegate::setDelegate): |
| (WebKit::webAuthenticationPanelResult): |
| (WebKit::UIDelegate::UIClient::runWebAuthenticationPanel): |
| * UIProcess/WebAuthentication/AuthenticatorManager.cpp: |
| (WebKit::WebCore::isFeatureEnabled): |
| (WebKit::WebCore::getRpId): |
| (WebKit::AuthenticatorManager::handleRequest): |
| (WebKit::AuthenticatorManager::respondReceived): |
| (WebKit::AuthenticatorManager::startDiscovery): |
| (WebKit::AuthenticatorManager::initTimeOutTimer): |
| (WebKit::AuthenticatorManager::timeOutTimerFired): |
| (WebKit::AuthenticatorManager::runPanel): |
| (WebKit::AuthenticatorManager::startRequest): |
| (WebKit::AuthenticatorManager::invokePendingCompletionHandler): |
| (WebKit::AuthenticatorManagerInternal::collectTransports): Deleted. |
| (WebKit::AuthenticatorManagerInternal::processGoogleLegacyAppIdSupportExtension): Deleted. |
| * UIProcess/WebAuthentication/AuthenticatorManager.h: |
| (WebKit::AuthenticatorManager::pendingCompletionHandler): Deleted. |
| * UIProcess/WebAuthentication/Cocoa/NfcConnection.mm: |
| (WebKit::NfcConnection::NfcConnection): |
| * UIProcess/WebAuthentication/Cocoa/NfcService.mm: |
| (WebKit::NfcService::platformStartDiscovery): |
| * UIProcess/WebAuthentication/Cocoa/WebAuthenticationPanelClient.h: Copied from Source/WebKit/UIProcess/WebAuthentication/WebAuthenticationRequestData.h. |
| * UIProcess/WebAuthentication/Cocoa/WebAuthenticationPanelClient.mm: Copied from Source/WebKit/UIProcess/WebAuthentication/Mock/MockAuthenticatorManager.cpp. |
| (WebKit::WebAuthenticationPanelClient::WebAuthenticationPanelClient): |
| (WebKit::wkWebAuthenticationResult): |
| (WebKit::WebAuthenticationPanelClient::dismissPanel const): |
| * UIProcess/WebAuthentication/Mock/MockAuthenticatorManager.cpp: |
| (WebKit::MockAuthenticatorManager::respondReceivedInternal): |
| * UIProcess/WebAuthentication/WebAuthenticationPanelFlags.h: Copied from Source/WebKit/UIProcess/API/Cocoa/_WKWebAuthenticationPanelInternal.h. |
| * UIProcess/WebAuthentication/WebAuthenticationRequestData.h: |
| * UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp: |
| (WebKit::WebAuthenticatorCoordinatorProxy::makeCredential): |
| (WebKit::WebAuthenticatorCoordinatorProxy::getAssertion): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-10-04 Alex Christensen <achristensen@webkit.org> |
| |
| Move WKProcessPool._registerURLSchemeServiceWorkersCanHandle to _WKWebsiteDataStoreConfiguration |
| https://bugs.webkit.org/show_bug.cgi?id=202553 |
| |
| Reviewed by Youenn Fablet. |
| |
| It was only used for testing, and all the tests that use it still pass with the new SPI. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| (WebKit::NetworkProcess::addWebsiteDataStore): |
| (WebKit::NetworkProcess::swServerForSession): |
| (WebKit::NetworkProcess::addServiceWorkerSession): |
| * NetworkProcess/NetworkProcess.h: |
| * Shared/AuxiliaryProcess.cpp: |
| (WebKit::AuxiliaryProcess::registerURLSchemeServiceWorkersCanHandle const): Deleted. |
| * Shared/AuxiliaryProcess.h: |
| * Shared/AuxiliaryProcess.messages.in: |
| * Shared/WebsiteDataStoreParameters.cpp: |
| (WebKit::WebsiteDataStoreParameters::encode const): |
| (WebKit::WebsiteDataStoreParameters::decode): |
| * Shared/WebsiteDataStoreParameters.h: |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _registerURLSchemeServiceWorkersCanHandle:]): Deleted. |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h: |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm: |
| (-[_WKWebsiteDataStoreConfiguration registerURLSchemeServiceWorkersCanHandleForTesting:]): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| (WebKit::WebProcessPool::initializeNewWebProcess): |
| (WebKit::WebProcessPool::registerURLSchemeServiceWorkersCanHandle): Deleted. |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp: |
| (WebKit::WebsiteDataStoreConfiguration::copy): |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h: |
| (WebKit::WebsiteDataStoreConfiguration::serviceWorkerRegisteredSchemes const): |
| (WebKit::WebsiteDataStoreConfiguration::registerServiceWorkerScheme): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeWebProcess): |
| |
| 2019-10-04 youenn fablet <youenn@apple.com> |
| |
| Allow to suspend RTCPeerConnection when not connected |
| https://bugs.webkit.org/show_bug.cgi?id=202403 |
| |
| Reviewed by Chris Dumez. |
| |
| Implement suspend/resume of sockets by doing the following: |
| - For UDP sockets, we simulate as if being sent data is queued when being suspended. |
| the webrtc backend will then stop sending packets until the queue is emptied. |
| At resume time, we do as if the queue is emptied and packets sent (even though packets are not sent). |
| For incoming traffic, we ignore it when being suspended. |
| - For TCP sockets, we close them at suspend time. We then notify at resume time that an error happeneded |
| for these sockets to the webrtc backend. We cannot simulate packet dropping like in the UDP case. |
| |
| To manage resume/suspend, each socket now has a isSuspended state and a socket group. |
| The socket group is per peer connection. |
| A peer connection will notify the factory that it is suspended/resumed. |
| The factory will iterate through all sockets and will suspend/resume each socket of the socket group. |
| |
| * WebProcess/Network/webrtc/LibWebRTCProvider.cpp: |
| (WebKit::RTCSocketFactory::RTCSocketFactory): |
| (WebKit::RTCSocketFactory::CreateUdpSocket): |
| (WebKit::RTCSocketFactory::CreateServerTcpSocket): |
| (WebKit::RTCSocketFactory::CreateClientTcpSocket): |
| (WebKit::RTCSocketFactory::CreateAsyncResolver): |
| (WebKit::RTCSocketFactory::suspend): |
| (WebKit::RTCSocketFactory::resume): |
| (WebKit::LibWebRTCProvider::createSocketFactory): |
| * WebProcess/Network/webrtc/LibWebRTCProvider.h: |
| * WebProcess/Network/webrtc/LibWebRTCSocket.cpp: |
| (WebKit::LibWebRTCSocket::LibWebRTCSocket): |
| (WebKit::LibWebRTCSocket::~LibWebRTCSocket): |
| (WebKit::LibWebRTCSocket::signalReadPacket): |
| (WebKit::LibWebRTCSocket::signalSentPacket): |
| (WebKit::LibWebRTCSocket::SendTo): |
| (WebKit::LibWebRTCSocket::Close): |
| (WebKit::LibWebRTCSocket::SetOption): |
| (WebKit::LibWebRTCSocket::resume): |
| (WebKit::LibWebRTCSocket::suspend): |
| * WebProcess/Network/webrtc/LibWebRTCSocket.h: |
| * WebProcess/Network/webrtc/LibWebRTCSocketFactory.cpp: |
| (WebKit::LibWebRTCSocketFactory::createServerTcpSocket): |
| (WebKit::LibWebRTCSocketFactory::createUdpSocket): |
| (WebKit::LibWebRTCSocketFactory::createClientTcpSocket): |
| (WebKit::LibWebRTCSocketFactory::createNewConnectionSocket): |
| (WebKit::LibWebRTCSocketFactory::addSocket): |
| (WebKit::LibWebRTCSocketFactory::removeSocket): |
| (WebKit::LibWebRTCSocketFactory::forSocketInGroup): |
| * WebProcess/Network/webrtc/LibWebRTCSocketFactory.h: |
| |
| 2019-10-04 Alex Christensen <achristensen@webkit.org> |
| |
| Simplify sandbox enabling macros |
| https://bugs.webkit.org/show_bug.cgi?id=202536 |
| |
| Reviewed by Brent Fulgham. |
| |
| ENABLE_WEB_PROCESS_SANDBOX was always on for Cocoa platforms and only used in WebProcessCocoa.mm, so it did nothing. |
| ENABLE_MANUAL_SANDBOXING was on for sdk=macosx* which I made more explicit in the code by using PLATFORM(MAC) || PLATFORM(MAACCATALYST) |
| ENABLE_MANUAL_NETWORK_SANDBOXING was always off and hiding dead code we do not intend to use because iOS sandboxes are always on and never manual. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * NetworkProcess/ios/NetworkProcessIOS.mm: |
| (WebKit::NetworkProcess::initializeSandbox): |
| * Shared/ios/AuxiliaryProcessIOS.mm: |
| (WebKit::AuxiliaryProcess::initializeSandbox): |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::initializeSandbox): |
| |
| 2019-10-04 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Update OptionsGTK.cmake and NEWS for 2.27.1 release |
| |
| * gtk/NEWS: Add release notes for 2.27.1. |
| |
| 2019-10-04 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Crash in WebChromeClient::createDisplayRefreshMonitor |
| https://bugs.webkit.org/show_bug.cgi?id=202551 |
| |
| Reviewed by Žan Doberšek. |
| |
| The crash happens when the drawing area is destroyed due to a page close. The layer tree host is invalidated |
| causing a layer flush that ends up trying to create a display refresh monitor, which requires the drawing |
| area. We need to null-check the drawing area in WebChromeClient::createDisplayRefreshMonitor() but we should |
| also ensure that layer flush is not performed after layer tree host is destroyed. |
| |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::createDisplayRefreshMonitor const): Null-check drawing area before using it. |
| * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp: |
| (WebKit::CompositingCoordinator::CompositingCoordinator): Receive a WebPage instead of a WebCore::Page and |
| create the root layer here. |
| (WebKit::CompositingCoordinator::~CompositingCoordinator): Do not purge backing stores again, invalidate should |
| always be called right before the object is destroyed. |
| (WebKit::CompositingCoordinator::flushPendingLayerChanges): Get WebCore::Page from WebPage. |
| (WebKit::CompositingCoordinator::timestamp const): Ditto. |
| (WebKit::CompositingCoordinator::syncDisplayState): Ditto. |
| (WebKit::CompositingCoordinator::notifyFlushRequired): Do not continue if m_rootLayer is nullptr. |
| (WebKit::CompositingCoordinator::deviceScaleFactor const): Get WebCore::Page from WebPage. |
| (WebKit::CompositingCoordinator::pageScaleFactor const): Ditto. |
| (WebKit::CompositingCoordinator::createGraphicsLayer): Call attachLayer() instead of duplicating the code. |
| (WebKit::CompositingCoordinator::setVisibleContentsRect): Get WebCore::Page from WebPage. |
| * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h: |
| * WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp: |
| (WebKit::DrawingAreaCoordinatedGraphics::discardPreviousLayerTreeHost): Do not call LayerTreeHost::invalidate() |
| that has been removed. |
| * WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp: |
| (WebKit::LayerTreeHost::LayerTreeHost): Construct the coordinator after the sceneIntegration. |
| (WebKit::LayerTreeHost::~LayerTreeHost): Invalidate everything here now. We don't really need invalidate() |
| method since LayerTreeHost is not refcounted and we always called invalidate right before deleting the object. |
| (WebKit::LayerTreeHost::layerFlushTimerFired): This can't happen on invalid state anymore. |
| * WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h: |
| |
| 2019-10-04 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK][WPE] REGRESSION(r250673): connection to network process is broken after r250673 |
| https://bugs.webkit.org/show_bug.cgi?id=202575 |
| |
| Reviewed by Carlos Alberto Lopez Perez. |
| |
| The file descriptor is now closed when the IPC::Attachment is destroyed in NetworkProcessConnectionInfo |
| destructor. In case of unix domain sockets we need to transfer the ownership of the fd to |
| NetworkProcessConnection, but NetworkProcessConnectionInfo is ow keeping the ownership. |
| |
| * WebProcess/Network/NetworkProcessConnectionInfo.h: |
| (WebKit::NetworkProcessConnectionInfo::releaseIdentifier): Use IPC::Attachment::releaseFileDescriptor() in case |
| of unix domain sockets. |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::ensureNetworkProcessConnection): Use NetworkProcessConnectionInfo::releaseIdentifier() when |
| passing the identifier to NetworkProcessConnection. |
| |
| 2019-10-04 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Fix GTK distcheck |
| |
| * webkitglib-symbols.map: Remove symbols that are no longer in lib. |
| |
| 2019-10-03 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] WebAutomation: make setWindowRect synchronous |
| https://bugs.webkit.org/show_bug.cgi?id=202530 |
| |
| Reviewed by Carlos Alberto Lopez Perez. |
| |
| Move/resize window is asynchronous in GTK, but automation expects it to be synchronous so that get window rect |
| after setting it always returns the value set. Use a nested run loop to wait for the configure events after the |
| move/resize. |
| |
| * UIProcess/API/glib/WebKitUIClient.cpp: |
| (UIClient::windowConfigureEventCallback): |
| (UIClient::setWindowFrameTimerFired): |
| |
| 2019-10-03 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Address review comments after r250646. |
| |
| I forgot to include the documentation improvements suggested. |
| |
| * UIProcess/API/glib/WebKitWebContext.cpp: |
| (webkit_web_context_class_init): |
| |
| 2019-10-03 Christopher Reid <chris.reid@sony.com> |
| |
| [WinCairo] Remote inspector client target list is racy |
| https://bugs.webkit.org/show_bug.cgi?id=202169 |
| |
| Reviewed by Ross Kirsling. |
| |
| Original patch by Basuke Suzuki. |
| |
| Use LoaderClient to defer javascript target update calls to until after the page finished load. |
| |
| * UIProcess/socket/RemoteInspectorProtocolHandler.cpp: |
| * UIProcess/socket/RemoteInspectorProtocolHandler.h: |
| |
| 2019-10-03 Ross Kirsling <ross.kirsling@sony.com> |
| |
| Socket RWI client should acquire backend commands from server |
| https://bugs.webkit.org/show_bug.cgi?id=202421 |
| |
| Reviewed by Devin Rousso. |
| |
| * UIProcess/socket/RemoteInspectorClient.cpp: |
| (WebKit::RemoteInspectorClient::dispatchMap): |
| (WebKit::RemoteInspectorClient::setBackendCommands): |
| * UIProcess/socket/RemoteInspectorClient.h: |
| Receive "BackendCommands" message from server (which is already base64-encoded) and hand it over to RWIProxy. |
| |
| * UIProcess/win/WebProcessPoolWin.cpp: |
| (WebKit::backendCommandsPath): |
| (WebKit::initializeRemoteInspectorServer): |
| On Windows, initialize server with the path to InspectorBackendCommands.js from the CFBundle. |
| |
| 2019-10-03 Alex Christensen <achristensen@webkit.org> |
| |
| Replace _WKProcessPoolConfiguration.suppressesConnectionTerminationOnSystemChange with SPI on _WKWebsiteDataStoreConfiguration |
| https://bugs.webkit.org/show_bug.cgi?id=202544 |
| |
| Reviewed by Tim Horton. |
| |
| The _WKProcessPoolConfiguration SPI was originally introduced in rdar://problem/40650244 |
| Keep both working during the transition period, but we need it to not be on the process pool. |
| |
| * NetworkProcess/NetworkSessionCreationParameters.cpp: |
| (WebKit::NetworkSessionCreationParameters::encode const): |
| (WebKit::NetworkSessionCreationParameters::decode): |
| * NetworkProcess/NetworkSessionCreationParameters.h: |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h: |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm: |
| (-[_WKWebsiteDataStoreConfiguration suppressesConnectionTerminationOnSystemChange]): |
| (-[_WKWebsiteDataStoreConfiguration setSuppressesConnectionTerminationOnSystemChange:]): |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp: |
| (WebKit::WebsiteDataStoreConfiguration::copy): |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h: |
| (WebKit::WebsiteDataStoreConfiguration::suppressesConnectionTerminationOnSystemChange const): |
| (WebKit::WebsiteDataStoreConfiguration::setSuppressesConnectionTerminationOnSystemChange): |
| |
| 2019-10-03 Per Arne Vollan <pvollan@apple.com> |
| |
| REGRESSION(249649): Unable to open local files in MiniBrowser on macOS |
| https://bugs.webkit.org/show_bug.cgi?id=201798 |
| |
| Reviewed by Brent Fulgham. |
| |
| The commit <https://trac.webkit.org/changeset/249649> introduced a MiniBrowser regression on macOS where MiniBrowser |
| is not able to open local files. The change set r249649 fixed a problem where the WebContent process PID was not ready |
| to be used when creating a sandbox extension. This happened in the cases where the WebContent process had not finished |
| launching when the load started. The WebContent process is also creating sandbox extensions for the Networking process |
| for the files being loaded, and also needs to be passing the audit token of the Networking process when creating these. |
| This patch implements getting the audit token for the Networking process when the WebProcess is sending a message to |
| the UI process to establish the Networking process connection. The audit token is stored in the NetworkProcessConnection |
| object, and passed to the NetworkLoadParameters object when the load is started. Finally, when encoding the Network |
| resources load parameters, the audit token is used to create an extension for the Networking process. |
| |
| API test: WKWebView.LoadFileWithLoadRequest |
| |
| * NetworkProcess/NetworkLoadParameters.h: |
| * NetworkProcess/NetworkResourceLoadParameters.cpp: |
| (WebKit::NetworkResourceLoadParameters::encode const): |
| * Platform/IPC/ArgumentCoders.cpp: |
| (IPC::ArgumentCoder<audit_token_t>::encode): |
| (IPC::ArgumentCoder<audit_token_t>::decode): |
| * Platform/IPC/ArgumentCoders.h: |
| * Shared/Cocoa/SandboxExtensionCocoa.mm: |
| (WebKit::SandboxExtensionImpl::create): |
| (WebKit::SandboxExtensionImpl::sandboxExtensionForType): |
| (WebKit::SandboxExtensionImpl::SandboxExtensionImpl): |
| (WebKit::SandboxExtension::createHandleForMachLookupByPid): |
| (WebKit::SandboxExtension::createHandleForReadByPid): |
| (WebKit::SandboxExtension::createHandleForReadByAuditToken): |
| * Shared/SandboxExtension.h: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::openNetworkProcessConnection): |
| * UIProcess/WebProcessProxy.messages.in: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/Network/NetworkProcessConnection.h: |
| (WebKit::NetworkProcessConnection::setNetworkProcessAuditToken): |
| (WebKit::NetworkProcessConnection::networkProcessAuditToken const): |
| * WebProcess/Network/NetworkProcessConnectionInfo.h: Added. |
| (WebKit::NetworkProcessConnectionInfo::identifier): |
| (WebKit::NetworkProcessConnectionInfo::encode const): |
| (WebKit::NetworkProcessConnectionInfo::decode): |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess): |
| (WebKit::WebLoaderStrategy::loadResourceSynchronously): |
| (WebKit::WebLoaderStrategy::startPingLoad): |
| (WebKit::WebLoaderStrategy::preconnectTo): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::getNetworkProcessConnection): |
| (WebKit::WebProcess::ensureNetworkProcessConnection): |
| |
| 2019-10-03 Konstantin Tokarev <annulen@yandex.ru> |
| |
| CMake-built WebKit.framework should launch XPC services successfully |
| https://bugs.webkit.org/show_bug.cgi?id=202490 |
| |
| Reviewed by Carlos Alberto Lopez Perez. |
| |
| target_link_options() requires CMake 3.10, however we can avoid |
| raising required CMake version by moving it to PlatformMac.cmake, |
| also avoid introduction of new CMake variable. |
| |
| * CMakeLists.txt: |
| * PlatformMac.cmake: |
| |
| 2019-10-03 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Support googleLegacyAppidSupport extension |
| https://bugs.webkit.org/show_bug.cgi?id=202427 |
| <rdar://problem/55887473> |
| |
| Reviewed by Brent Fulgham. |
| |
| * UIProcess/WebAuthentication/AuthenticatorManager.cpp: |
| (WebKit::AuthenticatorManagerInternal::collectTransports): |
| (WebKit::AuthenticatorManagerInternal::processGoogleLegacyAppIdSupportExtension): |
| (WebKit::AuthenticatorManager::handleRequest): |
| * UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp: |
| (WebKit::CtapAuthenticator::makeCredential): |
| (WebKit::CtapAuthenticator::processGoogleLegacyAppIdSupportExtension): |
| * UIProcess/WebAuthentication/fido/CtapAuthenticator.h: |
| * UIProcess/WebAuthentication/fido/U2fAuthenticator.cpp: |
| (WebKit::U2fAuthenticator::continueRegisterCommandAfterResponseReceived): |
| |
| 2019-10-03 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthn] Implement dummy _WKWebAuthenticationPanel SPI |
| https://bugs.webkit.org/show_bug.cgi?id=202507 |
| <rdar://problem/55918793> |
| |
| Reviewed by Brent Fulgham. |
| |
| This patch implements dummy _WKWebAuthenticationPanel SPI to unblock Safari. |
| |
| Here are the illustrations for each SPI: |
| 1) -[WKUIDelegatePrivate webView:runWebAuthenticationPanel:initiatedByFrame:completionHandler:] is used at the beginning of |
| any WebAuthn ceremonies. A WKFrameInfo is provided for more info of the initiating frame so clients could decide either show |
| the RP ID or the origin of the frame which may or may not be the RP ID. A callback of _WKWebAuthenticationPanelResult is |
| provided such that clients could inform WebKit to continue the ceremony or not. Case like rate limiting of a modular dialog |
| could result in _WKWebAuthenticationPanelResultDidNotPresent. Then WebKit will abort the operation. |
| _WKWebAuthenticationPanelResultUnavailable tells WebKit the client has no UI implemented and therefore WebKit will operate |
| in a non UI mode which basically will only enable HID authenticators, and is the current behavior of macOS Safari. |
| 2) -[_WKWebAuthenticationPanelDelegate panel:updateWebAuthenticationPanel:] is primarily to instruct users to do some |
| actionable thing to recover from some error state. However, it could be used for pure info as well. For |
| _WKWebAuthenticationPanelInfoMultipleNFCTagPresents, users can be instructed to only hold one NFC tag to the scanner. For |
| _WKWebAuthenticationPanelInfoNoCredentialsFound, users can potentially switch to another security key that could hit a match. |
| 3) -[_WKWebAuthenticationPanelDelegate panel:dismissWebAuthenticationPanelWithResult:] is to dismiss UI. |
| _WKWebAuthenticationResult is provided such that client could show different animations as a hint to the user. The reasons for |
| failure could either be timeout or InvalidStateError which will be reported to the page as well. InvalidStateError signals a |
| credential matching an entry of the exclude list (excludeCredentials) is found on the authenticator. |
| 4) -[_WKWebAuthenticationPanel cancel] is the way clients tell WebKit a user cancel. |
| |
| * SourcesCocoa.txt: |
| * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: |
| * UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h: Added. |
| * UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm: Added. |
| (-[_WKWebAuthenticationPanel _initWithRelayingPartyID:]): |
| (-[_WKWebAuthenticationPanel relyingPartyID]): |
| (-[_WKWebAuthenticationPanel cancel]): |
| * UIProcess/API/Cocoa/_WKWebAuthenticationPanelInternal.h: Added. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-10-03 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GTK][WPE] Enable async scrolling |
| https://bugs.webkit.org/show_bug.cgi?id=202449 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| For WPE, explicitly enable the threaded scrolling preference on the |
| WebPreferences object. For GTK, the same preference is enabled in |
| parallel with the forced-compositing preference, as the async scrolling |
| feature depends on always-on AC mode. |
| |
| To help with quick evaluation of potential issues around async scrolling |
| the feature can still be disabled via the WEBKIT_DISABLE_ASYNC_SCROLLING |
| environment variable, though this only works in DEVELOPER_MODE builds. |
| |
| * Shared/WebPreferencesDefaultValues.h: Default-enable async frame and |
| overflow scrolling on Nicosia-using ports. |
| * UIProcess/API/glib/WebKitSettings.cpp: |
| (webkit_settings_set_hardware_acceleration_policy): |
| * UIProcess/API/wpe/WPEView.cpp: |
| (WKWPE::m_backend): |
| * UIProcess/gtk/WebPreferencesGtk.cpp: |
| (WebKit::WebPreferences::platformInitializeStore): |
| * WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp: |
| (WebKit::DrawingAreaCoordinatedGraphics::DrawingAreaCoordinatedGraphics): |
| (WebKit::DrawingAreaCoordinatedGraphics::updatePreferences): |
| (WebKit::DrawingAreaCoordinatedGraphics::supportsAsyncScrolling): |
| * WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.h: |
| |
| 2019-10-03 Zan Dobersek <zdobersek@igalia.com> |
| |
| [Nicosia] Enable runtime checks and triggers for async non-main-frame scrolling |
| https://bugs.webkit.org/show_bug.cgi?id=202509 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| Allow the non-main-frame compositing trigger for the Nicosia-using ports |
| as well. This will enable non-main-frame compositing if the related |
| setting is also enabled. |
| |
| 2019-10-03 Alexander Mikhaylenko <alexm@gnome.org> |
| |
| [GTK] Don't hardcode swipe navigation gesture style |
| https://bugs.webkit.org/show_bug.cgi?id=202447 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Use GTK foreign drawing to draw swipe gesture dimming and shadow instead of |
| hardcoded opacity and gradient values. |
| |
| Have separate elements for dimming and shadow. Additionally, add border |
| and outline. Dimming layer opacity always matches progress, shadow opacity |
| is 1 except when the page is almost completely retracted. Border and outline |
| opacity is always 1. Outline is drawn above the top page. For determining |
| shadow, border and outline width, 'min-width' property is used. |
| |
| Each element also has .right or .left style class depending on text direction. |
| |
| Creating patterns is relatively expensive, so do it once a gesture |
| starts and clear them once it ends. Style changes are currently not |
| handled, since it's unlikely anything would change while the gesture |
| is done. Dimming layer is created with the same width as webview and is |
| clipped when drawing. |
| |
| Translate existing dimming and shadow into css as is, add subtle border and |
| outline. Since it's controlled via css, downstreams can override the style. |
| |
| Set WebKitWebView css name to 'webkitwebview', and only apply styles for |
| elements directly preceded by it, otherwise the selectors are too generic. |
| |
| * PlatformGTK.cmake: Add gtk.css to gresource bundle. |
| * Resources/gtk/gtk-theme.css: Added. |
| (webkitwebview > dimming): |
| (webkitwebview > shadow): |
| (webkitwebview > shadow.right): |
| (webkitwebview > shadow.left): |
| (webkitwebview > border): |
| (webkitwebview > outline): |
| * UIProcess/API/gtk/WebKitWebViewBase.cpp: |
| (webkit_web_view_base_class_init): Set css name to 'webkitwebview'. |
| * UIProcess/ViewGestureController.h: |
| * UIProcess/gtk/ViewGestureControllerGtk.cpp: |
| (WebKit::ViewGestureController::createStyleContext): |
| (WebKit::createElementPattern): |
| (WebKit::elementWidth): |
| (WebKit::ViewGestureController::beginSwipeGesture): Create helper patterns. |
| (WebKit::ViewGestureController::draw): Rework drawing to use the patterns. |
| (WebKit::ViewGestureController::removeSwipeSnapshot): Clear the patterns. |
| |
| 2019-10-03 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Make PSON optional |
| https://bugs.webkit.org/show_bug.cgi?id=200967 |
| |
| Reviewed by Michael Catanzaro. |
| |
| It's not possible to enable PSON by default and keep backwards compatibility, applications might need to use new |
| API to monitor the page ID changes in the Web view. So, this patch adds a construct only property to |
| WebKitWebContext to enable PSON. |
| |
| * UIProcess/API/glib/WebKitWebContext.cpp: |
| (webkitWebContextGetProperty): |
| (webkitWebContextSetProperty): |
| (webkitWebContextConstructed): |
| (webkit_web_context_class_init): |
| |
| 2019-10-03 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK][WPE] Add WebKitWebView:page-id property |
| https://bugs.webkit.org/show_bug.cgi?id=201642 |
| |
| Reviewed by Michael Catanzaro. |
| |
| The page ID of a WebKitWebView can now change, so we need a way to get notified when it changes. |
| |
| * UIProcess/API/glib/WebKitWebView.cpp: |
| (webkitWebViewGetProperty): Add getter for page-id. |
| (webkit_web_view_class_init): Add page-id property |
| (webkitWebViewDidChangePageID): Emit notify::page-id. |
| * UIProcess/API/glib/WebKitWebViewPrivate.h: |
| * UIProcess/API/gtk/PageClientImpl.cpp: |
| (WebKit::PageClientImpl::didChangeWebPageID const): Call webkitWebViewDidChangePageID(). |
| * UIProcess/API/gtk/PageClientImpl.h: |
| * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: |
| * UIProcess/API/wpe/APIViewClient.h: |
| (API::ViewClient::didChangePageID): Added virtual method. |
| * UIProcess/API/wpe/PageClientImpl.cpp: |
| (WebKit::PageClientImpl::didChangeWebPageID const): Call WKWPE::View::didChangePageID(). |
| * UIProcess/API/wpe/PageClientImpl.h: |
| * UIProcess/API/wpe/WPEView.cpp: |
| (WKWPE::View::didChangePageID): Call API::ViewClient::didChangePageID(). |
| * UIProcess/API/wpe/WPEView.h: |
| * UIProcess/PageClient.h: |
| (WebKit::PageClient::didChangeWebPageID const): Added virtual method. |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::swapToWebProcess): Call PageClient::didChangeWebPageID(). |
| |
| 2019-10-02 Andy Estes <aestes@apple.com> |
| |
| [iOS] When hit testing for a context menu interaction, do not consider whether the element is contenteditable |
| https://bugs.webkit.org/show_bug.cgi?id=202498 |
| <rdar://problem/54723131> |
| |
| Reviewed by Tim Horton. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::startInteractionWithElementAtPosition): Changed to call |
| WebCore::Frame::nodeRespondingToInteraction. |
| |
| 2019-10-02 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| REGRESSION (r245672): <select> dropdown with text-rendering: optimizeLegibility freezes Safari |
| https://bugs.webkit.org/show_bug.cgi?id=202198 |
| |
| Reviewed by Tim Horton. |
| |
| NSFont has a bug where passing "auto" to kCTFontOpticalSizeAttribute |
| causes an exception to be thrown. We don't catch the exception, so we |
| pop up back to the runloop, which confuses the UI process. |
| |
| The solution is twofold: 1) Workaround the bug by passing the font size |
| to kCTFontOpticalSizeAttribute instead, and 2) catch any exceptions that |
| this part of the code might throw. |
| |
| * UIProcess/mac/WebPopupMenuProxyMac.mm: |
| (WebKit::WebPopupMenuProxyMac::showPopupMenu): |
| |
| 2019-10-02 Alex Christensen <achristensen@webkit.org> |
| |
| [CMake] Don't link WebKit.framework with SecItemShim |
| https://bugs.webkit.org/show_bug.cgi?id=202490 |
| |
| * PlatformMac.cmake: |
| Otherwise everything that uses the Security framework crashes immediately. |
| We only need it in the NetworkProcess. |
| |
| 2019-10-02 Alex Christensen <achristensen@webkit.org> |
| |
| CMake-built WebKit.framework should launch XPC services successfully |
| https://bugs.webkit.org/show_bug.cgi?id=202490 |
| |
| Rubber-stamped by Tim Horton. |
| |
| * CMakeLists.txt: |
| * PlatformMac.cmake: |
| |
| 2019-10-02 Kate Cheney <katherine_cheney@apple.com> |
| |
| Updated resource load statistics are never merged into the SQLite Database backend (202372). |
| https://bugs.webkit.org/show_bug.cgi?id=202372 |
| <rdar://problem/55854542> |
| |
| Reviewed by Brent Fulgham. |
| |
| This patch has a lot of changes to the test infrastructure to be able |
| to test the mergeStatistics function. Merging functionality mimics |
| that of the ResourceLoadStatisticsMemoryStore and the merge() function in |
| ResourceLoadStatistics.cpp. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: |
| (WebKit::ResourceLoadStatisticsDatabaseStore::ResourceLoadStatisticsDatabaseStore): |
| Added new SQLite queries that are needed to merge new statistics. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::prepareStatements): |
| Added new prepare statements for new SQLite queries. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::insertObservedDomain): |
| Updated to use domainID() instead of confirmDomainDoesNotExist which |
| was deleted. Changed the insert bind parameters |
| to utilize new enum of Observed Domain table indices which will help |
| reduce errors in the future if the database schema changes. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::relationshipExists const): |
| Changed {public} to {private} in logging statement to avoid leaking |
| sensitive information when logging the query error. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::confirmDomainDoesNotExist const): Deleted. |
| This function essentially does the exact same thing as domainID and |
| we can reduce code duplication by deleting it and transitioning all |
| other functions to use domainID instead. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::domainID const): |
| Changed {public} to {private} in logging statement to avoid leaking |
| sensitive information when logging the query error. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::insertDomainRelationships): |
| In order to reuse this code for the merge statistics function, I added |
| a check before each insert call to ensure the relationship does not |
| already exist in the database. This was not needed before because it |
| was only called on an empty database. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::merge): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::mergeStatistic): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::mergeStatistics): |
| Merges new statistic. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::incrementRecordsDeletedCountForDomains): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::recursivelyFindNonPrevalentDomainsThatRedirectedToThisDomain): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::markAsPrevalentIfHasRedirectedToPrevalent): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::requestStorageAccess): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::requestStorageAccessUnderOpener): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::grandfatherDataForDomains): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::ensurePrevalentResourcesForDebugMode): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::setUserInteraction): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::clearUserInteraction): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::hasHadUserInteraction): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::setPrevalentResource): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::setDomainsAsPrevalent): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::predicateValueForDomain const): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::clearPrevalentResource): |
| Changed {public} to {private} in logging statement to avoid leaking |
| sensitive information when logging the query error. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::setGrandfathered): |
| Fix a bug uncovered by the new test cases. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::ensureResourceStatisticsForRegistrableDomain): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::clearDatabaseContents): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::cookieTreatmentForOrigin const): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::clearExpiredUserInteractions): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::clearGrandfathering): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::pruneStatisticsIfNeeded): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::updateLastSeen): |
| Changed {public} to {private} in logging statement to avoid leaking |
| sensitive information when logging the query error. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::updateDataRecordsRemoved): |
| A new function that utilizes a query needed for the merging of two |
| statistics. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::confirmDomainDoesNotExist const): Deleted. |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h: |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ResourceLoadStatisticsMemoryStore::mergeStatistics): |
| (WebKit::ResourceLoadStatisticsMemoryStore::wasAccessedAsFirstPartyDueToUserInteraction const): Deleted. |
| Removed the check for updating times accessed due to first party |
| interaction, which is data no longer needed in updated ITP. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h: |
| * NetworkProcess/Classifier/ResourceLoadStatisticsStore.h: |
| Added the mergeStatistics function (previously only in the memory |
| store) to the parent class now that it is used by both stores. |
| |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::resourceLoadStatisticsUpdated): |
| This function now calls mergeStatistics on the database store if |
| enabled. |
| |
| (WebKit::WebResourceLoadStatisticsStore::mergeStatisticForTesting): |
| This function builds a vector from the sample data to test the |
| mergeStatistics() function of the database store. |
| |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h: |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::mergeStatisticForTesting): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreSetStatisticsMergeStatistic): |
| Fixed bug where isGrandfathered function in WKWebsiteDataStoreRef |
| was calling hasHadUserInteraction by mistake. |
| |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::mergeStatisticForTesting): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| This code is for testing the mergeStatistics() function. |
| |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::isGrandfathered): |
| (WebKit::WebsiteDataStore::mergeStatisticForTesting): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| Added this function which contacts the networkProcess to retrieve the |
| grandfathered value for a domain. This was not included before because |
| of a bug in WKWebsiteDataStoreRef. |
| |
| 2019-10-02 Dean Jackson <dino@apple.com> |
| |
| Provide originating website URL to AR QuickLook |
| https://bugs.webkit.org/show_bug.cgi?id=202451 |
| |
| Reviewed by Antoine Quint. |
| |
| Declare the setAdditionalParameters method and |
| call it with the originating page URL if available. |
| |
| * UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: |
| |
| 2019-10-02 Keith Rollin <krollin@apple.com> |
| |
| Properly mark canceled resources in NetworkActivityTracker |
| https://bugs.webkit.org/show_bug.cgi?id=202440 |
| <rdar://problem/55843651> |
| |
| Reviewed by Brent Fulgham. |
| |
| The nw_activity facility tracking resource loads did not originally |
| have support for reporting resources that were canceled. It now has |
| that support (since late MacOS 14-aligned SDKs), so add support for it |
| in NetworkActivityTracker and use it in places where we were |
| previously reporting the status of canceled resources as "None". |
| |
| * NetworkProcess/NetworkActivityTracker.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::stopAllNetworkActivityTracking): |
| (WebKit::NetworkConnectionToWebProcess::stopAllNetworkActivityTrackingForPage): |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::cleanup): |
| * NetworkProcess/cocoa/NetworkActivityTrackerCocoa.mm: |
| (WebKit::NetworkActivityTracker::complete): |
| |
| 2019-10-02 Zan Dobersek <zdobersek@igalia.com> |
| |
| Unreviewed build fix for non-Mac ports after r250600. |
| |
| * UIProcess/WebProcessPool.cpp: |
| Make the CoreGraphicsSPI.h header include exclusive to the Mac port. |
| |
| 2019-10-02 Antoine Quint <graouts@apple.com> |
| |
| Unreviewed build fix for macOS, broken by r250595. |
| |
| * UIProcess/WebProcessPool.cpp: |
| |
| 2019-10-02 youenn fablet <youenn@apple.com> |
| |
| Use strongly typed identifiers for webrtc sockets |
| https://bugs.webkit.org/show_bug.cgi?id=202400 |
| |
| Reviewed by Chris Dumez. |
| |
| Refactoring to use LibWebRTCSocketIdentifier instead of uint64_t. |
| |
| * NetworkProcess/webrtc/LibWebRTCSocketClient.cpp: |
| (WebKit::LibWebRTCSocketClient::LibWebRTCSocketClient): |
| * NetworkProcess/webrtc/LibWebRTCSocketClient.h: |
| * NetworkProcess/webrtc/NetworkRTCProvider.cpp: |
| (WebKit::NetworkRTCProvider::createSocket): |
| (WebKit::NetworkRTCProvider::createUDPSocket): |
| (WebKit::NetworkRTCProvider::createServerTCPSocket): |
| (WebKit::NetworkRTCProvider::createClientTCPSocket): |
| (WebKit::NetworkRTCProvider::wrapNewTCPConnection): |
| (WebKit::NetworkRTCProvider::addSocket): |
| (WebKit::NetworkRTCProvider::takeSocket): |
| (WebKit::NetworkRTCProvider::newConnection): |
| (WebKit::NetworkRTCProvider::didReceiveNetworkRTCSocketMessage): |
| (WebKit::NetworkRTCProvider::closeListeningSockets): |
| (WebKit::NetworkRTCProvider::callSocket): |
| * NetworkProcess/webrtc/NetworkRTCProvider.h: |
| * NetworkProcess/webrtc/NetworkRTCProvider.messages.in: |
| * NetworkProcess/webrtc/NetworkRTCSocket.cpp: |
| (WebKit::NetworkRTCSocket::NetworkRTCSocket): |
| * NetworkProcess/webrtc/NetworkRTCSocket.h: |
| * Scripts/webkit/messages.py: |
| * WebProcess/Network/NetworkProcessConnection.cpp: |
| (WebKit::NetworkProcessConnection::didReceiveMessage): |
| * WebProcess/Network/webrtc/LibWebRTCNetwork.h: |
| (WebKit::LibWebRTCNetwork::socket): |
| * WebProcess/Network/webrtc/LibWebRTCSocket.cpp: |
| (WebKit::LibWebRTCSocket::LibWebRTCSocket): |
| * WebProcess/Network/webrtc/LibWebRTCSocket.h: |
| * WebProcess/Network/webrtc/LibWebRTCSocketFactory.cpp: |
| (WebKit::LibWebRTCSocketFactory::createServerTcpSocket): |
| (WebKit::LibWebRTCSocketFactory::createUdpSocket): |
| (WebKit::LibWebRTCSocketFactory::createClientTcpSocket): |
| (WebKit::LibWebRTCSocketFactory::createNewConnectionSocket): |
| * WebProcess/Network/webrtc/LibWebRTCSocketFactory.h: |
| (WebKit::LibWebRTCSocketFactory::socket): |
| (WebKit::LibWebRTCSocketFactory::resolver): |
| (WebKit::LibWebRTCSocketFactory::takeResolver): |
| (WebKit::LibWebRTCSocketFactory::disableNonLocalhostConnections): |
| * WebProcess/Network/webrtc/WebRTCSocket.cpp: |
| (WebKit::WebRTCSocket::signalOnNetworkThread): |
| (WebKit::WebRTCSocket::WebRTCSocket): |
| (WebKit::WebRTCSocket::signalSentPacket): |
| (WebKit::WebRTCSocket::signalConnect): |
| (WebKit::WebRTCSocket::signalClose): |
| (WebKit::WebRTCSocket::signalNewConnection): |
| * WebProcess/Network/webrtc/WebRTCSocket.h: |
| * WebProcess/Network/webrtc/WebRTCSocket.messages.in: |
| |
| 2019-10-02 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK][WPE] Stop using legacy custom protocol implementation |
| https://bugs.webkit.org/show_bug.cgi?id=202407 |
| |
| Reviewed by Žan Doberšek. |
| |
| Use the new approach, which is simpler and doesn't require to go to the network process to load custom |
| protocols. |
| |
| * NetworkProcess/CustomProtocols/soup/LegacyCustomProtocolManagerSoup.cpp: Removed. |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::m_messagePortChannelRegistry): |
| * NetworkProcess/soup/WebKitSoupRequestInputStream.cpp: Removed. |
| * NetworkProcess/soup/WebKitSoupRequestInputStream.h: Removed. |
| * PlatformGTK.cmake: |
| * PlatformWPE.cmake: |
| * SourcesGTK.txt: |
| * SourcesWPE.txt: |
| * UIProcess/API/glib/WebKitCustomProtocolManagerClient.cpp: Removed. |
| * UIProcess/API/glib/WebKitCustomProtocolManagerClient.h: Removed. |
| * UIProcess/API/glib/WebKitURISchemeRequest.cpp: |
| (webkitURISchemeRequestCreate): |
| (webkit_uri_scheme_request_get_scheme): |
| (webkit_uri_scheme_request_get_uri): |
| (webkit_uri_scheme_request_get_path): |
| (webkit_uri_scheme_request_get_web_view): |
| (webkitURISchemeRequestReadCallback): |
| (webkit_uri_scheme_request_finish_error): |
| * UIProcess/API/glib/WebKitURISchemeRequestPrivate.h: |
| * UIProcess/API/glib/WebKitWebContext.cpp: |
| (webkitWebContextConstructed): |
| (webkitWebContextDispose): |
| (webkit_web_context_register_uri_scheme): |
| (webkitWebContextCreatePageForWebView): |
| * UIProcess/API/glib/WebKitWebContextPrivate.h: |
| * UIProcess/WebURLSchemeTask.h: |
| (WebKit::WebURLSchemeTask::request const): |
| * UIProcess/soup/WebProcessPoolSoup.cpp: |
| |
| 2019-10-02 Zan Dobersek <zdobersek@igalia.com> |
| |
| [Nicosia] Enable async scrolling at build-time for Nicosia-using ports |
| https://bugs.webkit.org/show_bug.cgi?id=202397 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * Shared/WebEvent.h: |
| Enable WebWheelEvent phasing for WPE, as required by the |
| ASYNC_SCROLLING code. |
| |
| 2019-10-01 Tim Horton <timothy_horton@apple.com> |
| |
| Clean up some includes to make the build a bit faster |
| https://bugs.webkit.org/show_bug.cgi?id=202444 |
| |
| Reviewed by Geoff Garen. |
| |
| * UIProcess/API/Cocoa/_WKThumbnailView.mm: |
| |
| 2019-10-01 Alex Christensen <achristensen@webkit.org> |
| |
| Progress towards a functioning CMake build on Mac |
| https://bugs.webkit.org/show_bug.cgi?id=202443 |
| |
| Rubber-stamped by Tim Horton. |
| |
| * CMakeLists.txt: |
| * PlatformMac.cmake: |
| |
| 2019-10-01 John Wilander <wilander@apple.com> |
| |
| Storage Access API: document.hasStorageAccess() should return true when the cookie policy allows access |
| https://bugs.webkit.org/show_bug.cgi?id=202435 |
| <rdar://problem/55718526> |
| |
| Reviewed by Brent Fulgham. |
| |
| WebKit's Storage Access API implementation has so far only looked at whether ITP is |
| blocking cookie access or not. However, the default cookie policy is still in |
| effect underneath ITP. document.hasStorageAccess() should return true if the |
| third-party: |
| a) is not classified by ITP, and |
| b) has cookies which implies it can use cookies as third-party according to the |
| default cookie policy. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ResourceLoadStatisticsMemoryStore::hasStorageAccess): |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::hasCookies): |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::hasStorageAccess): |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::registrableDomainsWithWebsiteData): |
| |
| 2019-10-01 Antti Koivisto <antti@apple.com> |
| |
| [CSS Shadow Parts] Parse 'part' attribute |
| https://bugs.webkit.org/show_bug.cgi?id=202409 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * Shared/WebPreferences.yaml: |
| |
| Add experimental feature, default to disabled for now. |
| |
| 2019-10-01 Alex Christensen <achristensen@webkit.org> |
| |
| Progress towards successful CMake build on Mac |
| https://bugs.webkit.org/show_bug.cgi?id=202426 |
| |
| Rubber-stamped by Tim Horton. |
| |
| * Platform/cocoa/PaymentAuthorizationPresenter.h: |
| * Platform/cocoa/PaymentAuthorizationPresenter.mm: |
| * Platform/cocoa/PaymentAuthorizationViewController.h: |
| * Platform/cocoa/PaymentAuthorizationViewController.mm: |
| * Platform/cocoa/WKPaymentAuthorizationDelegate.mm: |
| * PlatformMac.cmake: |
| * Shared/SandboxExtension.h: |
| (WebKit::SandboxExtension::createHandleForReadByPid): |
| * SourcesCocoa.txt: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _hasRegisteredServiceWorker]): |
| * UIProcess/API/mac/WKView.mm: |
| * UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.mm: |
| * UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm: |
| * UIProcess/Cocoa/WKFullKeyboardAccessWatcher.mm: |
| * UIProcess/Cocoa/WKShareSheet.mm: |
| (-[WKShareSheet delegate]): |
| (-[WKShareSheet setDelegate:]): |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp: |
| * WebProcess/WebCoreSupport/ios/WebPreviewLoaderClient.h: |
| * WebProcess/WebPage/Cocoa/WebRemoteObjectRegistry.cpp: |
| |
| 2019-10-01 Tim Horton <timothy_horton@apple.com> |
| |
| Clean up some includes to make the build a bit faster |
| https://bugs.webkit.org/show_bug.cgi?id=202417 |
| |
| Reviewed by Jer Noble. |
| |
| * WebProcess/Plugins/Netscape/NetscapePlugin.h: |
| * WebProcess/Plugins/Plugin.h: |
| Fix the build. |
| |
| 2019-10-01 Alex Christensen <achristensen@webkit.org> |
| |
| Fix GTK build after r250558 |
| https://bugs.webkit.org/show_bug.cgi?id=202390 |
| |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.cpp: |
| (webkit_dom_dom_window_confirm): |
| |
| 2019-10-01 Alex Christensen <achristensen@webkit.org> |
| |
| Fix an internal build. |
| |
| Ignore some deprecation warnings. We'll adopt new SPI soon. |
| |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (-[WKNetworkSessionDelegate URLSession:task:didFinishCollectingMetrics:]): |
| |
| 2019-10-01 youenn fablet <youenn@apple.com> |
| |
| Remove races condition when validating capture sandbox extension revocation |
| https://bugs.webkit.org/show_bug.cgi?id=202133 |
| <rdar://problem/55660905> |
| |
| Reviewed by Eric Carlson. |
| |
| * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: |
| (WebKit::UserMediaPermissionRequestManagerProxy::~UserMediaPermissionRequestManagerProxy): |
| Explicitly ask the page to stop capture. |
| This will make sure capture is stopped when revoking sandbox extensions. |
| |
| 2019-09-30 Alex Christensen <achristensen@webkit.org> |
| |
| Resurrect Mac CMake build |
| https://bugs.webkit.org/show_bug.cgi?id=202384 |
| |
| Rubber-stamped by Tim Horton. |
| |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| * PlatformMac.cmake: |
| * Shared/API/Cocoa/_WKRemoteObjectRegistry.mm: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: |
| * WebKit2Prefix.h: |
| |
| 2019-09-30 Christopher Reid <chris.reid@sony.com> |
| |
| [WinCairo] Move Remote Inspector Server initialization out of WebView |
| https://bugs.webkit.org/show_bug.cgi?id=202369 |
| |
| Reviewed by Ross Kirsling. |
| |
| Move Remote Inspector Server initialization to Windows WebProcessPool initialization. |
| |
| * UIProcess/win/WebProcessPoolWin.cpp: |
| * UIProcess/win/WebView.cpp: |
| |
| 2019-09-30 Alex Christensen <achristensen@webkit.org> |
| |
| Move DownloadMonitor test speed multiplier from WebProcessPool to WebsiteDataStoreConfiguration |
| https://bugs.webkit.org/show_bug.cgi?id=202339 |
| |
| Reviewed by Youenn Fablet. |
| |
| This was only used for some unit tests, which still are accelerated so they pass in the same amount of time as before. |
| I need this value to not be process-global in the NetworkProcess. |
| |
| * NetworkProcess/Downloads/Download.cpp: |
| (WebKit::Download::Download): |
| * NetworkProcess/Downloads/Download.h: |
| (WebKit::Download::Download): |
| (WebKit::Download::testSpeedMultiplier const): |
| * NetworkProcess/Downloads/DownloadManager.cpp: |
| (WebKit::DownloadManager::resumeDownload): |
| * NetworkProcess/Downloads/DownloadManager.h: |
| * NetworkProcess/Downloads/DownloadMonitor.cpp: |
| (WebKit::DownloadMonitor::applicationDidEnterBackground): |
| (WebKit::DownloadMonitor::testSpeedMultiplier const): |
| (WebKit::DownloadMonitor::timerFired): |
| (WebKit::DownloadMonitor::speedMultiplier const): Deleted. |
| * NetworkProcess/Downloads/DownloadMonitor.h: |
| * NetworkProcess/NetworkDataTaskBlob.cpp: |
| (WebKit::NetworkDataTaskBlob::download): |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * NetworkProcess/NetworkSession.cpp: |
| (WebKit::NetworkSession::NetworkSession): |
| * NetworkProcess/NetworkSession.h: |
| (WebKit::NetworkSession::testSpeedMultiplier const): |
| * NetworkProcess/NetworkSessionCreationParameters.cpp: |
| (WebKit::NetworkSessionCreationParameters::encode const): |
| (WebKit::NetworkSessionCreationParameters::decode): |
| * NetworkProcess/NetworkSessionCreationParameters.h: |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (-[WKNetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]): |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| (API::ProcessPoolConfiguration::copy): |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: |
| (-[_WKProcessPoolConfiguration downloadMonitorSpeedMultiplierForTesting]): Deleted. |
| (-[_WKProcessPoolConfiguration setDownloadMonitorSpeedMultiplierForTesting:]): Deleted. |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h: |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm: |
| (-[_WKWebsiteDataStoreConfiguration testSpeedMultiplier]): |
| (-[_WKWebsiteDataStoreConfiguration setTestSpeedMultiplier:]): |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeNetworkProcess): |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp: |
| (WebKit::WebsiteDataStoreConfiguration::copy): |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h: |
| (WebKit::WebsiteDataStoreConfiguration::testSpeedMultiplier const): |
| (WebKit::WebsiteDataStoreConfiguration::setTestSpeedMultiplier): |
| |
| 2019-09-30 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] IconDatabase is not thread-safe |
| https://bugs.webkit.org/show_bug.cgi?id=201303 |
| |
| Reviewed by Žan Doberšek. |
| |
| Rewrite the IconDatabase implementation. Now that we are the only users of this code, we can simply it a lot and |
| design it specifically for our API, which implementation has been simplified a lot too. There's no change in |
| the database schema nor in behavior from the API point of view. |
| |
| * UIProcess/API/glib/IconDatabase.cpp: |
| (WebKit::IconDatabase::IconDatabase): |
| (WebKit::IconDatabase::~IconDatabase): |
| (WebKit::IconDatabase::createTablesIfNeeded): |
| (WebKit::IconDatabase::populatePageURLToIconURLMap): |
| (WebKit::IconDatabase::clearStatements): |
| (WebKit::IconDatabase::pruneTimerFired): |
| (WebKit::IconDatabase::startPruneTimer): |
| (WebKit::IconDatabase::clearLoadedIconsTimerFired): |
| (WebKit::IconDatabase::startClearLoadedIconsTimer): |
| (WebKit::IconDatabase::iconIDForIconURL): |
| (WebKit::IconDatabase::setIconIDForPageURL): |
| (WebKit::IconDatabase::iconData): |
| (WebKit::IconDatabase::addIcon): |
| (WebKit::IconDatabase::updateIconTimestamp): |
| (WebKit::IconDatabase::deleteIcon): |
| (WebKit::IconDatabase::checkIconURLAndSetPageURLIfNeeded): |
| (WebKit::IconDatabase::loadIconForPageURL): |
| (WebKit::IconDatabase::iconURLForPageURL): |
| (WebKit::IconDatabase::setIconForPageURL): |
| (WebKit::IconDatabase::clear): |
| * UIProcess/API/glib/IconDatabase.h: |
| (WebKit::IconDatabase::create): |
| * UIProcess/API/glib/WebKitFaviconDatabase.cpp: |
| (webkitFaviconDatabaseCreate): |
| (webkitFaviconDatabaseIsOpen): |
| (webkitFaviconDatabaseOpen): |
| (webkitFaviconDatabaseClose): |
| (webkitFaviconDatabaseGetLoadDecisionForIcon): |
| (webkitFaviconDatabaseSetIconForPageURL): |
| (webkitFaviconDatabaseGetFaviconInternal): |
| (webkit_favicon_database_get_favicon): |
| (webkit_favicon_database_get_favicon_finish): |
| (webkit_favicon_database_get_favicon_uri): |
| (webkit_favicon_database_clear): |
| * UIProcess/API/glib/WebKitFaviconDatabasePrivate.h: |
| * UIProcess/API/glib/WebKitWebContext.cpp: |
| (webkitWebContextDispose): |
| (webkit_web_context_set_favicon_database_directory): |
| (webkitWebContextCreatePageForWebView): |
| (webkitWebContextWebViewDestroyed): |
| * UIProcess/API/glib/WebKitWebView.cpp: |
| (webkitWebViewRequestFavicon): |
| (webkitWebViewGetLoadDecisionForIcon): |
| (webkitWebViewSetIcon): |
| |
| 2019-09-30 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK][WPE] Add about:gpu |
| https://bugs.webkit.org/show_bug.cgi?id=202305 |
| |
| Reviewed by Žan Doberšek. |
| |
| A builtin protocol handler to show information about hardware acceleration. This is useful information we need |
| from people reporting issues in accelerated compositing mode. |
| |
| * SourcesGTK.txt: |
| * SourcesWPE.txt: |
| * UIProcess/API/glib/WebKitProtocolHandler.cpp: Added. |
| (WebKit::WebKitProtocolHandler::WebKitProtocolHandler): |
| (WebKit::WebKitProtocolHandler::handleRequest): |
| (WebKit::webkitPortName): |
| (WebKit::hardwareAccelerationPolicy): |
| (WebKit::webGLEnabled): |
| (WebKit::openGLAPI): |
| (WebKit::nativeInterface): |
| (WebKit::WebKitProtocolHandler::handleGPU): |
| * UIProcess/API/glib/WebKitProtocolHandler.h: Added. |
| * UIProcess/API/glib/WebKitWebContext.cpp: |
| (webkitWebContextConstructed): |
| |
| 2019-09-30 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r250291. |
| https://bugs.webkit.org/show_bug.cgi?id=202359 |
| |
| it is failing |
| TestWebKitAPI.ProcessSwap.GetUserMediaCaptureState (Requested |
| by youenn on #webkit). |
| |
| Reverted changeset: |
| |
| "Delay capture sandbox extension revocation to after the page |
| close message is sent" |
| https://bugs.webkit.org/show_bug.cgi?id=202133 |
| https://trac.webkit.org/changeset/250291 |
| |
| 2019-09-29 Zan Dobersek <zdobersek@igalia.com> |
| |
| ScrollingTreeScrollingNode: use LayerRepresentation for scroll container, scrolled contents layers |
| https://bugs.webkit.org/show_bug.cgi?id=202256 |
| <rdar://problem/55772092> |
| |
| Reviewed by Simon Fraser. |
| |
| * UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm: |
| (WebKit::RemoteScrollingCoordinatorProxy::establishLayerTreeScrollingRelations): |
| Use static casts to retrieve the CALayer pointers from the |
| LayerRepresentation objects due to the explicit operators. |
| |
| 2019-09-29 Zan Dobersek <zdobersek@igalia.com> |
| |
| Tighten up LayerRepresentation operators |
| https://bugs.webkit.org/show_bug.cgi?id=202344 |
| |
| Reviewed by Simon Fraser. |
| |
| With LayerRepresentation operators now being explicit, we require |
| to manually specify conversion to CALayer pointers or |
| GraphicsLayer::PlatformLayerID values. |
| |
| * UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp: |
| (WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers): |
| * UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm: |
| (WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers): |
| * UIProcess/RemoteLayerTree/ios/ScrollingTreeFrameScrollingNodeRemoteIOS.mm: |
| (WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::commitStateBeforeChildren): |
| * UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm: |
| (WebKit::ScrollingTreeScrollingNodeDelegateIOS::commitStateBeforeChildren): |
| * UIProcess/RemoteLayerTree/mac/ScrollingTreeFrameScrollingNodeRemoteMac.cpp: |
| (WebKit::ScrollingTreeFrameScrollingNodeRemoteMac::commitStateBeforeChildren): |
| * UIProcess/RemoteLayerTree/mac/ScrollingTreeOverflowScrollingNodeRemoteMac.cpp: |
| (WebKit::ScrollingTreeOverflowScrollingNodeRemoteMac::commitStateBeforeChildren): |
| |
| 2019-09-27 Adrian Perez de Castro <aperez@igalia.com> |
| |
| [GTK][WPE] Fixes for non-unified builds after r249714 |
| https://bugs.webkit.org/show_bug.cgi?id=202304 |
| |
| Reviewed by Youenn Fablet. |
| |
| * NetworkProcess/NetworkLoadChecker.h: Add missing inclusion of the pal/SessionID.h header. |
| * NetworkProcess/NetworkResourceLoadMap.cpp: Add missing inclusion of the |
| NetworkResourceLoader.h header. |
| * UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.cpp: |
| (WKWebsiteDataStoreConfigurationCreate): Add missing namespace to usage of the |
| WebKit::IsPersistent::Yes value. |
| * UIProcess/WebPageProxy.cpp: Add missing inclusion of the LegacyGlobalSettings.h header. |
| |
| 2019-09-27 Tim Horton <timothy_horton@apple.com> |
| |
| Adopt new UIWebGeolocationPolicyDecider SPI to pass a view instead of a window |
| https://bugs.webkit.org/show_bug.cgi?id=202329 |
| <rdar://problem/25963823> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/ios/WKGeolocationProviderIOS.mm: |
| (-[WKGeolocationProviderIOS geolocationAuthorizationGranted]): |
| * UIProcess/ios/WKGeolocationProviderIOSObjCSecurityOrigin.mm: |
| (WebKit::decidePolicyForGeolocationRequestFromOrigin): |
| Switch to newer SPI that takes a UIView instead of a UIWindow, so that |
| UIWebGeolocationPolicyDecider can find the correct presenting view controller. |
| |
| 2019-09-27 Zalan Bujtas <zalan@apple.com> |
| |
| [iPadOS] Can’t use RalphLauren.com on iPad because hover menus don’t stay up |
| https://bugs.webkit.org/show_bug.cgi?id=202331 |
| <rdar://problem/55629493> |
| |
| Reviewed by Tim Horton. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::handleSyntheticClick): |
| (WebKit::nodeTriggersFastPath): Deleted. |
| |
| 2019-09-27 Alex Christensen <achristensen@webkit.org> |
| |
| Move shouldUseTestingNetworkSession from NetworkProcessCreationParameters to NetworkSessionCreationParameters |
| https://bugs.webkit.org/show_bug.cgi?id=202327 |
| |
| Reviewed by Tim Horton. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| (WebKit::NetworkProcess::ensureSession): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * NetworkProcess/NetworkSession.cpp: |
| (WebKit::NetworkSession::NetworkSession): |
| * NetworkProcess/NetworkSessionCreationParameters.cpp: |
| (WebKit::NetworkSessionCreationParameters::encode const): |
| (WebKit::NetworkSessionCreationParameters::decode): |
| * NetworkProcess/NetworkSessionCreationParameters.h: |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa): |
| * NetworkProcess/curl/RemoteNetworkingContextCurl.cpp: |
| (WebKit::RemoteNetworkingContext::ensureWebsiteDataStoreSession): |
| * NetworkProcess/mac/RemoteNetworkingContext.mm: |
| (WebKit::RemoteNetworkingContext::ensureWebsiteDataStoreSession): |
| * NetworkProcess/soup/RemoteNetworkingContextSoup.cpp: |
| (WebKit::RemoteNetworkingContext::ensureWebsiteDataStoreSession): |
| * UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.cpp: |
| (WKWebsiteDataStoreConfigurationSetPerOriginStorageQuota): |
| (WKWebsiteDataStoreConfigurationSetNetworkCacheSpeculativeValidationEnabled): |
| (WKWebsiteDataStoreConfigurationGetTestingSessionEnabled): |
| (WKWebsiteDataStoreConfigurationSetTestingSessionEnabled): |
| * UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp: |
| (WebKit::WebsiteDataStoreConfiguration::copy): |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h: |
| (WebKit::WebsiteDataStoreConfiguration::testingSessionEnabled const): |
| (WebKit::WebsiteDataStoreConfiguration::setTestingSessionEnabled): |
| |
| 2019-09-27 Alex Christensen <achristensen@webkit.org> |
| |
| Move legacy custom protocol registration from process pool to NetworkProcessProxy |
| https://bugs.webkit.org/show_bug.cgi?id=202315 |
| |
| Reviewed by Tim Horton. |
| |
| Legacy custom protocol registration is a global thing, which is why it's legacy and we're trying to get rid of it. |
| In the meantime, we don't want it to be in the set of things the NetworkProcess depends on the WebProcessPool for, which should be an empty set. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| (WebKit::WebProcessPool::registerGlobalURLSchemeAsHavingCustomProtocolHandlers): |
| (WebKit::WebProcessPool::unregisterGlobalURLSchemeAsHavingCustomProtocolHandlers): |
| (WebKit::WebProcessPool::registerSchemeForCustomProtocol): Deleted. |
| (WebKit::WebProcessPool::unregisterSchemeForCustomProtocol): Deleted. |
| * UIProcess/WebProcessPool.h: |
| |
| 2019-09-27 Alex Christensen <achristensen@webkit.org> |
| |
| Layout Test http/tests/cache-storage/cache-records-persistency.https.html is failing |
| https://bugs.webkit.org/show_bug.cgi?id=202323 |
| |
| Reviewed by Tim Horton. |
| |
| This reverts most of r250351. |
| It turns out NetworkProcessProxy::addSession has some side effects in the UIProcess that are useful for NetworkProcess resumption after crashes. Let's keep that. |
| |
| * 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): |
| |
| 2019-09-27 Jer Noble <jer.noble@apple.com> |
| |
| Unreviewed build-fix: wrap the AssertionServicesSPI.h in an IOS_FAMILY check. |
| |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| |
| 2019-09-27 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| [iOS]: When inserting a photo and then inserting auto-corrected text, the photo is removed |
| https://bugs.webkit.org/show_bug.cgi?id=202294 |
| |
| Reviewed by Wenson Hsieh. |
| |
| WebPage::applyAutocorrectionInternal() calls wordRangeFromPosition() to |
| calculate the range of the word to be replaced with the auto-corrected |
| word. But if the text of the range does not match the original text, |
| applyAutocorrectionInternal() tries to correct the range by moving it |
| forward such that the length of the text range matches the length of the |
| original text. |
| |
| Another case, which should correct the range also, is: the range does not |
| have a text but it is not collapsed. In this case, we should set the range |
| back to the selection range so non-text nodes is removed. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::applyAutocorrectionInternal): |
| |
| 2019-09-27 John Wilander <wilander@apple.com> |
| |
| Storage Access API: document.hasStorageAccess() should return false by default |
| https://bugs.webkit.org/show_bug.cgi?id=202281 |
| <rdar://problem/55718526> |
| |
| Reviewed by Alex Christensen. |
| |
| document.hasStorageAccess() should return false by default so that it only |
| returns true if the context has asked for and been granted storage access. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: |
| (WebKit::ResourceLoadStatisticsDatabaseStore::hasStorageAccess): |
| * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ResourceLoadStatisticsMemoryStore::hasStorageAccess): |
| |
| 2019-09-27 Jer Noble <jer.noble@apple.com> |
| |
| [iOS] Lock screen controls can fail to play web content |
| https://bugs.webkit.org/show_bug.cgi?id=202279 |
| |
| Reviewed by Chris Dumez. |
| |
| When playback is paused from the lock screen via Now Playing controls, the WebProcess, |
| UIProcess, and Network Process will all be suspended. MediaRemote will take an assertion |
| and wake up the WebProcess when a remote control command to "play" is sent via the Now |
| Playing controls. However, if a synchronous message to the (suspended) Network or UIProcess |
| is issued before the notification that the process was unexpectedly unsuspended can be |
| issued (which will subsequently unsuspend the UIProcess and Network process), we can get |
| into a deadlocked state where the main thread is blocked on the sync message to a suspended |
| process. |
| |
| To work around this problem, move all the processing from ProcessTaskStateObserver to a |
| WorkQueue / background thread. This requires making the ProcessTaskStateObserver thread-safe, |
| though its only current client is a Singleton (the WebProcess class), and so the risk of |
| thread safety issues is currently minimal. Regardless, access to the Client pointer must be |
| guarded by a Lock, and the Client itself must become ref-counted, so that the |
| ProcessTaskStateObserver can ref its Client (the WebProcess) during callback processing. |
| |
| Unfortunately, sendWithAsyncReply() is not thread safe, nor is ProcessAssertion, so instead |
| just use send() and set a 5-second timeout before expiring the assertion, and just use |
| BKSProcessStateAssertion directly. |
| |
| * Shared/Cocoa/ProcessTaskStateObserver.h: |
| (WebKit::ProcessTaskStateObserver::Client::ref): |
| (WebKit::ProcessTaskStateObserver::Client::deref): |
| (WebKit::ProcessTaskStateObserver::setClient): Deleted. |
| (WebKit::ProcessTaskStateObserver::client): Deleted. |
| * Shared/Cocoa/ProcessTaskStateObserver.mm: |
| (-[WKProcessTaskStateObserverDelegate process:taskStateDidChange:]): |
| (WebKit::ProcessTaskStateObserver::create): |
| (WebKit::ProcessTaskStateObserver::ProcessTaskStateObserver): |
| (WebKit::ProcessTaskStateObserver::~ProcessTaskStateObserver): |
| (WebKit::ProcessTaskStateObserver::invalidate): |
| (WebKit::ProcessTaskStateObserver::client): |
| (WebKit::ProcessTaskStateObserver::setTaskState): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::m_taskStateObserver): |
| * WebProcess/WebProcess.h: |
| * UIProcess/Cocoa/WebProcessProxyCocoa.mm: |
| (WebKit::WebProcessProxy::processWasUnexpectedlyUnsuspended): |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebProcessProxy.messages.in: |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::processTaskStateDidChange): |
| |
| 2019-09-27 Alex Christensen <achristensen@webkit.org> |
| |
| Move service worker process termination delay disabling from process pool to website data store |
| https://bugs.webkit.org/show_bug.cgi?id=202308 |
| |
| Reviewed by Chris Dumez. |
| |
| It's only there for a test, which still works quickly. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| (WebKit::NetworkProcess::addWebsiteDataStore): |
| (WebKit::NetworkProcess::destroySession): |
| (WebKit::NetworkProcess::fetchWebsiteData): |
| (WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains): |
| (WebKit::NetworkProcess::registrableDomainsWithWebsiteData): |
| (WebKit::NetworkProcess::swServerForSession): |
| (WebKit::NetworkProcess::addServiceWorkerSession): |
| (WebKit::NetworkProcess::disableServiceWorkerProcessTerminationDelay): Deleted. |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * Shared/WebsiteDataStoreParameters.cpp: |
| (WebKit::WebsiteDataStoreParameters::encode const): |
| (WebKit::WebsiteDataStoreParameters::decode): |
| * Shared/WebsiteDataStoreParameters.h: |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _disableServiceWorkerProcessTerminationDelay]): Deleted. |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h: |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm: |
| (-[_WKWebsiteDataStoreConfiguration serviceWorkerProcessTerminationDelayEnabled]): |
| (-[_WKWebsiteDataStoreConfiguration setServiceWorkerProcessTerminationDelayEnabled:]): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| (WebKit::WebProcessPool::disableServiceWorkerProcessTerminationDelay): Deleted. |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp: |
| (WebKit::WebsiteDataStoreConfiguration::copy): |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h: |
| (WebKit::WebsiteDataStoreConfiguration::serviceWorkerProcessTerminationDelayEnabled const): |
| (WebKit::WebsiteDataStoreConfiguration::setServiceWorkerProcessTerminationDelayEnabled): |
| |
| 2019-09-27 Alex Christensen <achristensen@webkit.org> |
| |
| Enable and disable ResourceLoadStatistics only by session |
| https://bugs.webkit.org/show_bug.cgi?id=202298 |
| |
| Reviewed by Chris Dumez. |
| |
| This is needed to keep per-session things per-session and per-process-pool things per-process-pool. |
| This was a strange case where we would take the current session's value and apply it globally. |
| This has no change in behavior because it is globally enabled and disabled by API clients anyways. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::setResourceLoadStatisticsEnabled): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::setResourceLoadStatisticsEnabled): Deleted. |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::setResourceLoadStatisticsEnabled): |
| |
| 2019-09-27 Alex Christensen <achristensen@webkit.org> |
| |
| Remove unused WebProcessPool::setCanHandleHTTPSServerTrustEvaluation |
| https://bugs.webkit.org/show_bug.cgi?id=202285 |
| |
| Reviewed by Youenn Fablet. |
| |
| The SPI to set this was deprecated in r250377 with a replacement that was adopted in rdar://problem/55731135 |
| I removed a layout test using the old SPI and replaced it with a more precise API test verifying the behavior of the new SPI |
| before and after the introduction of NSURLSession's _strictTrustEvaluate:queue:completionHandler: |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| (WebKit::NetworkProcess::setCanHandleHTTPSServerTrustEvaluation): Deleted. |
| * NetworkProcess/NetworkProcess.h: |
| (WebKit::NetworkProcess::canHandleHTTPSServerTrustEvaluation const): Deleted. |
| * NetworkProcess/NetworkProcess.messages.in: |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]): |
| (canNSURLSessionTrustEvaluate): Deleted. |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextSetCanHandleHTTPSServerTrustEvaluation): |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _setCanHandleHTTPSServerTrustEvaluation:]): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| (WebKit::WebProcessPool::setCanHandleHTTPSServerTrustEvaluation): Deleted. |
| * UIProcess/WebProcessPool.h: |
| |
| 2019-09-27 Alex Christensen <achristensen@webkit.org> |
| |
| Remove unused APIProcessPoolConfiguration::diskCacheSpeculativeValidationEnabled |
| https://bugs.webkit.org/show_bug.cgi?id=202290 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| The SPI to set this was deprecated in r250377 with a replacement that was adopted in rdar://problem/55731135 |
| |
| * 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/C/WKContext.cpp: |
| (WKContextSetDiskCacheSpeculativeValidationEnabled): |
| * UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.cpp: |
| (WKWebsiteDataStoreConfigurationGetNetworkCacheSpeculativeValidationEnabled): |
| (WKWebsiteDataStoreConfigurationSetNetworkCacheSpeculativeValidationEnabled): |
| * UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: |
| (-[_WKProcessPoolConfiguration diskCacheSpeculativeValidationEnabled]): |
| (-[_WKProcessPoolConfiguration setDiskCacheSpeculativeValidationEnabled:]): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| |
| 2019-09-27 Zan Dobersek <zdobersek@igalia.com> |
| |
| [CoordinatedGraphics] support bounds origin |
| https://bugs.webkit.org/show_bug.cgi?id=198998 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: |
| (WebKit::CoordinatedGraphicsScene::updateSceneState): |
| Apply bounds origin value to the TextureMapperLayer object. |
| |
| 2019-09-27 Youenn Fablet <youenn@apple.com> |
| |
| Make IsNSURLSessionWebSocketEnabled an experimental flag |
| https://bugs.webkit.org/show_bug.cgi?id=202135 |
| <rdar://problem/55694721> |
| |
| Reviewed by Geoff Garen. |
| |
| Add C API to switch off this feature in WTR. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetIsNSURLSessionWebSocketEnabled): |
| (WKPreferencesGetIsNSURLSessionWebSocketEnabled): |
| * UIProcess/API/C/WKPreferencesRefPrivate.h: |
| |
| 2019-09-27 Jiewen Tan <jiewen_tan@apple.com> |
| |
| SubFrameSOAuthorizationSession should ensure messages are posted in the right order to the parent frame |
| https://bugs.webkit.org/show_bug.cgi?id=202061 |
| <rdar://problem/55485666> |
| |
| Reviewed by Youenn Fablet. |
| |
| This patch ensures messages that signal the process of SOAuthorization interception are posted in |
| the right order to the parent frame. Before this patch, there are chances that SOAuthorizationDidCancel |
| could be posted to the parent before SOAuthorizationDidStart. There are few causes that lead to |
| this race condition: |
| 1) SubFrameSOAuthorizationSession::beforeStart posts SOAuthorizationDidStart in the next runloop. So |
| extension could have the chance to invoke SubFrameSOAuthorizationSession::fallBackToWebPathInternal |
| before SOAuthorizationDidStart is posted. |
| 2) Even if the order is right in the UI process, it is not guaranteed that Web process will strictly |
| follow the order as the loading process is async. |
| |
| To fix the issue: |
| 1) SubFrameSOAuthorizationSession::beforeStart now posts SOAuthorizationDidStart in the same runloop. |
| 2) Observer is introduced in FrameLoadState such that SubFrameSOAuthorizationSession could know if |
| the loading is finished. With this new capacity, SubFrameSOAuthorizationSession can ensure it only |
| posts next message when the previous message has been posted. |
| |
| Implementation wise, a deque to queue requests is provided to maintain order. |
| 1) When new request is added to the deque, SubFrameSOAuthorizationSession will only load the request |
| if it is the only element in the deque. Otherwise, it does nothing. |
| 2) When SubFrameSOAuthorizationSession receives didFinishLoad, it pops the head of the queue and loads |
| the next request in the queue if any. |
| The above design should guarantee all requests are loaded in sequence. |
| |
| * UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.h: |
| * UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.mm: |
| (WebKit::SubFrameSOAuthorizationSession::SubFrameSOAuthorizationSession): |
| (WebKit::SubFrameSOAuthorizationSession::~SubFrameSOAuthorizationSession): |
| (WebKit::SubFrameSOAuthorizationSession::fallBackToWebPathInternal): |
| (WebKit::SubFrameSOAuthorizationSession::completeInternal): |
| (WebKit::SubFrameSOAuthorizationSession::beforeStart): |
| (WebKit::SubFrameSOAuthorizationSession::didFinishLoad): |
| (WebKit::SubFrameSOAuthorizationSession::appendRequestToLoad): |
| (WebKit::SubFrameSOAuthorizationSession::loadRequestToFrame): |
| (WebKit::SubFrameSOAuthorizationSession::loadDataToFrame): Deleted. |
| (WebKit::SubFrameSOAuthorizationSession::postDidCancelMessageToParent): Deleted. |
| * UIProcess/FrameLoadState.cpp: |
| (WebKit::FrameLoadState::addObserver): |
| (WebKit::FrameLoadState::removeObserver): |
| (WebKit::FrameLoadState::didFinishLoad): |
| * UIProcess/FrameLoadState.h: |
| |
| 2019-09-26 Kate Cheney <katherine_cheney@apple.com> |
| |
| Resource Load Statistics: Downgrade all third-party referrer headers |
| https://bugs.webkit.org/show_bug.cgi?id=201353 |
| <rdar://problem/54895650> |
| |
| Majority of this patch was written by John Wilander <wilander@apple.com>. |
| |
| Reviewed by Brent Fulgham. |
| |
| When tracking protections are enabled, we should downgrade all third-party |
| referrers to their origins. Note that this downgrade will be specific to |
| Cocoa so other ports will have to adopt as they see fit. |
| |
| Cocoa already does this downgrade in ephemeral sessions (shipping). |
| |
| The majority of these changes are test infrastructure. The functional |
| change is in WebKit::NetworkDataTaskCocoa and WebKit::NetworkSession. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::setShouldDowngradeReferrerForTesting): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * NetworkProcess/NetworkSession.cpp: |
| (WebKit::NetworkSession::isResourceLoadStatisticsEnabled const): |
| (WebKit::NetworkSession::setShouldDowngradeReferrerForTesting): |
| (WebKit::NetworkSession::shouldDowngradeReferrer const): |
| * NetworkProcess/NetworkSession.h: |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.h: |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::isThirdPartyRequest const): |
| (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): |
| (WebKit::NetworkDataTaskCocoa::restrictRequestReferrerToOriginIfNeeded): |
| (WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection): |
| (WebKit::NetworkDataTaskCocoa::isThirdPartyRequest): Deleted. |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreSetResourceLoadStatisticsShouldDowngradeReferrerForTesting): |
| (WKWebsiteDataStoreStatisticsResetToConsistentState): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::setShouldDowngradeReferrerForTesting): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::setResourceLoadStatisticsShouldDowngradeReferrerForTesting): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| |
| 2019-09-26 Eric Carlson <eric.carlson@apple.com> |
| |
| REGRESSION (iOS 13): Trying to record just audio using HTML Media Capture crashes Safari |
| https://bugs.webkit.org/show_bug.cgi?id=202039 |
| <rdar://problem/55566628> |
| |
| Reviewed by Jer Noble. |
| |
| * UIProcess/ios/forms/WKFileUploadPanel.mm: |
| (-[WKFileUploadPanel _mediaTypesForPickerSourceType:]): UIImagePickerController doesn't |
| support audio-only recording, so show the video recorder for "audio/*". |
| |
| 2019-09-26 Tim Horton <timothy_horton@apple.com> |
| |
| Add some logging to help diagnose blank or stuck WKWebViews |
| https://bugs.webkit.org/show_bug.cgi?id=202297 |
| <rdar://problem/55763610> |
| |
| Reviewed by Wenson Hsieh. |
| |
| Our current logging is insufficient to rule out some of the potential |
| causes of stuck/blank WKWebViews in <rdar://problem/53399054>. Add |
| some new logging, and improve some existing logging, to aid in diagnosis. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _willInvokeUIScrollViewDelegateCallback]): |
| (-[WKWebView _didInvokeUIScrollViewDelegateCallback]): |
| Rename _delayUpdateVisibleContentRects to be more specific that it |
| was due to us being underneath a UIScrollView delegate callback. |
| |
| (-[WKWebView _processWillSwapOrDidExit]): |
| (-[WKWebView _didCommitLayerTree:]): |
| Add a log when we receive an incoming commit while visible content rect |
| updates are being deferred. Also, include the current transaction ID |
| and the transaction ID that _needsResetViewState... is waiting for, to |
| help rule out a class of potential problems. |
| |
| Add a log when we receive an incoming commit more than 5 seconds after |
| a visible content rect update. |
| |
| (-[WKWebView _updateVisibleContentRects]): |
| Keep track of when we defer visual content rect updates for any reason, |
| and log the first time we do an update after deferring them. This will make |
| it MUCH easier at-a-glance to tell if one of the "bailing" messages |
| represents a long-term state (a problem), or is expected. |
| |
| Keep track of how long it's been since we sent a visible content rect update |
| and didn't get a commit back from the Web Content process; if it's been |
| more than 5 seconds, start logging. |
| |
| (-[WKWebView _cancelAnimatedResize]): |
| (-[WKWebView _didCompleteAnimatedResize]): |
| (-[WKWebView _beginAnimatedResizeWithUpdates:]): |
| (-[WKWebView _endAnimatedResize]): |
| (-[WKWebView _resizeWhileHidingContentWithUpdates:]): |
| Turn animated resize logging into release logging. It is a common culprit |
| for many kinds of bugs, while also not being high volume, so this is well worth it. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::freezeLayerTree): |
| (WebKit::WebPage::unfreezeLayerTree): |
| Show the current value of m_layerTreeFreezeReasons in addition to the old value and delta, |
| so you don't have to manually compute the current value when reading logs. |
| |
| 2019-09-26 Dean Jackson <dino@apple.com> |
| |
| ContextMenu on a link in an email no longer shows web preview |
| https://bugs.webkit.org/show_bug.cgi?id=201120 |
| <rdar://54353617> |
| |
| Reviewed by Wenson Hsieh. |
| |
| Only go down the image path if we are not also a link. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView continueContextMenuInteraction:]): |
| |
| 2019-09-26 Chris Dumez <cdumez@apple.com> |
| |
| Stop using testRunner.overridePreference() to turn on Page Cache |
| https://bugs.webkit.org/show_bug.cgi?id=202274 |
| |
| Reviewed by Alex Christensen. |
| |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): |
| |
| 2019-09-26 Andy Estes <aestes@apple.com> |
| |
| Crash under WebPage::beginPrinting when m_printContext becomes null due to synchronous layout |
| https://bugs.webkit.org/show_bug.cgi?id=202171 |
| <rdar://problem/49731211> |
| |
| Reviewed by Tim Horton. |
| |
| Speculatively fix a null pointer dereference crash in WebPage::beginPrinting. |
| |
| WebPage::beginPrinting creates a PrintContext, stores it in m_printContext, then calls |
| PrintContext::begin which forces a synchronous, paginated layout. If a post-layout task |
| executes script, that might result in the WebPage being closed and m_printContext being set |
| to nullptr. |
| |
| Guard against this in WebPage::beginPrinting by adding a null check before calling |
| PrintContext::computePageRects. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::beginPrinting): |
| |
| 2019-09-26 Kate Cheney <katherine_cheney@apple.com> |
| |
| Enable LayoutTests using ResourceLoadStatistics SQLite backend (195420) |
| https://bugs.webkit.org/show_bug.cgi?id=195420 |
| <rdar://problem/54213551> |
| |
| Reviewed by Brent Fulgham. |
| |
| Changed all RELEASE_LOG_ERROR() calls involving domain strings to |
| RELEASE_LOG_ERROR_IF_ALLOWED() to prevent leaking information about |
| the domain strings only if sessionID.isAlwaysOnLoggingAllowed(). |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: |
| (WebKit::ResourceLoadStatisticsDatabaseStore::ResourceLoadStatisticsDatabaseStore): |
| Added autovacuuming to the constructor to avoid manually calling |
| runVacuumCommand(). Changed constructor to take in sessionID so it |
| can use RELEASE_LOG_ERROR_IF_ALLOWED which requires the sessionID. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::prepareStatements): |
| Added 2 statements that were not being prepared. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::relationshipExists const): |
| Corrected incorrect capitalization. Added check for nullopt in case |
| domainID is for a domain not in the database yet. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::domainID const): |
| Changed return value to Optional<unsigned>. Some tests were directly |
| checking for subframes under top frame domains on domains that had |
| not been inserted yet. Now, domainID() won't crash but will return |
| a nullopt value which can be checked to know that the tests failed. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::insertDomainRelationships): |
| Added a check to assure domainID exists and updated the domainID |
| interactions to work as Optionals. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::populateFromMemoryStore): |
| Moved the prepareStatements() call after the vacuum command in the case |
| where the database is empty. Otherwise called it before returning. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::recursivelyFindNonPrevalentDomainsThatRedirectedToThisDomain): |
| Added a space to the SQL commands to correct the syntax. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::findNotVeryPrevalentResources): |
| Corrected a bug in the SQL command for querying |
| subframeUnderTopFrameDomain. The old query was asking for subresource. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::reclassifyResources): |
| Spelling fix. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::requestStorageAccess): |
| Changed string concatenation to binding. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::grandfatherDataForDomains): |
| The grandfathering.html test was failing because domains were being |
| "set" to grandfathered in the database before being inserted. This fix |
| ensures all domains before setting the grandfathering flag. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::logFrameNavigation): |
| Multiple tests were failing because the query to insert the relationship |
| for the source domain relies on the target domain being in the |
| ObservedDomains table. This patch ensures all domains are added before |
| performing the query. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::setUserInteraction): |
| Added a != SQLITE_OK check to make sure an error is logged if the |
| statement fails to bind. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::clearUserInteraction): |
| Changed string concatenation to binding. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::hasHadUserInteraction): |
| The SQL statement was being bound to a value and not being reset. This |
| patch resets the statement after binding. Additionally, the step() |
| function was being compared to SQLITE_DONE instead of SQLITE_ROW, |
| causing an error if the query returned results. The |
| ASSERT_NOT_REACHED() was causing null searches to crash instead of |
| returning false (i.e. if a domain is not in the database it should |
| return that it has no user interaction instead of crashing). |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::setPrevalentResource): |
| Updated domainID call to act as an Optional. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::predicateValueForDomain const): |
| The SQL statement was being bound to a value and not being reset. This |
| patch resets the statement after binding. SQLITE_DONE changed to |
| SQLITE_ROW to return non-empty query results. ASSERT_NOT_REACHED() |
| removed for the same reasons as above. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::ensureResourceStatisticsForRegistrableDomain): |
| Fixed the release log statement which was logging the wrong function |
| name. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::clearDatabaseContents): |
| Clears the database and rebuilds the tables on a clear command to |
| match the functionality in the Memory Store. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::clear): |
| Call the clearDatabaseContents function to match the functionality |
| in the Memory Store. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::hasUserGrantedStorageAccessThroughPrompt const): |
| Updated domainID call to act as an Optional. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::hasHadUnexpiredRecentUserInteraction): |
| Tests were failing because shouldRemoveAllWebsiteDataFor() was not |
| checking for expired user interaction. Matched functionality in the |
| Memory Store. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::shouldRemoveAllWebsiteDataFor): |
| Tests were failing because shouldRemoveAllWebsiteDataFor() was not |
| checking for expired user interaction. Matched functionality in the |
| Memory Store. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::registrableDomainsToRemoveWebsiteDataFor): |
| Spelling fix. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::pruneStatisticsIfNeeded): |
| Last seen should be sorted in ascending order because you want to |
| prune the older statistics first, which will have a lower lastSeen |
| field (secondsSinceEpoch() will be lower for older values). |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::shouldRemoveAllWebsiteDataFor const): Deleted. |
| Deleted const specifier because the function needs to clear the |
| database. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h: |
| Declared new functions. Updated spelling error (registerable --> |
| registrable). Updated constructor to take sessionID. |
| |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore): |
| ITP database flag now is stored in the NetworkProcess. |
| * NetworkProcess/NetworkProcess.cpp: |
| |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| Set the ITP database flag which is now stored in the Network Process. |
| |
| (WebKit::NetworkProcess::setUseITPDatabase): |
| * NetworkProcess/NetworkProcess.h: |
| (WebKit::NetworkProcess::isITPDatabaseEnabled const): |
| * NetworkProcess/NetworkProcess.messages.in: |
| Passed the setUseITPDatabase flag to the initialization function |
| of the statistics store to enable the database backend. |
| |
| * NetworkProcess/NetworkSession.cpp: |
| (WebKit::NetworkSession::NetworkSession): |
| SandboxExtension::consumePermanently was not getting called on the |
| WebKitTestRunner resourceLoadStatistics path. This was preventing |
| the database file from opening. |
| |
| (WebKit::NetworkSession::recreateResourceLoadStatisticStore): |
| Destroy old WebResourceLoadStatisticsStore and create a new one using |
| the ITP database. |
| |
| * NetworkProcess/NetworkSession.h: |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreSetUseITPDatabase): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::setUseITPDatabase): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::setUseITPDatabase): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| Passed the setUseITPDatabase flag to the initialization function |
| of the statistics store to enable the database backend. |
| |
| 2019-09-26 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS 13] Tapping on a non-editable text selection should toggle callout bar visibility instead of clearing selection |
| https://bugs.webkit.org/show_bug.cgi?id=202254 |
| <rdar://problem/54410263> |
| |
| Reviewed by Megan Gardner. |
| |
| In iOS 13, tapping a text selection should toggle callout bar visibility (i.e. "selection commands" in UIKit). |
| This currently does not work for non-editable text, since the synthetic click gesture simultaneously fires |
| alongside the text interaction assistant's non-editable tap gesture, which dispatches a click to the page which |
| then clears the selection. |
| |
| To remedy this and match platform behavior, we avoid recognizing clicks that occur over the text selection, but |
| only in the case where the bounding rect of the text selection doesn't cover a large portion of the visible |
| content rect of the web view. This ensures that the user doesn't get stuck in a state where it's impossible to |
| dismiss a very large text selection (e.g. after selecting all the content on the page). |
| |
| Tests: editing/selection/ios/clear-selection-after-tap-in-large-selected-non-editable-text.html |
| editing/selection/ios/toggle-callout-bar-after-tap-in-selected-non-editable-text.html |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _shouldToggleSelectionCommandsAfterTapAt:]): |
| |
| Check the last known selection rects (on _lastSelectionDrawingInfo) to see if the tapped point lies within at |
| least one of the selection rects. |
| |
| (-[WKContentView gestureRecognizerShouldBegin:]): |
| |
| 2019-09-26 Patrick Griffis <pgriffis@igalia.com> |
| |
| [GTK] Fix logic of dark theme detection |
| https://bugs.webkit.org/show_bug.cgi?id=202276 |
| |
| - If GTK_THEME is set it has a higher priority to GtkSettings. |
| - GTK_THEME may be a -dark theme or :dark variant, handle both. |
| |
| Reviewed by Michael Catanzaro. |
| |
| * UIProcess/API/gtk/PageClientImpl.cpp: |
| (WebKit::PageClientImpl::effectiveAppearanceIsDark const): |
| |
| 2019-09-25 Alex Christensen <achristensen@webkit.org> |
| |
| Add replacement SPI on _WKWebsiteDataStoreConfiguration for enabling speculative cache validation and IPC-free server trust evaluation |
| https://bugs.webkit.org/show_bug.cgi?id=202251 |
| |
| Reviewed by Tim Horton. |
| |
| These are two performance optimizations that are currently per-ProcessPool that need to be per-WebsiteDataStore. |
| This makes replacement SPI and deprecates the old SPI. I'm going to adopt the new SPI then remove the old SPI. |
| |
| * NetworkProcess/NetworkSession.cpp: |
| (WebKit::NetworkSession::NetworkSession): |
| * NetworkProcess/NetworkSessionCreationParameters.cpp: |
| (WebKit::NetworkSessionCreationParameters::encode const): |
| (WebKit::NetworkSessionCreationParameters::decode): |
| * NetworkProcess/NetworkSessionCreationParameters.h: |
| * NetworkProcess/cocoa/NetworkSessionCocoa.h: |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]): |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| * UIProcess/API/C/WKContextPrivate.h: |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h: |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm: |
| (-[_WKWebsiteDataStoreConfiguration networkCacheSpeculativeValidationEnabled]): |
| (-[_WKWebsiteDataStoreConfiguration setNetworkCacheSpeculativeValidationEnabled:]): |
| (-[_WKWebsiteDataStoreConfiguration fastServerTrustEvaluationEnabled]): |
| (-[_WKWebsiteDataStoreConfiguration setFastServerTrustEvaluationEnabled:]): |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp: |
| (WebKit::WebsiteDataStoreConfiguration::copy): |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h: |
| (WebKit::WebsiteDataStoreConfiguration::fastServerTrustEvaluationEnabled const): |
| (WebKit::WebsiteDataStoreConfiguration::setFastServerTrustEvaluationEnabled): |
| (WebKit::WebsiteDataStoreConfiguration::networkCacheSpeculativeValidationEnabled const): |
| (WebKit::WebsiteDataStoreConfiguration::setNetworkCacheSpeculativeValidationEnabled): |
| |
| 2019-09-25 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Fix failing layout tests after trac.webkit.org/r250183 |
| https://bugs.webkit.org/show_bug.cgi?id=202053 |
| <rdar://problem/54542190> |
| |
| Reviewed by Tim Horton. |
| |
| Followup to r250183: move the implementation of -gestureRecognizer:shouldReceiveTouch: out of |
| ENABLE(TOUCH_EVENTS) and into ENABLE(POINTER_EVENTS) instead. This logic is necessary in order for scrolling |
| via pan gestures to work on iOS, in the case where ENABLE(POINTER_EVENTS) is on but ENABLE(TOUCH_EVENTS) is off. |
| This is because the new swipe gesture recognizers added in r250183 will otherwise always take priority over the |
| scroll view's pan gestures. |
| |
| Fixes the following layout tests: |
| - fast/scrolling/ios/reconcile-layer-position-recursive.html |
| - fast/scrolling/ios/click-events-during-momentum-scroll-in-main-frame.html |
| - fast/scrolling/ios/click-events-after-long-press-during-momentum-scroll-in-main-frame.html |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| |
| 2019-09-25 Megan Gardner <megan_gardner@apple.com> |
| |
| Update selections after scrolling for iframes and hide selections while iframes and overflow scrolls are scrolling. |
| https://bugs.webkit.org/show_bug.cgi?id=202125 |
| |
| Reviewed by Tim Horton. |
| |
| Add additional calls into UIKit differentiate between main frame scrolling and overflow/iframe scrolling. |
| Add piping for iframe specific scrolling. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _willStartScrollingOrZooming]): |
| (-[WKContentView _didEndScrollingOrZooming]): |
| * WebProcess/WebCoreSupport/WebEditorClient.cpp: |
| (WebKit::WebEditorClient::subFrameScrollPositionChanged): |
| * WebProcess/WebCoreSupport/WebEditorClient.h: |
| * WebProcess/WebCoreSupport/ios/WebEditorClientIOS.mm: |
| (WebKit::WebEditorClient::subFrameScrollPositionChanged): |
| |
| 2019-09-25 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Page temporarily jumps to an excessively small viewport scale while loading usatoday.com |
| https://bugs.webkit.org/show_bug.cgi?id=202224 |
| <rdar://problem/52906640> |
| |
| Reviewed by Tim Horton. |
| |
| Tweaks the content-aware shrink-to-fit algorithm to bail in the case where the content width is extremely large, |
| such that it bails instead of attempting to fit the entire content of the page. See WebCore ChangeLog for more |
| details. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::immediatelyShrinkToFitContent): |
| |
| 2019-09-25 Alex Christensen <achristensen@webkit.org> |
| |
| Don't fall back to default session if session can't be found for cookie operations |
| https://bugs.webkit.org/show_bug.cgi?id=202222 |
| |
| Reviewed by Geoff Garen. |
| |
| Apparently, during teardown of private browsing sessions, there is sometimes a race condition and cookies from a torn-down session are requested. |
| In this case, just fail like we do all other operations in this file. Otherwise, it's a breach of privacy. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::storageSession): |
| (WebKit::NetworkConnectionToWebProcess::cookiesForDOM): |
| (WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM): |
| (WebKit::NetworkConnectionToWebProcess::cookiesEnabled): |
| (WebKit::NetworkConnectionToWebProcess::cookieRequestHeaderFieldValue): |
| (WebKit::NetworkConnectionToWebProcess::getRawCookies): |
| (WebKit::NetworkConnectionToWebProcess::deleteCookie): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| |
| 2019-09-25 Alex Christensen <achristensen@webkit.org> |
| |
| Remove duplicate WebsiteDataStoreConfiguration copying code |
| https://bugs.webkit.org/show_bug.cgi?id=202215 |
| |
| Reviewed by Tim Horton. |
| |
| WKWebsiteDataStore's _initWithConfiguration was duplicating the functionality of WebsiteDataStoreConfiguration::copy. |
| The former should just call the latter. |
| This move has the side effect of making _WKWebsiteDataStoreConfiguration's paths readable, which I think is desirable so I added a unit test verifying it is so. |
| |
| * UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.cpp: |
| (WKWebsiteDataStoreConfigurationCreate): |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _initWithConfiguration:]): |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm: |
| (-[_WKWebsiteDataStoreConfiguration init]): |
| (-[_WKWebsiteDataStoreConfiguration initNonPersistentConfiguration]): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::mayHaveRegisteredServiceWorkers): |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::createNonPersistent): |
| (WebKit::WebsiteDataStore::defaultDataStore): |
| (WebKit::WebsiteDataStore::defaultDataStoreConfiguration): Deleted. |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp: |
| (WebKit::WebsiteDataStoreConfiguration::WebsiteDataStoreConfiguration): |
| (WebKit::WebsiteDataStoreConfiguration::copy): |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h: |
| (WebKit::WebsiteDataStoreConfiguration::create): |
| (WebKit::WebsiteDataStoreConfiguration::isPersistent const): |
| (WebKit::WebsiteDataStoreConfiguration::setPersistent): Deleted. |
| |
| 2019-09-25 Alex Christensen <achristensen@webkit.org> |
| |
| Replace WebsiteDataStoreParameters::privateSessionParameters with re-initializing all sessions immediately upon NetworkProcess resumption |
| https://bugs.webkit.org/show_bug.cgi?id=202211 |
| |
| Reviewed by Tim Horton. |
| |
| Re-adding an ephemeral session after a NetworkProcess crash based on guessing that all its parameters are empty was added in r227590 with a test. |
| That test passes even when that re-adding code is removed because we re-add all sessions with parameters from the UIProcess when we restart a NetworkProcess. |
| I move the addition of non-default sessions to the initialization message instead of messages after the initialization message to remove race conditions that |
| might cause loads to happen before the NetworkProcess has received its second message from the UIProcess. I also add a unit test to verify that session |
| resumption also works with non-default persistent WebsiteDataStores. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::startNetworkLoad): |
| * NetworkProcess/NetworkSessionCreationParameters.cpp: |
| (WebKit::NetworkSessionCreationParameters::privateSessionParameters): Deleted. |
| * NetworkProcess/NetworkSessionCreationParameters.h: |
| * Shared/WebsiteDataStoreParameters.cpp: |
| (WebKit::WebsiteDataStoreParameters::privateSessionParameters): Deleted. |
| * Shared/WebsiteDataStoreParameters.h: |
| (WebKit::WebsiteDataStoreParameters::legacyPrivateSessionParameters): Deleted. |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| |
| 2019-09-25 Alex Christensen <achristensen@webkit.org> |
| |
| Replace _WKProcessPoolConfiguration.CTDataConnectionServiceType with _WKWebsiteDataStoreConfiguration.dataConnectionServiceType |
| https://bugs.webkit.org/show_bug.cgi?id=202174 |
| |
| Reviewed by Tim Horton. |
| |
| _WKProcessPoolConfiguration.CTDataConnectionServiceType is used in one place and needs a replacement so we can |
| start a NetworkProcess without a WKProcessPool. Since this SPI only does something in the low-level networking code, |
| I verified that the new SPI sets the String the way the old one does, and the old one keeps working in the interim. |
| |
| * NetworkProcess/NetworkSessionCreationParameters.cpp: |
| (WebKit::NetworkSessionCreationParameters::encode const): |
| (WebKit::NetworkSessionCreationParameters::decode): |
| * NetworkProcess/NetworkSessionCreationParameters.h: |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _initWithConfiguration:]): |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h: |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm: |
| (-[_WKWebsiteDataStoreConfiguration dataConnectionServiceType]): |
| (-[_WKWebsiteDataStoreConfiguration setDataConnectionServiceType:]): |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp: |
| (WebKit::WebsiteDataStoreConfiguration::copy): |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h: |
| (WebKit::WebsiteDataStoreConfiguration::dataConnectionServiceType const): |
| (WebKit::WebsiteDataStoreConfiguration::setDataConnectionServiceType): |
| |
| 2019-09-25 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r250336. |
| https://bugs.webkit.org/show_bug.cgi?id=202210 |
| |
| it is creating failures on iOS bots (Requested by youenn on |
| #webkit). |
| |
| Reverted changeset: |
| |
| "Make IsNSURLSessionWebSocketEnabled an experimental flag" |
| https://bugs.webkit.org/show_bug.cgi?id=202135 |
| https://trac.webkit.org/changeset/250336 |
| |
| 2019-09-25 Youenn Fablet <youenn@apple.com> |
| |
| Creation of a service worker connection for a service worker job should be based on the job scope |
| https://bugs.webkit.org/show_bug.cgi?id=202185 |
| |
| Reviewed by Alex Christensen. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::swServerForSession): |
| Assert that registrable domain is not empty. |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::scheduleJobInServer): |
| Use the scope URL instead of the script URL which may be empty in case of an unregister job. |
| |
| 2019-09-25 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iPadOS] [DataActivation] Focus moves away after focusing input fields on www.att.com |
| https://bugs.webkit.org/show_bug.cgi?id=202167 |
| <rdar://problem/55185021> |
| |
| Reviewed by Tim Horton. |
| |
| When using the data activation page on www.att.com, one of the sections on the page contains several select |
| elements; in the case where the user agent: |
| |
| 1. contains the string "iPad", and |
| 2. does not contain the string "Safari" |
| |
| ...www.att.com's data activation page will opt into a mode where it adds blur event listeners to the select |
| elements; in this blur event listener, www.att.com proceeds to programmatically focus a non-editable div element |
| after a 1 second timeout. The reasons for this behavior remain unclear to me, though it's worth noting that the |
| blur event handler name is "screenReaderFocus", which suggests that this is in place to ensure compatibility |
| with screen readers. |
| |
| In iOS 12, dismissing the popover would blur the focused select menu with an animation. Since the animation |
| would take a slightly less than 1 second, www.att.com's logic would have the effect of moving focus to the div |
| element shortly after dismissing the select menu. However, after r243808, we no longer attempt to blur the |
| focused select element when dismissing the popover. This means that the select element is only blurred the next |
| time the user activates another focused element, such as one of the input fields on the page, or a different |
| select element. Consequently, the logic to move focus into a div element now occurs only after a different |
| element has already been focused; this results in focus moving away from newly focused elements after 1 second |
| in the case where a select element has previously focused. |
| |
| To mitigate this, restore iOS 12 behavior behind a site- and app-specific quirk. See comments below for more |
| details. |
| |
| * Shared/FocusedElementInformation.cpp: |
| (WebKit::FocusedElementInformation::encode const): |
| (WebKit::FocusedElementInformation::decode): |
| * Shared/FocusedElementInformation.h: |
| |
| Add a new behavioral quirk flag to FocusedElementInformation to determine whether we should use "legacy" select |
| popover dismissal behavior (i.e. blurring the focused select element when dismissing the select popover, as well |
| as dismissing the popover with animation). |
| |
| * Shared/WebPreferences.yaml: |
| |
| Enable site-specific quirks by default in WKWebView. With regards to this bug, this change allows for |
| site-specific hacks (namely, legacy select popover dismissal) in DataActivation. However, this also fixes |
| various known bugs that are otherwise addressed in Safari only, via site-specific quirks. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| |
| For apps linked on or before iOS 13 and macOS 10.15, revert the default of value of NeedsSiteSpecificQuirks to |
| false. This is done here instead of in a default value function in WebPreferencesDefaultValues to prevent the |
| default values of NeedsSiteSpecificQuirks in the web process and UI process from going out of sync, since the |
| web process is not necessarily linked against the same SDK as the application. |
| |
| * UIProcess/Cocoa/VersionChecks.h: |
| |
| Add a new DYLD version check for the first version of iOS and macOS where site-specific quirks are enabled by |
| default. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView endEditingAndUpdateFocusAppearanceWithReason:]): |
| (-[WKContentView _elementDidBlur]): |
| (-[WKContentView _shouldUseLegacySelectPopoverDismissalBehavior]): |
| |
| We only use "legacy" select popover dismissal behavior in the case where the site-specific quirk flag is on, a |
| select popover is used (i.e. the device is an iPad and a select element is focused), and the application bundle |
| is "com.apple.DataActivation". |
| |
| * UIProcess/ios/forms/WKFormSelectPopover.mm: |
| (-[WKSelectTableViewController shouldDismissWithAnimation]): |
| |
| Keyed off of _shouldUseLegacySelectPopoverDismissalBehavior. |
| |
| (-[WKSelectPopover controlEndEditing]): |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::getFocusedElementInformation): |
| |
| 2019-09-25 Jonathan Bedard <jbedard@apple.com> |
| |
| Unreviewed, rolling out r250324. |
| |
| Broke many mac wk2 layout tests |
| |
| Reverted changeset: |
| |
| "Enable LayoutTests using ResourceLoadStatistics SQLite |
| backend (195420)" |
| https://bugs.webkit.org/show_bug.cgi?id=195420 |
| https://trac.webkit.org/changeset/250324 |
| |
| 2019-09-25 Youenn Fablet <youenn@apple.com> |
| |
| Make IsNSURLSessionWebSocketEnabled an experimental flag |
| https://bugs.webkit.org/show_bug.cgi?id=202135 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2019-09-24 Chris Dumez <cdumez@apple.com> |
| |
| [iOS] Regression(r249703) frequent 'kill() returned unexpected error' log messages |
| https://bugs.webkit.org/show_bug.cgi?id=202173 |
| |
| Reviewed by Geoffrey Garen. |
| |
| The kill(pid, 0) command actually fails with an EPERM error when there is a process |
| running with the given pid, and this is causing us to log a lot of errors. The good |
| news is that we merely want to know that there is no process with the given PID and |
| we correctly get a ESRCH error in this case. I renamed the function from |
| isRunningProcessPID() to wasTerminated() and only check for ESRCH error now. I no |
| longer log any error otherwise since this is expected. |
| |
| Also, for performance reason, I no longer call kill(pid, 0) from inside |
| AuxiliaryProcessProxy::state() as it gets called a lot. I instead only call it from |
| AuxiliaryProcessProxy::wasTerminated() and call it from |
| WebProcessPool::tryTakePrewarmedProcess(). |
| |
| * UIProcess/AuxiliaryProcessProxy.cpp: |
| (WebKit::AuxiliaryProcessProxy::state const): |
| (WebKit::AuxiliaryProcessProxy::wasTerminated const): |
| (WebKit::AuxiliaryProcessProxy::isRunningProcessPID): Deleted. |
| * UIProcess/AuxiliaryProcessProxy.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::tryTakePrewarmedProcess): |
| |
| 2019-09-24 Christopher Reid <chris.reid@sony.com> |
| |
| [WinCairo] Start RemoteInspectorServer |
| https://bugs.webkit.org/show_bug.cgi?id=199938 |
| <rdar://problem/53323048> |
| |
| Reviewed by Fujii Hironori. |
| |
| Enable the remote inspector client on WinCairo. |
| The inspector server will run if the WEBKIT_INSPECTOR_SERVER environment variable is set. |
| WEBKIT_INSPECTOR_SERVER needs to be set in the form of <ip>:port e.g. WEBKIT_INSPECTOR_SERVER=127.0.0.1:1234. |
| |
| Updated the protocol handler to update the target list with DOM manipulation. |
| |
| * UIProcess/socket/RemoteInspectorClient.cpp: |
| * UIProcess/socket/RemoteInspectorClient.h: |
| * UIProcess/socket/RemoteInspectorProtocolHandler.cpp: |
| * UIProcess/socket/RemoteInspectorProtocolHandler.h: |
| * UIProcess/win/WebView.cpp: |
| |
| 2019-09-24 Kate Cheney <katherine_cheney@apple.com> |
| |
| Enable LayoutTests using ResourceLoadStatistics SQLite backend (195420) |
| https://bugs.webkit.org/show_bug.cgi?id=195420 |
| <rdar://problem/54213551> |
| |
| Reviewed by Brent Fulgham. |
| |
| Changed all RELEASE_LOG_ERROR() calls involving domain strings to |
| RELEASE_LOG_ERROR_IF_ALLOWED() to prevent leaking information about |
| the domain strings only if sessionID.isAlwaysOnLoggingAllowed(). |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: |
| (WebKit::ResourceLoadStatisticsDatabaseStore::ResourceLoadStatisticsDatabaseStore): |
| Added autovacuuming to the constructor to avoid manually calling |
| runVacuumCommand(). Changed constructor to take in sessionID so it |
| can use RELEASE_LOG_ERROR_IF_ALLOWED which requires the sessionID. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::prepareStatements): |
| Added 2 statements that were not being prepared. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::relationshipExists const): |
| Corrected incorrect capitalization. Added check for nullopt in case |
| domainID is for a domain not in the database yet. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::domainID const): |
| Changed return value to Optional<unsigned>. Some tests were directly |
| checking for subframes under top frame domains on domains that had |
| not been inserted yet. Now, domainID() won't crash but will return |
| a nullopt value which can be checked to know that the tests failed. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::insertDomainRelationships): |
| Added a check to assure domainID exists and updated the domainID |
| interactions to work as Optionals. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::populateFromMemoryStore): |
| Moved the prepareStatements() call after the vacuum command in the case |
| where the database is empty. Otherwise called it before returning. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::recursivelyFindNonPrevalentDomainsThatRedirectedToThisDomain): |
| Added a space to the SQL commands to correct the syntax. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::findNotVeryPrevalentResources): |
| Corrected a bug in the SQL command for querying |
| subframeUnderTopFrameDomain. The old query was asking for subresource. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::reclassifyResources): |
| Spelling fix. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::requestStorageAccess): |
| Changed string concatenation to binding. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::grandfatherDataForDomains): |
| The grandfathering.html test was failing because domains were being |
| "set" to grandfathered in the database before being inserted. This fix |
| ensures all domains before setting the grandfathering flag. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::logFrameNavigation): |
| Multiple tests were failing because the query to insert the relationship |
| for the source domain relies on the target domain being in the |
| ObservedDomains table. This patch ensures all domains are added before |
| performing the query. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::setUserInteraction): |
| Added a != SQLITE_OK check to make sure an error is logged if the |
| statement fails to bind. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::clearUserInteraction): |
| Changed string concatenation to binding. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::hasHadUserInteraction): |
| The SQL statement was being bound to a value and not being reset. This |
| patch resets the statement after binding. Additionally, the step() |
| function was being compared to SQLITE_DONE instead of SQLITE_ROW, |
| causing an error if the query returned results. The |
| ASSERT_NOT_REACHED() was causing null searches to crash instead of |
| returning false (i.e. if a domain is not in the database it should |
| return that it has no user interaction instead of crashing). |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::setPrevalentResource): |
| Updated domainID call to act as an Optional. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::predicateValueForDomain const): |
| The SQL statement was being bound to a value and not being reset. This |
| patch resets the statement after binding. SQLITE_DONE changed to |
| SQLITE_ROW to return non-empty query results. ASSERT_NOT_REACHED() |
| removed for the same reasons as above. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::ensureResourceStatisticsForRegistrableDomain): |
| Fixed the release log statement which was logging the wrong function |
| name. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::clearDatabaseContents): |
| Clears the database and rebuilds the tables on a clear command to |
| match the functionality in the Memory Store. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::clear): |
| Call the clearDatabaseContents function to match the functionality |
| in the Memory Store. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::hasUserGrantedStorageAccessThroughPrompt const): |
| Updated domainID call to act as an Optional. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::hasHadUnexpiredRecentUserInteraction): |
| Tests were failing because shouldRemoveAllWebsiteDataFor() was not |
| checking for expired user interaction. Matched functionality in the |
| Memory Store. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::shouldRemoveAllWebsiteDataFor): |
| Tests were failing because shouldRemoveAllWebsiteDataFor() was not |
| checking for expired user interaction. Matched functionality in the |
| Memory Store. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::registrableDomainsToRemoveWebsiteDataFor): |
| Spelling fix. |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::pruneStatisticsIfNeeded): |
| Last seen should be sorted in ascending order because you want to |
| prune the older statistics first, which will have a lower lastSeen |
| field (secondsSinceEpoch() will be lower for older values). |
| |
| (WebKit::ResourceLoadStatisticsDatabaseStore::shouldRemoveAllWebsiteDataFor const): Deleted. |
| Deleted const specifier because the function needs to clear the |
| database. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h: |
| Declared new functions. Updated spelling error (registerable --> |
| registrable). Updated constructor to take sessionID. |
| |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore): |
| ITP database flag now is stored in the NetworkProcess. |
| * NetworkProcess/NetworkProcess.cpp: |
| |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| Set the ITP database flag which is now stored in the Network Process. |
| |
| (WebKit::NetworkProcess::addWebsiteDataStore): |
| SandboxExtension::consumePermanently was not getting called on the |
| WebKitTestRunner resourceLoadStatistics path. This was preventing |
| the database file from opening. |
| |
| (WebKit::NetworkProcess::setUseITPDatabase): |
| * NetworkProcess/NetworkProcess.h: |
| (WebKit::NetworkProcess::isITPDatabaseEnabled const): |
| * NetworkProcess/NetworkProcess.messages.in: |
| Passed the setUseITPDatabase flag to the initialization function |
| of the statistics store to enable the database backend. |
| |
| * NetworkProcess/NetworkSession.cpp: |
| (WebKit::NetworkSession::recreateResourceLoadStatisticStore): |
| Destroy old WebResourceLoadStatisticsStore and create a new one using |
| the ITP database. |
| |
| * NetworkProcess/NetworkSession.h: |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreSetUseITPDatabase): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::setUseITPDatabase): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::setUseITPDatabase): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| Passed the setUseITPDatabase flag to the initialization function |
| of the statistics store to enable the database backend. |
| |
| 2019-09-24 Alex Christensen <achristensen@webkit.org> |
| |
| Make iOS WebProcessPool directory getters static |
| https://bugs.webkit.org/show_bug.cgi?id=202157 |
| |
| Reviewed by Tim Horton. |
| |
| No change in behavior. This just cuts another dependency the NetworkProcessProxy has on its owning WebProcessPool. |
| |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::cookieStorageDirectory): |
| (WebKit::WebProcessPool::platformResolvePathsForSandboxExtensions): |
| (WebKit::WebProcessPool::parentBundleDirectory): |
| (WebKit::WebProcessPool::networkingCachesDirectory): |
| (WebKit::WebProcessPool::webContentCachesDirectory): |
| (WebKit::WebProcessPool::containerTemporaryDirectory): |
| (WebKit::WebProcessPool::cookieStorageDirectory const): Deleted. |
| (WebKit::WebProcessPool::parentBundleDirectory const): Deleted. |
| (WebKit::WebProcessPool::networkingCachesDirectory const): Deleted. |
| (WebKit::WebProcessPool::webContentCachesDirectory const): Deleted. |
| (WebKit::WebProcessPool::containerTemporaryDirectory const): Deleted. |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| * UIProcess/WebProcessPool.h: |
| |
| 2019-09-24 Patrick Griffis <pgriffis@igalia.com> |
| |
| [GTK][WPE] Minor code cleanup in BubblewrapLauncher |
| https://bugs.webkit.org/show_bug.cgi?id=201906 |
| |
| This just cleans up string handling and some |
| whitespace fixes. |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * UIProcess/Launcher/glib/BubblewrapLauncher.cpp: |
| (WebKit::XDGDBusProxyLauncher::setAddress): |
| (WebKit::XDGDBusProxyLauncher::launch): |
| (WebKit::XDGDBusProxyLauncher::makeProxyPath): |
| (WebKit::XDGDBusProxyLauncher::dbusAddressToPath): |
| |
| 2019-09-24 Zalan Bujtas <zalan@apple.com> |
| |
| [iPadOs] The second click event is missing on double tap when dblclick handler is not present |
| https://bugs.webkit.org/show_bug.cgi?id=202006 |
| <rdar://problem/51706828> |
| |
| Reviewed by Wenson Hsieh. |
| |
| While double tapping, |
| 1. the first tap triggers a click event through the normal _singleTapIdentified/_singleTapRecognized codepath. |
| 2. and the second tap should trigger either |
| a second single click event or |
| a second single click followed by a dblclick event when dblclick handler is present. |
| However the second click is dropped on the floor when the node under the cursor does not have a dblclick handler (see handleDoubleTapForDoubleClickAtPoint()) -so we end up sending one click event. |
| |
| This patch fixes this case by sending the second tap through the normal single tap flow when the dblclick handler is not present. |
| |
| * Shared/ios/InteractionInformationAtPosition.h: |
| * Shared/ios/InteractionInformationAtPosition.mm: |
| (WebKit::InteractionInformationAtPosition::encode const): |
| (WebKit::InteractionInformationAtPosition::decode): |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView setupInteraction]): |
| (-[WKContentView gestureRecognizerShouldBegin:]): |
| (WebKit::WebPage::positionInformation): |
| (WebKit::WebPage::requestPositionInformation): |
| |
| 2019-09-24 Alex Christensen <achristensen@webkit.org> |
| |
| Move HSTS storage directory to LegacyGlobalSettings |
| https://bugs.webkit.org/show_bug.cgi?id=202059 |
| |
| Reviewed by Tim Horton. |
| |
| I continue my lamentation begun in r245075. |
| Remove the glib setting of it on the WebKitWebContext because they use it on the WebsiteDataStore. We should do that too when we can. |
| |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| (API::ProcessPoolConfiguration::copy): |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: |
| (-[_WKProcessPoolConfiguration setHSTSStorageDirectory:]): |
| (-[_WKProcessPoolConfiguration hstsStorageDirectory]): |
| * UIProcess/LegacyGlobalSettings.h: |
| (WebKit::LegacyGlobalSettings::setHSTSStorageDirectory): |
| (WebKit::LegacyGlobalSettings::hstsStorageDirectory const): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| |
| 2019-09-24 Keith Rollin <krollin@apple.com> |
| |
| Coalesce or remove PLATFORM(MAC) || PLATFORM(IOS_FAMILY) |
| https://bugs.webkit.org/show_bug.cgi?id=202119 |
| <rdar://problem/55638792> |
| |
| Reviewed by Alex Christensen. |
| |
| After refactoring and other code evolution, some platform checks have |
| ended up looking like PLATFORM(MAC) || PLATFORM(IOS_FAMILY) (or |
| vice-versa). These can be converted into the equivalent |
| PLATFORM(COCOA). Where the instance occurs in a Cocoa-only file, the |
| check can be removed altogether (along with any "#else" branches). |
| |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (-[WKNetworkSessionDelegate URLSession:task:didFinishCollectingMetrics:]): |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| |
| 2019-09-24 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| FocusPreservationTests.ChangingFocusedNodeResetsFocusPreservationState triggers a debug assertion |
| https://bugs.webkit.org/show_bug.cgi?id=202145 |
| <rdar://problem/51273128> |
| |
| Reviewed by Tim Horton. |
| |
| Fixes an assertion in -tableView:cellForRowAtIndexPath: to only require the cell to have a non-zero |
| width in the case where the table view itself has a non-empty width. When run under TestWebKitAPI, |
| this assertion currently fires because the view controller used to show the popover isn't actually |
| presented, so the view controller's view (i.e. the UITableView) ends up being empty. This causes all |
| of its table view cells to subsequently become empty upon reuse. |
| |
| * UIProcess/ios/forms/WKFormSelectPopover.mm: |
| (-[WKSelectTableViewController tableView:cellForRowAtIndexPath:]): |
| |
| 2019-09-24 Alex Christensen <achristensen@webkit.org> |
| |
| Require a WebsiteDataStore when creating or resuming downloads |
| https://bugs.webkit.org/show_bug.cgi?id=202081 |
| |
| Reviewed by Youenn Fablet. |
| |
| No change in behavior, but I'll have to move Safari to the new SPI. |
| This makes it so there are no cases where we guess we need to use the default session, |
| and it allows downloads to function correctly once there is a NetworkProcess singleton. |
| Removing the unused WebProcessPool& in the callbacks will allow us to eventually have |
| downloads only associated with a WebsiteDataStore and not a WebProcessPool. |
| |
| * UIProcess/API/APIDownloadClient.h: |
| (API::DownloadClient::didStart): |
| (API::DownloadClient::didReceiveAuthenticationChallenge): |
| (API::DownloadClient::didReceiveResponse): |
| (API::DownloadClient::didReceiveData): |
| (API::DownloadClient::decideDestinationWithSuggestedFilename): |
| (API::DownloadClient::didCreateDestination): |
| (API::DownloadClient::didFinish): |
| (API::DownloadClient::didFail): |
| (API::DownloadClient::didCancel): |
| (API::DownloadClient::processDidCrash): |
| (API::DownloadClient::willSendRequest): |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextSetDownloadClient): |
| (WKContextDownloadURLRequest): |
| (WKContextResumeDownload): |
| * UIProcess/API/C/WKContext.h: |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _setDownloadDelegate:]): |
| (-[WKProcessPool _downloadURLRequest:originatingWebView:]): |
| (-[WKProcessPool _resumeDownloadFromData:path:originatingWebView:]): |
| (-[WKProcessPool _downloadURLRequest:websiteDataStore:originatingWebView:]): |
| (-[WKProcessPool _resumeDownloadFromData:websiteDataStore:path:originatingWebView:]): |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/API/glib/WebKitDownloadClient.cpp: |
| * UIProcess/API/glib/WebKitWebContext.cpp: |
| (webkitWebContextDispose): |
| (webkitWebContextStartDownload): |
| * UIProcess/Cocoa/DownloadClient.h: |
| * UIProcess/Cocoa/DownloadClient.mm: |
| (WebKit::DownloadClient::didStart): |
| (WebKit::DownloadClient::didReceiveResponse): |
| (WebKit::DownloadClient::didReceiveData): |
| (WebKit::DownloadClient::didReceiveAuthenticationChallenge): |
| (WebKit::DownloadClient::didCreateDestination): |
| (WebKit::DownloadClient::processDidCrash): |
| (WebKit::DownloadClient::decideDestinationWithSuggestedFilename): |
| (WebKit::DownloadClient::didFinish): |
| (WebKit::DownloadClient::didFail): |
| (WebKit::DownloadClient::didCancel): |
| (WebKit::DownloadClient::willSendRequest): |
| * UIProcess/Downloads/DownloadProxy.cpp: |
| (WebKit::DownloadProxy::create): |
| (WebKit::DownloadProxy::DownloadProxy): |
| (WebKit::DownloadProxy::invalidate): |
| (WebKit::DownloadProxy::processDidClose): |
| (WebKit::DownloadProxy::didStart): |
| (WebKit::DownloadProxy::didReceiveAuthenticationChallenge): |
| (WebKit::DownloadProxy::willSendRequest): |
| (WebKit::DownloadProxy::didReceiveResponse): |
| (WebKit::DownloadProxy::didReceiveData): |
| (WebKit::DownloadProxy::decideDestinationWithSuggestedFilenameAsync): |
| (WebKit::DownloadProxy::didCreateDestination): |
| (WebKit::DownloadProxy::didFinish): |
| (WebKit::DownloadProxy::didFail): |
| (WebKit::DownloadProxy::didCancel): |
| * UIProcess/Downloads/DownloadProxy.h: |
| * UIProcess/Downloads/DownloadProxyMap.cpp: |
| (WebKit::DownloadProxyMap::createDownloadProxy): |
| * UIProcess/Downloads/DownloadProxyMap.h: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::createDownloadProxy): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::receivedPolicyDecision): |
| (WebKit::WebPageProxy::contextMenuItemSelected): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::WebProcessPool): |
| (WebKit::WebProcessPool::setDownloadClient): |
| (WebKit::WebProcessPool::download): |
| (WebKit::WebProcessPool::resumeDownload): |
| (WebKit::WebProcessPool::createDownloadProxy): |
| * UIProcess/WebProcessPool.h: |
| |
| 2019-09-24 Youenn Fablet <youenn@apple.com> |
| |
| Delay capture sandbox extension revocation to after the page close message is sent |
| https://bugs.webkit.org/show_bug.cgi?id=202133 |
| |
| Reviewed by Eric Carlson. |
| |
| This ensures that the sandbox extension is removed once no longer useful |
| and makes our WebProcess assertions fine. |
| |
| * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: |
| (WebKit::UserMediaPermissionRequestManagerProxy::~UserMediaPermissionRequestManagerProxy): |
| |
| 2019-09-23 Chris Dumez <cdumez@apple.com> |
| |
| Drop unnecessary SessionID.h header includes |
| https://bugs.webkit.org/show_bug.cgi?id=202129 |
| |
| Reviewed by Alex Christensen. |
| |
| * NetworkProcess/AdClickAttributionManager.h: |
| * NetworkProcess/IndexedDB/WebIDBConnectionToClient.h: |
| * NetworkProcess/NetworkLoadParameters.h: |
| * NetworkProcess/RemoteNetworkingContext.h: |
| * NetworkProcess/cache/CacheStorageEngine.cpp: |
| * NetworkProcess/cache/CacheStorageEngine.h: |
| * NetworkProcess/cache/NetworkCache.h: |
| * NetworkProcess/webrtc/NetworkRTCProvider.h: |
| * Shared/ApplePay/WebPaymentCoordinatorProxy.h: |
| * Shared/Authentication/AuthenticationManager.h: |
| * Shared/WebCoreArgumentCoders.cpp: |
| * Shared/WebProcessCreationParameters.h: |
| * UIProcess/API/APIPageConfiguration.h: |
| * WebProcess/Cache/WebCacheStorageProvider.h: |
| * WebProcess/Databases/WebDatabaseProvider.cpp: |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| * WebProcess/InjectedBundle/InjectedBundle.h: |
| * WebProcess/Network/WebSocketChannel.h: |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| * WebProcess/Storage/WebServiceWorkerProvider.cpp: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: |
| * WebProcess/WebCoreSupport/curl/WebFrameNetworkingContext.h: |
| * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h: |
| * WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp: |
| * WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h: |
| * WebProcess/WebPage/WebFrame.h: |
| |
| 2019-09-23 Chris Dumez <cdumez@apple.com> |
| |
| PlugInClient::didStartFromOrigin() does not need a sessionID |
| https://bugs.webkit.org/show_bug.cgi?id=202127 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * WebProcess/WebCoreSupport/WebPlugInClient.cpp: |
| (WebKit::WebPlugInClient::didStartFromOrigin): |
| * WebProcess/WebCoreSupport/WebPlugInClient.h: |
| |
| 2019-09-23 Chris Dumez <cdumez@apple.com> |
| |
| FrameSpecificStorageAccessIdentifier does not need a sessionID |
| https://bugs.webkit.org/show_bug.cgi?id=202093 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::requestStorageAccess): |
| |
| 2019-09-23 Tim Horton <timothy_horton@apple.com> |
| |
| macOS: <datalist> dropdown shadow is cropped, looks nothing like NSComboBox |
| https://bugs.webkit.org/show_bug.cgi?id=199350 |
| |
| Reviewed by Wenson Hsieh. |
| |
| Improve the appearance of the macOS <datalist> dropdown, adopting the |
| roundly-cornered and backdrop-ful appearance of the current NSComboBox style. |
| |
| Use the proper window shadow instead of our own inside the window, both |
| so that we match the system and so that it doesn't get clipped. |
| |
| Allow vertical rubber-banding, because NSComboBox does. |
| |
| Don't highlight on hover, because NSComboBox doesn't. Do use NSTableView's |
| selection mechanism instead of rolling our own for highlights driven by |
| keyboard-based navigation. |
| |
| Make use of NSTableCellView, since it has some smarts around pixel alignment |
| that we don't need to duplicate (and things are blurry on 1x displays without). |
| |
| Also rename some classes to make it a bit more clear what's going on: |
| WKDataListSuggestionCell -> WKDataListSuggestionView (it's a NSView, not an NSCell) |
| WKDataListSuggestionsView -> WKDataListSuggestionsController (it's not a view at all) |
| |
| * Platform/spi/mac/AppKitSPI.h: |
| * UIProcess/mac/WebDataListSuggestionsDropdownMac.mm: |
| (WebKit::WebDataListSuggestionsDropdownMac::show): |
| (-[WKDataListSuggestionWindow initWithContentRect:styleMask:backing:defer:]): |
| (-[WKDataListSuggestionWindow canBecomeKeyWindow]): |
| (-[WKDataListSuggestionWindow hasKeyAppearance]): |
| (-[WKDataListSuggestionWindow shadowOptions]): |
| (-[WKDataListSuggestionView initWithFrame:]): |
| (-[WKDataListSuggestionView setText:]): |
| (-[WKDataListSuggestionView setBackgroundStyle:]): |
| (-[WKDataListSuggestionTableRowView drawSelectionInRect:]): |
| (-[WKDataListSuggestionTableView initWithElementRect:]): |
| (-[WKDataListSuggestionTableView layout]): |
| (-[WKDataListSuggestionTableView reload]): |
| (-[WKDataListSuggestionsController initWithInformation:inView:]): |
| (-[WKDataListSuggestionsController currentSelectedString]): |
| (-[WKDataListSuggestionsController updateWithInformation:]): |
| (-[WKDataListSuggestionsController moveSelectionByDirection:]): |
| (-[WKDataListSuggestionsController invalidate]): |
| (-[WKDataListSuggestionsController dropdownRectForElementRect:]): |
| (-[WKDataListSuggestionsController showSuggestionsDropdown:]): |
| (-[WKDataListSuggestionsController tableView:rowViewForRow:]): |
| (-[WKDataListSuggestionsController tableView:viewForTableColumn:row:]): |
| (-[WKDataListSuggestionCell initWithFrame:]): Deleted. |
| (-[WKDataListSuggestionCell setText:]): Deleted. |
| (-[WKDataListSuggestionCell setActive:]): Deleted. |
| (-[WKDataListSuggestionCell drawRect:]): Deleted. |
| (-[WKDataListSuggestionCell mouseEntered:]): Deleted. |
| (-[WKDataListSuggestionCell mouseExited:]): Deleted. |
| (-[WKDataListSuggestionCell acceptsFirstResponder]): Deleted. |
| (-[WKDataListSuggestionTable initWithElementRect:]): Deleted. |
| (-[WKDataListSuggestionTable setVisibleRect:]): Deleted. |
| (-[WKDataListSuggestionTable currentActiveRow]): Deleted. |
| (-[WKDataListSuggestionTable setActiveRow:]): Deleted. |
| (-[WKDataListSuggestionTable reload]): Deleted. |
| (-[WKDataListSuggestionTable acceptsFirstResponder]): Deleted. |
| (-[WKDataListSuggestionTable enclosingScrollView]): Deleted. |
| (-[WKDataListSuggestionTable removeFromSuperviewWithoutNeedingDisplay]): Deleted. |
| (-[WKDataListSuggestionsView initWithInformation:inView:]): Deleted. |
| (-[WKDataListSuggestionsView currentSelectedString]): Deleted. |
| (-[WKDataListSuggestionsView updateWithInformation:]): Deleted. |
| (-[WKDataListSuggestionsView moveSelectionByDirection:]): Deleted. |
| (-[WKDataListSuggestionsView invalidate]): Deleted. |
| (-[WKDataListSuggestionsView dropdownRectForElementRect:]): Deleted. |
| (-[WKDataListSuggestionsView showSuggestionsDropdown:]): Deleted. |
| (-[WKDataListSuggestionsView selectedRow:]): Deleted. |
| (-[WKDataListSuggestionsView numberOfRowsInTableView:]): Deleted. |
| (-[WKDataListSuggestionsView tableView:heightOfRow:]): Deleted. |
| (-[WKDataListSuggestionsView tableView:viewForTableColumn:row:]): Deleted. |
| |
| 2019-09-23 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS] Drop animation when dragging images from Photos to WebKit2 Mail compose is incorrect |
| https://bugs.webkit.org/show_bug.cgi?id=201674 |
| <rdar://problem/51250952> |
| |
| Reviewed by Tim Horton. |
| |
| Our current logic for handling dropped content in editable elements on iOS works like this in the ideal case: |
| |
| (1) UIKit asks us for a targeted preview for each UIDragItem. We don't know (and can't determine this |
| synchronously without blocking on the web process) so we simply retarget the preview to animate to the |
| last known caret location. |
| |
| (2) Soonafter, UIKit hands us a drop preview update block, which may be used to retarget the drop preview |
| once, as long as the drop animation is less than 90% complete. We stash these update blocks for now. |
| |
| (3) -dropInteraction:performDrop: is then called, and we start loading item provider data right away. |
| |
| (4) When the data has finished loading, we perform the drop in the web process. After any inserted images |
| have finished loading, we take snapshots (of the dropped content as well as surrounding web content |
| minus the dropped content), and deliver these images to the UI process via TextIndicatorData. |
| |
| (5) Upon receiving the TextIndicatorData sent in (4), we use the image data to create updated targeted drag |
| previews, and use these to invoke the preview update blocks we stored earlier in (2). We also obscure |
| the entire web view with a snapshot of the view minus any dropped content, such that the updated drop |
| previews may animate into place without also showing the final content. |
| |
| (6) When the drop animation ends, we remove the unselected content snapshot view added in (5) simultaneously |
| as the targeted previews disappear, revealing the actual dropped content on the page. The drop is now |
| complete. |
| |
| However, note that the drag update block we invoke in (5) doesn't work if the drop animation is already more |
| than 90% complete. Since the lifecycle of the drop animation is distinct from that of item provider loading, if |
| the delay between (3) and (4) exceeds 90% of the total drop animation time, we'll fail to update the targeted |
| previews, such that the user only sees the initial drag preview fly on top of the caret and disappear. While we |
| typically win this race for data dragged from other WebKit apps, we almost always lose when dragging from Photos |
| and end up with a janky drop animation. This is especially true for any images that aren't locally available, |
| and need to be fetched from iCloud. An additional problem is that in step (5), we use the same final snapshot to |
| update the drop preview of every item, since we don't have a snapshot for the fragment corresponding to each |
| individual dropped item. |
| |
| To address these issues for Mail in the case where the user drops images with known sizes (i.e. -[NSItemProvider |
| preferredPresentationSize] is specified), we introduce an alternate codepath for handling dropped images that |
| performs the drop immediately upon receiving -dropInteraction:performDrop: in the UI process. Since the data has |
| yet to arrive, we instead handle the drop by inserting placeholder image elements at the drag caret position, |
| which initially have no source but are sized to fit their expected final image sizes. After doing so, we |
| snapshot the page (minus the dropped content range, as usual) and deliver this snapshot to the UI process, along |
| with the rects (in root view coordinates) of each placeholder image that was inserted. In the UI process, we |
| then take this snapshot and obscure the content view with it, and also use each of the placeholder rects to |
| provide an updated target for each drag preview, such that the drop previews now animate to their final |
| locations on the page. |
| |
| When the data eventually arrives, we handle the drop by detecting the placeholder elements we inserted earlier, |
| and using the dropped data to update the source attribute and attachment backing for each of these placeholder |
| elements instead of attempting to insert new content. |
| |
| Note that this codepath is currently only enabled for SPI clients that set -[WKWebView _editable] to YES, since |
| it involves us performing the editing action for the drop (thus changing the DOM) prior to the preventable drop |
| event, and prior to us having any data at all. However, the drop event can't come before the editing action, |
| since we need to have already loaded data from the item providers to expose it via the dataTransfer of the drop |
| event. This contradiction means that this image placeholder hack is only for _editable SPI clients that, at the |
| very least, will not require preventing default behavior when dropping only images with predetermined sizes. |
| |
| Covered by 2 new API tests. See comments below for more detail. |
| |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/ios/DragDropInteractionState.h: |
| * UIProcess/ios/DragDropInteractionState.mm: |
| (WebKit::DragDropInteractionState::setDefaultDropPreview): |
| |
| Add a way to keep track of default drop previews that we observed during each call to |
| -dropInteraction:previewForDroppingItem:withDefault:. In the image placeholder drop scenario, we use these |
| default drop previews later on to create retargeted drop previews after the placeholders have been inserted. |
| |
| (WebKit::DragDropInteractionState::defaultDropPreview const): |
| (WebKit::DragDropInteractionState::deliverDelayedDropPreview): |
| |
| Add an alternate version of deliverDelayedDropPreview that is used when inserting image placeholders. Rather |
| than use text indicator data of the final dropped content on the page, use the root-view-coordinate rects of |
| each of the placeholder elements to reposition the default drop previews. |
| |
| There's additional logic here to handle the case where the final image is taller than the height of the |
| unobscured content rect, in which case we clip the drop preview using UIDragPreviewParameter's visiblePath to |
| prevent the drop preview from being shown outside of the bounds of the web view. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _deliverDelayedDropPreviewIfPossible:]): |
| (sizesOfPlaceholderElementsToInsertWhenDroppingItems): |
| |
| Collects the list of expected image sizes for the dropped item providers, or an empty list in the case where |
| any of the item providers may not be represented as inline images or do not have predetermined sizes. |
| |
| (-[WKContentView _handleDropByInsertingImagePlaceholders:session:]): |
| |
| If possible, handles the drop by inserting image placeholders instead of waiting for the data to finish loading |
| before dropping. Returns whether or not we decided to proceed with the image placeholder drop. |
| |
| (-[WKContentView dropInteraction:performDrop:]): |
| (-[WKContentView dropInteraction:item:willAnimateDropWithAnimator:]): |
| |
| Fixes a bug where the unselected content snapshot view could linger around on the web view forever after a drop |
| where the data doesn't load in time for the drop to finish by keeping track of whether there is an actively |
| animating drag item, and only applying the unselected content snapshot if so. |
| |
| (-[WKContentView dropInteraction:previewForDroppingItem:withDefault:]): |
| |
| Stash the default drop preview away here. |
| |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::insertDroppedImagePlaceholders): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::insertDroppedImagePlaceholders): |
| |
| See WebCore ChangeLog for more information. |
| |
| (WebKit::WebPage::didFinishLoadingImageForElement): |
| |
| If the image that finished loading is a dropped image placeholder, allow DragController to "finalize" it by |
| stripping away some styles that were temporarily added. |
| |
| 2019-09-23 Alex Christensen <achristensen@webkit.org> |
| |
| REGRESSION(250143) Disk cache should be enabled for Safari |
| https://bugs.webkit.org/show_bug.cgi?id=202117 |
| |
| Reviewed by Brady Eidson. |
| |
| r250143 made it so in Safari, when setCacheModel is called for the first time in NetworkProcess::initializeNetworkProcess, |
| it didn't have a path to check available disk space. This resulted in disabling the disk cache in Safari, which caused a |
| huge performance regression. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| (WebKit::NetworkProcess::setCacheModel): |
| * NetworkProcess/NetworkProcess.h: |
| (WebKit::NetworkProcess::setCacheModel): |
| * NetworkProcess/NetworkProcess.messages.in: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| (WebKit::WebProcessPool::setCacheModel): |
| |
| 2019-09-16 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthn] LocalAuthenticator tests are failing on internal bots |
| https://bugs.webkit.org/show_bug.cgi?id=201844 |
| <rdar://problem/54278693> |
| |
| Reviewed by Brent Fulgham. |
| |
| This patch adds a way for mock tests to select a credential in getAssertion |
| ceremonies such that a test can ensure it always uses the credential it manages. |
| Credentials managed by other test could be deleted at anytime. |
| |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreSetWebAuthenticationMockConfiguration): |
| * UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm: |
| (WebKit::LocalAuthenticator::getAssertion): |
| * UIProcess/WebAuthentication/Cocoa/LocalConnection.h: |
| * UIProcess/WebAuthentication/Cocoa/LocalConnection.mm: |
| (WebKit::LocalConnection::selectCredential const): |
| * UIProcess/WebAuthentication/Mock/MockLocalConnection.h: |
| * UIProcess/WebAuthentication/Mock/MockLocalConnection.mm: |
| (WebKit::MockLocalConnection::selectCredential const): |
| * UIProcess/WebAuthentication/Mock/MockWebAuthenticationConfiguration.h: |
| |
| 2019-09-23 David Quesada <david_quesada@apple.com> |
| |
| [iOS] REGRESSION(r250151): Occasional assertion failures in ShareableBitmap::~ShareableBitmap() |
| https://bugs.webkit.org/show_bug.cgi?id=202112 |
| rdar://problem/55624598 |
| |
| Reviewed by Chris Dumez. |
| |
| * Shared/cg/ShareableBitmapCG.cpp: |
| (WebKit::ShareableBitmap::releaseDataProviderData): |
| It is possible and valid for a UIImage created from a ShareableBitmap's CGImage representation |
| to be deallocated on a background thread. When this happens, releaseDataProviderData() should |
| ensure it's running on the main thread before deref'ing the ShareableBitmap. Otherwise the |
| bitmap can be deallocated on the background thread, violating an assertion added in r250151. |
| |
| 2019-09-23 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Improve the Uncaught Exception View file a bug link |
| https://bugs.webkit.org/show_bug.cgi?id=201717 |
| |
| Reviewed by Devin Rousso. |
| |
| * UIProcess/WebInspectorProxy.cpp: |
| (WebKit::WebInspectorProxy::bringInspectedPageToFront): |
| * UIProcess/WebInspectorProxy.h: |
| * UIProcess/WebInspectorProxy.messages.in: |
| Provide a way to bring the inspected page to the foreground. |
| |
| * WebProcess/WebPage/WebInspectorUI.cpp: |
| (WebKit::WebInspectorUI::openInNewTab): |
| Use it when opening a new tab beside the inspected page. |
| |
| 2019-09-23 Brent Fulgham <bfulgham@apple.com> |
| |
| Unreviewed build fix after r250169 and r250236. |
| |
| * NetworkProcess/curl/NetworkDataTaskCurl.cpp: |
| (WebKit::NetworkDataTaskCurl::createCurlRequest): |
| * UIProcess/API/C/curl/WKWebsiteDataStoreRefCurl.cpp: |
| (WKWebsiteDataStoreEnableDefaultNetworkProxySettings): |
| (WKWebsiteDataStoreEnableCustomNetworkProxySettings): |
| (WKWebsiteDataStoreDisableNetworkProxySettings): |
| |
| 2019-09-23 David Kilzer <ddkilzer@apple.com> |
| |
| clang-tidy: Fix unnecessary copy/ref churn of for loop variables in WebKit |
| <https://webkit.org/b/202096> |
| |
| Reviewed by Darin Adler. |
| |
| Fix unwanted copying/ref churn of loop variables by making them |
| const references. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: |
| (WebKit::domainsToString): |
| * UIProcess/ios/WKActionSheetAssistant.mm: |
| (-[WKActionSheetAssistant presentationRectForElementUsingClosestIndicatedRect]): |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _singleTapDidReset:]): |
| * UIProcess/ios/WebDataListSuggestionsDropdownIOS.mm: |
| (-[WKDataListSuggestionsControl textSuggestions]): |
| |
| 2019-09-23 Chris Dumez <cdumez@apple.com> |
| |
| WebPage::sessionID() does not need to get the sessionID from there WebCore Page |
| https://bugs.webkit.org/show_bug.cgi?id=202094 |
| |
| Reviewed by Youenn Fablet. |
| |
| WebPage::sessionID() does not need to get the sessionID from there WebCore Page, it can |
| simply get the sessionID from the WebProcess singleton, now that we have a single session |
| per WebProcess. This will avoid potential crashes trying to dereference m_page to get the |
| sessionID, since m_page can be null. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::sessionID const): |
| * WebProcess/WebPage/WebPage.h: |
| (WebKit::WebPage::sessionID const): Deleted. |
| |
| 2019-09-23 Youenn Fablet <youenn@apple.com> |
| |
| Simplify UserMediaPermissionRequestManager management of UserMediaRequest |
| https://bugs.webkit.org/show_bug.cgi?id=201688 |
| |
| Reviewed by Eric Carlson. |
| |
| Instead of having two maps to go from ID to request and request to ID, |
| Make request own its ID and keep a single ID to request map. |
| Rename it to m_ongoingUserMediaRequests. |
| |
| Rename requests that are not processed because the document cannot start media as m_pendingUserMediaRequests. |
| In case the request is cancelled following the stopping of active dom objects, we just remove it from m_pendingUserMediaRequests |
| instead of denying the request. This matches Chrome and Firefox behavior. |
| |
| * WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp: |
| (WebKit::UserMediaPermissionRequestManager::startUserMediaRequest): |
| (WebKit::UserMediaPermissionRequestManager::sendUserMediaRequest): |
| (WebKit::UserMediaPermissionRequestManager::cancelUserMediaRequest): |
| (WebKit::UserMediaPermissionRequestManager::mediaCanStart): |
| (WebKit::UserMediaPermissionRequestManager::userMediaAccessWasGranted): |
| (WebKit::UserMediaPermissionRequestManager::userMediaAccessWasDenied): |
| (WebKit::UserMediaPermissionRequestManager::addDeviceChangeObserver): |
| (WebKit::generateRequestID): Deleted. |
| (WebKit::UserMediaPermissionRequestManager::removeMediaRequestFromMaps): Deleted. |
| * WebProcess/MediaStream/UserMediaPermissionRequestManager.h: |
| |
| 2019-09-23 Patrick Griffis <pgriffis@igalia.com> |
| |
| [GTK][WPE] Don't use prgname in dbus-proxy socket path |
| https://bugs.webkit.org/show_bug.cgi?id=201979 |
| |
| The path length for the socket is limited to 108 bytes so it is easy for a long |
| prgname to cause it to get truncated and fail. Since we only allow the socket |
| path into the sandbox the unique directory isn't necessary. |
| |
| Reviewed by Michael Catanzaro. |
| |
| * UIProcess/Launcher/glib/BubblewrapLauncher.cpp: |
| (WebKit::XDGDBusProxyLauncher::setAddress): |
| |
| 2019-09-23 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [SOUP] Stop setting G_TLS_GNUTLS_PRIORITY |
| https://bugs.webkit.org/show_bug.cgi?id=172154 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Nowadays, I maintain glib-networking. WebKit doesn't need to override its defaults to be |
| secure anymore. By overriding glib-networking's default priority, WebKit is force-reenabling |
| TLS 1.0 and TLS 1.1 even when glib-networking has disabled them. |
| |
| * NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp: |
| (main): |
| * WebProcess/EntryPoint/unix/WebProcessMain.cpp: |
| (main): |
| |
| 2019-09-21 Dan Bernstein <mitz@apple.com> |
| |
| Fix an assertion failure introduced in r250186. |
| |
| * UIProcess/Plugins/mac/PluginProcessProxyMac.mm: |
| (WebKit::PluginProcessProxy::platformGetLaunchOptionsWithAttributes): Corrected the |
| assertion. |
| |
| 2019-09-21 Chris Dumez <cdumez@apple.com> |
| |
| Reduce use of SessionID::defaultSessionID() in WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=202080 |
| |
| Reviewed by Alex Christensen. |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::convertMainResourceLoadToDownload): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: |
| * WebProcess/WebPage/WebFrame.cpp: |
| (WebKit::WebFrame::convertMainResourceLoadToDownload): |
| * WebProcess/WebPage/WebFrame.h: |
| |
| 2019-09-21 Chris Dumez <cdumez@apple.com> |
| |
| Drop unnecessary NetworkProcess::m_sessionByConnection |
| https://bugs.webkit.org/show_bug.cgi?id=202088 |
| |
| Reviewed by Alex Christensen. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| * NetworkProcess/NetworkProcess.h: |
| |
| 2019-09-21 Chris Dumez <cdumez@apple.com> |
| |
| WebIDBConnectionToClient does not need to be RefCounted or a SessionID |
| https://bugs.webkit.org/show_bug.cgi?id=202089 |
| |
| Reviewed by Alex Christensen. |
| |
| WebIDBConnectionToClient does not need to be RefCounted, the ref() / deref() virtual function |
| it implemented from its interface were dead code. We now stop subclassing RefCounted and have |
| the NetworkConnectionToWebProcess fully own the WebIDBConnectionToClient. Instead of the |
| WebIDBConnectionToClient having 3 data members for the NetworkProcess, the sessionID and the IPC |
| connection, use a single data member to its NetworkConnectionToWebProcess parent. It can get |
| everything it needs from its parent. |
| |
| * NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp: |
| (WebKit::WebIDBConnectionToClient::WebIDBConnectionToClient): |
| (WebKit::WebIDBConnectionToClient::idbServer): |
| (WebKit::WebIDBConnectionToClient::disconnectedFromWebProcess): |
| (WebKit::WebIDBConnectionToClient::messageSenderConnection const): |
| (WebKit::WebIDBConnectionToClient::connectionToClient): |
| (WebKit::WebIDBConnectionToClient::deleteDatabase): |
| (WebKit::WebIDBConnectionToClient::openDatabase): |
| (WebKit::WebIDBConnectionToClient::abortTransaction): |
| (WebKit::WebIDBConnectionToClient::commitTransaction): |
| (WebKit::WebIDBConnectionToClient::didFinishHandlingVersionChangeTransaction): |
| (WebKit::WebIDBConnectionToClient::createObjectStore): |
| (WebKit::WebIDBConnectionToClient::deleteObjectStore): |
| (WebKit::WebIDBConnectionToClient::renameObjectStore): |
| (WebKit::WebIDBConnectionToClient::clearObjectStore): |
| (WebKit::WebIDBConnectionToClient::createIndex): |
| (WebKit::WebIDBConnectionToClient::deleteIndex): |
| (WebKit::WebIDBConnectionToClient::renameIndex): |
| (WebKit::WebIDBConnectionToClient::putOrAdd): |
| (WebKit::WebIDBConnectionToClient::getRecord): |
| (WebKit::WebIDBConnectionToClient::getAllRecords): |
| (WebKit::WebIDBConnectionToClient::getCount): |
| (WebKit::WebIDBConnectionToClient::deleteRecord): |
| (WebKit::WebIDBConnectionToClient::openCursor): |
| (WebKit::WebIDBConnectionToClient::iterateCursor): |
| (WebKit::WebIDBConnectionToClient::establishTransaction): |
| (WebKit::WebIDBConnectionToClient::databaseConnectionPendingClose): |
| (WebKit::WebIDBConnectionToClient::databaseConnectionClosed): |
| (WebKit::WebIDBConnectionToClient::abortOpenAndUpgradeNeeded): |
| (WebKit::WebIDBConnectionToClient::didFireVersionChangeEvent): |
| (WebKit::WebIDBConnectionToClient::openDBRequestCancelled): |
| (WebKit::WebIDBConnectionToClient::confirmDidCloseFromServer): |
| (WebKit::WebIDBConnectionToClient::getAllDatabaseNames): |
| * NetworkProcess/IndexedDB/WebIDBConnectionToClient.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::establishIDBConnectionToServer): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| |
| 2019-09-21 Chris Dumez <cdumez@apple.com> |
| |
| Regression(iOS 13) web views do not deal properly with their window's UIScene changing |
| https://bugs.webkit.org/show_bug.cgi?id=202070 |
| <rdar://problem/55580699> |
| |
| Reviewed by Tim Horton. |
| |
| Web views do not deal properly with their window's UIScene changing. If a Safari window is in the |
| background for 1 minute, its UIScene will be detached and the window will get a new UIScene if |
| the user later switches to this window. Our web views listen to UIScene notifications to determine |
| their visibility and currently stop receiving visibility updates once the window’s UIScene has |
| changed. This causes view freezes because our WebContent process does not know its view is visible |
| and keeps its layer tree frozen. |
| |
| Previously, when our view would be added to a window, we would get this window's UIScene and listen |
| for UISceneDidEnterBackgroundNotification / UISceneWillEnterForegroundNotification for this UIScene |
| object. Instead, we now listen to these notifications for ALL the application's UIScenes. Our handler |
| then checks if the notification's UIScene object matches the current window's UIScene before |
| forwarding the notification to the rest of WebKit. |
| |
| * UIProcess/ApplicationStateTracker.mm: |
| (WebKit::ApplicationStateTracker::ApplicationStateTracker): |
| (WebKit::ApplicationStateTracker::~ApplicationStateTracker): |
| |
| 2019-09-21 Dan Bernstein <mitz@apple.com> |
| |
| Safari 13 may launch leftover 32-bit plug-in process from Safari 12’s WebKit, which crashes |
| https://bugs.webkit.org/show_bug.cgi?id=202077 |
| <rdar://problem/55547063> |
| |
| Reviewed by Sam Weinig. |
| |
| * Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm: |
| (WebKit::getPluginArchitecture): Removed support for i386 plug-ins. |
| |
| * UIProcess/Launcher/mac/ProcessLauncherMac.mm: |
| (WebKit::serviceName): Assert that the requested process type is not Plugin32. |
| |
| * UIProcess/Plugins/mac/PluginProcessProxyMac.mm: |
| (WebKit::PluginProcessProxy::platformGetLaunchOptionsWithAttributes): Assert that the |
| plug-in architecture is x86_64. |
| |
| 2019-09-21 Antoine Quint <graouts@apple.com> |
| |
| [Pointer Events] touch-action set to pan-x or pan-y alone should disable scrolling altogether if the intial gesture is in the disallowed direction |
| https://bugs.webkit.org/show_bug.cgi?id=202053 |
| <rdar://problem/54542190> |
| |
| Reviewed by Tim Horton. |
| |
| Although the Pointer Events specification does not specify this clearly (see https://github.com/w3c/pointerevents/issues/303), setting "touch-action" to a value |
| that only allows scrolling a specific direction ("pan-x" or "pan-y") should disable scrolling in the specified direction if the panning gesture initially is directed |
| in the opposite direction. In practice, this means that setting "touch-action: pan-y" on an element should disable scrolling if the user initially pans horizontally, |
| even if later on in the gesture the user pans vertically. This allows for sites that want to offer a programmatic horizontal scroller to disable vertical scrolling |
| if the user pans horizontally. |
| |
| In order to support this, we add four UISwipeGestureRecognizers, one for each direction, and we selectively allows touches to be recognizer for them based on the |
| "touch-action" value specified at the initial touch location for a given gesture. In the case of "touch-action: pan-y" we only allow the left and right swipe recognizers |
| to be enabled, and in the case of "touch-action: pan-x" we only allow the up and down swipe recognizers to be enabled. If any of those gesture recognizers is recognized, |
| scrolling will be disabled for the duration of this gesture. If a UIScrollView panning gesture recognizer is recognized prior to a swipe, they won't have a chance to be |
| recognized. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView setupInteraction]): |
| (-[WKContentView cleanupInteraction]): |
| (-[WKContentView _removeDefaultGestureRecognizers]): |
| (-[WKContentView _addDefaultGestureRecognizers]): |
| (-[WKContentView gestureRecognizer:shouldReceiveTouch:]): |
| |
| 2019-09-19 Andy Estes <aestes@apple.com> |
| |
| [Apple Pay] Clean up handling of summary items and payment method updates |
| https://bugs.webkit.org/show_bug.cgi?id=202018 |
| <rdar://problem/55470632> |
| |
| Reviewed by Tim Horton. |
| |
| Now that PaymentMethodUpdate knows how to convert itself to a |
| PKPaymentRequestPaymentMethodUpdate, PaymentAuthorizationPresenter can merely pass the |
| converted update directly to the platform delegate rather than passing the individual |
| components and relying on the delegate to instantiate the platform update itself. Added |
| FIXMEs for applying a similar treatment to ShippingContactUpdate and ShippingMethodUpdate. |
| |
| * Platform/cocoa/PaymentAuthorizationPresenter.h: |
| * Platform/cocoa/PaymentAuthorizationPresenter.mm: |
| (WebKit::PaymentAuthorizationPresenter::completePaymentMethodSelection): |
| (WebKit::PaymentAuthorizationPresenter::completeShippingContactSelection): |
| (WebKit::PaymentAuthorizationPresenter::completeShippingMethodSelection): |
| * Platform/cocoa/WKPaymentAuthorizationDelegate.h: |
| * Platform/cocoa/WKPaymentAuthorizationDelegate.mm: |
| (-[WKPaymentAuthorizationDelegate completePaymentMethodSelection:]): |
| (-[WKPaymentAuthorizationDelegate completeShippingContactSelection:]): |
| (-[WKPaymentAuthorizationDelegate completeShippingMethodSelection:]): |
| (-[WKPaymentAuthorizationDelegate _didSelectPaymentMethod:completion:]): |
| (-[WKPaymentAuthorizationDelegate _didSelectShippingContact:completion:]): |
| (-[WKPaymentAuthorizationDelegate _didSelectShippingMethod:completion:]): |
| (-[WKPaymentAuthorizationDelegate completeShippingContactSelection:summaryItems:shippingMethods:errors:]): Deleted. |
| * Shared/ApplePay/WebPaymentCoordinatorProxy.h: |
| * Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.h: |
| * Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm: |
| (WebKit::WebPaymentCoordinatorProxy::platformPaymentRequest): |
| (WebKit::toPKPaymentSummaryItemType): Deleted. |
| (WebKit::toPKPaymentSummaryItem): Deleted. |
| (WebKit::toPKPaymentSummaryItems): Deleted. |
| * Shared/Cocoa/WebCoreArgumentCodersCocoa.mm: |
| (IPC::ArgumentCoder<WebCore::PaymentMethodUpdate>::encode): |
| (IPC::ArgumentCoder<WebCore::PaymentMethodUpdate>::decode): |
| |
| 2019-09-20 Keith Rollin <krollin@apple.com> |
| |
| Remove some support for < iOS 13 |
| https://bugs.webkit.org/show_bug.cgi?id=202027 |
| <rdar://problem/55547109> |
| |
| Reviewed by Alex Christensen. |
| |
| Remove some support for iOS versions less than 13.0. |
| |
| Update conditionals that reference __IPHONE_OS_VERSION_MIN_REQUIRED |
| and __IPHONE_OS_VERSION_MAX_ALLOWED, assuming that they both have |
| values >= 130000. This means that expressions like |
| "__IPHONE_OS_VERSION_MIN_REQUIRED < 101300" are always False and |
| "__IPHONE_OS_VERSION_MIN_REQUIRED >= 101300" are always True. |
| |
| After version checks have been removed, there are some cases where the |
| preprocessor conditional looks like "#if PLATFORM(MAC) || |
| PLATFORM(IOS_FAMILY)". These can be collapsed into "#if |
| PLATFORM(COCOA)". This additional cleanup will be performed in a |
| subsequent patch. |
| |
| This removal is part of a series of patches effecting the removal of |
| dead code for old versions of iOS. This particular pass involves |
| changes in which Joe Pecoraro was involved. These changes are isolated |
| from other similar changes in order to facilitate the reviewing |
| process. |
| |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (-[WKNetworkSessionDelegate URLSession:task:didFinishCollectingMetrics:]): |
| |
| 2019-09-20 Alex Christensen <achristensen@webkit.org> |
| |
| Remove unnecessary abstractions around WebsiteDataStore |
| https://bugs.webkit.org/show_bug.cgi?id=201655 |
| |
| Reviewed by Chris Dumez. |
| |
| * PlatformFTW.cmake: |
| * PlatformWin.cmake: |
| * Sources.txt: |
| * SourcesCocoa.txt: |
| * SourcesGTK.txt: |
| * SourcesWPE.txt: |
| * UIProcess/API/APIHTTPCookieStore.cpp: |
| * UIProcess/API/APIHTTPCookieStore.h: |
| * UIProcess/API/APIPageConfiguration.cpp: |
| (API::PageConfiguration::websiteDataStore): |
| (API::PageConfiguration::setWebsiteDataStore): |
| * UIProcess/API/APIPageConfiguration.h: |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| * UIProcess/API/APIWebsiteDataStore.cpp: Removed. |
| * UIProcess/API/APIWebsiteDataStore.h: Removed. |
| * UIProcess/API/APIWebsitePolicies.cpp: |
| (API::WebsitePolicies::WebsitePolicies): |
| (API::WebsitePolicies::setWebsiteDataStore): |
| (API::WebsitePolicies::data): |
| * UIProcess/API/APIWebsitePolicies.h: |
| * UIProcess/API/C/WKAPICast.h: |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextSetCacheModel): |
| (WKContextGetCacheModel): |
| * UIProcess/API/C/WKFramePolicyListener.cpp: |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreGetTypeID): |
| (WKWebsiteDataStoreGetDefaultDataStore): |
| (WKWebsiteDataStoreCreateNonPersistentDataStore): |
| (WKWebsiteDataStoreCreateWithConfiguration): |
| (WKWebsiteDataStoreGetHTTPCookieStore): |
| (WKWebsiteDataStoreSetResourceLoadStatisticsDebugModeWithCompletionHandler): |
| (WKWebsiteDataStoreSetResourceLoadStatisticsPrevalentResourceForDebugMode): |
| (WKWebsiteDataStoreSetStatisticsLastSeen): |
| (WKWebsiteDataStoreSetStatisticsPrevalentResource): |
| (WKWebsiteDataStoreSetStatisticsVeryPrevalentResource): |
| (WKWebsiteDataStoreDumpResourceLoadStatistics): |
| (WKWebsiteDataStoreIsStatisticsPrevalentResource): |
| (WKWebsiteDataStoreIsStatisticsVeryPrevalentResource): |
| (WKWebsiteDataStoreIsStatisticsRegisteredAsSubresourceUnder): |
| (WKWebsiteDataStoreIsStatisticsRegisteredAsSubFrameUnder): |
| (WKWebsiteDataStoreIsStatisticsRegisteredAsRedirectingTo): |
| (WKWebsiteDataStoreSetStatisticsHasHadUserInteraction): |
| (WKWebsiteDataStoreIsStatisticsHasHadUserInteraction): |
| (WKWebsiteDataStoreSetStatisticsGrandfathered): |
| (WKWebsiteDataStoreIsStatisticsGrandfathered): |
| (WKWebsiteDataStoreSetStatisticsSubframeUnderTopFrameOrigin): |
| (WKWebsiteDataStoreSetStatisticsSubresourceUnderTopFrameOrigin): |
| (WKWebsiteDataStoreSetStatisticsSubresourceUniqueRedirectTo): |
| (WKWebsiteDataStoreSetStatisticsSubresourceUniqueRedirectFrom): |
| (WKWebsiteDataStoreSetStatisticsTopFrameUniqueRedirectTo): |
| (WKWebsiteDataStoreSetStatisticsTopFrameUniqueRedirectFrom): |
| (WKWebsiteDataStoreSetStatisticsCrossSiteLoadWithLinkDecoration): |
| (WKWebsiteDataStoreSetStatisticsTimeToLiveUserInteraction): |
| (WKWebsiteDataStoreStatisticsProcessStatisticsAndDataRecords): |
| (WKWebsiteDataStoreStatisticsUpdateCookieBlocking): |
| (WKWebsiteDataStoreStatisticsSubmitTelemetry): |
| (WKWebsiteDataStoreSetStatisticsNotifyPagesWhenDataRecordsWereScanned): |
| (WKWebsiteDataStoreSetStatisticsIsRunningTest): |
| (WKWebsiteDataStoreSetStatisticsShouldClassifyResourcesBeforeDataRecordsRemoval): |
| (WKWebsiteDataStoreSetStatisticsNotifyPagesWhenTelemetryWasCaptured): |
| (WKWebsiteDataStoreSetStatisticsMinimumTimeBetweenDataRecordsRemoval): |
| (WKWebsiteDataStoreSetStatisticsGrandfatheringTime): |
| (WKWebsiteDataStoreSetStatisticsMaxStatisticsEntries): |
| (WKWebsiteDataStoreSetStatisticsPruneEntriesDownTo): |
| (WKWebsiteDataStoreStatisticsClearInMemoryAndPersistentStore): |
| (WKWebsiteDataStoreStatisticsClearInMemoryAndPersistentStoreModifiedSinceHours): |
| (WKWebsiteDataStoreStatisticsClearThroughWebsiteDataRemoval): |
| (WKWebsiteDataStoreStatisticsDeleteCookiesForTesting): |
| (WKWebsiteDataStoreStatisticsHasLocalStorage): |
| (WKWebsiteDataStoreSetStatisticsCacheMaxAgeCap): |
| (WKWebsiteDataStoreStatisticsHasIsolatedSession): |
| (WKWebsiteDataStoreStatisticsResetToConsistentState): |
| (WKWebsiteDataStoreRemoveAllFetchCaches): |
| (WKWebsiteDataStoreRemoveFetchCacheForOrigin): |
| (WKWebsiteDataStoreRemoveAllIndexedDatabases): |
| (WKWebsiteDataStoreRemoveLocalStorage): |
| (WKWebsiteDataStoreRemoveAllServiceWorkerRegistrations): |
| (WKWebsiteDataStoreGetFetchCacheOrigins): |
| (WKWebsiteDataStoreGetFetchCacheSizeForOrigin): |
| (WKWebsiteDataStoreCopyServiceWorkerRegistrationDirectory): |
| (WKWebsiteDataStoreSetServiceWorkerRegistrationDirectory): |
| (WKWebsiteDataStoreClearAllDeviceOrientationPermissions): |
| (WKWebsiteDataStoreSetWebAuthenticationMockConfiguration): |
| (WKWebsiteDataStoreClearAdClickAttributionsThroughWebsiteDataRemoval): |
| * UIProcess/API/C/WKWebsitePolicies.cpp: |
| * UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm: Removed. |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (+[WKWebsiteDataStore defaultDataStore]): |
| (+[WKWebsiteDataStore nonPersistentDataStore]): |
| (-[WKWebsiteDataStore dealloc]): |
| (-[WKWebsiteDataStore httpCookieStore]): |
| (-[WKWebsiteDataStore removeDataOfTypes:modifiedSince:completionHandler:]): |
| (-[WKWebsiteDataStore removeDataOfTypes:forDataRecords:completionHandler:]): |
| (+[WKWebsiteDataStore _defaultDataStoreExists]): |
| (+[WKWebsiteDataStore _deleteDefaultDataStoreForTesting]): |
| (-[WKWebsiteDataStore _initWithConfiguration:]): |
| (-[WKWebsiteDataStore _fetchDataRecordsOfTypes:withOptions:completionHandler:]): |
| (-[WKWebsiteDataStore _resourceLoadStatisticsEnabled]): |
| (-[WKWebsiteDataStore _setResourceLoadStatisticsEnabled:]): |
| (-[WKWebsiteDataStore _resourceLoadStatisticsDebugMode]): |
| (-[WKWebsiteDataStore _setResourceLoadStatisticsDebugMode:]): |
| (-[WKWebsiteDataStore _cacheStorageDirectory]): |
| (-[WKWebsiteDataStore _setCacheStorageDirectory:]): |
| (-[WKWebsiteDataStore _serviceWorkerRegistrationDirectory]): |
| (-[WKWebsiteDataStore _setServiceWorkerRegistrationDirectory:]): |
| (-[WKWebsiteDataStore _setBoundInterfaceIdentifier:]): |
| (-[WKWebsiteDataStore _boundInterfaceIdentifier]): |
| (-[WKWebsiteDataStore _setAllowsCellularAccess:]): |
| (-[WKWebsiteDataStore _allowsCellularAccess]): |
| (-[WKWebsiteDataStore _setProxyConfiguration:]): |
| (-[WKWebsiteDataStore _sourceApplicationBundleIdentifier]): |
| (-[WKWebsiteDataStore _setSourceApplicationBundleIdentifier:]): |
| (-[WKWebsiteDataStore _sourceApplicationSecondaryIdentifier]): |
| (-[WKWebsiteDataStore _setSourceApplicationSecondaryIdentifier:]): |
| (-[WKWebsiteDataStore _proxyConfiguration]): |
| (-[WKWebsiteDataStore _indexedDBDatabaseDirectory]): |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetShouldSubmitTelemetry:]): |
| (-[WKWebsiteDataStore _setResourceLoadStatisticsTestingCallback:]): |
| (-[WKWebsiteDataStore _getAllStorageAccessEntriesFor:completionHandler:]): |
| (-[WKWebsiteDataStore _scheduleCookieBlockingUpdate:]): |
| (-[WKWebsiteDataStore _setPrevalentDomain:completionHandler:]): |
| (-[WKWebsiteDataStore _getIsPrevalentDomain:completionHandler:]): |
| (-[WKWebsiteDataStore _clearPrevalentDomain:completionHandler:]): |
| (-[WKWebsiteDataStore _processStatisticsAndDataRecords:]): |
| (-[WKWebsiteDataStore _hasRegisteredServiceWorker]): |
| (-[WKWebsiteDataStore _delegate]): |
| (-[WKWebsiteDataStore set_delegate:]): |
| * UIProcess/API/Cocoa/WKWebsiteDataStoreInternal.h: |
| * UIProcess/API/glib/APIWebsiteDataStoreGLib.cpp: Removed. |
| * UIProcess/API/glib/WebKitWebsiteDataManager.cpp: |
| (webkitWebsiteDataManagerSetProperty): |
| (webkitWebsiteDataManagerGetDataStore): |
| (webkit_website_data_manager_get_local_storage_directory): |
| (webkit_website_data_manager_get_disk_cache_directory): |
| (webkit_website_data_manager_get_offline_application_cache_directory): |
| (webkit_website_data_manager_get_indexeddb_directory): |
| (webkit_website_data_manager_get_websql_directory): |
| (webkit_website_data_manager_get_hsts_cache_directory): |
| (webkit_website_data_manager_fetch): |
| (webkit_website_data_manager_remove): |
| (webkit_website_data_manager_clear): |
| (webkitWebsiteDataManagerCreate): Deleted. |
| * UIProcess/API/glib/WebKitWebsiteDataManagerPrivate.h: |
| * UIProcess/API/win/APIWebsiteDataStoreWin.cpp: Removed. |
| * UIProcess/Cocoa/NavigationState.mm: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::NetworkProcessProxy): |
| (WebKit::NetworkProcessProxy::websiteDataStoreFromSessionID): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/WebFramePolicyListenerProxy.cpp: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::WebPageProxy): |
| (WebKit::WebPageProxy::receivedNavigationPolicyDecision): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::m_webProcessCache): |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| (WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess): |
| (WebKit::WebProcessPool::tryTakePrewarmedProcess): |
| (WebKit::WebProcessPool::processDidFinishLaunching): |
| (WebKit::WebProcessPool::processForRegistrableDomain): |
| (WebKit::WebProcessPool::createWebPage): |
| (WebKit::WebProcessPool::mayHaveRegisteredServiceWorkers): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::defaultApplicationCacheDirectory): |
| (WebKit::WebsiteDataStore::defaultCacheStorageDirectory): |
| (WebKit::WebsiteDataStore::defaultNetworkCacheDirectory): |
| (WebKit::WebsiteDataStore::defaultMediaCacheDirectory): |
| (WebKit::WebsiteDataStore::defaultIndexedDBDatabaseDirectory): |
| (WebKit::WebsiteDataStore::defaultServiceWorkerRegistrationDirectory): |
| (WebKit::WebsiteDataStore::defaultLocalStorageDirectory): |
| (WebKit::WebsiteDataStore::defaultMediaKeysStorageDirectory): |
| (WebKit::WebsiteDataStore::defaultWebSQLDatabaseDirectory): |
| (WebKit::WebsiteDataStore::defaultResourceLoadStatisticsDirectory): |
| (WebKit::WebsiteDataStore::defaultJavaScriptConfigurationDirectory): |
| (WebKit::WebsiteDataStore::tempDirectoryFileSystemRepresentation): |
| (WebKit::WebsiteDataStore::cacheDirectoryFileSystemRepresentation): |
| (WebKit::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation): |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::globalDefaultDataStore): |
| (WebKit::WebsiteDataStore::defaultDataStore): |
| (WebKit::WebsiteDataStore::deleteDefaultDataStoreForTesting): |
| (WebKit::WebsiteDataStore::defaultDataStoreExists): |
| (WebKit::WebsiteDataStore::defaultDataStoreConfiguration): |
| (WebKit::WebsiteDataStore::isAssociatedProcessPool const): |
| (WebKit::WebsiteDataStore::defaultMediaCacheDirectory): |
| (WebKit::WebsiteDataStore::defaultJavaScriptConfigurationDirectory): |
| (WebKit::WebsiteDataStore::defaultDeviceIdHashSaltsStorageDirectory): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp: |
| * UIProcess/WebsiteData/win/WebsiteDataStoreWin.cpp: |
| (WebKit::WebsiteDataStore::defaultApplicationCacheDirectory): |
| (WebKit::WebsiteDataStore::defaultCacheStorageDirectory): |
| (WebKit::WebsiteDataStore::defaultNetworkCacheDirectory): |
| (WebKit::WebsiteDataStore::defaultIndexedDBDatabaseDirectory): |
| (WebKit::WebsiteDataStore::defaultServiceWorkerRegistrationDirectory): |
| (WebKit::WebsiteDataStore::defaultLocalStorageDirectory): |
| (WebKit::WebsiteDataStore::defaultMediaKeysStorageDirectory): |
| (WebKit::WebsiteDataStore::defaultWebSQLDatabaseDirectory): |
| (WebKit::WebsiteDataStore::defaultResourceLoadStatisticsDirectory): |
| (WebKit::WebsiteDataStore::cacheDirectoryFileSystemRepresentation): |
| (WebKit::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation): |
| * UIProcess/glib/WebProcessProxyGLib.cpp: |
| (WebKit::WebProcessProxy::platformGetLaunchOptions): |
| * UIProcess/glib/WebsiteDataStoreGLib.cpp: Copied from Source/WebKit/UIProcess/API/glib/APIWebsiteDataStoreGLib.cpp. |
| (API::WebsiteDataStore::defaultApplicationCacheDirectory): Deleted. |
| (API::WebsiteDataStore::defaultNetworkCacheDirectory): Deleted. |
| (API::WebsiteDataStore::defaultCacheStorageDirectory): Deleted. |
| (API::WebsiteDataStore::defaultIndexedDBDatabaseDirectory): Deleted. |
| (API::WebsiteDataStore::defaultServiceWorkerRegistrationDirectory): Deleted. |
| (API::WebsiteDataStore::defaultLocalStorageDirectory): Deleted. |
| (API::WebsiteDataStore::defaultMediaKeysStorageDirectory): Deleted. |
| (API::WebsiteDataStore::defaultDeviceIdHashSaltsStorageDirectory): Deleted. |
| (API::WebsiteDataStore::defaultWebSQLDatabaseDirectory): Deleted. |
| (API::WebsiteDataStore::defaultHSTSDirectory): Deleted. |
| (API::WebsiteDataStore::defaultResourceLoadStatisticsDirectory): Deleted. |
| (API::WebsiteDataStore::cacheDirectoryFileSystemRepresentation): Deleted. |
| (API::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation): Deleted. |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/MediaCache/WebMediaKeyStorageManager.cpp: |
| (WebKit::WebMediaKeyStorageManager::setWebsiteDataStore): |
| |
| 2019-09-20 Chris Dumez <cdumez@apple.com> |
| |
| REGRESSION (iOS 13): rAF stops firing when navigating away cross-origin and then back |
| https://bugs.webkit.org/show_bug.cgi?id=201767 |
| <rdar://problem/55350854> |
| |
| Reviewed by Tim Horton. |
| |
| This is a follow-up to r249961 to address crashes when navigating back cross-origin to a page |
| that uses requestAnimationFrame. r249961 took care of moving RemoteLayerTreeDisplayRefreshMonitor |
| objects from one RemoteLayerTreeDrawingArea to another but failed to tell those monitors |
| about their new drawingArea. As a result, RemoteLayerTreeDrawingArea::willDestroyDisplayRefreshMonitor() |
| would not get called on the new drawing area when it should have. |
| |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.h: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.mm: |
| (WebKit::RemoteLayerTreeDisplayRefreshMonitor::updateDrawingArea): |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm: |
| (WebKit::RemoteLayerTreeDrawingArea::adoptDisplayRefreshMonitorsFromDrawingArea): |
| |
| 2019-09-20 Keith Rollin <krollin@apple.com> |
| |
| Remove some support for < iOS 13 |
| https://bugs.webkit.org/show_bug.cgi?id=201967 |
| <rdar://problem/55504738> |
| |
| Reviewed by Andy Estes. |
| |
| Remove some support for iOS versions less than 13.0. |
| |
| Update conditionals that reference __IPHONE_OS_VERSION_MIN_REQUIRED |
| and __IPHONE_OS_VERSION_MAX_ALLOWED, assuming that they both have |
| values >= 130000. This means that expressions like |
| "__IPHONE_OS_VERSION_MIN_REQUIRED < 101300" are always False and |
| "__IPHONE_OS_VERSION_MIN_REQUIRED >= 101300" are always True. |
| |
| After version checks have been removed, there are some cases where the |
| preprocessor conditional looks like "#if PLATFORM(MAC) || |
| PLATFORM(IOS_FAMILY)". These can be collapsed into "#if |
| PLATFORM(COCOA)". This additional cleanup will be performed in a |
| subsequent patch. |
| |
| This removal is part of a series of patches effecting the removal of |
| dead code for old versions of iOS. This particular pass involves |
| changes in which Andy Estes was involved. These changes are isolated |
| from other similar changes in order to facilitate the reviewing |
| process. |
| |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _dataForPreviewItemController:atPosition:type:]): |
| * UIProcess/ios/forms/WKFileUploadPanel.mm: |
| (-[WKFileUploadPanel _uploadItemFromMediaInfo:successBlock:failureBlock:]): |
| |
| 2019-09-20 Tim Horton <timothy_horton@apple.com> |
| |
| Sanitize suggested filenames used for saving PDFs |
| https://bugs.webkit.org/show_bug.cgi?id=202034 |
| <rdar://problem/53183075> |
| |
| Reviewed by Chris Dumez. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didFinishLoadingDataForCustomContentProvider): |
| (WebKit::WebPageProxy::saveDataToFileInDownloadsFolder): |
| (WebKit::WebPageProxy::savePDFToFileInDownloadsFolder): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::savePDFToTemporaryFolderAndOpenWithNativeApplicationRaw): Deleted. |
| * UIProcess/mac/WebPageProxyMac.mm: |
| (WebKit::WebPageProxy::savePDFToTemporaryFolderAndOpenWithNativeApplication): |
| (WebKit::WebPageProxy::savePDFToTemporaryFolderAndOpenWithNativeApplicationRaw): Deleted. |
| Sanitize suggested filenames to ensure that they comprise only one path component |
| when concatenated with their destination directory. |
| |
| 2019-09-20 Chris Dumez <cdumez@apple.com> |
| |
| Add release logging for when a view is added / removed from a window |
| https://bugs.webkit.org/show_bug.cgi?id=202050 |
| |
| Reviewed by Tim Horton. |
| |
| Add release logging for when a view is added / removed from a window to help determine the |
| view's visibility in the logs. |
| |
| * UIProcess/ios/WKApplicationStateTrackingView.mm: |
| (-[WKApplicationStateTrackingView willMoveToWindow:]): |
| (-[WKApplicationStateTrackingView didMoveToWindow]): |
| |
| 2019-09-20 Chris Dumez <cdumez@apple.com> |
| |
| ApplicationStateTracker::m_isBackground initialization does not account for UIScenes |
| https://bugs.webkit.org/show_bug.cgi?id=202048 |
| |
| Reviewed by Geoffrey Garen. |
| |
| ApplicationStateTracker::m_isBackground initialization does not account for UIScenes, it merely checks |
| the visibility state of the whole app. It should instead check the visibility state of the window's |
| UIScene. |
| |
| This patch also refactors the code a little bit to reduce #ifdef'ing. |
| |
| * UIProcess/ApplicationStateTracker.mm: |
| (WebKit::ApplicationStateTracker::ApplicationStateTracker): |
| |
| 2019-09-20 Chris Dumez <cdumez@apple.com> |
| |
| Document no longer needs to store a SessionID |
| https://bugs.webkit.org/show_bug.cgi?id=202024 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Document no longer needs to store a SessionID, now that we have a single |
| session per WebProcess. It can simply get its sessionID from its Page. |
| |
| * WebProcess/WebPage/WebCookieJar.cpp: |
| (WebKit::WebCookieJar::cookieRequestHeaderFieldValue const): |
| * WebProcess/WebPage/WebCookieJar.h: |
| |
| 2019-09-20 Chris Dumez <cdumez@apple.com> |
| |
| [iOS] ASSERTION FAILED: Unsafe to ref/deref of ShareableBitmap from different threads |
| https://bugs.webkit.org/show_bug.cgi?id=201712 |
| <rdar://problem/55289916> |
| |
| Reviewed by Tim Horton. |
| |
| Make sure ShareableBitmap objects are always ref'd / deref'd on the main thread by dispatching to |
| the main thread in ShareableBitmap::releaseBitmapContextData() before calling deref(). |
| |
| * Shared/ShareableBitmap.cpp: |
| (WebKit::ShareableBitmap::ShareableBitmap): |
| (WebKit::ShareableBitmap::~ShareableBitmap): |
| * Shared/cg/ShareableBitmapCG.cpp: |
| (WebKit::ShareableBitmap::createGraphicsContext): |
| (WebKit::ShareableBitmap::releaseBitmapContextData): |
| |
| 2019-09-20 Alex Christensen <achristensen@webkit.org> |
| |
| Begin moving WebsiteDataStore setters to WebsiteDataStoreConfiguration |
| https://bugs.webkit.org/show_bug.cgi?id=202025 |
| |
| Reviewed by Chris Dumez. |
| |
| Most of these were only needed before initNonPersistentConfiguration existed. |
| |
| * UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.cpp: |
| (WKWebsiteDataStoreConfigurationGetPerOriginStorageQuota): |
| (WKWebsiteDataStoreConfigurationSetPerOriginStorageQuota): |
| * UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.h: |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreSetPerOriginStorageQuota): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _initWithConfiguration:]): |
| (-[WKWebsiteDataStore _perOriginStorageQuota]): |
| (-[WKWebsiteDataStore _setPerOriginStorageQuota:]): |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h: |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm: |
| (-[_WKWebsiteDataStoreConfiguration perOriginStorageQuota]): |
| (-[_WKWebsiteDataStoreConfiguration setPerOriginStorageQuota:]): |
| (-[_WKWebsiteDataStoreConfiguration boundInterfaceIdentifier]): |
| (-[_WKWebsiteDataStoreConfiguration setBoundInterfaceIdentifier:]): |
| (-[_WKWebsiteDataStoreConfiguration allowsCellularAccess]): |
| (-[_WKWebsiteDataStoreConfiguration setAllowsCellularAccess:]): |
| (-[_WKWebsiteDataStoreConfiguration proxyConfiguration]): |
| (-[_WKWebsiteDataStoreConfiguration setProxyConfiguration:]): |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::WebsiteDataStore): |
| (WebKit::WebsiteDataStore::setSourceApplicationSecondaryIdentifier): |
| (WebKit::WebsiteDataStore::setSourceApplicationBundleIdentifier): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| (WebKit::WebsiteDataStore::setBoundInterfaceIdentifier): |
| (WebKit::WebsiteDataStore::boundInterfaceIdentifier): |
| (WebKit::WebsiteDataStore::sourceApplicationBundleIdentifier const): |
| (WebKit::WebsiteDataStore::sourceApplicationSecondaryIdentifier const): |
| (WebKit::WebsiteDataStore::setAllowsCellularAccess): |
| (WebKit::WebsiteDataStore::allowsCellularAccess): |
| (WebKit::WebsiteDataStore::setProxyConfiguration): |
| (WebKit::WebsiteDataStore::proxyConfiguration): |
| (WebKit::WebsiteDataStore::setPerOriginStorageQuota): Deleted. |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp: |
| (WebKit::WebsiteDataStoreConfiguration::copy): |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h: |
| (WebKit::WebsiteDataStoreConfiguration::boundInterfaceIdentifier const): |
| (WebKit::WebsiteDataStoreConfiguration::setBoundInterfaceIdentifier): |
| (WebKit::WebsiteDataStoreConfiguration::allowsCellularAccess const): |
| (WebKit::WebsiteDataStoreConfiguration::setAllowsCellularAccess): |
| (WebKit::WebsiteDataStoreConfiguration::proxyConfiguration const): |
| (WebKit::WebsiteDataStoreConfiguration::setProxyConfiguration): |
| |
| 2019-09-20 Alex Christensen <achristensen@webkit.org> |
| |
| Introduce LegacyGlobalSettings for settings the NetworkProcess needs from a WebProcessPool |
| https://bugs.webkit.org/show_bug.cgi?id=201970 |
| |
| Reviewed by Geoff Garen. |
| |
| I'm starting by moving the cache model to this new abstraction. |
| We were using it in tests to disable the page cache, which should be done with a boolean on the pool configuration, not by changing the cache model. |
| We were also using it in WKContextSetCacheModel which has several clients that won't change quickly, so this abstraction is used to maintain existing behavior. |
| I need this so I can make a NetworkProcess not depend on anything from a WebProcessPool when starting. |
| |
| * Sources.txt: |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| (API::ProcessPoolConfiguration::copy): |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextSetCacheModel): |
| (WKContextGetCacheModel): |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: |
| (-[_WKProcessPoolConfiguration pageCacheEnabled]): |
| (-[_WKProcessPoolConfiguration setPageCacheEnabled:]): |
| * UIProcess/LegacyGlobalSettings.cpp: Added. |
| (WebKit::LegacyGlobalSettings::singleton): |
| (WebKit::LegacyGlobalSettings::setCacheModel): |
| * UIProcess/LegacyGlobalSettings.h: Added. |
| (WebKit::LegacyGlobalSettings::cacheModel const): |
| * UIProcess/WebProcessCache.cpp: |
| (WebKit::WebProcessCache::updateCapacity): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| (WebKit::WebProcessPool::initializeNewWebProcess): |
| (WebKit::WebProcessPool::updateMaxSuspendedPageCount): |
| (WebKit::WebProcessPool::setCacheModel): |
| * UIProcess/WebProcessPool.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-09-20 Alex Christensen <achristensen@webkit.org> |
| |
| Deprecate unused C API aliases for WebsiteDataStore |
| https://bugs.webkit.org/show_bug.cgi?id=202029 |
| |
| Reviewed by Chris Dumez. |
| |
| This is a piece of r249768. |
| |
| * UIProcess/API/C/WKApplicationCacheManager.cpp: |
| (WKApplicationCacheManagerGetTypeID): |
| (WKApplicationCacheManagerGetApplicationCacheOrigins): |
| (WKApplicationCacheManagerDeleteEntriesForOrigin): |
| (WKApplicationCacheManagerDeleteAllEntries): |
| * UIProcess/API/C/WKApplicationCacheManager.h: |
| * UIProcess/API/C/WKKeyValueStorageManager.cpp: |
| (WKKeyValueStorageManagerGetTypeID): |
| (WKKeyValueStorageManagerGetOriginKey): |
| (WKKeyValueStorageManagerGetCreationTimeKey): |
| (WKKeyValueStorageManagerGetModificationTimeKey): |
| (WKKeyValueStorageManagerGetKeyValueStorageOrigins): |
| (WKKeyValueStorageManagerGetStorageDetailsByOrigin): |
| (WKKeyValueStorageManagerDeleteEntriesForOrigin): |
| (WKKeyValueStorageManagerDeleteAllEntries): |
| * UIProcess/API/C/WKKeyValueStorageManager.h: |
| * UIProcess/API/C/WKResourceCacheManager.cpp: |
| (WKResourceCacheManagerGetTypeID): |
| (WKResourceCacheManagerGetCacheOrigins): |
| (WKResourceCacheManagerClearCacheForOrigin): |
| (WKResourceCacheManagerClearCacheForAllOrigins): |
| (toWebsiteDataTypes): Deleted. |
| * UIProcess/API/C/WKResourceCacheManager.h: |
| |
| 2019-09-20 Alex Christensen <achristensen@webkit.org> |
| |
| Remove functionality to disable TLS fallback |
| https://bugs.webkit.org/show_bug.cgi?id=201998 |
| |
| Reviewed by Geoff Garen. |
| |
| Since r249019 it is not used. It was a useful experiment and I'm glad we didn't see any regressions. |
| |
| * NetworkProcess/NetworkSessionCreationParameters.cpp: |
| (WebKit::NetworkSessionCreationParameters::privateSessionParameters): |
| (WebKit::NetworkSessionCreationParameters::encode const): |
| (WebKit::NetworkSessionCreationParameters::decode): |
| * NetworkProcess/NetworkSessionCreationParameters.h: |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _setAllowsTLSFallback:]): |
| (-[WKWebsiteDataStore _allowsTLSFallback]): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::setAllowsTLSFallback): Deleted. |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| (WebKit::WebsiteDataStore::allowsTLSFallback const): Deleted. |
| |
| 2019-09-20 Alex Christensen <achristensen@webkit.org> |
| |
| Remove unused storage paths on APIProcessPoolConfiguration |
| https://bugs.webkit.org/show_bug.cgi?id=202028 |
| |
| Reviewed by Chris Dumez. |
| |
| This is a piece of r249768. |
| There is no way to set these paths and they have been replaced by WebsiteDataStore paths. |
| There was one remaining use of the global disk cache directory in NetworkProcess::setCacheModel, |
| which I replaced with the default session's disk cache directory, which is equivalent. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::setCacheModel): |
| * NetworkProcess/NetworkProcess.h: |
| (WebKit::NetworkProcess::diskCacheDirectory const): Deleted. |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| (WebKit::NetworkProcessCreationParameters::NetworkProcessCreationParameters): Deleted. |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * NetworkProcess/NetworkSession.cpp: |
| (WebKit::NetworkSession::NetworkSession): |
| * NetworkProcess/cache/NetworkCache.cpp: |
| (WebKit::NetworkCache::Cache::open): |
| (WebKit::NetworkCache::Cache::Cache): |
| * NetworkProcess/cache/NetworkCache.h: |
| (WebKit::NetworkCache::Cache::storageDirectory): |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa): |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| (API::ProcessPoolConfiguration::copy): |
| (API::ProcessPoolConfiguration::createWithWebsiteDataStoreConfiguration): Deleted. |
| (API::ProcessPoolConfiguration::ProcessPoolConfiguration): Deleted. |
| (API::ProcessPoolConfiguration::~ProcessPoolConfiguration): Deleted. |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| * UIProcess/API/glib/WebKitWebContext.cpp: |
| (webkitWebContextConstructed): |
| (webkit_web_context_set_disk_cache_directory): |
| (websiteDataStoreConfigurationForWebProcessPoolConfiguration): Deleted. |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| (WebKit::WebProcessPool::resolvePathsForSandboxExtensions): |
| (WebKit::WebProcessPool::webProcessDataStoreParameters): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::processPools const): |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h: |
| |
| 2019-09-20 Keith Rollin <krollin@apple.com> |
| |
| Remove some support for < iOS 13 |
| https://bugs.webkit.org/show_bug.cgi?id=202032 |
| <rdar://problem/55548468> |
| |
| Reviewed by Alex Christensen. |
| |
| Remove some support for iOS versions less than 13.0. |
| |
| Update conditionals that reference __IPHONE_OS_VERSION_MIN_REQUIRED |
| and __IPHONE_OS_VERSION_MAX_ALLOWED, assuming that they both have |
| values >= 130000. This means that expressions like |
| "__IPHONE_OS_VERSION_MIN_REQUIRED < 101300" are always False and |
| "__IPHONE_OS_VERSION_MIN_REQUIRED >= 101300" are always True. |
| |
| This removal is part of a series of patches effecting the removal of |
| dead code for old versions of iOS. This particular pass involves |
| changes in which Dan Bates was involved. These changes are isolated |
| from other similar changes in order to facilitate the reviewing |
| process. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _interpretKeyEvent:isCharEvent:]): |
| |
| 2019-09-20 Keith Rollin <krollin@apple.com> |
| |
| Remove some support for < iOS 13 |
| https://bugs.webkit.org/show_bug.cgi?id=201973 |
| <rdar://problem/55506966> |
| |
| Reviewed by Alex Christensen. |
| |
| Remove some support for iOS versions less than 13.0. |
| |
| Update conditionals that reference __IPHONE_OS_VERSION_MIN_REQUIRED |
| and __IPHONE_OS_VERSION_MAX_ALLOWED, assuming that they both have |
| values >= 130000. This means that expressions like |
| "__IPHONE_OS_VERSION_MIN_REQUIRED < 101300" are always False and |
| "__IPHONE_OS_VERSION_MIN_REQUIRED >= 101300" are always True. |
| |
| This removal is part of a series of patches effecting the removal of |
| dead code for old versions of iOS. This particular pass involves |
| changes in which Chris Dumez was involved. These changes are isolated |
| from other similar changes in order to facilitate the reviewing |
| process. |
| |
| * NetworkProcess/Downloads/cocoa/DownloadCocoa.mm: |
| (WebKit::Download::resume): |
| |
| 2019-09-20 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, fix confusing release logging under WebPageProxy::loadRequestWithNavigationShared(). |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::loadRequestWithNavigationShared): |
| |
| 2019-09-20 Chris Dumez <cdumez@apple.com> |
| |
| Regression(r248832): Unable to quicklook HTML files in Mail |
| https://bugs.webkit.org/show_bug.cgi?id=202012 |
| <rdar://problem/55285295> |
| |
| Reviewed by Per Arne Vollan. |
| |
| Follow-up to fix bug in r250110. Now that loadFile() calls |
| maybeInitializeSandboxExtensionHandle(), it no longer needs to |
| call assumeReadAccessToBaseURL(). This is because maybeInitializeSandboxExtensionHandle() |
| already take care of it. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::loadFile): |
| |
| 2019-09-20 Joonghun Park <pjh0718@gmail.com> |
| |
| Unreviewed. Remove duplicated HashMap iteration since r248734. |
| |
| ASSERT statement already exists for |storageNamespaceID|, |
| so |HashMap.get| for the parameter is not needed. |
| |
| * NetworkProcess/WebStorage/StorageManager.cpp: |
| (WebKit::StorageManager::destroySessionStorageNamespace): |
| |
| 2019-09-20 Joonghun Park <pjh0718@gmail.com> |
| |
| Unreviewed. Fix Build warning below since r248734. |
| |
| warning: unused variable ‘foo’ [-Wunused-variable] |
| |
| * NetworkProcess/WebStorage/StorageManager.cpp: |
| (WebKit::StorageManager::destroySessionStorageNamespace): |
| * NetworkProcess/WebStorage/StorageManagerSet.cpp: |
| (WebKit::StorageManagerSet::add): |
| (WebKit::StorageManagerSet::waitUntilTasksFinished): |
| |
| 2019-09-19 Brent Fulgham <bfulgham@apple.com> |
| |
| [FTW, WinCairo] Support running tests in Release mode |
| https://bugs.webkit.org/show_bug.cgi?id=202021 |
| |
| Reviewed by Don Olmstead. |
| |
| In Bug 201597, we added new features to better lock down JSC features in the |
| potentially untrusted WebContent process. |
| |
| Unfortunately, this change included XPC Dictionary items used at startup to |
| lock down JSC features before entering the main execution of the process. These |
| changes were not done for the WinCairo or FTW ports. |
| |
| We need to pass the state of the JIT and whether to enable certain JSC features |
| at process launch. Since the XPC mechanisms we use on macOS and iOS do not exist |
| on Windows, I am implementing them as command-line flags. |
| |
| -configure-jsc-for-testing: Sets the JSC in testing mode. |
| -disable-jit: Disables the JIT. |
| |
| See r249808 for the equivalent changes on macOS and iOS. |
| |
| * PlatformFTW.cmake: Add some missing header files needed when building tests. |
| * Shared/win/AuxiliaryProcessMainWin.cpp: |
| (WebKit::AuxiliaryProcessMainBase::parseCommandLine): |
| * UIProcess/Launcher/win/ProcessLauncherWin.cpp: |
| (WebKit::ProcessLauncher::launchProcess): |
| |
| 2019-09-19 Chris Dumez <cdumez@apple.com> |
| |
| Add better logging for when the view visibility state changes |
| https://bugs.webkit.org/show_bug.cgi?id=202008 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * UIProcess/ApplicationStateTracker.mm: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::updateActivityState): |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::applicationDidEnterBackground): |
| (WebKit::WebPageProxy::applicationWillEnterForeground): |
| |
| 2019-09-19 Chris Dumez <cdumez@apple.com> |
| |
| Regression(r248832): Unable to quicklook HTML files in Mail |
| https://bugs.webkit.org/show_bug.cgi?id=202012 |
| <rdar://problem/55285295> |
| |
| Reviewed by Geoff Garen and Brent Fulgham. |
| |
| r248832 inadvertently reverted the fix for Mail that landed in r247400 by not using |
| the same logic to initialize the sandbox extension if the process had already |
| finished launching or not. In particular, the new code path that happens on process |
| launch unconditionally used '/' as resource directory for the sandbox extension if |
| the client did not provide one. The logic in maybeInitializeSandboxExtensionHandle() |
| would use the file URL's base URL as resource directory when creating a sandbox |
| extension for '/' would fail (which it often does). |
| |
| To address the issue, have the logic that runs on process launch call |
| maybeInitializeSandboxExtensionHandle() so avoid duplicating code and make sure |
| both cases now have the Mail fix. |
| |
| * UIProcess/AuxiliaryProcessProxy.cpp: |
| (WebKit::AuxiliaryProcessProxy::didFinishLaunching): |
| * UIProcess/AuxiliaryProcessProxy.h: |
| (WebKit::AuxiliaryProcessProxy::isLaunching const): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle): |
| (WebKit::WebPageProxy::loadRequestWithNavigationShared): |
| (WebKit::WebPageProxy::loadFile): |
| * UIProcess/WebPageProxy.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2019-09-19 Tim Horton <timothy_horton@apple.com> |
| |
| macCatalyst apps crash under TextCheckingControllerProxy::replaceRelativeToSelection when spell checking |
| https://bugs.webkit.org/show_bug.cgi?id=202010 |
| <rdar://problem/54974971> |
| |
| Reviewed by Beth Dakin. |
| |
| * WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm: |
| (WebKit::TextCheckingControllerProxy::replaceRelativeToSelection): |
| relativeReplacementRange is in the coordinate space of the document's text, |
| not the replacement string. We need to adjust into replacement string |
| coordinates before slicing the replacement, or we'll throw an exception |
| trying to read past the end of the string, in the case where the |
| replacement string is shorter than the replaced string (by more than 2 characters). |
| |
| 2019-09-19 Yury Semikhatsky <yurys@chromium.org> |
| |
| WebStorageNamespaceProvider / StorageNamespaceImpl no longer need SessionIDs |
| https://bugs.webkit.org/show_bug.cgi?id=201922 |
| <rdar://problem/55505906> |
| |
| Reviewed by Chris Dumez. |
| |
| Fix GTK Debug compilation after https://trac.webkit.org/changeset/250083: |
| ../../Source/WebKit/WebProcess/WebStorage/WebStorageNamespaceProvider.cpp:75:55: error: no member named 'singleton' in namespace 'WebCore::Process' |
| ASSERT_UNUSED(sessionID, sessionID == WebProcess::singleton().sessionID()); |
| ~~~~~~~~~~~~^ |
| |
| * WebProcess/WebStorage/WebStorageNamespaceProvider.cpp: |
| |
| 2019-09-19 Chris Dumez <cdumez@apple.com> |
| |
| WorkerGlobalScope does not need a SessionID |
| https://bugs.webkit.org/show_bug.cgi?id=201991 |
| |
| Reviewed by Alex Christensen. |
| |
| WorkerGlobalScope does not need a SessionID, now that we have a single session |
| per WebProcess. |
| |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::installServiceWorker): |
| * WebProcess/Storage/WebServiceWorkerProvider.cpp: |
| (WebKit::WebServiceWorkerProvider::serviceWorkerConnection): |
| (WebKit::WebServiceWorkerProvider::existingServiceWorkerConnection): |
| (WebKit::WebServiceWorkerProvider::serviceWorkerConnectionForSession): Deleted. |
| (WebKit::WebServiceWorkerProvider::existingServiceWorkerConnectionForSession): Deleted. |
| * WebProcess/Storage/WebServiceWorkerProvider.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::updateThrottleState): |
| |
| 2019-09-19 Brent Fulgham <bfulgham@apple.com> |
| |
| Create InjectedBundle SPI to better support NSSecureCoding |
| https://bugs.webkit.org/show_bug.cgi?id=201810 |
| <rdar://problem/55265713> |
| |
| The encoding/decoding routines used by WebKit’s InjectedBundles are based on NSCoding. |
| While we have changed WebKit internals to use NSSecureCoding, there are a number of |
| injected bundles that need to serialize custom classes between the InjectedBundle and |
| the relevant WebKit UIProcess. |
| |
| We need to lock down this communications channel by enforcing NSSecureCoding. |
| |
| This patch creates new SPI to allow the UIProcess to specify classes that it will accept |
| in messages from the WebContet Process (and Injected Bundle). |
| |
| It adds the following property to the WKProcessPoolConfiguration: |
| |
| @property (nonatomic, copy) NSSet<Class> *customClassesForParameterCoder; |
| |
| If no custom classes are specified, the standard serialization primitives are supported: |
| NSArray, NSData, NSDate, NSDictionary, NSNull, NSNumber, NSSet, NSString, |
| NSTimeZone, NSURL, and NSUUID. |
| |
| Reviewed by Brady Eidson. |
| |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| (API::ProcessPoolConfiguration::copy): Copy any custom classes. |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| * UIProcess/API/C/WKContextConfigurationRef.cpp: |
| (WKContextConfigurationCopyCustomClassesForParameterCoder): Added. |
| (WKContextConfigurationSetCustomClassesForParameterCoder): Added. |
| * UIProcess/API/C/WKContextConfigurationRef.h: |
| * UIProcess/API/Cocoa/WKProcessGroup.h: |
| * UIProcess/API/Cocoa/WKProcessGroup.mm: |
| (toStringVector): Added. |
| (-[WKProcessGroup initWithInjectedBundleURL:andCustomClassesForParameterCoder:]): |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _setInputDelegate:]): Restrict serialization to allowed classes. |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: |
| (-[_WKProcessPoolConfiguration customClassesForParameterCoder]): Added. |
| (-[_WKProcessPoolConfiguration setCustomClassesForParameterCoder:]): Added. |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitialize): Register any custom classes |
| provided in the configuraton. |
| (WebKit::WebProcessPool::initializeClassesForParameterCoding): Added. |
| (WebKit::WebProcessPool::allowedClassesForParameterCoding const): Added. |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::elementDidFocus): Restrict serialization to allowed |
| classes only. |
| |
| 2019-09-18 Chris Dumez <cdumez@apple.com> |
| |
| AddPlugInAutoStartOriginHash / PlugInDidReceiveUserInteraction IPC should not need to pass a SessionID |
| https://bugs.webkit.org/show_bug.cgi?id=201962 |
| |
| Reviewed by Geoffrey Garen. |
| |
| AddPlugInAutoStartOriginHash / PlugInDidReceiveUserInteraction IPC from the WebProcess to the UIProcess |
| should not need to pass a SessionID, since the UIProcess already knows the SessionID of a given WebProcess. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::addPlugInAutoStartOriginHash): Deleted. |
| (WebKit::WebProcessPool::plugInDidReceiveUserInteraction): Deleted. |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessPool.messages.in: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::addPlugInAutoStartOriginHash): |
| (WebKit::WebProcessProxy::plugInDidReceiveUserInteraction): |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebProcessProxy.messages.in: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::plugInDidStartFromOrigin): |
| (WebKit::WebProcess::plugInDidReceiveUserInteraction): |
| |
| 2019-09-18 Chris Dumez <cdumez@apple.com> |
| |
| WebStorageNamespaceProvider / StorageNamespaceImpl no longer need SessionIDs |
| https://bugs.webkit.org/show_bug.cgi?id=201922 |
| |
| Reviewed by Geoffrey Garen. |
| |
| WebStorageNamespaceProvider / StorageNamespaceImpl no longer need SessionIDs, now that |
| we have a single session per WebProcess. |
| |
| * WebProcess/WebStorage/StorageAreaMap.cpp: |
| (WebKit::StorageAreaMap::connect): |
| * WebProcess/WebStorage/StorageNamespaceImpl.cpp: |
| (WebKit::StorageNamespaceImpl::createSessionStorageNamespace): |
| (WebKit::StorageNamespaceImpl::createLocalStorageNamespace): |
| (WebKit::StorageNamespaceImpl::createTransientLocalStorageNamespace): |
| (WebKit::StorageNamespaceImpl::StorageNamespaceImpl): |
| (WebKit::StorageNamespaceImpl::sessionID const): |
| (WebKit::StorageNamespaceImpl::copy): |
| * WebProcess/WebStorage/StorageNamespaceImpl.h: |
| (): Deleted. |
| * WebProcess/WebStorage/WebStorageNamespaceProvider.cpp: |
| (WebKit::WebStorageNamespaceProvider::createSessionStorageNamespace): |
| (WebKit::WebStorageNamespaceProvider::createLocalStorageNamespace): |
| (WebKit::WebStorageNamespaceProvider::createTransientLocalStorageNamespace): |
| |
| 2019-09-18 Chris Dumez <cdumez@apple.com> |
| |
| Decrease use of sessionID in WebLoaderStrategy |
| https://bugs.webkit.org/show_bug.cgi?id=201961 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::loadResource): |
| (WebKit::WebLoaderStrategy::scheduleLoad): |
| (WebKit::WebLoaderStrategy::tryLoadingUsingURLSchemeHandler): |
| (WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess): |
| (WebKit::WebLoaderStrategy::loadResourceSynchronously): |
| * WebProcess/Network/WebLoaderStrategy.h: |
| |
| 2019-09-18 Chris Dumez <cdumez@apple.com> |
| |
| WebSocketStream does not need a SessionID |
| https://bugs.webkit.org/show_bug.cgi?id=201960 |
| |
| Reviewed by Geoffrey Garen. |
| |
| WebSocketStream does not need a SessionID, now that we have a single session per WebProcess. |
| |
| * WebProcess/Network/WebSocketProvider.cpp: |
| (WebKit::WebSocketProvider::createSocketStreamHandle): |
| * WebProcess/Network/WebSocketStream.cpp: |
| (WebKit::WebSocketStream::create): |
| (WebKit::WebSocketStream::WebSocketStream): |
| * WebProcess/Network/WebSocketStream.h: |
| |
| 2019-09-18 Chris Dumez <cdumez@apple.com> |
| |
| LibWebRTCProvider does not need sessionIDs anymore |
| https://bugs.webkit.org/show_bug.cgi?id=201959 |
| |
| Reviewed by Geoffrey Garen. |
| |
| LibWebRTCProvider does not need sessionIDs anymore, now that we have a single session per WebProcess. |
| |
| * WebProcess/Network/webrtc/LibWebRTCProvider.cpp: |
| (WebKit::LibWebRTCProvider::registerMDNSName): |
| (WebKit::LibWebRTCProvider::createSocketFactory): |
| * WebProcess/Network/webrtc/LibWebRTCProvider.h: |
| |
| 2019-09-18 Yury Semikhatsky <yurys@chromium.org> |
| |
| [GTK] Compilation errors when GL is disabled |
| https://bugs.webkit.org/show_bug.cgi?id=200223 |
| |
| Fix following compilation error when building with ENABLE_OPENGL=OFF |
| ../../Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp:123:51: error: use of undeclared identifier 'WaylandCompositor' |
| parameters.waylandCompositorDisplayName = WaylandCompositor::singleton().displayName(); |
| ^ |
| Reviewed by Philippe Normand. |
| |
| * UIProcess/glib/WebProcessPoolGLib.cpp: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): only make a call when using EGL, this matches |
| guards in WaylandCompositor.h. The condition was changed in r245807. |
| |
| 2019-09-18 Timothy Hatcher <timothy@apple.com> |
| |
| Eagerly create and add the m_layerHostingView to WKWebView. |
| https://bugs.webkit.org/show_bug.cgi?id=201942 |
| |
| Reviewed by Tim Horton. |
| |
| Some apps will add subviews to WKWebView, and by the time we add our m_layerHostingView view we might be |
| adding it behind a view that should have been added behind our layer hosting view subview. This affected |
| the Spark email app, due to changes in order of loading delegate calls and when compositing is enabled. |
| Instead of delayed creation of m_layerHostingView, always create it and add it to to the WKWebView. |
| This ensures proper ordering of subviews when clients add a view behind all existing subviews. |
| |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::WebViewImpl): Create and add m_layerHostingView here. |
| (WebKit::WebViewImpl::setAcceleratedCompositingRootLayer): Remove creation and removal of m_layerHostingView. |
| Just set the sublayers of m_layerHostingView's layer here. |
| |
| 2019-09-18 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Can't drag undocked Inspector window by its title text |
| https://bugs.webkit.org/show_bug.cgi?id=190886 |
| <rdar://problem/44574547> |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/mac/WKInspectorWKWebView.mm: |
| (-[WKInspectorWKWebView _opaqueRectForWindowMoveWhenInTitlebar]): |
| Legendary. |
| |
| 2019-09-18 Chris Dumez <cdumez@apple.com> |
| |
| BlobRegistry no longer needs SessionIDs |
| https://bugs.webkit.org/show_bug.cgi?id=201936 |
| |
| Reviewed by Geoffrey Garen. |
| |
| BlobRegistry no longer needs SessionIDs, now that we have a single session per WebProcess. |
| |
| * NetworkProcess/NetworkProcessPlatformStrategies.cpp: |
| (WebKit::NetworkProcessPlatformStrategies::createBlobRegistry): |
| * WebProcess/FileAPI/BlobRegistryProxy.cpp: |
| (WebKit::BlobRegistryProxy::registerFileBlobURL): |
| (WebKit::BlobRegistryProxy::registerBlobURL): |
| (WebKit::BlobRegistryProxy::registerBlobURLOptionallyFileBacked): |
| (WebKit::BlobRegistryProxy::unregisterBlobURL): |
| (WebKit::BlobRegistryProxy::registerBlobURLForSlice): |
| (WebKit::BlobRegistryProxy::writeBlobsToTemporaryFiles): |
| * WebProcess/FileAPI/BlobRegistryProxy.h: |
| |
| 2019-09-18 Benjamin Nham <nham@apple.com> |
| |
| NetworkLoadParameters shouldn't store sessionID |
| https://bugs.webkit.org/show_bug.cgi?id=201921 |
| |
| Reviewed by Chris Dumez. |
| |
| Now that there's a single session id per WebProcess, we don't need to |
| store the session id in NetworkLoadParameters anymore. Clients can just |
| directly ask NetworkConnectionToWebProcess for the WebProcess's session |
| ID instead. |
| |
| * NetworkProcess/AdClickAttributionManager.cpp: |
| (WebKit::AdClickAttributionManager::fireConversionRequest): |
| * NetworkProcess/Downloads/DownloadManager.cpp: |
| (WebKit::DownloadManager::startDownload): |
| * NetworkProcess/NetworkCORSPreflightChecker.cpp: |
| (WebKit::NetworkCORSPreflightChecker::startPreflight): |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::preconnectTo): |
| * NetworkProcess/NetworkLoadParameters.h: |
| * NetworkProcess/NetworkResourceLoadMap.h: |
| * NetworkProcess/NetworkResourceLoadParameters.cpp: |
| (WebKit::NetworkResourceLoadParameters::encode const): |
| (WebKit::NetworkResourceLoadParameters::decode): |
| * NetworkProcess/NetworkResourceLoadParameters.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::m_shouldCaptureExtraNetworkLoadMetrics): |
| (WebKit::NetworkResourceLoader::startNetworkLoad): |
| (WebKit::NetworkResourceLoader::convertToDownload): |
| * NetworkProcess/NetworkResourceLoader.h: |
| * NetworkProcess/NetworkSession.cpp: |
| (WebKit::NetworkSession::NetworkSession): |
| * NetworkProcess/PingLoad.cpp: |
| (WebKit::PingLoad::PingLoad): |
| (WebKit::PingLoad::loadRequest): |
| (WebKit::PingLoad::didReceiveChallenge): |
| * NetworkProcess/PingLoad.h: |
| * NetworkProcess/PreconnectTask.cpp: |
| (WebKit::PreconnectTask::PreconnectTask): |
| * NetworkProcess/PreconnectTask.h: |
| * NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp: |
| (WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad): |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess): |
| (WebKit::WebLoaderStrategy::loadResourceSynchronously): |
| (WebKit::WebLoaderStrategy::startPingLoad): |
| (WebKit::WebLoaderStrategy::preconnectTo): |
| |
| 2019-09-18 Andy Estes <aestes@apple.com> |
| |
| [Apple Pay] Tell websites why a session was cancelled |
| https://bugs.webkit.org/show_bug.cgi?id=201912 |
| <rdar://problem/55469706> |
| |
| Reviewed by Brady Eidson. |
| |
| Remembered the error passed to -[WKPaymentAuthorizationDelegate _willFinishWithError:] and |
| sent it to the WebContent process in Messages::WebPaymentCoordinator::DidCancelPaymentSession. |
| |
| * Platform/cocoa/PaymentAuthorizationPresenter.h: |
| * Platform/cocoa/WKPaymentAuthorizationDelegate.mm: |
| (-[WKPaymentAuthorizationDelegate _didFinish]): |
| (-[WKPaymentAuthorizationDelegate _willFinishWithError:]): |
| * Shared/ApplePay/WebPaymentCoordinatorProxy.cpp: |
| (WebKit::WebPaymentCoordinatorProxy::didCancelPaymentSession): |
| (WebKit::WebPaymentCoordinatorProxy::presenterDidFinish): |
| * Shared/ApplePay/WebPaymentCoordinatorProxy.h: |
| (WebKit::WebPaymentCoordinatorProxy::didCancelPaymentSession): |
| * Shared/ApplePay/ios/WebPaymentCoordinatorProxyIOS.mm: |
| * Shared/Cocoa/WebCoreArgumentCodersCocoa.mm: |
| (IPC::ArgumentCoder<WebCore::PaymentSessionError>::encode): |
| (IPC::ArgumentCoder<WebCore::PaymentSessionError>::decode): |
| * Shared/WebCoreArgumentCoders.h: |
| * WebProcess/ApplePay/WebPaymentCoordinator.cpp: |
| (WebKit::WebPaymentCoordinator::networkProcessConnectionClosed): |
| (WebKit::WebPaymentCoordinator::didCancelPaymentSession): |
| * WebProcess/ApplePay/WebPaymentCoordinator.h: |
| * WebProcess/ApplePay/WebPaymentCoordinator.messages.in: |
| |
| 2019-09-18 Chris Dumez <cdumez@apple.com> |
| |
| WebSWContextManagerConnection::installServiceWorker IPC no longer need a sessionID |
| https://bugs.webkit.org/show_bug.cgi?id=201882 |
| |
| Reviewed by Geoffrey Garen. |
| |
| WebSWContextManagerConnection::installServiceWorker IPC no longer need a sessionID now that we have a single |
| sessionID per WebProcess. |
| |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp: |
| (WebKit::WebSWServerToContextConnection::installServiceWorkerContext): |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h: |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::ServiceWorkerFrameLoaderClient::ServiceWorkerFrameLoaderClient): |
| (WebKit::ServiceWorkerFrameLoaderClient::sessionID const): |
| (WebKit::WebSWContextManagerConnection::WebSWContextManagerConnection): |
| (WebKit::WebSWContextManagerConnection::installServiceWorker): |
| * WebProcess/Storage/WebSWContextManagerConnection.h: |
| * WebProcess/Storage/WebSWContextManagerConnection.messages.in: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::establishWorkerContextConnectionToNetworkProcess): |
| |
| 2019-09-18 Chris Dumez <cdumez@apple.com> |
| |
| Stop passing sessionIDs to NetworkProcessConnection methods |
| https://bugs.webkit.org/show_bug.cgi?id=201886 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Stop passing sessionIDs to NetworkProcessConnection methods. This is no longer |
| necessary now that we have a single session per WebProcess. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::tryStoreAsCacheEntry): |
| * WebProcess/Databases/WebDatabaseProvider.cpp: |
| (WebKit::WebDatabaseProvider::idbConnectionToServerForSession): |
| * WebProcess/FileAPI/BlobRegistryProxy.cpp: |
| (WebKit::BlobRegistryProxy::writeBlobsToTemporaryFiles): |
| * WebProcess/Network/NetworkProcessConnection.cpp: |
| (WebKit::NetworkProcessConnection::writeBlobsToTemporaryFiles): |
| (WebKit::NetworkProcessConnection::didCacheResource): |
| (WebKit::NetworkProcessConnection::idbConnectionToServer): |
| (WebKit::NetworkProcessConnection::idbConnectionToServerForSession): Deleted. |
| * WebProcess/Network/NetworkProcessConnection.h: |
| * WebProcess/Network/NetworkProcessConnection.messages.in: |
| |
| 2019-09-18 Chris Dumez <cdumez@apple.com> |
| |
| CacheStorageProvider::createCacheStorageConnection() does not need to take in a SessionID |
| https://bugs.webkit.org/show_bug.cgi?id=201920 |
| |
| Reviewed by Geoffrey Garen. |
| |
| CacheStorageProvider::createCacheStorageConnection() does not need to take in a SessionID. |
| This sessionID is no longer used now that we have a session per WebProcess. |
| |
| * NetworkProcess/NetworkProcessPlatformStrategies.cpp: |
| (WebKit::NetworkProcessPlatformStrategies::createBlobRegistry): |
| * WebProcess/Cache/WebCacheStorageConnection.cpp: |
| (WebKit::WebCacheStorageConnection::sessionID const): Deleted. |
| * WebProcess/Cache/WebCacheStorageConnection.h: |
| * WebProcess/Cache/WebCacheStorageProvider.cpp: |
| (WebKit::WebCacheStorageProvider::createCacheStorageConnection): |
| * WebProcess/Cache/WebCacheStorageProvider.h: |
| * WebProcess/FileAPI/BlobRegistryProxy.cpp: |
| (WebKit::BlobRegistryProxy::blobSize): |
| * WebProcess/FileAPI/BlobRegistryProxy.h: |
| |
| 2019-09-18 Chris Dumez <cdumez@apple.com> |
| |
| Drop FrameLoaderClient::sessionID() |
| https://bugs.webkit.org/show_bug.cgi?id=201916 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Drop FrameLoaderClient::sessionID(). The Frame can get the sessionID from its page (Which is |
| what the FrameLoaderClient::sessionID() ended up doing) and other call sites at WebKit2 layer |
| can get the sessionID from the WebProcess singleton. |
| |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::scheduleLoad): |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::ServiceWorkerFrameLoaderClient::ServiceWorkerFrameLoaderClient): |
| (WebKit::WebSWContextManagerConnection::installServiceWorker): |
| * WebProcess/Storage/WebSWContextManagerConnection.h: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: |
| |
| 2019-09-18 Chris Dumez <cdumez@apple.com> |
| |
| WebServiceWorkerProvider::handleFetch() does not need to take in a sessionID |
| https://bugs.webkit.org/show_bug.cgi?id=201917 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::scheduleLoad): |
| * WebProcess/Storage/WebServiceWorkerProvider.cpp: |
| (WebKit::WebServiceWorkerProvider::handleFetch): |
| * WebProcess/Storage/WebServiceWorkerProvider.h: |
| |
| 2019-09-18 Chris Dumez <cdumez@apple.com> |
| |
| WebSWServerToContextConnection::PostMessageToServiceWorkerClient IPC no longer needs to take a sessionID |
| https://bugs.webkit.org/show_bug.cgi?id=201883 |
| |
| Reviewed by Geoffrey Garen. |
| |
| WebSWServerToContextConnection::PostMessageToServiceWorkerClient IPC no longer needs to take a sessionID, |
| now that we have a single session per WebProcess. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp: |
| (WebKit::WebSWServerToContextConnection::postMessageToServiceWorkerClient): |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h: |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.messages.in: |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::postMessageToServiceWorkerClient): |
| * WebProcess/Storage/WebSWContextManagerConnection.h: |
| |
| 2019-09-18 Carlos Alberto Lopez Perez <clopez@igalia.com> |
| |
| [GTK][WPE] bubblewrap sandbox should be disabled when running inside docker |
| https://bugs.webkit.org/show_bug.cgi?id=201914 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Detect if running inside Docker by checking the file /.dockerenv |
| In that case, disable the sandbox. |
| |
| * UIProcess/Launcher/glib/ProcessLauncherGLib.cpp: |
| (WebKit::isInsideDocker): |
| (WebKit::ProcessLauncher::launchProcess): |
| |
| 2019-09-17 Ross Kirsling <ross.kirsling@sony.com> |
| |
| Unreviewed WinCairo build fix following r249985. |
| |
| * Shared/WebProcessDataStoreParameters.h: |
| |
| 2019-09-17 Dean Jackson <dino@apple.com> |
| |
| Remove the "Show Link Previews" and "Hide Link Previews" action menus in the preview platter |
| https://bugs.webkit.org/show_bug.cgi?id=201864 |
| <rdar://55190038> |
| |
| Reviewed by Simon Fraser. |
| |
| * UIProcess/ios/WKActionSheetAssistant.mm: Remove the toggle action from the |
| default values. |
| (-[WKActionSheetAssistant defaultActionsForLinkSheet:]): |
| * UIProcess/ios/WKContentViewInteraction.mm: No longer try to add a toggle when |
| it isn't there. |
| (-[WKContentView assignLegacyDataForContextMenuInteraction]): |
| (menuWithShowLinkPreviewAction): Deleted. |
| |
| 2019-09-17 Chris Dumez <cdumez@apple.com> |
| |
| Stop calling Page::setSessionID() from WebKit2 |
| https://bugs.webkit.org/show_bug.cgi?id=201888 |
| |
| Reviewed by Alex Christensen. |
| |
| Stop calling Page::setSessionID() from WebKit2 since Page's sessionID can never change when |
| using WebKit2 (We process-swap and create a new Page in a new process when changing data |
| store). Instead, we now pass the sessionID ID when constructing the Page, as part of the |
| PageConfiguration structure. |
| |
| * Shared/WebsitePoliciesData.cpp: |
| (WebKit::WebsitePoliciesData::applyToDocumentLoader): |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::installServiceWorker): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_textAutoSizingAdjustmentTimer): |
| (WebKit::WebPage::setSessionID): Deleted. |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2019-09-17 Mark Lam <mark.lam@apple.com> |
| |
| Use constexpr instead of const in symbol definitions that are obviously constexpr. |
| https://bugs.webkit.org/show_bug.cgi?id=201879 |
| |
| Rubber-stamped by Joseph Pecoraro. |
| |
| * WebProcess/Plugins/Netscape/JSNPObject.h: |
| |
| 2019-09-17 Ross Kirsling <ross.kirsling@sony.com> |
| |
| Unreviewed restabilization of non-unified build. |
| |
| * UIProcess/WebProcessProxy.cpp: |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| * WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp: |
| |
| 2019-09-17 Chris Dumez <cdumez@apple.com> |
| |
| WebProcess class methods should not need to take a sessionID |
| https://bugs.webkit.org/show_bug.cgi?id=201881 |
| |
| Reviewed by Geoffrey Garen. |
| |
| WebProcess class methods should not need to take a sessionID given that we have a single |
| session per WebProcess now. |
| |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::encode const): |
| (WebKit::WebProcessCreationParameters::decode): |
| * Shared/WebProcessCreationParameters.h: |
| * Shared/WebProcessDataStoreParameters.h: |
| (WebKit::WebProcessDataStoreParameters::encode const): |
| (WebKit::WebProcessDataStoreParameters::decode): |
| * UIProcess/Plugins/PlugInAutoStartProvider.cpp: |
| (WebKit::PlugInAutoStartProvider::addAutoStartOriginHash): |
| (WebKit::PlugInAutoStartProvider::autoStartOriginHashesCopy const): |
| (WebKit::PlugInAutoStartProvider::setAutoStartOriginsTableWithItemsPassingTest): |
| (WebKit::PlugInAutoStartProvider::didReceiveUserInteraction): |
| * UIProcess/Plugins/PlugInAutoStartProvider.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::webProcessDataStoreParameters): |
| (WebKit::WebProcessPool::initializeNewWebProcess): |
| * UIProcess/WebProcessPool.h: |
| (WebKit::WebProcessPool::sendToAllProcesses): |
| (WebKit::WebProcessPool::sendToAllProcessesForSession): |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::fetchWebsiteData): |
| (WebKit::WebProcessProxy::deleteWebsiteData): |
| (WebKit::WebProcessProxy::deleteWebsiteDataForOrigins): |
| (WebKit::WebProcessProxy::establishServiceWorkerContext): |
| * WebProcess/Plugins/PluginView.cpp: |
| (WebKit::PluginView::pluginDidReceiveUserInteraction): |
| * WebProcess/WebCoreSupport/WebPlugInClient.cpp: |
| (WebKit::WebPlugInClient::didStartFromOrigin): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::close): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeWebProcess): |
| (WebKit::WebProcess::setWebsiteDataStoreParameters): |
| (WebKit::WebProcess::removeWebPage): |
| (WebKit::WebProcess::isPlugInAutoStartOriginHash): |
| (WebKit::WebProcess::shouldPlugInAutoStartFromOrigin): |
| (WebKit::WebProcess::plugInDidStartFromOrigin): |
| (WebKit::WebProcess::didAddPlugInAutoStartOriginHash): |
| (WebKit::WebProcess::resetPlugInAutoStartOriginHashes): |
| (WebKit::WebProcess::plugInDidReceiveUserInteraction): |
| (WebKit::WebProcess::fetchWebsiteData): |
| (WebKit::WebProcess::deleteWebsiteData): |
| (WebKit::WebProcess::deleteWebsiteDataForOrigins): |
| (WebKit::WebProcess::establishWorkerContextConnectionToNetworkProcess): |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| |
| 2019-09-17 Chris Dumez <cdumez@apple.com> |
| |
| WebMDNSRegister no longer needs to be provided sessionIDs |
| https://bugs.webkit.org/show_bug.cgi?id=201876 |
| |
| Reviewed by Geoffrey Garen. |
| |
| WebMDNSRegister no longer needs to be provided sessionIDs, now that we |
| have one session per WebProcess. |
| |
| * NetworkProcess/webrtc/NetworkMDNSRegister.cpp: |
| (WebKit::NetworkMDNSRegister::registerMDNSName): |
| (WebKit::NetworkMDNSRegister::sessionID const): |
| * NetworkProcess/webrtc/NetworkMDNSRegister.h: |
| * NetworkProcess/webrtc/NetworkMDNSRegister.messages.in: |
| * WebProcess/Network/webrtc/LibWebRTCProvider.cpp: |
| (WebKit::LibWebRTCProvider::registerMDNSName): |
| (WebKit::LibWebRTCProvider::createSocketFactory): |
| * WebProcess/Network/webrtc/WebMDNSRegister.cpp: |
| (WebKit::WebMDNSRegister::registerMDNSName): |
| * WebProcess/Network/webrtc/WebMDNSRegister.h: |
| |
| 2019-09-17 Chris Dumez <cdumez@apple.com> |
| |
| WebSWServerConnection does not need to store a sessionID |
| https://bugs.webkit.org/show_bug.cgi?id=201878 |
| |
| Reviewed by Geoffrey Garen. |
| |
| WebSWServerConnection does not need to store a sessionID, it can simply get it from its SWServer. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::establishSWServerConnection): |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::WebSWServerConnection): |
| (WebKit::WebSWServerConnection::startFetch): |
| (WebKit::WebSWServerConnection::sessionID const): |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.h: |
| |
| 2019-09-17 Chris Dumez <cdumez@apple.com> |
| |
| WebPaymentCoordinatorProxy does not need sessionIDs |
| https://bugs.webkit.org/show_bug.cgi?id=201875 |
| |
| Reviewed by Geoffrey Garen. |
| |
| WebPaymentCoordinatorProxy does not need sessionIDs so let's stop passing them around. |
| |
| * Shared/ApplePay/WebPaymentCoordinatorProxy.cpp: |
| (WebKit::WebPaymentCoordinatorProxy::canMakePaymentsWithActiveCard): |
| (WebKit::WebPaymentCoordinatorProxy::showPaymentUI): |
| * Shared/ApplePay/WebPaymentCoordinatorProxy.h: |
| * Shared/ApplePay/WebPaymentCoordinatorProxy.messages.in: |
| * Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm: |
| (WebKit::WebPaymentCoordinatorProxy::platformCanMakePaymentsWithActiveCard): |
| (WebKit::WebPaymentCoordinatorProxy::platformPaymentRequest): |
| * Shared/ApplePay/ios/WebPaymentCoordinatorProxyIOS.mm: |
| (WebKit::WebPaymentCoordinatorProxy::platformShowPaymentUI): |
| * Shared/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm: |
| (WebKit::WebPaymentCoordinatorProxy::platformShowPaymentUI): |
| * WebProcess/ApplePay/WebPaymentCoordinator.cpp: |
| (WebKit::WebPaymentCoordinator::canMakePaymentsWithActiveCard): |
| (WebKit::WebPaymentCoordinator::showPaymentUI): |
| |
| 2019-09-17 Chris Dumez <cdumez@apple.com> |
| |
| There should be a single CacheStorageConnection per WebProcess |
| https://bugs.webkit.org/show_bug.cgi?id=201874 |
| |
| Reviewed by Geoffrey Garen. |
| |
| There should be a single CacheStorageConnection per WebProcess now that we have a single session |
| per WebProcess. This invariant allows us to simplify the code. |
| |
| * 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): |
| (WebKit::CacheStorageEngineConnection::sessionID const): |
| * NetworkProcess/cache/CacheStorageEngineConnection.h: |
| * NetworkProcess/cache/CacheStorageEngineConnection.messages.in: |
| * WebProcess/Cache/WebCacheStorageConnection.cpp: |
| (WebKit::WebCacheStorageConnection::WebCacheStorageConnection): |
| (WebKit::WebCacheStorageConnection::open): |
| (WebKit::WebCacheStorageConnection::remove): |
| (WebKit::WebCacheStorageConnection::retrieveCaches): |
| (WebKit::WebCacheStorageConnection::retrieveRecords): |
| (WebKit::WebCacheStorageConnection::batchDeleteOperation): |
| (WebKit::WebCacheStorageConnection::batchPutOperation): |
| (WebKit::WebCacheStorageConnection::reference): |
| (WebKit::WebCacheStorageConnection::dereference): |
| (WebKit::WebCacheStorageConnection::clearMemoryRepresentation): |
| (WebKit::WebCacheStorageConnection::engineRepresentation): |
| (WebKit::WebCacheStorageConnection::updateQuotaBasedOnSpaceUsage): |
| (WebKit::WebCacheStorageConnection::sessionID const): |
| * WebProcess/Cache/WebCacheStorageConnection.h: |
| * WebProcess/Cache/WebCacheStorageProvider.cpp: |
| (WebKit::WebCacheStorageProvider::createCacheStorageConnection): |
| * WebProcess/Cache/WebCacheStorageProvider.h: |
| |
| 2019-09-17 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed attempt to fix internal build after r249962. |
| |
| * UIProcess/API/C/WKPreferencesRef.h: |
| |
| 2019-09-17 Chris Dumez <cdumez@apple.com> |
| |
| REGRESSION (r249923): ASSERTION FAILED: sessionID == WebProcess::singleton().sessionID() in WebCore::SWClientConnection *WebKit::WebServiceWorkerProvider::existingServiceWorkerConnectionForSession(PAL::SessionID) |
| https://bugs.webkit.org/show_bug.cgi?id=201859 |
| <rdar://problem/55426742> |
| |
| Reviewed by Alex Christensen. |
| |
| Drop support for the WKPreferencesSetPrivateBrowsingEnabled() C API (Mark as deprecated and make it a no-op) as it |
| was changing a WebContent process's sessionID, which is no longer supported. This was also using the legacy private |
| browsing session, which we're trying to get rid of. There is suitable C API to do private browsing (WKWebsiteDataStoreRef). |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetPrivateBrowsingEnabled): |
| (WKPreferencesGetPrivateBrowsingEnabled): |
| * UIProcess/API/C/WKPreferencesRef.h: |
| * UIProcess/API/C/mac/WKPagePrivateMac.mm: |
| (WKPageIsURLKnownHSTSHost): |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::isURLKnownHSTSHost const): |
| * UIProcess/WebPreferences.cpp: |
| (WebKit::WebPreferences::addPage): |
| (WebKit::WebPreferences::removePage): |
| (WebKit::WebPreferences::updateBoolValueForKey): |
| * UIProcess/WebPreferences.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| * UIProcess/WebProcessPool.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::updatePreferences): |
| |
| 2019-09-17 Chris Dumez <cdumez@apple.com> |
| |
| REGRESSION (iOS 13): rAF stops firing when navigating away cross-origin and then back |
| https://bugs.webkit.org/show_bug.cgi?id=201767 |
| <rdar://problem/55350854> |
| |
| Reviewed by Geoffrey Garen. |
| |
| When navigating back and restoring a SuspendedPage, WebPage::reinitializeWebPage() ends up |
| reconstructing a new DrawingArea to match the identifier of the DrawingAreaProxy that the |
| UIProcess created. The issue is that when reconstructing the DrawingArea, we were losing |
| the DisplayRefreshMonitors that had been registered on the previous drawing area. To |
| address the issue, we now make sure to transfer the DisplayRefreshMonitors over from the |
| old to the new drawing area. This patch is kept as small as possible to faciliate cherry |
| picking to a branch. However, I think we should consider refactoring the code so that |
| we no longer need to re-create the DrawingArea in the WebProcess in this case. |
| |
| * WebProcess/WebPage/DrawingArea.h: |
| (WebKit::DrawingArea::adoptDisplayRefreshMonitorsFromDrawingArea): |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm: |
| (WebKit::RemoteLayerTreeDrawingArea::adoptDisplayRefreshMonitorsFromDrawingArea): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::reinitializeWebPage): |
| |
| 2019-09-17 Truitt Savell <tsavell@apple.com> |
| |
| Unreviewed, rolling out r249950. |
| |
| Broke the iOS build. |
| |
| Reverted changeset: |
| |
| "Remove the "Show Link Previews" and "Hide Link Previews" |
| action menus in the preview platter" |
| https://bugs.webkit.org/show_bug.cgi?id=201864 |
| https://trac.webkit.org/changeset/249950 |
| |
| 2019-09-17 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Initial view loading is slow |
| https://bugs.webkit.org/show_bug.cgi?id=201451 |
| |
| Reviewed by Sergio Villar Senin. |
| |
| The problem is that now we are always calling DrawingAreaProxy::waitForBackingStoreUpdateOnNextPaint() after a |
| new process is launched and we used to do that only when launching a new process after a crash. This makes |
| m_hasReceivedFirstUpdate useless, because it's always set to true right after a process is launched. Then, we |
| wait up to half a second (which is usually the case for the initial load) until the first update. We only want |
| to do that when recovering from a crash or when swapping processes to avoid flashing effect. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::launchProcess): Add ProcessLaunchReason parameter and pass it to |
| finishAttachingToWebProcess instead of IsProcessSwap. |
| (WebKit::WebPageProxy::swapToWebProcess): Pass ProcessLaunchReason::ProcessSwap to |
| finishAttachingToWebProcess(). |
| (WebKit::WebPageProxy::finishAttachingToWebProcess): Do not call |
| DrawingAreaProxy::waitForBackingStoreUpdateOnNextPaint() when process launch reason is ProcessLaunchReason::InitialProcess. |
| (WebKit::WebPageProxy::launchProcessForReload): Pass ProcessLaunchReason::Reload to launchProcess(). |
| * UIProcess/WebPageProxy.h: Remove IsProcessSwap and add ProcessLaunchReason instead that is passed to |
| launchProcess and finishAttachingToWebProcess. |
| |
| 2019-09-17 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| REGRESSION(r249275): [GTK][WPE] WebPage injected bundle messages no longer work |
| https://bugs.webkit.org/show_bug.cgi?id=201865 |
| |
| Reviewed by Žan Doberšek. |
| |
| We use them to implement the web resources API. This is another regression of r249275 because we are using the |
| page proxy identifier when we really want to the web page identifier. |
| |
| * UIProcess/API/glib/WebKitWebContext.cpp: |
| (webkitWebContextGetWebViewForPage): Use WebPageProxy::webPageID() instead of WebPageProxy::identifier(). |
| |
| 2019-09-17 Dean Jackson <dino@apple.com> |
| |
| Remove the "Show Link Previews" and "Hide Link Previews" action menus in the preview platter |
| https://bugs.webkit.org/show_bug.cgi?id=201864 |
| <rdar://55190038> |
| |
| Reviewed by Simon Fraser. |
| |
| * UIProcess/ios/WKActionSheetAssistant.mm: Remove the toggle action from the |
| default values. |
| (-[WKActionSheetAssistant defaultActionsForLinkSheet:]): |
| * UIProcess/ios/WKContentViewInteraction.mm: No longer try to add a toggle when |
| it isn't there. |
| (-[WKContentView assignLegacyDataForContextMenuInteraction]): |
| (menuWithShowLinkPreviewAction): Deleted. |
| |
| 2019-09-17 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthn] Use WebPreferences instead of RuntimeEnabledFeatures in UIProcess |
| https://bugs.webkit.org/show_bug.cgi?id=198176 |
| <rdar://problem/55285709> |
| |
| Reviewed by Youenn Fablet. |
| |
| This patch does the following two things: |
| 1) It merges WebAuthenticationRequestData::creationOptions and requestOptions into a variant, and therefore |
| merges code paths that involve WebAuthenticationRequestData. |
| 2) It teaches WebAuthenticationRequestData to store a WebPreferences such that AuthenticatorManager could utilize |
| runtime feature flags to turn features on or off. |
| |
| * UIProcess/WebAuthentication/Authenticator.cpp: |
| (WebKit::Authenticator::handleRequest): |
| * UIProcess/WebAuthentication/AuthenticatorManager.cpp: |
| (WebKit::AuthenticatorManager::handleRequest): |
| (WebKit::AuthenticatorManager::clearState): |
| (WebKit::AuthenticatorManager::authenticatorAdded): |
| (WebKit::AuthenticatorManager::startDiscovery): |
| (WebKit::AuthenticatorManager::makeCredential): Deleted. |
| (WebKit::AuthenticatorManager::getAssertion): Deleted. |
| * UIProcess/WebAuthentication/AuthenticatorManager.h: |
| * UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm: |
| (WebKit::LocalAuthenticator::makeCredential): |
| (WebKit::LocalAuthenticator::continueMakeCredentialAfterUserConsented): |
| (WebKit::LocalAuthenticator::continueMakeCredentialAfterAttested): |
| (WebKit::LocalAuthenticator::getAssertion): |
| (WebKit::LocalAuthenticator::continueGetAssertionAfterUserConsented): |
| * UIProcess/WebAuthentication/Cocoa/LocalService.mm: |
| (WebKit::LocalService::isAvailable): |
| Don't check RuntimeEnabledFeatures given it is for WebCore. |
| * UIProcess/WebAuthentication/WebAuthenticationRequestData.h: |
| (): Deleted. |
| * UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp: |
| (WebKit::WebAuthenticatorCoordinatorProxy::makeCredential): |
| (WebKit::WebAuthenticatorCoordinatorProxy::getAssertion): |
| (WebKit::WebAuthenticatorCoordinatorProxy::handleRequest): |
| * UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.h: |
| * UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp: |
| (WebKit::CtapAuthenticator::makeCredential): |
| (WebKit::CtapAuthenticator::continueMakeCredentialAfterResponseReceived const): |
| (WebKit::CtapAuthenticator::getAssertion): |
| * UIProcess/WebAuthentication/fido/U2fAuthenticator.cpp: |
| (WebKit::U2fAuthenticator::makeCredential): |
| (WebKit::U2fAuthenticator::checkExcludeList): |
| (WebKit::U2fAuthenticator::issueRegisterCommand): |
| (WebKit::U2fAuthenticator::getAssertion): |
| (WebKit::U2fAuthenticator::issueSignCommand): |
| (WebKit::U2fAuthenticator::continueRegisterCommandAfterResponseReceived): |
| (WebKit::U2fAuthenticator::continueSignCommandAfterResponseReceived): |
| |
| 2019-09-17 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Keeps running obsolete WebProcess-es for too long |
| https://bugs.webkit.org/show_bug.cgi?id=201492 |
| |
| Reviewed by Chris Dumez. |
| |
| That's how the web process cache is expected to work, but it's true that it probably only makes sense to use it |
| when cache model is primary web browser. |
| |
| * UIProcess/WebProcessCache.cpp: |
| (WebKit::WebProcessCache::updateCapacity): Disable the web process cache when cache model is not primary web browser. |
| |
| 2019-09-17 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Crash closing web view while hardware acceleration is enabled |
| https://bugs.webkit.org/show_bug.cgi?id=200856 |
| |
| Reviewed by Michael Catanzaro. |
| |
| The crash happens when destroying the WaylandCompositor::Surface because the web view GL context is used to |
| release the texture, but the GL context is no longer valid after web view |
| unrealize. AcceleratedBackingStoreWayland should handle the web view unrealize to destroy the GL context. It |
| will be created on demand again after the web view is realized. |
| |
| * UIProcess/API/gtk/WebKitWebViewBase.cpp: |
| (webkitWebViewBaseRealize): Notify AcceleratedBackingStore. |
| (webkitWebViewBaseUnrealize): Ditto. |
| * UIProcess/gtk/AcceleratedBackingStore.h: |
| (WebKit::AcceleratedBackingStore::realize): Added. |
| (WebKit::AcceleratedBackingStore::unrealize): Added. |
| * UIProcess/gtk/AcceleratedBackingStoreWayland.cpp: |
| (WebKit::AcceleratedBackingStoreWayland::realize): In case of using WaylandCompositor, call |
| WaylandCompositor::bindWebPage() to bind the WebPageProxy to the Wayland surface. |
| (WebKit::AcceleratedBackingStoreWayland::unrealize): Destroy GL resources and the GL context. |
| (WebKit::AcceleratedBackingStoreWayland::tryEnsureGLContext): Do not try to create the GL context if the web |
| view is not realized. |
| (WebKit::AcceleratedBackingStoreWayland::displayBuffer): Remove the code to initialize the texture. |
| (WebKit::AcceleratedBackingStoreWayland::paint): And add it here. |
| * UIProcess/gtk/AcceleratedBackingStoreWayland.h: |
| * UIProcess/gtk/WaylandCompositor.cpp: |
| (WebKit::WaylandCompositor::Surface::setWebPage): Return early if given page is the current one already. |
| (WebKit::WaylandCompositor::bindWebPage): Set the surface WebPageProxy. |
| (WebKit::WaylandCompositor::unbindWebPage): Unset the surface WebPageProxy. |
| * UIProcess/gtk/WaylandCompositor.h: |
| * WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp: |
| (WebKit::DrawingAreaCoordinatedGraphics::enterAcceleratedCompositingMode): When restoring a previous layer tree |
| host, always call resumeRendering() to balance the suspendRendering() called in exitAcceleratedCompositingMode(). |
| |
| 2019-09-16 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r249910. |
| |
| Caused layout test failures and timeouts on Catalina |
| |
| Reverted changeset: |
| |
| "REGRESSION(249649): Unable to open local files in MiniBrowser |
| on macOS" |
| https://bugs.webkit.org/show_bug.cgi?id=201798 |
| https://trac.webkit.org/changeset/249910 |
| |
| 2019-09-16 Chris Dumez <cdumez@apple.com> |
| |
| Drop sessionID / websiteDataStoreID from WebPageCreationParameters |
| https://bugs.webkit.org/show_bug.cgi?id=201847 |
| |
| Reviewed by Youenn Fablet. |
| |
| Drop sessionID / websiteDataStoreID from WebPageCreationParameters now that we have |
| one session per WebProcess. |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| (WebKit::WebPageCreationParameters::WebPageCreationParameters): Deleted. |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::creationParameters): |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::createWindow): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_textAutoSizingAdjustmentTimer): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::createWebPage): |
| |
| 2019-09-16 Dean Jackson <dino@apple.com> |
| |
| Provide a prototype for AR QuickLook to trigger processing in the originating page |
| https://bugs.webkit.org/show_bug.cgi?id=201371 |
| |
| Hopefully fix the public iOS 13 build. |
| |
| * UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: |
| |
| 2019-09-16 David Kilzer <ddkilzer@apple.com> |
| |
| [WebAuthn] Name instance variables consistently in WKMockNFTag |
| <https://webkit.org/b/201845> |
| |
| Reviewed by Jiewen Tan. |
| |
| * UIProcess/WebAuthentication/Mock/MockNfcService.mm: |
| Make all @synthesize instance variables use a leading underscore |
| for their name. |
| |
| 2019-09-16 Dean Jackson <dino@apple.com> |
| |
| REGRESSION: iPad: Safari becomes unresponsive after context menu on 1-800-MY-APPLE phone number, tapping 'Add to Contacts' |
| https://bugs.webkit.org/show_bug.cgi?id=201816 |
| <rdar://55105827> |
| |
| Reviewed by Darin Adler. |
| |
| When generating the DataDetectorsContext for a position, we should |
| also provide the source rectangle for the link in root view coordinates. |
| This allows DataDetectors to show any modal dialogs in the right |
| position. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: Use either the bounds of the positionInformation |
| or the text bounding rectangle. |
| (-[WKContentView dataDetectionContextForPositionInformation:]): |
| |
| 2019-09-16 Chris Dumez <cdumez@apple.com> |
| |
| NetworkProcessConnection does not need HashMaps of sessionIDs for Service Workers and IDB |
| https://bugs.webkit.org/show_bug.cgi?id=201830 |
| |
| Reviewed by Geoffrey Garen. |
| |
| NetworkProcessConnection does not need HashMaps of sessionIDs for Service Workers and IDB, since |
| we now have one sessionID per WebContent process. |
| |
| * NetworkProcess/IndexedDB/WebIDBConnectionToClient.h: |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.h: |
| * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp: |
| (WebKit::WebIDBConnectionToServer::create): |
| (WebKit::WebIDBConnectionToServer::WebIDBConnectionToServer): |
| * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h: |
| * WebProcess/Databases/WebDatabaseProvider.cpp: |
| (WebKit::WebDatabaseProvider::idbConnectionToServerForSession): |
| * WebProcess/Network/NetworkProcessConnection.cpp: |
| (WebKit::NetworkProcessConnection::didReceiveMessage): |
| (WebKit::NetworkProcessConnection::didClose): |
| (WebKit::NetworkProcessConnection::idbConnectionToServerForSession): |
| (WebKit::NetworkProcessConnection::serviceWorkerConnectionForSession): |
| * WebProcess/Network/NetworkProcessConnection.h: |
| (WebKit::NetworkProcessConnection::existingIDBConnectionToServer const): |
| (WebKit::NetworkProcessConnection::existingServiceWorkerConnectionForSession): |
| * WebProcess/Storage/WebServiceWorkerProvider.cpp: |
| (WebKit::WebServiceWorkerProvider::serviceWorkerConnectionForSession): |
| (WebKit::WebServiceWorkerProvider::existingServiceWorkerConnectionForSession): |
| (WebKit::WebServiceWorkerProvider::handleFetch): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::networkProcessConnectionClosed): |
| |
| 2019-09-16 Brent Fulgham <bfulgham@apple.com> |
| |
| [FTW] Correct lifespan of other SharedBitmaps |
| https://bugs.webkit.org/show_bug.cgi?id=201800 |
| |
| Reviewed by Dean Jackson. |
| |
| The pop-up menu code creates its own SharedBitmap in the WebContent process, |
| which needs to release its handle before destruction, otherwise the UIProcess |
| will be unable to access the GPU texture (since it will have been cleaned up). |
| |
| Since WebPopupMenuProxyWin has its own HWND and WinProc, it needs its own |
| swapChain to handle syncing of content to the screen. |
| |
| This patch also audits other uses of SharedBitmap to make sure a similar |
| problem doesn't exist elsewhere. |
| |
| * Shared/ShareableBitmap.h: |
| * Shared/win/ShareableBitmapDirect2D.cpp: |
| (WebKit::ShareableBitmap::paint): |
| (WebKit::ShareableBitmap::createDirect2DSurface): |
| * UIProcess/win/WebPopupMenuProxyWin.cpp: |
| (WebKit::WebPopupMenuProxyWin::showPopupMenu): Add Direct2D code paths. |
| (WebKit::WebPopupMenuProxyWin::paint): Update for Direct2D. |
| (WebKit::WebPopupMenuProxyWin::setupSwapChain): Added. |
| (WebKit::WebPopupMenuProxyWin::configureBackingStore): Added. |
| * UIProcess/win/WebPopupMenuProxyWin.h: |
| * UIProcess/win/WebView.cpp: |
| (WebKit::WebView::setupSwapChain): Move some implementation code to the |
| Direct2DUtilities file. |
| * UIProcess/win/WebView.h: |
| (WebKit::WebView::d3dDevice const): |
| (WebKit::WebView::d3dImmediateContext const): |
| (WebKit::WebView::d3dDevice): Deleted. |
| * WebProcess/WebCoreSupport/WebPopupMenu.cpp: |
| (WebKit::WebPopupMenu::show): |
| * WebProcess/WebPage/FindController.cpp: |
| (WebKit::FindController::getImageForFindMatch): Prevent WebContent process from |
| destroying SharedBitmap before the UIProcess can receive it. |
| |
| 2019-09-16 Chris Dumez <cdumez@apple.com> |
| |
| Simplify WebResourceLoadObserver now that we have one WebProcess per session |
| https://bugs.webkit.org/show_bug.cgi?id=201821 |
| |
| Reviewed by Brent Fulgham. |
| |
| Simplify WebResourceLoadObserver now that we have one WebProcess per session. |
| No need to pass sessionIDs around or store statistics per sessionID. |
| Also, only initialize the WebResourceLoadObserver if both ITP is enabled and |
| we're not in a WebContent process used for an ephemeral session. |
| |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::resourceLoadStatisticsUpdated): |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::resourceLoadStatisticsUpdated): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp: |
| (WebKit::WebResourceLoadObserver::requestStorageAccessUnderOpener): |
| (WebKit::WebResourceLoadObserver::ensureResourceStatisticsForRegistrableDomain): |
| (WebKit::WebResourceLoadObserver::scheduleNotificationIfNeeded): |
| (WebKit::WebResourceLoadObserver::statisticsForURL): |
| (WebKit::WebResourceLoadObserver::takeStatistics): |
| (WebKit::WebResourceLoadObserver::clearState): |
| (WebKit::WebResourceLoadObserver::logFontLoad): |
| (WebKit::WebResourceLoadObserver::logCanvasRead): |
| (WebKit::WebResourceLoadObserver::logCanvasWriteOrMeasure): |
| (WebKit::WebResourceLoadObserver::logNavigatorAPIAccessed): |
| (WebKit::WebResourceLoadObserver::logScreenAPIAccessed): |
| (WebKit::WebResourceLoadObserver::logSubresourceLoading): |
| (WebKit::WebResourceLoadObserver::logWebSocketLoading): |
| (WebKit::WebResourceLoadObserver::logUserInteractionWithReducedTimeResolution): |
| * WebProcess/WebCoreSupport/WebResourceLoadObserver.h: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::setWebsiteDataStoreParameters): |
| |
| 2019-09-16 David Kilzer <ddkilzer@apple.com> |
| |
| Fix build failure in MockNfcService.mm |
| <https://webkit.org/b/201839> |
| |
| Reviewed by Brady Eidson. |
| |
| * UIProcess/WebAuthentication/Mock/MockNfcService.mm: |
| Specify instance variable names for @synthesized variables that |
| need to be manually released in -dealloc under MRR. |
| |
| 2019-09-16 Per Arne Vollan <pvollan@apple.com> |
| |
| REGRESSION(249649): Unable to open local files in MiniBrowser on macOS |
| https://bugs.webkit.org/show_bug.cgi?id=201798 |
| |
| Reviewed by Brent Fulgham. |
| |
| The commit <https://trac.webkit.org/changeset/249649> introduced a MiniBrowser regression on macOS where |
| MiniBrowser is not able to open local files. The change set r249649 fixed a problem where the WebContent |
| process PID was not ready to be used when creating a sandbox extension. This happened in the cases where |
| the WebContent process had not finished launching when the load started. The WebContent process is also |
| creating sandbox extensions for the Networking process for the files being loaded, and also needs to be |
| passing the PID of the Networking process when creating these. This patch is addressing this by getting |
| the PID of the Networking process when the WebContent process is initially getting the connection to the |
| Networking process. The PID is then stored in the NetworkProcessConnection class, from where it is passed |
| to the NetworkLoadParameters, and used when creating the sandbox extension for the Networking process. |
| |
| * NetworkProcess/NetworkLoadParameters.h: |
| * NetworkProcess/NetworkResourceLoadParameters.cpp: |
| (WebKit::NetworkResourceLoadParameters::encode const): |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::~NetworkProcessProxy): |
| (WebKit::NetworkProcessProxy::openNetworkProcessConnection): |
| (WebKit::NetworkProcessProxy::networkProcessCrashed): |
| (WebKit::NetworkProcessProxy::didFinishLaunching): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::loadRequestWithNavigationShared): |
| * UIProcess/WebProcessProxy.messages.in: |
| * WebProcess/Network/NetworkProcessConnection.cpp: |
| (WebKit::NetworkProcessConnection::NetworkProcessConnection): |
| * WebProcess/Network/NetworkProcessConnection.h: |
| (WebKit::NetworkProcessConnection::create): |
| (WebKit::NetworkProcessConnection::networkProcessPID const): |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::getNetworkProcessConnection): |
| (WebKit::WebProcess::ensureNetworkProcessConnection): |
| |
| 2019-09-16 David Kilzer <ddkilzer@apple.com> |
| |
| [WebAuthn] REGRESSION (r249059): Leak of WKMockNFTag objects and WKMockNFTag instance variables |
| <https://webkit.org/b/201813> |
| |
| Reviewed by Darin Adler. |
| |
| * UIProcess/WebAuthentication/Mock/MockNfcService.mm: |
| (-[WKMockNFTag dealloc]): Add method and release instance |
| variables to fix leaks. |
| (WebKit::MockNfcService::detectTags const): Use adoptNS() to fix |
| leaks of WKMockNFTag objects. |
| |
| 2019-09-16 David Kilzer <ddkilzer@apple.com> |
| |
| REGRESSION (r243113): Leak of multiple instance variable blocks when deallocating _WKAttributedStringNavigationDelegate |
| <https://webkit.org/b/201812> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UIProcess/API/Cocoa/NSAttributedString.mm: |
| (-[_WKAttributedStringNavigationDelegate dealloc]): Add method |
| to release instance variable blocks to fix potential leaks. |
| |
| 2019-09-16 Adrian Perez de Castro <aperez@igalia.com> |
| |
| Unreviewed build fix. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.h: Add missing forward |
| declaration of the NetworkSession class. |
| |
| 2019-09-16 Chris Dumez <cdumez@apple.com> |
| |
| Store sessionID on the NetworkConnectionToWebProcess now that there is one session per WebProcess |
| https://bugs.webkit.org/show_bug.cgi?id=201789 |
| |
| Reviewed by Alex Christensen. |
| |
| Store sessionID on the NetworkConnectionToWebProcess now that there is one session per WebProcess. |
| As a result, we no longer need to pass the sessionID in each IPC from the WebProcess to the |
| NetworkProcess. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::create): |
| (WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess): |
| (WebKit::NetworkConnectionToWebProcess::~NetworkConnectionToWebProcess): |
| (WebKit::NetworkConnectionToWebProcess::didReceiveMessage): |
| (WebKit::NetworkConnectionToWebProcess::didReceiveSyncMessage): |
| (WebKit::NetworkConnectionToWebProcess::didClose): |
| (WebKit::NetworkConnectionToWebProcess::createSocketStream): |
| (WebKit::NetworkConnectionToWebProcess::createSocketChannel): |
| (WebKit::NetworkConnectionToWebProcess::networkSession): |
| (WebKit::NetworkConnectionToWebProcess::resolveBlobReferences): |
| (WebKit::NetworkConnectionToWebProcess::storageSession): |
| (WebKit::NetworkConnectionToWebProcess::startDownload): |
| (WebKit::NetworkConnectionToWebProcess::convertMainResourceLoadToDownload): |
| (WebKit::NetworkConnectionToWebProcess::cookiesForDOM): |
| (WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM): |
| (WebKit::NetworkConnectionToWebProcess::cookiesEnabled): |
| (WebKit::NetworkConnectionToWebProcess::cookieRequestHeaderFieldValue): |
| (WebKit::NetworkConnectionToWebProcess::getRawCookies): |
| (WebKit::NetworkConnectionToWebProcess::deleteCookie): |
| (WebKit::NetworkConnectionToWebProcess::registerFileBlobURL): |
| (WebKit::NetworkConnectionToWebProcess::registerBlobURL): |
| (WebKit::NetworkConnectionToWebProcess::registerBlobURLFromURL): |
| (WebKit::NetworkConnectionToWebProcess::registerBlobURLOptionallyFileBacked): |
| (WebKit::NetworkConnectionToWebProcess::registerBlobURLForSlice): |
| (WebKit::NetworkConnectionToWebProcess::unregisterBlobURL): |
| (WebKit::NetworkConnectionToWebProcess::blobSize): |
| (WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFiles): |
| (WebKit::NetworkConnectionToWebProcess::removeStorageAccessForFrame): |
| (WebKit::NetworkConnectionToWebProcess::clearPageSpecificDataForResourceLoadStatistics): |
| (WebKit::NetworkConnectionToWebProcess::logUserInteraction): |
| (WebKit::NetworkConnectionToWebProcess::hasStorageAccess): |
| (WebKit::NetworkConnectionToWebProcess::requestStorageAccess): |
| (WebKit::NetworkConnectionToWebProcess::requestStorageAccessUnderOpener): |
| (WebKit::NetworkConnectionToWebProcess::startTrackingResourceLoad): |
| (WebKit::NetworkConnectionToWebProcess::establishIDBConnectionToServer): |
| (WebKit::NetworkConnectionToWebProcess::unregisterSWConnection): |
| (WebKit::NetworkConnectionToWebProcess::establishSWServerConnection): |
| (WebKit::NetworkConnectionToWebProcess::establishSWContextConnection): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| (WebKit::NetworkConnectionToWebProcess::sessionID const): |
| (WebKit::NetworkConnectionToWebProcess::startDownload): |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::createNetworkConnectionToWebProcess): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::start): |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::openNetworkProcessConnection): |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::sessionID const): |
| * UIProcess/WebProcessProxy.h: |
| * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp: |
| (WebKit::WebIDBConnectionToServer::WebIDBConnectionToServer): |
| * WebProcess/FileAPI/BlobRegistryProxy.cpp: |
| (WebKit::BlobRegistryProxy::registerFileBlobURL): |
| (WebKit::BlobRegistryProxy::registerBlobURL): |
| (WebKit::BlobRegistryProxy::registerBlobURLOptionallyFileBacked): |
| (WebKit::BlobRegistryProxy::unregisterBlobURL): |
| (WebKit::BlobRegistryProxy::registerBlobURLForSlice): |
| (WebKit::BlobRegistryProxy::blobSize): |
| * WebProcess/Network/NetworkProcessConnection.cpp: |
| (WebKit::NetworkProcessConnection::writeBlobsToTemporaryFiles): |
| * WebProcess/Network/WebSocketChannel.cpp: |
| (WebKit::WebSocketChannel::connect): |
| * WebProcess/Network/WebSocketStream.cpp: |
| (WebKit::WebSocketStream::WebSocketStream): |
| * WebProcess/Storage/WebSWClientConnection.cpp: |
| (WebKit::WebSWClientConnection::WebSWClientConnection): |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::m_userAgent): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::detachedFromParent2): |
| (WebKit::WebFrameLoaderClient::dispatchWillChangeDocument): |
| * WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp: |
| (WebKit::WebResourceLoadObserver::requestStorageAccessUnderOpener): |
| (WebKit::WebResourceLoadObserver::logUserInteractionWithReducedTimeResolution): |
| * WebProcess/WebPage/WebCookieJar.cpp: |
| (WebKit::WebCookieJar::cookies const): |
| (WebKit::WebCookieJar::setCookies): |
| (WebKit::WebCookieJar::cookiesEnabled const): |
| (WebKit::WebCookieJar::cookieRequestHeaderFieldValue const): |
| (WebKit::WebCookieJar::getRawCookies const): |
| (WebKit::WebCookieJar::deleteCookie): |
| * WebProcess/WebPage/WebFrame.cpp: |
| (WebKit::WebFrame::startDownload): |
| (WebKit::WebFrame::convertMainResourceLoadToDownload): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::close): |
| (WebKit::WebPage::hasStorageAccess): |
| (WebKit::WebPage::requestStorageAccess): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::createWebPage): |
| (WebKit::WebProcess::removeWebPage): |
| * WebProcess/WebProcess.h: |
| (WebKit::WebProcess::sessionID const): |
| |
| 2019-09-16 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| REGRESSION(r249142): [GTK] Epiphany delayed page loads continue indefinitely |
| https://bugs.webkit.org/show_bug.cgi?id=201544 |
| |
| Reviewed by Michael Catanzaro. |
| |
| WebPageProxy::loadAlternateHTML() is an exception, because it's an API request but always sets the navigationID |
| to 0. We always want to reset the pending API request URL when alternate HTML load starts. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didStartProvisionalLoadForFrameShared): Check also that it's an API alternate HTML load |
| to reset the pending API request URL. |
| |
| 2019-09-15 David Kilzer <ddkilzer@apple.com> |
| |
| REGRESSION (r248592): Leak of CFDictionaryRef in WebKit::NetworkRTCProvider::proxyInfoFromSession() |
| <https://webkit.org/b/201811> |
| |
| Reviewed by Youenn Fablet. |
| |
| * NetworkProcess/webrtc/NetworkRTCProvider.mm: |
| (WebKit::NetworkRTCProvider::proxyInfoFromSession): Use |
| RetainPtr<> to fix the leak. |
| |
| 2019-09-14 Adrian Perez de Castro <aperez@igalia.com> |
| |
| [GTK][WPE] Check for a Snap sandbox a bit harder |
| https://bugs.webkit.org/show_bug.cgi?id=201793 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * UIProcess/Launcher/glib/ProcessLauncherGLib.cpp: |
| (WebKit::isInsideSnap): Check whether the SNAP_NAME and SNAP_REVISION |
| environment variables are defined as well. |
| |
| 2019-09-14 Youenn Fablet <youenn@apple.com> |
| |
| Add release logging in WebLoaderStrategy to check that a load is going through service worker |
| https://bugs.webkit.org/show_bug.cgi?id=201761 |
| |
| Reviewed by Chris Dumez. |
| |
| This allows identifying whether a load remains pending on the service worker fetch path. |
| |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::scheduleLoad): |
| |
| 2019-09-13 Youenn Fablet <youenn@apple.com> |
| |
| [MacOS/iOS] imported/w3c/web-platform-tests/service-workers/cache-storage/serviceworker/cache-abort.https.html is sometimes crashing in Debug |
| https://bugs.webkit.org/show_bug.cgi?id=201686 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| A load might be cancelled shortly after being started in network process. |
| In that case, NetworkDataTaskCocoa might be destroyed, thus removed from the ID to task map |
| but some handlers might still be called until the NSURLSessionTask is finished cancelling. |
| This happens for authentication challenges. |
| In case where the NSURLSessionTask is cancelling, return early instead of processing the challenge. |
| |
| Covered by LayoutTests/imported/w3c/web-platform-tests/service-workers/cache-storage/window/cache-abort.https.html and LayoutTests/imported/w3c/web-platform-tests/service-workers/cache-storage/serviceworker/cache-abort.https.html no longer crashing in debug. |
| |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]): |
| |
| 2019-09-11 Dean Jackson <dino@apple.com> |
| |
| Provide a prototype for AR QuickLook to trigger processing in the originating page |
| https://bugs.webkit.org/show_bug.cgi?id=201371 |
| <rdar://54904781> |
| |
| Reviewed by Simon Fraser. |
| |
| Provide a way for a Web page to know if an action in the AR scene |
| was performed, if and only if the system AR library calls a delegate with |
| particular parameters. Post a message to the originating frame so |
| the page can detect the action. |
| |
| * Scripts/webkit/messages.py: Include the right header for SystemPreviewInfo. |
| |
| * Shared/WebCoreArgumentCoders.cpp: Use SystemPreviewInfo. |
| (IPC::ArgumentCoder<ResourceRequest>::encode): |
| (IPC::ArgumentCoder<ResourceRequest>::decode): |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _triggerSystemPreviewActionOnFrame:page:]): New helper/test function |
| to trigger the system preview action. |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| |
| * UIProcess/Cocoa/DownloadClient.mm: Use new type. |
| (WebKit::DownloadClient::didStart): |
| |
| * UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: Implement the delegate so that |
| we can detect an action. When it happens, tell the WebPageProxy to send a message. |
| |
| * UIProcess/Downloads/DownloadProxy.h: Use SystemPreviewInfo type. |
| (WebKit::DownloadProxy::systemPreviewDownloadInfo const): |
| (WebKit::DownloadProxy::systemPreviewDownloadRect const): Deleted. |
| |
| * UIProcess/SystemPreviewController.h: |
| (WebKit::SystemPreviewController::previewInfo const): |
| |
| * UIProcess/WebPageProxy.cpp: Send it over to the Web Process. |
| (WebKit::WebPageProxy::systemPreviewActionTriggered const): |
| * UIProcess/WebPageProxy.h: |
| |
| * WebProcess/WebPage/WebPage.cpp: Check the destination still exists, and then talk |
| to the Document. |
| (WebKit::WebPage::systemPreviewActionTriggered): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2019-09-13 Youenn Fablet <youenn@apple.com> |
| |
| Partition processes running service workers by session ID |
| https://bugs.webkit.org/show_bug.cgi?id=201643 |
| |
| Reviewed by Chris Dumez. |
| |
| Remove the management of server context connections from NetworkProcess. |
| The WebProcessPool service worker process map is now keyed by both registrable domain and sessionID. |
| Update WebProcessPool to only expose the number of service worker processes instead of the full map. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::didClose): |
| (WebKit::NetworkConnectionToWebProcess::establishSWContextConnection): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::swServerForSession): |
| * NetworkProcess/NetworkProcess.h: |
| (WebKit::NetworkProcess::swServerForSessionIfExists): |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::startFetch): |
| (WebKit::WebSWServerConnection::postMessageToServiceWorker): |
| (WebKit::WebSWServerConnection::scheduleJobInServer): |
| (WebKit::WebSWServerConnection::updateThrottleState): |
| (WebKit::WebSWServerConnection::contextConnectionCreated): |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.h: |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp: |
| (WebKit::WebSWServerToContextConnection::WebSWServerToContextConnection): |
| (WebKit::WebSWServerToContextConnection::~WebSWServerToContextConnection): |
| (WebKit::WebSWServerToContextConnection::connectionIsNoLongerNeeded): |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h: |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _webPageContentProcessCount]): |
| (-[WKProcessPool _serviceWorkerProcessCount]): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess): |
| (WebKit::WebProcessPool::disconnectProcess): |
| * UIProcess/WebProcessPool.h: |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::WebSWContextManagerConnection): |
| (WebKit::m_userAgent): |
| * WebProcess/Storage/WebSWContextManagerConnection.h: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::establishWorkerContextConnectionToNetworkProcess): |
| |
| 2019-09-13 Alex Christensen <achristensen@webkit.org> |
| |
| AuxiliaryProcessProxy::sendWithAsyncReply should queue up messages if sent while the process is starting like it does messages without replies |
| https://bugs.webkit.org/show_bug.cgi?id=201746 |
| |
| Reviewed by Youenn Fablet. |
| |
| * UIProcess/AuxiliaryProcessProxy.cpp: |
| (WebKit::AuxiliaryProcessProxy::sendMessage): |
| (WebKit::AuxiliaryProcessProxy::didFinishLaunching): |
| * UIProcess/AuxiliaryProcessProxy.h: |
| (WebKit::AuxiliaryProcessProxy::sendWithAsyncReply): |
| |
| 2019-09-13 Youenn Fablet <youenn@apple.com> |
| |
| Use WebProcess processIdentifier to identify Service Worker connections |
| https://bugs.webkit.org/show_bug.cgi?id=201459 |
| |
| Reviewed by Chris Dumez. |
| |
| Make WebSWServerConnection be stored in NetworkConnectionToWebProcess. |
| They are now keyed by session IDs hence why WebSWClientConnection is using the session ID as message connection ID. |
| Creation no longer requires a sync IPC since the connection is uniquely identified by its session ID and its process ID. |
| These IDs are stable over network process crash. |
| Within NetworkProcess, a server connection is managed by a SWServer which is session ID specific. |
| In that case, the process identifier uniquely identifies the connection. |
| |
| Move WebSWServerToContextConnection be owned by NetworkConnectionToWebProcess. |
| Instead of creating it when webprocess is connecting to network process, use a dedicated IPC message. |
| This is similar to WebSWServerConnection once WebProcess asks to create it. |
| This will allow existing WebProcess, in cache or running pages, to run service workers as well. |
| A context connection map is kept in Network Process to reuse context connections since these connections are not sessionID specific. |
| |
| Migrate from a single boolean to a HashSet to track whether some connections are in the process of being created. |
| Previously if two requests to create connections were done shortly one after the other on different registrable |
| domains, the second request would not be processed. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::didReceiveMessage): |
| (WebKit::NetworkConnectionToWebProcess::didReceiveSyncMessage): |
| (WebKit::NetworkConnectionToWebProcess::didClose): |
| (WebKit::NetworkConnectionToWebProcess::establishSWServerConnection): |
| (WebKit::NetworkConnectionToWebProcess::establishSWContextConnection): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::didReceiveMessage): |
| (WebKit::NetworkProcess::createNetworkConnectionToWebProcess): |
| (WebKit::NetworkProcess::forEachSWServer): |
| (WebKit::NetworkProcess::needsServerToContextConnectionForRegistrableDomain const): |
| (WebKit::NetworkProcess::createServerToContextConnection): |
| (WebKit::NetworkProcess::postMessageToServiceWorkerClient): |
| (WebKit::NetworkProcess::registerSWServerConnection): |
| (WebKit::NetworkProcess::unregisterSWServerConnection): |
| (WebKit::NetworkProcess::registerSWContextConnection): |
| (WebKit::NetworkProcess::unregisterSWContextConnection): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::WebSWServerConnection): |
| (WebKit::WebSWServerConnection::postMessageToServiceWorkerClient): |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.h: |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp: |
| (WebKit::WebSWServerToContextConnection::WebSWServerToContextConnection): |
| (WebKit::WebSWServerToContextConnection::~WebSWServerToContextConnection): |
| (WebKit::WebSWServerToContextConnection::postMessageToServiceWorkerClient): |
| (WebKit::WebSWServerToContextConnection::connectionMayNoLongerBeNeeded): |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h: |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.messages.in: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::openNetworkProcessConnection): |
| (WebKit::NetworkProcessProxy::establishWorkerContextConnectionToNetworkProcess): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::establishServiceWorkerContext): |
| * UIProcess/WebProcessProxy.h: |
| * WebProcess/Network/NetworkProcessConnection.cpp: |
| (WebKit::NetworkProcessConnection::didReceiveMessage): |
| (WebKit::NetworkProcessConnection::didClose): |
| (WebKit::NetworkProcessConnection::serviceWorkerConnectionForSession): |
| * WebProcess/Network/NetworkProcessConnection.h: |
| * WebProcess/Storage/WebSWClientConnection.cpp: |
| (WebKit::WebSWClientConnection::WebSWClientConnection): |
| (WebKit::WebSWClientConnection::~WebSWClientConnection): |
| (WebKit::WebSWClientConnection::messageSenderConnection const): |
| (WebKit::WebSWClientConnection::scheduleJobInServer): |
| (WebKit::WebSWClientConnection::finishFetchingScriptInServer): |
| (WebKit::WebSWClientConnection::addServiceWorkerRegistrationInServer): |
| (WebKit::WebSWClientConnection::removeServiceWorkerRegistrationInServer): |
| (WebKit::WebSWClientConnection::postMessageToServiceWorker): |
| (WebKit::WebSWClientConnection::registerServiceWorkerClient): |
| (WebKit::WebSWClientConnection::unregisterServiceWorkerClient): |
| (WebKit::WebSWClientConnection::didResolveRegistrationPromise): |
| (WebKit::WebSWClientConnection::matchRegistration): |
| (WebKit::WebSWClientConnection::runOrDelayTaskForImport): |
| (WebKit::WebSWClientConnection::whenRegistrationReady): |
| (WebKit::WebSWClientConnection::getRegistrations): |
| (WebKit::WebSWClientConnection::startFetch): |
| (WebKit::WebSWClientConnection::cancelFetch): |
| (WebKit::WebSWClientConnection::continueDidReceiveFetchResponse): |
| (WebKit::WebSWClientConnection::connectionToServerLost): |
| (WebKit::WebSWClientConnection::clear): |
| (WebKit::WebSWClientConnection::syncTerminateWorker): |
| (WebKit::WebSWClientConnection::updateThrottleState): |
| (WebKit::WebSWClientConnection::storeRegistrationsOnDiskForTesting): |
| * WebProcess/Storage/WebSWClientConnection.h: |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::WebSWContextManagerConnection): |
| (WebKit::m_userAgent): |
| (WebKit::WebSWContextManagerConnection::postMessageToServiceWorkerClient): |
| * WebProcess/Storage/WebSWContextManagerConnection.h: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::establishWorkerContextConnectionToNetworkProcess): |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| |
| 2019-09-12 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r249801. |
| |
| Caused two servier worker layout tests to become flaky. |
| |
| Reverted changeset: |
| |
| "Use WebProcess processIdentifier to identify Service Worker |
| connections" |
| https://bugs.webkit.org/show_bug.cgi?id=201459 |
| https://trac.webkit.org/changeset/249801 |
| |
| 2019-09-12 Chris Dumez <cdumez@apple.com> |
| |
| Pass sessionID to WebProcess with other WebProcessDataStoreParameters |
| https://bugs.webkit.org/show_bug.cgi?id=201730 |
| |
| Reviewed by Alex Christensen. |
| |
| Pass sessionID to WebProcess with other WebProcessDataStoreParameters and store |
| it on the WebProcess object. In follow-up patches, I will use this sessionID |
| more and leverage the fact that we have one sessionID per Webprocess to simplify |
| the WebKit2-layer code. |
| |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::encode const): |
| (WebKit::WebProcessCreationParameters::decode): |
| * Shared/WebProcessCreationParameters.h: |
| * Shared/WebProcessDataStoreParameters.h: |
| (WebKit::WebProcessDataStoreParameters::encode const): |
| (WebKit::WebProcessDataStoreParameters::decode): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::tryTakePrewarmedProcess): |
| (WebKit::WebProcessPool::webProcessDataStoreParameters): |
| (WebKit::WebProcessPool::initializeNewWebProcess): |
| (WebKit::WebProcessPool::sendWebProcessDataStoreParameters): Deleted. |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::setWebsiteDataStore): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeWebProcess): |
| (WebKit::WebProcess::setWebsiteDataStoreParameters): |
| * WebProcess/WebProcess.h: |
| (WebKit::WebProcess::sessionID const): |
| |
| 2019-09-12 Chris Dumez <cdumez@apple.com> |
| |
| [WKTR] Drop TestRunner.setPrivateBrowsingEnabled_DEPRECATED() |
| https://bugs.webkit.org/show_bug.cgi?id=201546 |
| |
| Reviewed by Alex Christensen. |
| |
| Drop TestRunner.setPrivateBrowsingEnabled_DEPRECATED() from WebKitTestRunner as it does not do |
| the right thing for WebKit2 and tests have been rewritten to not use it. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::ensureLegacyPrivateBrowsingSession): Deleted. |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * WebProcess/InjectedBundle/API/c/WKBundle.cpp: |
| (WKBundleSetPrivateBrowsingEnabled): Deleted. |
| * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::setPrivateBrowsingEnabled): Deleted. |
| * WebProcess/InjectedBundle/InjectedBundle.h: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::ensureLegacyPrivateBrowsingSessionInNetworkProcess): Deleted. |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebStorage/StorageNamespaceImpl.cpp: |
| (WebKit::StorageNamespaceImpl::setSessionIDForTesting): |
| |
| 2019-09-12 Adrian Perez de Castro <aperez@igalia.com> |
| |
| [GTK][WPE] webkit_settings_set_user_agent() allows content forbidden in HTTP headers |
| https://bugs.webkit.org/show_bug.cgi?id=201077 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * UIProcess/API/glib/WebKitSettings.cpp: |
| (webkit_settings_set_user_agent): Check the passed string using the new |
| WebCore::isValidUserAgentHeaderValue() function, and return early without |
| changing the setting if the string is not usable in the User-Agent HTTP |
| header. |
| |
| 2019-09-12 Mark Lam <mark.lam@apple.com> |
| |
| Harden JSC against the abuse of runtime options. |
| https://bugs.webkit.org/show_bug.cgi?id=201597 |
| <rdar://problem/55167068> |
| |
| Reviewed by Filip Pizlo. |
| |
| Linux parts contributed by Carlos Garcia Campos <cgarcia@igalia.com>. |
| |
| 1. Add plumbing to allow WK2 tests to configureJSCForTesting(). |
| 2. Removed the call enable Options::useBigInt in WebInspectorUI. |
| WebInspectorUI doesn't really need it for now. |
| |
| * PluginProcess/unix/PluginProcessMainUnix.cpp: |
| * Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h: |
| (WebKit::XPCServiceInitializer): |
| * Shared/unix/AuxiliaryProcessMain.cpp: |
| (WebKit::AuxiliaryProcessMainBase::parseCommandLine): |
| * Shared/unix/AuxiliaryProcessMain.h: |
| (WebKit::AuxiliaryProcessMain): |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| (API::ProcessPoolConfiguration::copy): |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| * UIProcess/API/C/WKContextConfigurationRef.cpp: |
| (WKContextConfigurationSetShouldConfigureJSCForTesting): |
| * UIProcess/API/C/WKContextConfigurationRef.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: |
| (-[_WKProcessPoolConfiguration configureJSCForTesting]): |
| (-[_WKProcessPoolConfiguration setConfigureJSCForTesting:]): |
| * UIProcess/Launcher/ProcessLauncher.h: |
| (WebKit::ProcessLauncher::Client::shouldConfigureJSCForTesting const): |
| * UIProcess/Launcher/glib/ProcessLauncherGLib.cpp: |
| (WebKit::ProcessLauncher::launchProcess): |
| * UIProcess/Launcher/mac/ProcessLauncherMac.mm: |
| (WebKit::ProcessLauncher::launchProcess): |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::shouldConfigureJSCForTesting const): |
| * UIProcess/WebProcessProxy.h: |
| * WebProcess/WebPage/WebInspectorUI.cpp: |
| (WebKit::WebInspectorUI::WebInspectorUI): |
| |
| 2019-09-12 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Fix accidental copies in NetworkLoadChecker.cpp |
| https://bugs.webkit.org/show_bug.cgi?id=199528 |
| |
| Reviewed by Youenn Fablet. |
| |
| Coverity noticed that we are copying a ResourceRequest and a ContentExtensionResultOrError |
| in NetworkLoadChecker::checkRequest by mistake, when the intent was to move them as rvalue |
| references. |
| |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::checkRequest): |
| * NetworkProcess/NetworkLoadChecker.h: |
| |
| 2019-09-12 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Crashes when intercept response continues with original content |
| https://bugs.webkit.org/show_bug.cgi?id=201707 |
| <rdar://problem/55261857> |
| |
| Reviewed by David Kilzer. |
| |
| * WebProcess/Network/WebResourceLoader.cpp: |
| (WebKit::WebResourceLoader::didReceiveData): |
| Copy the data for the callback since the deferral may run it much later. |
| |
| 2019-09-12 Youenn Fablet <youenn@apple.com> |
| |
| Use typed identifiers for IDB connection identifiers |
| https://bugs.webkit.org/show_bug.cgi?id=201682 |
| |
| Reviewed by Chris Dumez. |
| |
| Remove no longer needed conversion from process identifier to idb connection identifier. |
| |
| * NetworkProcess/IndexedDB/WebIDBConnectionToClient.h: |
| * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp: |
| (WebKit::WebIDBConnectionToServer::identifier const): |
| * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h: |
| |
| 2019-09-12 Charlie Turner <cturner@igalia.com> |
| |
| [GTK] Allow CacheStore::destroyEngine to destroy default engine for soup. |
| https://bugs.webkit.org/show_bug.cgi?id=201690 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * NetworkProcess/cache/CacheStorageEngine.cpp: |
| (WebKit::CacheStorage::Engine::destroyEngine): As we do for |
| NetworkProcess::destroySession, also allow destroying the engine |
| for the default session for the same reason. |
| |
| 2019-09-12 Youenn Fablet <youenn@apple.com> |
| |
| Use WebProcess processIdentifier to identify Service Worker connections |
| https://bugs.webkit.org/show_bug.cgi?id=201459 |
| |
| Reviewed by Chris Dumez. |
| |
| Make WebSWServerConnection be stored in NetworkConnectionToWebProcess. |
| They are now keyed by session IDs hence why WebSWClientConnection is using the session ID as message connection ID. |
| Creation no longer requires a sync IPC since the connection is uniquely identified by its session ID and its process ID. |
| These IDs are stable over network process crash. |
| Within NetworkProcess, a server connection is managed by a SWServer which is session ID specific. |
| In that case, the process identifier uniquely identifies the connection. |
| |
| Move WebSWServerToContextConnection be owned by NetworkConnectionToWebProcess. |
| Instead of creating it when webprocess is connecting to network process, use a dedicated IPC message. |
| This is similar to WebSWServerConnection once WebProcess asks to create it. |
| This will allow existing WebProcess, in cache or running pages, to run service workers as well. |
| A context connection map is kept in Network Process to reuse context connections since these connections are not sessionID specific. |
| |
| Migrate from a single boolean to a HashSet to track whether some connections are in the process of being created. |
| Previously if two requests to create connections were done shortly one after the other on different registrable |
| domains, the second request would not be processed. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::didReceiveMessage): |
| (WebKit::NetworkConnectionToWebProcess::didReceiveSyncMessage): |
| (WebKit::NetworkConnectionToWebProcess::didClose): |
| (WebKit::NetworkConnectionToWebProcess::establishSWServerConnection): |
| (WebKit::NetworkConnectionToWebProcess::establishSWContextConnection): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::didReceiveMessage): |
| (WebKit::NetworkProcess::createNetworkConnectionToWebProcess): |
| (WebKit::NetworkProcess::forEachSWServer): |
| (WebKit::NetworkProcess::needsServerToContextConnectionForRegistrableDomain const): |
| (WebKit::NetworkProcess::createServerToContextConnection): |
| (WebKit::NetworkProcess::postMessageToServiceWorkerClient): |
| (WebKit::NetworkProcess::registerSWServerConnection): |
| (WebKit::NetworkProcess::unregisterSWServerConnection): |
| (WebKit::NetworkProcess::registerSWContextConnection): |
| (WebKit::NetworkProcess::unregisterSWContextConnection): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::WebSWServerConnection): |
| (WebKit::WebSWServerConnection::postMessageToServiceWorkerClient): |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.h: |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp: |
| (WebKit::WebSWServerToContextConnection::WebSWServerToContextConnection): |
| (WebKit::WebSWServerToContextConnection::~WebSWServerToContextConnection): |
| (WebKit::WebSWServerToContextConnection::postMessageToServiceWorkerClient): |
| (WebKit::WebSWServerToContextConnection::connectionMayNoLongerBeNeeded): |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h: |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.messages.in: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::openNetworkProcessConnection): |
| (WebKit::NetworkProcessProxy::establishWorkerContextConnectionToNetworkProcess): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::establishServiceWorkerContext): |
| * UIProcess/WebProcessProxy.h: |
| * WebProcess/Network/NetworkProcessConnection.cpp: |
| (WebKit::NetworkProcessConnection::didReceiveMessage): |
| (WebKit::NetworkProcessConnection::didClose): |
| (WebKit::NetworkProcessConnection::serviceWorkerConnectionForSession): |
| * WebProcess/Network/NetworkProcessConnection.h: |
| * WebProcess/Storage/WebSWClientConnection.cpp: |
| (WebKit::WebSWClientConnection::WebSWClientConnection): |
| (WebKit::WebSWClientConnection::~WebSWClientConnection): |
| (WebKit::WebSWClientConnection::messageSenderConnection const): |
| (WebKit::WebSWClientConnection::scheduleJobInServer): |
| (WebKit::WebSWClientConnection::finishFetchingScriptInServer): |
| (WebKit::WebSWClientConnection::addServiceWorkerRegistrationInServer): |
| (WebKit::WebSWClientConnection::removeServiceWorkerRegistrationInServer): |
| (WebKit::WebSWClientConnection::postMessageToServiceWorker): |
| (WebKit::WebSWClientConnection::registerServiceWorkerClient): |
| (WebKit::WebSWClientConnection::unregisterServiceWorkerClient): |
| (WebKit::WebSWClientConnection::didResolveRegistrationPromise): |
| (WebKit::WebSWClientConnection::matchRegistration): |
| (WebKit::WebSWClientConnection::runOrDelayTaskForImport): |
| (WebKit::WebSWClientConnection::whenRegistrationReady): |
| (WebKit::WebSWClientConnection::getRegistrations): |
| (WebKit::WebSWClientConnection::startFetch): |
| (WebKit::WebSWClientConnection::cancelFetch): |
| (WebKit::WebSWClientConnection::continueDidReceiveFetchResponse): |
| (WebKit::WebSWClientConnection::connectionToServerLost): |
| (WebKit::WebSWClientConnection::clear): |
| (WebKit::WebSWClientConnection::syncTerminateWorker): |
| (WebKit::WebSWClientConnection::updateThrottleState): |
| (WebKit::WebSWClientConnection::storeRegistrationsOnDiskForTesting): |
| * WebProcess/Storage/WebSWClientConnection.h: |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::WebSWContextManagerConnection): |
| (WebKit::m_userAgent): |
| (WebKit::WebSWContextManagerConnection::postMessageToServiceWorkerClient): |
| * WebProcess/Storage/WebSWContextManagerConnection.h: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::establishWorkerContextConnectionToNetworkProcess): |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| |
| 2019-09-11 Keith Rollin <krollin@apple.com> |
| |
| Log timeoutValue passed on to CFNetwork |
| https://bugs.webkit.org/show_bug.cgi?id=201701 |
| <rdar://problem/55279683> |
| |
| Reviewed by Chris Dumez. |
| |
| We occasionally see cases where resource-loads into CFNetwork take a |
| long time. Rather than timing out after the default of 60s, they stay |
| pending for many minutes. To better understand why this is happening, |
| log the timeoutValue we pass to CFNetwork when loading resources. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::startNetworkLoad): |
| |
| 2019-09-11 Youenn Fablet <youenn@apple.com> |
| |
| Protect UserMediaRequest when stopping it |
| https://bugs.webkit.org/show_bug.cgi?id=201687 |
| <rdar://problem/55241215> |
| |
| Reviewed by Eric Carlson. |
| |
| By removing the request from the map, we may destroy the request. |
| To make sure it stays alive, take the request from the map. |
| |
| * WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp: |
| (WebKit::UserMediaPermissionRequestManager::cancelUserMediaRequest): |
| |
| 2019-09-11 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r249768. |
| |
| Caused 4 API tests to assert, perf test failures, and layout |
| test crashes under ASan |
| |
| Reverted changeset: |
| |
| "Remove unnecessary abstractions around WebsiteDataStore" |
| https://bugs.webkit.org/show_bug.cgi?id=201655 |
| https://trac.webkit.org/changeset/249768 |
| |
| 2019-09-11 Simon Fraser <simon.fraser@apple.com> |
| |
| REGRESSION (iOS 13): Top fixed element on apple.com flickers in size while pinching in |
| https://bugs.webkit.org/show_bug.cgi?id=201668 |
| rdar://problem/51934041 |
| |
| Reviewed by Frédéric Wang. |
| |
| The UI process can have transient state that pushes scrolling-tree-managed layers into custom |
| locations while pinch-zooming. We have to apply this state both when the visible rects |
| in the UI process change (existing code in -[WKContentView didUpdateVisibleRect:...]) and when |
| we get new layers from the web process (added in RemoteLayerTreeDrawingAreaProxy::commitLayerTree() |
| in this patch). |
| |
| Move some code into WebPageProxy to create functions that we can call from both places. |
| |
| For manual testing, visit a page with fixed banners, pinch in slightly, then pinch out and, |
| while keeping your fingers down, move the contents around. |
| |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm: |
| (WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/ios/WKContentView.mm: |
| (-[WKContentView didUpdateVisibleRect:unobscuredRect:contentInsets:unobscuredRectInScrollViewCoordinates:obscuredInsets:unobscuredSafeAreaInsets:inputViewBounds:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollableAncestorView:]): |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::unconstrainedLayoutViewportRect const): |
| (WebKit::WebPageProxy::adjustLayersForLayoutViewport): |
| |
| 2019-09-11 Antti Koivisto <antti@apple.com> |
| |
| REGRESSION (245006): can't scroll in "read more" view in Eventbrite app |
| https://bugs.webkit.org/show_bug.cgi?id=201683 |
| <rdar://problem/54582602> |
| |
| Reviewed by Simon Fraser. |
| |
| Content <body> has 'overflow:hidden'. |
| |
| * UIProcess/Cocoa/VersionChecks.h: |
| * UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp: |
| (WebKit::RemoteScrollingCoordinatorProxy::hasScrollableMainFrame const): |
| |
| Fix by adding an app specific LinkedOnOrAfter quirk that always allows main frame scrolling. |
| |
| 2019-09-11 Alex Christensen <achristensen@webkit.org> |
| |
| Remove unnecessary abstractions around WebsiteDataStore |
| https://bugs.webkit.org/show_bug.cgi?id=201655 |
| |
| Reviewed by Chris Dumez. |
| |
| This patch does four things to simplify WebsiteDataStore code: |
| 1. It removes API::WebsiteDataStore, which was just an unnecessary wrapper around WebKit::WebsiteDataStore. |
| 2. It deprecates the unused aliases of WebsiteDataStore, WKApplicationCacheManagerRef and WKKeyValueStorageManagerRef |
| 3. It removes the unused APIProcessPoolConfiguration properties that have been moved to WebsiteDataStore. |
| 4. It makes WKWebsiteDataStore._delegate weak instead of strong, as already annotated in WKWebsiteDataStorePrivate.h |
| There should be no change in behavior from this patch. |
| |
| * PlatformFTW.cmake: |
| * PlatformWin.cmake: |
| * Sources.txt: |
| * SourcesCocoa.txt: |
| * SourcesGTK.txt: |
| * SourcesWPE.txt: |
| * UIProcess/API/APIHTTPCookieStore.cpp: |
| * UIProcess/API/APIHTTPCookieStore.h: |
| * UIProcess/API/APIPageConfiguration.cpp: |
| (API::PageConfiguration::websiteDataStore): |
| (API::PageConfiguration::setWebsiteDataStore): |
| * UIProcess/API/APIPageConfiguration.h: |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| (API::ProcessPoolConfiguration::ProcessPoolConfiguration): |
| (API::ProcessPoolConfiguration::copy): |
| (API::ProcessPoolConfiguration::createWithWebsiteDataStoreConfiguration): Deleted. |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| * UIProcess/API/APIWebsiteDataStore.cpp: Removed. |
| * UIProcess/API/APIWebsiteDataStore.h: Removed. |
| * UIProcess/API/APIWebsitePolicies.cpp: |
| (API::WebsitePolicies::data): |
| * UIProcess/API/APIWebsitePolicies.h: |
| * UIProcess/API/C/WKAPICast.h: |
| * UIProcess/API/C/WKApplicationCacheManager.cpp: |
| (WKApplicationCacheManagerGetTypeID): |
| (WKApplicationCacheManagerGetApplicationCacheOrigins): |
| (WKApplicationCacheManagerDeleteEntriesForOrigin): |
| (WKApplicationCacheManagerDeleteAllEntries): |
| * UIProcess/API/C/WKApplicationCacheManager.h: |
| * UIProcess/API/C/WKFramePolicyListener.cpp: |
| (useWithPolicies): |
| * UIProcess/API/C/WKKeyValueStorageManager.cpp: |
| (WKKeyValueStorageManagerGetTypeID): |
| (WKKeyValueStorageManagerGetOriginKey): |
| (WKKeyValueStorageManagerGetCreationTimeKey): |
| (WKKeyValueStorageManagerGetModificationTimeKey): |
| (WKKeyValueStorageManagerGetKeyValueStorageOrigins): |
| (WKKeyValueStorageManagerGetStorageDetailsByOrigin): |
| (WKKeyValueStorageManagerDeleteEntriesForOrigin): |
| (WKKeyValueStorageManagerDeleteAllEntries): |
| * UIProcess/API/C/WKKeyValueStorageManager.h: |
| * UIProcess/API/C/WKResourceCacheManager.cpp: |
| (WKResourceCacheManagerGetTypeID): |
| (WKResourceCacheManagerGetCacheOrigins): |
| (WKResourceCacheManagerClearCacheForOrigin): |
| (WKResourceCacheManagerClearCacheForAllOrigins): |
| (toWebsiteDataTypes): Deleted. |
| * UIProcess/API/C/WKResourceCacheManager.h: |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreGetTypeID): |
| (WKWebsiteDataStoreGetDefaultDataStore): |
| (WKWebsiteDataStoreCreateNonPersistentDataStore): |
| (WKWebsiteDataStoreCreateWithConfiguration): |
| (WKWebsiteDataStoreGetHTTPCookieStore): |
| (WKWebsiteDataStoreSetResourceLoadStatisticsDebugModeWithCompletionHandler): |
| (WKWebsiteDataStoreSetResourceLoadStatisticsPrevalentResourceForDebugMode): |
| (WKWebsiteDataStoreSetStatisticsLastSeen): |
| (WKWebsiteDataStoreSetStatisticsPrevalentResource): |
| (WKWebsiteDataStoreSetStatisticsVeryPrevalentResource): |
| (WKWebsiteDataStoreDumpResourceLoadStatistics): |
| (WKWebsiteDataStoreIsStatisticsPrevalentResource): |
| (WKWebsiteDataStoreIsStatisticsVeryPrevalentResource): |
| (WKWebsiteDataStoreIsStatisticsRegisteredAsSubresourceUnder): |
| (WKWebsiteDataStoreIsStatisticsRegisteredAsSubFrameUnder): |
| (WKWebsiteDataStoreIsStatisticsRegisteredAsRedirectingTo): |
| (WKWebsiteDataStoreSetStatisticsHasHadUserInteraction): |
| (WKWebsiteDataStoreIsStatisticsHasHadUserInteraction): |
| (WKWebsiteDataStoreSetStatisticsGrandfathered): |
| (WKWebsiteDataStoreIsStatisticsGrandfathered): |
| (WKWebsiteDataStoreSetStatisticsSubframeUnderTopFrameOrigin): |
| (WKWebsiteDataStoreSetStatisticsSubresourceUnderTopFrameOrigin): |
| (WKWebsiteDataStoreSetStatisticsSubresourceUniqueRedirectTo): |
| (WKWebsiteDataStoreSetStatisticsSubresourceUniqueRedirectFrom): |
| (WKWebsiteDataStoreSetStatisticsTopFrameUniqueRedirectTo): |
| (WKWebsiteDataStoreSetStatisticsTopFrameUniqueRedirectFrom): |
| (WKWebsiteDataStoreSetStatisticsCrossSiteLoadWithLinkDecoration): |
| (WKWebsiteDataStoreSetStatisticsTimeToLiveUserInteraction): |
| (WKWebsiteDataStoreStatisticsProcessStatisticsAndDataRecords): |
| (WKWebsiteDataStoreStatisticsUpdateCookieBlocking): |
| (WKWebsiteDataStoreStatisticsSubmitTelemetry): |
| (WKWebsiteDataStoreSetStatisticsNotifyPagesWhenDataRecordsWereScanned): |
| (WKWebsiteDataStoreSetStatisticsIsRunningTest): |
| (WKWebsiteDataStoreSetStatisticsShouldClassifyResourcesBeforeDataRecordsRemoval): |
| (WKWebsiteDataStoreSetStatisticsNotifyPagesWhenTelemetryWasCaptured): |
| (WKWebsiteDataStoreSetStatisticsMinimumTimeBetweenDataRecordsRemoval): |
| (WKWebsiteDataStoreSetStatisticsGrandfatheringTime): |
| (WKWebsiteDataStoreSetStatisticsMaxStatisticsEntries): |
| (WKWebsiteDataStoreSetStatisticsPruneEntriesDownTo): |
| (WKWebsiteDataStoreStatisticsClearInMemoryAndPersistentStore): |
| (WKWebsiteDataStoreStatisticsClearInMemoryAndPersistentStoreModifiedSinceHours): |
| (WKWebsiteDataStoreStatisticsClearThroughWebsiteDataRemoval): |
| (WKWebsiteDataStoreStatisticsDeleteCookiesForTesting): |
| (WKWebsiteDataStoreStatisticsHasLocalStorage): |
| (WKWebsiteDataStoreSetStatisticsCacheMaxAgeCap): |
| (WKWebsiteDataStoreStatisticsHasIsolatedSession): |
| (WKWebsiteDataStoreStatisticsResetToConsistentState): |
| (WKWebsiteDataStoreRemoveAllFetchCaches): |
| (WKWebsiteDataStoreRemoveFetchCacheForOrigin): |
| (WKWebsiteDataStoreRemoveAllIndexedDatabases): |
| (WKWebsiteDataStoreRemoveLocalStorage): |
| (WKWebsiteDataStoreRemoveAllServiceWorkerRegistrations): |
| (WKWebsiteDataStoreGetFetchCacheOrigins): |
| (WKWebsiteDataStoreGetFetchCacheSizeForOrigin): |
| (WKWebsiteDataStoreCopyServiceWorkerRegistrationDirectory): |
| (WKWebsiteDataStoreSetServiceWorkerRegistrationDirectory): |
| (WKWebsiteDataStoreSetPerOriginStorageQuota): |
| (WKWebsiteDataStoreClearAllDeviceOrientationPermissions): |
| (WKWebsiteDataStoreSetWebAuthenticationMockConfiguration): |
| (WKWebsiteDataStoreClearAdClickAttributionsThroughWebsiteDataRemoval): |
| * UIProcess/API/C/WKWebsitePolicies.cpp: |
| * UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm: Removed. |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (+[WKWebsiteDataStore defaultDataStore]): |
| (+[WKWebsiteDataStore nonPersistentDataStore]): |
| (-[WKWebsiteDataStore dealloc]): |
| (-[WKWebsiteDataStore httpCookieStore]): |
| (-[WKWebsiteDataStore removeDataOfTypes:modifiedSince:completionHandler:]): |
| (-[WKWebsiteDataStore removeDataOfTypes:forDataRecords:completionHandler:]): |
| (+[WKWebsiteDataStore _defaultDataStoreExists]): |
| (+[WKWebsiteDataStore _deleteDefaultDataStoreForTesting]): |
| (-[WKWebsiteDataStore _initWithConfiguration:]): |
| (-[WKWebsiteDataStore _fetchDataRecordsOfTypes:withOptions:completionHandler:]): |
| (-[WKWebsiteDataStore _resourceLoadStatisticsEnabled]): |
| (-[WKWebsiteDataStore _setResourceLoadStatisticsEnabled:]): |
| (-[WKWebsiteDataStore _resourceLoadStatisticsDebugMode]): |
| (-[WKWebsiteDataStore _setResourceLoadStatisticsDebugMode:]): |
| (-[WKWebsiteDataStore _perOriginStorageQuota]): |
| (-[WKWebsiteDataStore _setPerOriginStorageQuota:]): |
| (-[WKWebsiteDataStore _cacheStorageDirectory]): |
| (-[WKWebsiteDataStore _setCacheStorageDirectory:]): |
| (-[WKWebsiteDataStore _serviceWorkerRegistrationDirectory]): |
| (-[WKWebsiteDataStore _setServiceWorkerRegistrationDirectory:]): |
| (-[WKWebsiteDataStore _setBoundInterfaceIdentifier:]): |
| (-[WKWebsiteDataStore _boundInterfaceIdentifier]): |
| (-[WKWebsiteDataStore _setAllowsCellularAccess:]): |
| (-[WKWebsiteDataStore _allowsCellularAccess]): |
| (-[WKWebsiteDataStore _setProxyConfiguration:]): |
| (-[WKWebsiteDataStore _sourceApplicationBundleIdentifier]): |
| (-[WKWebsiteDataStore _setSourceApplicationBundleIdentifier:]): |
| (-[WKWebsiteDataStore _sourceApplicationSecondaryIdentifier]): |
| (-[WKWebsiteDataStore _setSourceApplicationSecondaryIdentifier:]): |
| (-[WKWebsiteDataStore _setAllowsTLSFallback:]): |
| (-[WKWebsiteDataStore _allowsTLSFallback]): |
| (-[WKWebsiteDataStore _proxyConfiguration]): |
| (-[WKWebsiteDataStore _indexedDBDatabaseDirectory]): |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetShouldSubmitTelemetry:]): |
| (-[WKWebsiteDataStore _setResourceLoadStatisticsTestingCallback:]): |
| (-[WKWebsiteDataStore _getAllStorageAccessEntriesFor:completionHandler:]): |
| (-[WKWebsiteDataStore _scheduleCookieBlockingUpdate:]): |
| (-[WKWebsiteDataStore _setPrevalentDomain:completionHandler:]): |
| (-[WKWebsiteDataStore _getIsPrevalentDomain:completionHandler:]): |
| (-[WKWebsiteDataStore _clearPrevalentDomain:completionHandler:]): |
| (-[WKWebsiteDataStore _processStatisticsAndDataRecords:]): |
| (-[WKWebsiteDataStore _hasRegisteredServiceWorker]): |
| (-[WKWebsiteDataStore _delegate]): |
| (-[WKWebsiteDataStore set_delegate:]): |
| * UIProcess/API/Cocoa/WKWebsiteDataStoreInternal.h: |
| * UIProcess/API/glib/APIWebsiteDataStoreGLib.cpp: Removed. |
| * UIProcess/API/win/APIWebsiteDataStoreWin.cpp: |
| (API::WebsiteDataStore::defaultApplicationCacheDirectory): Deleted. |
| (API::WebsiteDataStore::defaultCacheStorageDirectory): Deleted. |
| (API::WebsiteDataStore::defaultNetworkCacheDirectory): Deleted. |
| (API::WebsiteDataStore::defaultIndexedDBDatabaseDirectory): Deleted. |
| (API::WebsiteDataStore::defaultServiceWorkerRegistrationDirectory): Deleted. |
| (API::WebsiteDataStore::defaultLocalStorageDirectory): Deleted. |
| (API::WebsiteDataStore::defaultMediaKeysStorageDirectory): Deleted. |
| (API::WebsiteDataStore::defaultWebSQLDatabaseDirectory): Deleted. |
| (API::WebsiteDataStore::defaultResourceLoadStatisticsDirectory): Deleted. |
| (API::WebsiteDataStore::cacheDirectoryFileSystemRepresentation): Deleted. |
| (API::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation): Deleted. |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::addSingleCookie): |
| (WebKit::WebAutomationSession::deleteAllCookies): |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::NetworkProcessProxy): |
| (WebKit::NetworkProcessProxy::websiteDataStoreFromSessionID): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/WebFramePolicyListenerProxy.cpp: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::WebPageProxy): |
| (WebKit::WebPageProxy::receivedNavigationPolicyDecision): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::m_webProcessCache): |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| (WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess): |
| (WebKit::WebProcessPool::resolvePathsForSandboxExtensions): |
| (WebKit::WebProcessPool::tryTakePrewarmedProcess): |
| (WebKit::WebProcessPool::sendWebProcessDataStoreParameters): |
| (WebKit::WebProcessPool::processDidFinishLaunching): |
| (WebKit::WebProcessPool::processForRegistrableDomain): |
| (WebKit::WebProcessPool::createWebPage): |
| (WebKit::WebProcessPool::mayHaveRegisteredServiceWorkers): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::defaultApplicationCacheDirectory): |
| (WebKit::WebsiteDataStore::defaultCacheStorageDirectory): |
| (WebKit::WebsiteDataStore::defaultNetworkCacheDirectory): |
| (WebKit::WebsiteDataStore::defaultMediaCacheDirectory): |
| (WebKit::WebsiteDataStore::defaultIndexedDBDatabaseDirectory): |
| (WebKit::WebsiteDataStore::defaultServiceWorkerRegistrationDirectory): |
| (WebKit::WebsiteDataStore::defaultLocalStorageDirectory): |
| (WebKit::WebsiteDataStore::defaultMediaKeysStorageDirectory): |
| (WebKit::WebsiteDataStore::defaultWebSQLDatabaseDirectory): |
| (WebKit::WebsiteDataStore::defaultResourceLoadStatisticsDirectory): |
| (WebKit::WebsiteDataStore::defaultJavaScriptConfigurationDirectory): |
| (WebKit::WebsiteDataStore::tempDirectoryFileSystemRepresentation): |
| (WebKit::WebsiteDataStore::cacheDirectoryFileSystemRepresentation): |
| (WebKit::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation): |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::globalDefaultDataStore): |
| (WebKit::WebsiteDataStore::defaultDataStore): |
| (WebKit::WebsiteDataStore::deleteDefaultDataStoreForTesting): |
| (WebKit::WebsiteDataStore::defaultDataStoreExists): |
| (WebKit::WebsiteDataStore::defaultDataStoreConfiguration): |
| (WebKit::WebsiteDataStore::isAssociatedProcessPool const): |
| (WebKit::WebsiteDataStore::processPools const): |
| (WebKit::WebsiteDataStore::defaultDeviceIdHashSaltsStorageDirectory): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp: |
| (WebKit::WebsiteDataStoreConfiguration::WebsiteDataStoreConfiguration): |
| * UIProcess/WebsiteData/win/WebsiteDataStoreWin.cpp: |
| (WebKit::WebsiteDataStore::defaultApplicationCacheDirectory): |
| (WebKit::WebsiteDataStore::defaultCacheStorageDirectory): |
| (WebKit::WebsiteDataStore::defaultNetworkCacheDirectory): |
| (WebKit::WebsiteDataStore::defaultIndexedDBDatabaseDirectory): |
| (WebKit::WebsiteDataStore::defaultServiceWorkerRegistrationDirectory): |
| (WebKit::WebsiteDataStore::defaultLocalStorageDirectory): |
| (WebKit::WebsiteDataStore::defaultMediaKeysStorageDirectory): |
| (WebKit::WebsiteDataStore::defaultWebSQLDatabaseDirectory): |
| (WebKit::WebsiteDataStore::defaultResourceLoadStatisticsDirectory): |
| (WebKit::WebsiteDataStore::cacheDirectoryFileSystemRepresentation): |
| (WebKit::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation): |
| * UIProcess/glib/WebsiteDataStoreGLib.cpp: Copied from Source/WebKit/UIProcess/API/glib/APIWebsiteDataStoreGLib.cpp. |
| (API::WebsiteDataStore::defaultApplicationCacheDirectory): Deleted. |
| (API::WebsiteDataStore::defaultNetworkCacheDirectory): Deleted. |
| (API::WebsiteDataStore::defaultCacheStorageDirectory): Deleted. |
| (API::WebsiteDataStore::defaultIndexedDBDatabaseDirectory): Deleted. |
| (API::WebsiteDataStore::defaultServiceWorkerRegistrationDirectory): Deleted. |
| (API::WebsiteDataStore::defaultLocalStorageDirectory): Deleted. |
| (API::WebsiteDataStore::defaultMediaKeysStorageDirectory): Deleted. |
| (API::WebsiteDataStore::defaultDeviceIdHashSaltsStorageDirectory): Deleted. |
| (API::WebsiteDataStore::defaultWebSQLDatabaseDirectory): Deleted. |
| (API::WebsiteDataStore::defaultHSTSDirectory): Deleted. |
| (API::WebsiteDataStore::defaultResourceLoadStatisticsDirectory): Deleted. |
| (API::WebsiteDataStore::cacheDirectoryFileSystemRepresentation): Deleted. |
| (API::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation): Deleted. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-09-11 Antoine Quint <graouts@apple.com> |
| |
| REGRESSION: Scrubbing on ted.com does not work well |
| https://bugs.webkit.org/show_bug.cgi?id=201635 |
| <rdar://problem/51463649> |
| |
| Reviewed by Dean Jackson. |
| |
| This website uses custom media controls that simply don't work well on iOS when the User-Agent string is the desktop one, so we default to the mobile UA. |
| |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::desktopClassBrowsingRecommendedForRequest): |
| |
| 2019-09-10 Tim Horton <timothy_horton@apple.com> |
| |
| REGRESSION (r233780): After swiping to navigate back, pinching to zoom in on webcontent snaps back to zoomed out when letting go |
| https://bugs.webkit.org/show_bug.cgi?id=201671 |
| <rdar://problem/50488372> |
| |
| Reviewed by Simon Fraser. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::didCommitLoad): |
| Reset m_lastTransactionIDWithScaleChange, since it is not guaranteed |
| to only march forward. Otherwise, we can get stuck with a very large |
| m_lastTransactionIDWithScaleChange, and will not allow stable-state |
| user-driven zooms until the current transactionID exceeds it. |
| |
| 2019-09-10 Chris Dumez <cdumez@apple.com> |
| |
| Nullptr crash in Page::sessionID() via WebKit::WebFrameLoaderClient::detachedFromParent2() |
| https://bugs.webkit.org/show_bug.cgi?id=201625 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| This is based on a patch from Ryosuke Niwa. |
| |
| The crash was caused by WebFrameLoaderClient::sessionID() calling WebPage::sessionID() without |
| checking the nullity of WebPage::m_page which can be null. Added a null check. |
| |
| Because passing a wrong session to RemoveStorageAccessForFrame could result in a leak, this patch |
| also replaces m_hasFrameSpecificStorageAccess boolean with an optioanl struct which stores |
| session ID, frame ID, and page ID even after WebCore::Frame or WebCore::Page had been cleared |
| or before WebFrameLoaderClient::m_frame is set. |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::sessionID const): |
| (WebKit::WebFrameLoaderClient::setHasFrameSpecificStorageAccess): |
| (WebKit::WebFrameLoaderClient::detachedFromParent2): |
| (WebKit::WebFrameLoaderClient::dispatchWillChangeDocument): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: |
| * WebProcess/WebPage/WebFrame.h: |
| (WebKit::WebFrame::frameLoaderClient const): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::requestStorageAccess): |
| |
| 2019-09-10 Brady Eidson <beidson@apple.com> |
| |
| Add SPI to save a PDF from the contents of a WKWebView. |
| <rdar://problem/48955900> and https://bugs.webkit.org/show_bug.cgi?id=195765 |
| |
| Reviewed by Tim Horton. |
| |
| This is refactoring a combination of "snapshotFirstPage" PDF printing code and the |
| "takeSnapshot" API code to capture the on-screen visible page to a PDF at full fidelity. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _takePDFSnapshotWithConfiguration:completionHandler:]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::drawToPDF): |
| (WebKit::WebPageProxy::drawToPDFCallback): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| |
| * UIProcess/ios/WKContentView.mm: |
| (-[WKContentView _wk_pageCountForPrintFormatter:]): |
| |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::drawToPDFCallback): Move to cross platform WebPageProxy. |
| |
| * WebProcess/WebPage/Cocoa/WebPageCocoa.mm: |
| (WebKit::WebPage::pdfSnapshotAtSize): |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::pdfSnapshotAtSize): Instead of assuming 1 page capped at 200 inches, |
| paginate every 200 inches. |
| (WebKit::WebPage::drawToPDF): |
| (WebKit::paintSnapshotAtSize): Deleted. |
| (WebKit::WebPage::pdfSnapshotAtSize): Deleted. |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2019-09-10 Chris Dumez <cdumez@apple.com> |
| |
| Hangs on Swiss.com due to the web process being blocked on StorageAreaMap::LoadValuesIfNeeded |
| https://bugs.webkit.org/show_bug.cgi?id=201644 |
| <rdar://problem/54942761> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Mark the StorageManagerSet::GetValues sync IPC from the WebContent process to the Network |
| process with a UnboundedSynchronousIPCScope so that it will process critical sync IPC |
| from the UIProcess (such as WebPage::GetPositionInformation) while waiting for a reply. |
| |
| * WebProcess/WebStorage/StorageAreaMap.cpp: |
| (WebKit::StorageAreaMap::loadValuesIfNeeded): |
| |
| 2019-09-10 David Quesada <david_quesada@apple.com> |
| |
| Remove a leftover reference to the StorageProcess |
| https://bugs.webkit.org/show_bug.cgi?id=192759 |
| |
| Reviewed by Alex Christensen. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| Remove com.apple.WebKit.Storage.sb as an input file to the "Copy iOS Sandbox Profiles |
| for Manual Sandboxing" build phase. The file no longer exists. |
| |
| 2019-09-10 Adrian Perez de Castro <aperez@igalia.com> |
| |
| [GTK][WPE] Fixes for non-unified builds after r249022 |
| https://bugs.webkit.org/show_bug.cgi?id=201610 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * NetworkProcess/NetworkCORSPreflightChecker.h: Add missing inclusion of the WebPageProxyIdentifier.h header. |
| * NetworkProcess/NetworkLoadChecker.h: Add missing inclusion of the WebPageProxyIdentifier.h header. |
| |
| 2019-09-10 Youenn Fablet <youenn@apple.com> |
| |
| UserMediaProcessManager is revoking sandbox extensions too aggressively |
| https://bugs.webkit.org/show_bug.cgi?id=201638 |
| |
| Reviewed by Eric Carlson. |
| |
| Sandbox revocation was sometimes happening when a page is being closed while another page from the same process is starting capture. |
| In that case, revocation might happen while it should not. |
| To prevent this, we do not revoke sandbox extensions if there are pending captures for a page of the process. |
| Whenever a page does not have any pending capture, sandbox extensions may be revoked. |
| |
| Covered by OnDeviceChangeCrash API test in debug mode. |
| |
| * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: |
| (WebKit::UserMediaPermissionRequestManagerProxy::finishGrantingRequest): |
| * UIProcess/UserMediaPermissionRequestManagerProxy.h: |
| (WebKit::UserMediaPermissionRequestManagerProxy::hasPendingCapture const): |
| * UIProcess/UserMediaProcessManager.cpp: |
| (WebKit::UserMediaProcessManager::revokeSandboxExtensionsIfNeeded): |
| |
| 2019-09-09 Chris Dumez <cdumez@apple.com> |
| |
| [iOS] We sometimes attempt to use a terminated prewarmed WebContent process |
| https://bugs.webkit.org/show_bug.cgi?id=201614 |
| <rdar://problem/54714507> |
| |
| Reviewed by Geoffrey Garen. |
| |
| On iOS, it is possible for our processes to get terminated (e.g. jetsammed) while the UIProcess |
| is suspended. Upon resuming, it takes a little while for the UIProcess to get the notification |
| that the mac connection to its child process has been severed and the UIProcess may try to use |
| it for a load. This is especially problematic for prewarmed process because the client will end |
| up showing a crash banner and reloading when we could have used a new process rather the prewarmed |
| one if we had known it was dead. |
| |
| This patch makes 2 improvements: |
| 1. It makes AuxiliaryProcessProxy::state() return Terminated if we still have a connection but |
| the PID is not the PID of a running process. I also added a check in tryTakePrewarmedProcess() |
| to not use the prewarmed process if it state() is Terminated. |
| 2. When the UIProcess is about to get suspended, have the process pools terminate their non-critical |
| processes (i.e. prewarmed + the ones used for PageCache). This makes WebKit friendlier with |
| other apps on the system when suspended with regards to memory. Also, it makes it less likely |
| useful WebContent processes will get jetsammed. |
| |
| * UIProcess/AuxiliaryProcessProxy.cpp: |
| (WebKit::AuxiliaryProcessProxy::state const): |
| (WebKit::AuxiliaryProcessProxy::isRunningProcessPID): |
| * UIProcess/AuxiliaryProcessProxy.h: |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::applicationIsAboutToSuspend): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::tryTakePrewarmedProcess): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/ios/ProcessAssertionIOS.mm: |
| (-[WKProcessAssertionBackgroundTaskManager init]): |
| (-[WKProcessAssertionBackgroundTaskManager _releaseBackgroundTask]): |
| |
| 2019-09-09 Chris Dumez <cdumez@apple.com> |
| |
| REGRESSION: http/tests/resourceLoadStatistics/do-not-capture-statistics-for-simple-top-navigations.html is frequently timing out on iOS EWS bots |
| https://bugs.webkit.org/show_bug.cgi?id=201550 |
| |
| Reviewed by Alex Christensen. |
| |
| * WebProcess/InjectedBundle/API/c/WKBundle.cpp: |
| (WKBundleResourceLoadStatisticsNotifyObserver): |
| * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: |
| |
| 2019-09-09 Alex Christensen <achristensen@webkit.org> |
| |
| Disable TLS 1.0 and 1.1 in WebSockets |
| https://bugs.webkit.org/show_bug.cgi?id=201573 |
| |
| Reviewed by Youenn Fablet. |
| |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa): |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _allowAnyTLSCertificateForWebSocketTesting]): |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeNetworkProcess): |
| |
| 2019-09-09 Tim Horton <timothy_horton@apple.com> |
| |
| Clarify some macCatalyst feature flags |
| https://bugs.webkit.org/show_bug.cgi?id=201619 |
| <rdar://problem/54615618> |
| |
| Reviewed by Megan Gardner. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView setupInteraction]): |
| (-[WKContentView cleanupInteraction]): |
| (-[WKContentView _removeDefaultGestureRecognizers]): |
| (-[WKContentView _addDefaultGestureRecognizers]): |
| (-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]): |
| (-[WKContentView _showShareSheet:inRect:completionHandler:]): |
| We prefer specific flags over platform checks. |
| |
| 2019-09-09 Chris Dumez <cdumez@apple.com> |
| |
| Stop using testRunner.setPrivateBrowsingEnabled_DEPRECATED() in http/tests/adClickAttribution/conversion-disabled-in-ephemeral-session.html |
| https://bugs.webkit.org/show_bug.cgi?id=201596 |
| |
| Reviewed by Alex Christensen. |
| |
| Allow WKFramePolicyListenerUseWithPolicies() C API to switch to a persistent non-default session. |
| This is important since WebKitTestRunner is not using the default session anymore and I need to |
| be able to switch it back to its normal session after going to an ephemeral one. |
| |
| * UIProcess/API/C/WKFramePolicyListener.cpp: |
| (useWithPolicies): |
| |
| 2019-09-09 Alex Christensen <achristensen@webkit.org> |
| |
| Deprecate unused SPI to preconnect to a server |
| https://bugs.webkit.org/show_bug.cgi?id=201558 |
| |
| Reviewed by Youenn Fablet. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::preconnectTo): Deleted. |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextPreconnectToServer): |
| * UIProcess/API/C/WKContextPrivate.h: |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _preconnectToServer:]): |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::preconnectToServer): Deleted. |
| * UIProcess/WebProcessPool.h: |
| |
| 2019-09-09 Per Arne Vollan <pvollan@apple.com> |
| |
| Unreviewed Windows build fix. |
| |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2019-09-09 Per Arne Vollan <pvollan@apple.com> |
| |
| [macOS] Pid is sometimes invalid when creating sandbox extensions by pid. |
| https://bugs.webkit.org/show_bug.cgi?id=201543 |
| <rdar://problem/54733465> |
| |
| Reviewed by Brent Fulgham. |
| |
| There is a race condition when starting a load of a local file, where the WebContent process has not finished |
| launching yet, and its pid is not available. When we try to create a sandbox extension by using the pid of the |
| WebContent process, it is not available in the cases where the WebContent process has just launched and has not |
| finished launching yet. This patch creates a new dummy Web page message, 'LoadRequestWaitingForPID', which will |
| be sent instead of a normal 'LoadRequest' message, and only when the WebContent process has not finished |
| launching. When the WebContent process has finished launching, and we are about to actually send the pending |
| messages, we can detect that a 'LoadRequestWaitingForPID' has been appended for sending, and replace it with a |
| normal 'LoadReqest' message where we have created the sandbox extension issue with a valid pid. The message |
| 'LoadRequestWaitingForPID' is never intended to reach the WebContent process, it is just there to replace with |
| a normal 'LoadRequest' message with a new sandbox extension. In the implementation of the message handler on |
| the WebContent process side, we assert that the method is never called. This patch makes sure the ordering of |
| the Web page messages are the same, even when we modify the message. |
| |
| * UIProcess/AuxiliaryProcessProxy.cpp: |
| (WebKit::AuxiliaryProcessProxy::didFinishLaunching): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle): |
| (WebKit::WebPageProxy::loadRequestWithNavigationShared): |
| (WebKit::WebPageProxy::loadFile): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::fileLoadRequest): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2019-09-09 Youenn Fablet <youenn@apple.com> |
| |
| Remove ServiceWorkerProcessProxy |
| https://bugs.webkit.org/show_bug.cgi?id=201506 |
| |
| Reviewed by Chris Dumez. |
| |
| Instead of using a specific ServiceWorkerProcessProxy, move the logic directly in WebProcessProxy. |
| This will allow us in the future to run a service worker in a process that already runs a web page, |
| thus saving the need to spin off a new process. |
| |
| This patch adds a new WebProcessProxy::createForServiceWorkers method instead of creating a |
| ServiceWorkerProcessProxy. The behavior is then similar: a process running a service worker cannot run a page. |
| |
| * Sources.txt: |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _hasRegisteredServiceWorker]): |
| * UIProcess/BackgroundProcessResponsivenessTimer.cpp: |
| (WebKit::BackgroundProcessResponsivenessTimer::shouldBeActive const): |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::openNetworkProcessConnection): |
| * UIProcess/ServiceWorkerProcessProxy.cpp: Removed. |
| * UIProcess/ServiceWorkerProcessProxy.h: Removed. |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess): |
| (WebKit::WebProcessPool::disconnectProcess): |
| (WebKit::WebProcessPool::processForRegistrableDomain): |
| (WebKit::WebProcessPool::createWebPage): |
| (WebKit::WebProcessPool::updateServiceWorkerUserAgent): |
| (WebKit::WebProcessPool::mayHaveRegisteredServiceWorkers): |
| (WebKit::WebProcessPool::updateProcessAssertions): |
| (WebKit::WebProcessPool::isServiceWorkerPageID const): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::createForServiceWorkers): |
| (WebKit::WebProcessProxy::getLaunchOptions): |
| (WebKit::WebProcessProxy::didBecomeUnresponsive): |
| (WebKit::WebProcessProxy::canBeAddedToWebProcessCache const): |
| (WebKit::WebProcessProxy::didSetAssertionState): |
| (WebKit::WebProcessProxy::didExceedCPULimit): |
| (WebKit::WebProcessProxy::establishServiceWorkerContext): |
| (WebKit::WebProcessProxy::setServiceWorkerUserAgent): |
| (WebKit::WebProcessProxy::updateServiceWorkerPreferencesStore): |
| * UIProcess/WebProcessProxy.h: |
| (WebKit::WebProcessProxy::isRunningServiceWorkers const): |
| (WebKit::WebProcessProxy::hasServiceWorkerPageProxy): |
| * UIProcess/glib/WebProcessPoolGLib.cpp: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-09-09 Youenn Fablet <youenn@apple.com> |
| |
| Use WebProcess processIdentifier to identify IDB connections between WebProcess and NetworkProcess |
| https://bugs.webkit.org/show_bug.cgi?id=201419 |
| |
| Reviewed by Alex Christensen. |
| |
| We change from an identifier generated by NetworkProcess to WebProcess identifier. |
| A WebProcess identifier is unique globally and is stable even in case of NetworkProcess crash. |
| This removes the need for a sync IPC and makes things more easy to handle in case of NetworkProcess crash. |
| |
| * NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp: |
| (WebKit::WebIDBConnectionToClient::create): |
| (WebKit::WebIDBConnectionToClient::WebIDBConnectionToClient): |
| (WebKit::WebIDBConnectionToClient::getAllDatabaseNames): |
| * NetworkProcess/IndexedDB/WebIDBConnectionToClient.h: |
| * NetworkProcess/IndexedDB/WebIDBConnectionToClient.messages.in: |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::establishIDBConnectionToServer): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp: |
| (WebKit::WebIDBConnectionToServer::WebIDBConnectionToServer): |
| (WebKit::WebIDBConnectionToServer::identifier const): |
| (WebKit::WebIDBConnectionToServer::coreConnectionToServer): |
| (WebKit::WebIDBConnectionToServer::getAllDatabaseNames): |
| * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h: |
| * WebProcess/Network/NetworkProcessConnection.cpp: |
| (WebKit::NetworkProcessConnection::didReceiveMessage): |
| (WebKit::NetworkProcessConnection::didClose): |
| (WebKit::NetworkProcessConnection::idbConnectionToServerForSession): |
| * WebProcess/Network/NetworkProcessConnection.h: |
| (WebKit::NetworkProcessConnection::existingIDBConnectionToServer const): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::networkProcessConnectionClosed): |
| |
| 2019-09-09 Youenn Fablet <youenn@apple.com> |
| |
| Move checkProcessLocalPortForActivity from provider to registry |
| https://bugs.webkit.org/show_bug.cgi?id=201400 |
| |
| Reviewed by Alex Christensen. |
| |
| Implement registry callback at NetworkProcess level. |
| Remove NetworkMessagePortChannelProvider since only a registry is now needed. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| * NetworkProcess/NetworkMessagePortChannelProvider.cpp: Removed. |
| * NetworkProcess/NetworkMessagePortChannelProvider.h: Removed. |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::createMessagePortChannelRegistry): |
| (WebKit::m_messagePortChannelRegistry): |
| (WebKit::m_messagePortChannelProvider): Deleted. |
| * NetworkProcess/NetworkProcess.h: |
| (WebKit::NetworkProcess::messagePortChannelRegistry): |
| * Sources.txt: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebCoreSupport/WebMessagePortChannelProvider.cpp: |
| (WebKit::WebMessagePortChannelProvider::checkProcessLocalPortForActivity): Deleted. |
| * WebProcess/WebCoreSupport/WebMessagePortChannelProvider.h: |
| |
| 2019-09-08 David Quesada <david_quesada@apple.com> |
| |
| Remove some unused constants in VersionChecks.h |
| https://bugs.webkit.org/show_bug.cgi?id=201599 |
| |
| Reviewed by Youenn Fablet. |
| |
| * UIProcess/Cocoa/VersionChecks.h: |
| Remove two macros that are unused as of r244512. |
| |
| 2019-09-08 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [macCatalyst] The last typed character in password fields shouldn't be echoed |
| https://bugs.webkit.org/show_bug.cgi?id=201595 |
| <rdar://problem/55166367> |
| |
| Reviewed by Tim Horton. |
| |
| Disable password echoing on macCatalyst, to better match behavior on macOS. |
| |
| * Shared/WebPreferencesDefaultValues.h: |
| |
| 2019-09-07 Chris Dumez <cdumez@apple.com> |
| |
| Rewrite http/tests/workers/service/serviceworker-private-browsing.https.html as an API test |
| https://bugs.webkit.org/show_bug.cgi?id=201574 |
| |
| Reviewed by Alex Christensen. |
| |
| Update Service Workers so that they obey the "secureContextChecksEnabled" preference. |
| This was needed to allow my service worker to access self.caches in my API test. |
| |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::updatePreferencesStore): |
| |
| 2019-09-07 Tim Horton <timothy_horton@apple.com> |
| |
| Marking up a note on iOS results in a PDF with no contents |
| https://bugs.webkit.org/show_bug.cgi?id=201530 |
| <rdar://problem/53686019> |
| |
| Unreviewed follow-up. |
| |
| * UIProcess/ios/WKContentView.mm: |
| (-[WKContentView _waitForDrawToPDFCallback]): |
| Remove an ASSERT_NOT_REACHED that fires if the synchronous wait for printing |
| times out. This is a totally legitimite situation that can occur if the process |
| crashes; there's no need for an assert there. |
| |
| 2019-09-07 Alex Christensen <achristensen@webkit.org> |
| |
| Null check m_client in NetworkDataTask::didReceiveResponse |
| https://bugs.webkit.org/show_bug.cgi?id=201587 |
| <rdar://problem/54743444> |
| |
| Reviewed by Chris Dumez. |
| |
| clearClient can be called at any time. We null check it everyhere else we use it, |
| and we are seeing crashes at this call site. Let's not crash. |
| |
| * NetworkProcess/NetworkDataTask.cpp: |
| (WebKit::NetworkDataTask::didReceiveResponse): |
| |
| 2019-09-07 Alex Christensen <achristensen@webkit.org> |
| |
| Remove WebsiteDataStore::legacyDefaultDataStoreConfiguration |
| https://bugs.webkit.org/show_bug.cgi?id=200054 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Its last needed use was removed in rdar://problem/47030981 |
| This changes WKContextConfigurationCreateWithLegacyOptions to be equal to WKContextConfigurationCreate, |
| but it has no remaining clients so it is only being retained for binary compabibility. |
| This also changes WKContextCreateWithInjectedBundlePath and WKContextCreate to be equal to WKContextCreateWithConfiguration, |
| and after rdar://problem/47030981 there are no meaningful clients of those functions, also. |
| There is one existing client of WKContextCreateWithInjectedBundlePath in rdar://problem/50323967 but our current implementation |
| is compatible enough for them because it uses their injected bundle still. |
| |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| (API::ProcessPoolConfiguration::copy): |
| (API::ProcessPoolConfiguration::createWithLegacyOptions): Deleted. |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| * UIProcess/API/APIWebsiteDataStore.cpp: |
| (API::WebsiteDataStore::createLegacy): Deleted. |
| (API::WebsiteDataStore::legacyDefaultDataStoreConfiguration): Deleted. |
| * UIProcess/API/APIWebsiteDataStore.h: |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextCreate): |
| (WKContextCreateWithInjectedBundlePath): |
| (WKContextGetWebsiteDataStore): |
| * UIProcess/API/C/WKContextConfigurationRef.cpp: |
| (WKContextConfigurationCreate): |
| (WKContextConfigurationCreateWithLegacyOptions): |
| * UIProcess/API/C/WKContextConfigurationRef.h: |
| * UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm: |
| (API::WebsiteDataStore::legacyDefaultApplicationCacheDirectory): Deleted. |
| (API::WebsiteDataStore::legacyDefaultNetworkCacheDirectory): Deleted. |
| (API::WebsiteDataStore::legacyDefaultWebSQLDatabaseDirectory): Deleted. |
| (API::WebsiteDataStore::legacyDefaultIndexedDBDatabaseDirectory): Deleted. |
| (API::WebsiteDataStore::legacyDefaultLocalStorageDirectory): Deleted. |
| (API::WebsiteDataStore::legacyDefaultMediaCacheDirectory): Deleted. |
| (API::WebsiteDataStore::legacyDefaultMediaKeysStorageDirectory): Deleted. |
| (API::WebsiteDataStore::legacyDefaultDeviceIdHashSaltsStorageDirectory): Deleted. |
| (API::WebsiteDataStore::legacyDefaultJavaScriptConfigurationDirectory): Deleted. |
| * UIProcess/API/Cocoa/WKProcessGroup.mm: |
| (-[WKProcessGroup initWithInjectedBundleURL:]): |
| * UIProcess/API/glib/APIWebsiteDataStoreGLib.cpp: |
| (API::WebsiteDataStore::legacyDefaultApplicationCacheDirectory): Deleted. |
| (API::WebsiteDataStore::legacyDefaultNetworkCacheDirectory): Deleted. |
| (API::WebsiteDataStore::legacyDefaultWebSQLDatabaseDirectory): Deleted. |
| (API::WebsiteDataStore::legacyDefaultIndexedDBDatabaseDirectory): Deleted. |
| (API::WebsiteDataStore::legacyDefaultLocalStorageDirectory): Deleted. |
| (API::WebsiteDataStore::legacyDefaultMediaCacheDirectory): Deleted. |
| (API::WebsiteDataStore::legacyDefaultMediaKeysStorageDirectory): Deleted. |
| (API::WebsiteDataStore::legacyDefaultDeviceIdHashSaltsStorageDirectory): Deleted. |
| (API::WebsiteDataStore::legacyDefaultJavaScriptConfigurationDirectory): Deleted. |
| * UIProcess/API/win/APIWebsiteDataStoreWin.cpp: |
| (API::WebsiteDataStore::legacyDefaultApplicationCacheDirectory): Deleted. |
| (API::WebsiteDataStore::legacyDefaultNetworkCacheDirectory): Deleted. |
| (API::WebsiteDataStore::legacyDefaultWebSQLDatabaseDirectory): Deleted. |
| (API::WebsiteDataStore::legacyDefaultIndexedDBDatabaseDirectory): Deleted. |
| (API::WebsiteDataStore::legacyDefaultLocalStorageDirectory): Deleted. |
| (API::WebsiteDataStore::legacyDefaultMediaCacheDirectory): Deleted. |
| (API::WebsiteDataStore::legacyDefaultMediaKeysStorageDirectory): Deleted. |
| (API::WebsiteDataStore::legacyDefaultDeviceIdHashSaltsStorageDirectory): Deleted. |
| (API::WebsiteDataStore::legacyDefaultJavaScriptConfigurationDirectory): Deleted. |
| * UIProcess/WebInspectorUtilities.cpp: |
| (WebKit::inspectorProcessPool): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::m_webProcessCache): |
| (WebKit::legacyWebsiteDataStoreConfiguration): Deleted. |
| * UIProcess/WebProcessPool.h: |
| |
| 2019-09-07 Alex Christensen <achristensen@webkit.org> |
| |
| Fix Windows build |
| https://bugs.webkit.org/show_bug.cgi?id=201517 |
| |
| * WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp: |
| |
| 2019-09-07 Alex Christensen <achristensen@webkit.org> |
| |
| Remove calls to WKContextGetWebsiteDataStore missed in r249614 |
| https://bugs.webkit.org/show_bug.cgi?id=200050 |
| |
| It turns out I didn't need to introduce another way of clearing all cookies between tests. |
| I just needed to make the call to WKHTTPCookieStoreDeleteAllCookies use the right WebsiteDataStore. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::clearCachedCredentials): |
| * NetworkProcess/NetworkSession.h: |
| (WebKit::NetworkSession::clearCredentials): |
| (WebKit::NetworkSession::clearCookies): Deleted. |
| * NetworkProcess/cocoa/NetworkSessionCocoa.h: |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::NetworkSessionCocoa::clearCookies): Deleted. |
| |
| 2019-09-07 Alex Christensen <achristensen@webkit.org> |
| |
| Fix Windows build. |
| https://bugs.webkit.org/show_bug.cgi?id=200050 |
| |
| * PlatformWin.cmake: |
| |
| 2019-09-07 Alex Christensen <achristensen@webkit.org> |
| |
| Fix Windows build. |
| https://bugs.webkit.org/show_bug.cgi?id=201517 |
| |
| * WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp: |
| |
| 2019-09-07 Alex Christensen <achristensen@webkit.org> |
| |
| Deprecate WKContextGetWebsiteDataStore |
| https://bugs.webkit.org/show_bug.cgi?id=200050 |
| |
| Reviewed by Geoff Garen. |
| |
| The last use of it was removed in rdar://problem/47030981 |
| In order to remove its use in WebKitTestRunner, I needed to make WKWebsiteDataStoreConfigurationRef |
| to replace the WKContextConfigurationRef members that should've been associated with the WebsiteDataStore the whole time. |
| There is one use of WKContextGetWebsiteDataStore in TestWebKitAPI still I'll investigate later. |
| |
| * Shared/API/c/WKBase.h: |
| * Sources.txt: |
| * UIProcess/API/APIWebsiteDataStore.cpp: |
| (API::WebsiteDataStore::create): |
| * UIProcess/API/APIWebsiteDataStore.h: |
| * UIProcess/API/C/WKAPICast.h: |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextGetApplicationCacheManager): |
| (WKContextGetKeyValueStorageManager): |
| (WKContextGetResourceCacheManager): |
| * UIProcess/API/C/WKContext.h: |
| * UIProcess/API/C/WKContextConfigurationRef.cpp: |
| (WKContextConfigurationCopyDiskCacheDirectory): |
| (WKContextConfigurationSetDiskCacheDirectory): |
| (WKContextConfigurationCopyApplicationCacheDirectory): |
| (WKContextConfigurationSetApplicationCacheDirectory): |
| (WKContextConfigurationCopyIndexedDBDatabaseDirectory): |
| (WKContextConfigurationSetIndexedDBDatabaseDirectory): |
| (WKContextConfigurationCopyLocalStorageDirectory): |
| (WKContextConfigurationSetLocalStorageDirectory): |
| (WKContextConfigurationCopyWebSQLDatabaseDirectory): |
| (WKContextConfigurationSetWebSQLDatabaseDirectory): |
| (WKContextConfigurationCopyMediaKeysStorageDirectory): |
| (WKContextConfigurationSetMediaKeysStorageDirectory): |
| (WKContextConfigurationCopyResourceLoadStatisticsDirectory): |
| (WKContextConfigurationSetResourceLoadStatisticsDirectory): |
| * UIProcess/API/C/WKContextConfigurationRef.h: |
| * UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.cpp: Added. |
| (WKWebsiteDataStoreConfigurationGetTypeID): |
| (WKWebsiteDataStoreConfigurationCreate): |
| (WKWebsiteDataStoreConfigurationCopyApplicationCacheDirectory): |
| (WKWebsiteDataStoreConfigurationSetApplicationCacheDirectory): |
| (WKWebsiteDataStoreConfigurationCopyNetworkCacheDirectory): |
| (WKWebsiteDataStoreConfigurationSetNetworkCacheDirectory): |
| (WKWebsiteDataStoreConfigurationCopyIndexedDBDatabaseDirectory): |
| (WKWebsiteDataStoreConfigurationSetIndexedDBDatabaseDirectory): |
| (WKWebsiteDataStoreConfigurationCopyLocalStorageDirectory): |
| (WKWebsiteDataStoreConfigurationSetLocalStorageDirectory): |
| (WKWebsiteDataStoreConfigurationCopyWebSQLDatabaseDirectory): |
| (WKWebsiteDataStoreConfigurationSetWebSQLDatabaseDirectory): |
| (WKWebsiteDataStoreConfigurationCopyMediaKeysStorageDirectory): |
| (WKWebsiteDataStoreConfigurationSetMediaKeysStorageDirectory): |
| (WKWebsiteDataStoreConfigurationCopyResourceLoadStatisticsDirectory): |
| (WKWebsiteDataStoreConfigurationSetResourceLoadStatisticsDirectory): |
| * UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.h: Added. |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreCreateWithConfiguration): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-09-06 Mark Lam <mark.lam@apple.com> |
| |
| Harden protection of the Gigacage Config parameters. |
| https://bugs.webkit.org/show_bug.cgi?id=201570 |
| <rdar://problem/55134229> |
| |
| Reviewed by Saam Barati. |
| |
| Just renaming a function name here. |
| |
| * WebProcess/WebProcess.cpp: |
| |
| 2019-09-06 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Incorrect selection rect revealed after pasting images in a contenteditable element |
| https://bugs.webkit.org/show_bug.cgi?id=201549 |
| <rdar://problem/50956429> |
| |
| Reviewed by Simon Fraser. |
| |
| Tweak some existing logic to use the new visibleImageElementsInRangeWithNonLoadedImages helper function. See |
| WebCore for more details. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::didConcludeEditDrag): |
| |
| 2019-09-06 Chris Dumez <cdumez@apple.com> |
| |
| Move the ResourceLoadObserver logic to WebKit2 |
| https://bugs.webkit.org/show_bug.cgi?id=201517 |
| |
| Reviewed by Brent Fulgham. |
| |
| Move the ResourceLoadObserver logic to WebKit2 since it is not used by WebKit1. This allows us to simplify |
| code. |
| |
| In a follow-up patch, I will simplify the code even further by leveraging the fact that a WebContent process |
| is always associated with a single WebsiteDataStore / sessionID: |
| - No need for a HashMap of sessionIDs |
| - No need to even allocate the ResourceLoadObserver if the WebProcess is associated with an ephemeral session. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::resourceLoadStatisticsUpdated): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * Sources.txt: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp: Copied from Source/WebCore/loader/ResourceLoadObserver.cpp. |
| (WebKit::is3xxRedirect): |
| (WebKit::WebResourceLoadObserver::WebResourceLoadObserver): |
| (WebKit::WebResourceLoadObserver::shouldLog const): |
| (WebKit::WebResourceLoadObserver::requestStorageAccessUnderOpener): |
| (WebKit::WebResourceLoadObserver::ensureResourceStatisticsForRegistrableDomain): |
| (WebKit::WebResourceLoadObserver::scheduleNotificationIfNeeded): |
| (WebKit::WebResourceLoadObserver::updateCentralStatisticsStore): |
| (WebKit::WebResourceLoadObserver::statisticsForURL): |
| (WebKit::WebResourceLoadObserver::takeStatistics): |
| (WebKit::WebResourceLoadObserver::clearState): |
| (WebKit::WebResourceLoadObserver::nonNullOwnerURL const): |
| (WebKit::WebResourceLoadObserver::logFontLoad): |
| (WebKit::WebResourceLoadObserver::logCanvasRead): |
| (WebKit::WebResourceLoadObserver::logCanvasWriteOrMeasure): |
| (WebKit::WebResourceLoadObserver::logNavigatorAPIAccessed): |
| (WebKit::WebResourceLoadObserver::logScreenAPIAccessed): |
| (WebKit::WebResourceLoadObserver::logSubresourceLoading): |
| (WebKit::WebResourceLoadObserver::logWebSocketLoading): |
| (WebKit::WebResourceLoadObserver::logUserInteractionWithReducedTimeResolution): |
| * WebProcess/WebCoreSupport/WebResourceLoadObserver.h: Added. |
| * WebProcess/WebProcess.cpp: |
| |
| 2019-09-06 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthn] Make WebAuthn default off and let clients turn it on at will |
| https://bugs.webkit.org/show_bug.cgi?id=201439 |
| <rdar://problem/54998154> |
| |
| Reviewed by Youenn Fablet. |
| |
| This patch makes WebAuthn default off such that clients that have the right entitlements |
| could turn it on and we don't risk at turning on a Web API that does nothing by default. |
| |
| This patch doesn't add any SPI to turn the feature on as it is currently doable via |
| - [WKPreferencesPrivate _setEnabled:forExperimentalFeature:]. |
| |
| * Shared/WebPreferences.yaml: |
| * Shared/WebPreferencesDefaultValues.cpp: |
| (WebKit::defaultWebAuthenticationEnabled): Deleted. |
| * Shared/WebPreferencesDefaultValues.h: |
| |
| 2019-09-06 Alex Christensen <achristensen@webkit.org> |
| |
| Deprecate all WKCookieManagerRef functions |
| https://bugs.webkit.org/show_bug.cgi?id=201473 |
| |
| Reviewed by Chris Dumez. |
| |
| Their use was removed in rdar://problem/55039275 |
| Created replacement C API that more closely resembles the public ObjC API for WebKitTestRunner. |
| |
| * Shared/API/c/WKBase.h: |
| * Sources.txt: |
| * UIProcess/API/APIHTTPCookieStore.cpp: |
| (API::HTTPCookieStore::deleteAllCookies): |
| (API::HTTPCookieStore::setHTTPCookieAcceptPolicy): |
| (API::HTTPCookieStore::deleteCookiesInDefaultUIProcessCookieStore): |
| (API::HTTPCookieStore::setHTTPCookieAcceptPolicyInDefaultUIProcessCookieStore): |
| * UIProcess/API/APIHTTPCookieStore.h: |
| * UIProcess/API/C/WKAPICast.h: |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextSetStorageAccessAPIEnabled): |
| * UIProcess/API/C/WKContext.h: |
| * UIProcess/API/C/WKCookieManager.cpp: |
| (WKCookieManagerGetTypeID): |
| (WKCookieManagerSetClient): |
| (WKCookieManagerGetHostnamesWithCookies): |
| (WKCookieManagerDeleteCookiesForHostname): |
| (WKCookieManagerDeleteAllCookies): |
| (WKCookieManagerDeleteAllCookiesModifiedAfterDate): |
| (WKCookieManagerSetHTTPCookieAcceptPolicy): |
| (WKCookieManagerGetHTTPCookieAcceptPolicy): |
| (WKCookieManagerSetStorageAccessAPIEnabled): |
| (WKCookieManagerStartObservingCookieChanges): |
| (WKCookieManagerStopObservingCookieChanges): |
| * UIProcess/API/C/WKCookieManager.h: |
| * UIProcess/API/C/WKHTTPCookieStoreRef.cpp: Added. |
| (WKHTTPCookieStoreGetTypeID): |
| (WKHTTPCookieStoreDeleteAllCookies): |
| (WKHTTPCookieStoreSetHTTPCookieAcceptPolicy): |
| * UIProcess/API/C/WKHTTPCookieStoreRef.h: Added. |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreGetHTTPCookieStore): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| * UIProcess/API/Cocoa/APIHTTPCookieStoreCocoa.mm: |
| (API::HTTPCookieStore::deleteCookiesInDefaultUIProcessCookieStore): |
| (API::toNSHTTPCookieAcceptPolicy): |
| (API::HTTPCookieStore::setHTTPCookieAcceptPolicyInDefaultUIProcessCookieStore): |
| * UIProcess/WebCookieManagerProxy.cpp: |
| (WebKit::WebCookieManagerProxy::setStorageAccessAPIEnabled): Deleted. |
| * UIProcess/WebCookieManagerProxy.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-09-06 Darryl Pogue <darryl@dpogue.ca> |
| |
| REGRESSION(iOS 12): Keyboard dismissal leaves WKWebView viewport-fit=cover content offscreen |
| https://bugs.webkit.org/show_bug.cgi?id=192564 |
| |
| Reviewed by Tim Horton. |
| |
| The new keyboard height was being read into a variable after the scrollview had already been |
| adjusted. This worked when the keyboard was opening, because the scrollview is adjusted with |
| the correct value a second time when the keyboard animation has finished. However, when the |
| keyboard is closed, the adjustment was being made before the correct height was stored, |
| leading to the scrollview being positioned as if the keyboard were still open. |
| |
| * UIProcess/ios/WKScrollView.mm: |
| (-[WKScrollView _adjustForAutomaticKeyboardInfo:animated:lastAdjustment:]): |
| |
| 2019-09-06 Tim Horton <timothy_horton@apple.com> |
| |
| Marking up a note on iOS results in a PDF with no contents |
| https://bugs.webkit.org/show_bug.cgi?id=201530 |
| <rdar://problem/53686019> |
| |
| Reviewed by Andy Estes. |
| |
| * Platform/IPC/Connection.cpp: |
| (IPC::Connection::Connection): |
| (IPC::Connection::waitForMessage): |
| (IPC::Connection::connectionDidClose): |
| * Platform/IPC/Connection.h: |
| If the main thread is blocked when the Web Content process dies, and |
| something eventually calls waitForAndDispatchImmediately without |
| returning control to the main run loop, we will wait for the full timeout, |
| because a) the code to mark the connection invalid is dispatched |
| to the main thread, and b) the secondary thread that is informed of |
| the Web Content process dying did not yet have a "waiting for" message |
| to mark as interrupted (because it wasn't waiting yet). |
| |
| Fix this race by adding a bit that is set under the waitForMessage lock |
| on the secondary thread when the connection is invalidated, identically |
| to m_shouldWaitForSyncReplies, which solves the same problem for sync |
| messages. |
| |
| Read the new bit when we are about to start waiting, and bail if it is set. |
| It's OK to not read it inside the loop because we are guaranteed to have |
| waitForMessage set at that point, so the normal interruption bit will work. |
| |
| * UIProcess/ios/WKContentView.mm: |
| (-[WKContentView _processDidExit]): |
| Reset _isPrintingToPDF; the Web Content process is never going to get |
| back to us if it crashes. |
| |
| (-[WKContentView _wk_pageCountForPrintFormatter:]): |
| Do not bail from starting a printing operation if one is already occurring. |
| This fixes the original bug, because Markup ends up invalidating the page |
| count at least one extra time before asking for the printed document. |
| Instead of maintaining the fragile requirement that you cannot recompute |
| the page count while printing, just let it happen. In order to make this |
| work safely, synchronously wait for the previous printed result before |
| continuing with the next print. |
| |
| We could do more coalescing here if need be, but calls to -_recalcPageCount |
| are not high in volume. |
| |
| 2019-09-06 Alex Christensen <achristensen@webkit.org> |
| |
| Fix unused argument warning from GCC. |
| |
| * Platform/IPC/ArgumentCoders.h: |
| (IPC::TupleDecoder<0>::decode): |
| There was indeed an unused argument. |
| |
| 2019-09-06 Alex Christensen <achristensen@webkit.org> |
| |
| When disabling legacy private browsing for testing, change the SessionID back to what it was, not the defaultSessionID |
| https://bugs.webkit.org/show_bug.cgi?id=201480 |
| |
| Reviewed by Youenn Fablet. |
| |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::setPrivateBrowsingEnabled): |
| * WebProcess/InjectedBundle/InjectedBundle.h: |
| |
| 2019-09-06 Patrick Griffis <pgriffis@igalia.com> |
| |
| [GTK][WPE] Do not enable the sandbox in Snap |
| https://bugs.webkit.org/show_bug.cgi?id=201486 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Running inside of Snap adds its own complications and is simply |
| not supported for now. |
| |
| Also update isInsideFlatpak() for consistency. |
| |
| * UIProcess/Launcher/glib/ProcessLauncherGLib.cpp: |
| (WebKit::isInsideFlatpak): |
| (WebKit::isInsideSnap): |
| (WebKit::ProcessLauncher::launchProcess): |
| |
| 2019-09-05 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Crashes when intercept response is a 404 |
| https://bugs.webkit.org/show_bug.cgi?id=201514 |
| |
| Reviewed by Alex Christensen. |
| |
| * WebProcess/Network/WebResourceLoader.cpp: |
| (WebKit::WebResourceLoader::didReceiveResponse): |
| Ensure the WebResourceLoader stays around during intercepts. |
| |
| (WebKit::WebResourceLoader::didReceiveData): |
| (WebKit::WebResourceLoader::didFinishResourceLoad): |
| (WebKit::WebResourceLoader::didFailResourceLoad): |
| Only perform the work if the m_coreLoader is still alive. |
| |
| 2019-09-05 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [Win] Add support for MouseEvent.buttons |
| https://bugs.webkit.org/show_bug.cgi?id=201445 |
| |
| Reviewed by Brent Fulgham. |
| |
| * Shared/win/WebEventFactory.cpp: |
| (WebKit::WebEventFactory::createWebMouseEvent): |
| Set m_buttons. |
| |
| 2019-09-05 Chris Dumez <cdumez@apple.com> |
| |
| REGRESSION: http/tests/adClickAttribution/second-attribution-converted-with-higher-priority.html and http/tests/adClickAttribution/second-attribution-converted-with-lower-priority.html are flaky timeouts |
| https://bugs.webkit.org/show_bug.cgi?id=201440 |
| <rdar://problem/54998427> |
| |
| Reviewed by Alex Christensen. |
| |
| Add private WKBundlePage API to query if the WebPage is currently suspended or not. |
| |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: |
| (WKBundlePageIsSuspended): |
| * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h: |
| |
| 2019-09-05 Sihui Liu <sihui_liu@apple.com> |
| |
| Remove StorageArea pointers in StorageManagerSet when removing StorageManagers that own them |
| https://bugs.webkit.org/show_bug.cgi?id=201324 |
| |
| Reviewed by Alex Christensen. |
| |
| * NetworkProcess/WebStorage/LocalStorageNamespace.cpp: |
| (WebKit::LocalStorageNamespace::storageAreaIdentifiers const): |
| * NetworkProcess/WebStorage/LocalStorageNamespace.h: |
| * NetworkProcess/WebStorage/SessionStorageNamespace.cpp: |
| (WebKit::SessionStorageNamespace::storageAreaIdentifiers const): |
| * NetworkProcess/WebStorage/SessionStorageNamespace.h: |
| * NetworkProcess/WebStorage/StorageManager.cpp: |
| (WebKit::StorageManager::allStorageAreaIdentifiers const): |
| * NetworkProcess/WebStorage/StorageManager.h: |
| * NetworkProcess/WebStorage/StorageManagerSet.cpp: |
| (WebKit::StorageManagerSet::remove): |
| * NetworkProcess/WebStorage/TransientLocalStorageNamespace.cpp: |
| (WebKit::TransientLocalStorageNamespace::storageAreaIdentifiers const): |
| * NetworkProcess/WebStorage/TransientLocalStorageNamespace.h: |
| |
| 2019-09-05 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| REGRESSION(r249275): [GTK][WPE] wrong page ID returned by webkit_web_view_get_page_id() |
| https://bugs.webkit.org/show_bug.cgi?id=201504 |
| |
| Reviewed by Michael Catanzaro. |
| |
| We want to return the page identifier not the web page proxy id. |
| |
| * UIProcess/API/glib/WebKitWebView.cpp: |
| (webkit_web_view_get_page_id): |
| |
| 2019-09-05 Pablo Saavedra <psaavedra@igalia.com> |
| |
| Build failure after r249501 for ports with SERVICE_WORKER set OFF |
| https://bugs.webkit.org/show_bug.cgi?id=201503 |
| |
| Reviewed by Youenn Fablet. |
| |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::scheduleLoad): |
| |
| 2019-09-04 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| MobileSafari may crash when invoking the C++ lambda in -[WKContentView _shareForWebView:] |
| https://bugs.webkit.org/show_bug.cgi?id=201479 |
| <rdar://problem/51511834> |
| |
| Reviewed by Tim Horton. |
| |
| Fix the crash by making -_shareForWebView: robust in the case where there are no selection rects |
| known in the UI process when -[WKContentView _share:] is invoked. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _shareForWebView:]): |
| |
| 2019-09-04 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Replace defaultCustomPasteboardDataEnabled by an equivalent macro |
| https://bugs.webkit.org/show_bug.cgi?id=201477 |
| |
| Reviewed by Wenson Hsieh. |
| |
| r227282 introduced defaultCustomPasteboardDataEnabled() to disable the custom pasteboard data on |
| apps linked against old SDKs. However, this had a bug that the check inside WebContent process |
| would always return true because WebContent process is always linked against the latest SDKs. |
| Because WebPreferences values aren't propagated from UI process to WebContent process unless |
| there is a value change, it meant that custom pasteboard data is always enabled. |
| |
| This patch replaces this function with a simple macro which always enables the custom pasteboard |
| data on iOS family and macOS as it has always been the case before and after r227282. |
| |
| * Shared/WebPreferences.yaml: |
| * Shared/WebPreferencesDefaultValues.cpp: |
| (WebKit::defaultCustomPasteboardDataEnabled): Deleted. |
| * Shared/WebPreferencesDefaultValues.h: |
| |
| 2019-09-04 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| -[WKContentView selectedText] returns an empty string when selecting more than 200 characters |
| https://bugs.webkit.org/show_bug.cgi?id=201471 |
| <rdar://problem/55039227> |
| |
| Reviewed by Tim Horton. |
| |
| The fix for <rdar://problem/54308019> is contingent on -[WKContentView selectedText] returning a non-empty |
| result in the case where text is selected. However, in WebKit, if more than 200 characters are selected, |
| -selectedText ends up returning nothing. |
| |
| This is due to logic added in trac.webkit.org/r167624 that was intended to return the selected text in |
| PostLayoutData's wordAtSelection, up to a maximum of 200 characters, likely for performance and/or security |
| reasons. However, instead of truncating at 200 characters, the change simply drops wordAtSelection altogether. |
| This patch fixes this issue by taking the first 200 characters of the selected text. |
| |
| Test: EditorStateTests.SelectedText |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::platformEditorState const): |
| |
| 2019-09-04 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Local Overrides - Provide substitution content for resource loads (URL based) |
| https://bugs.webkit.org/show_bug.cgi?id=201262 |
| <rdar://problem/13108764> |
| |
| Reviewed by Devin Rousso. |
| |
| * Sources.txt: |
| * WebKit.xcodeproj/project.pbxproj: |
| New sources. |
| |
| * WebProcess/Network/WebResourceLoader.h: |
| * WebProcess/Network/WebResourceLoader.cpp: |
| (WebKit::WebResourceLoader::didReceiveResponse): |
| (WebKit::WebResourceLoader::didReceiveData): |
| (WebKit::WebResourceLoader::didFinishResourceLoad): |
| (WebKit::WebResourceLoader::didFailResourceLoad): |
| On receiving a response, check with the inspector if an active |
| frontend will override the response content. |
| |
| * WebProcess/Network/WebResourceInterceptController.h: |
| * WebProcess/Network/WebResourceInterceptController.cpp: |
| (WebKit::WebResourceInterceptController::isIntercepting const): |
| (WebKit::WebResourceInterceptController::beginInterceptingResponse): |
| (WebKit::WebResourceInterceptController::continueResponse): |
| (WebKit::WebResourceInterceptController::interceptedResponse): |
| (WebKit::WebResourceInterceptController::defer): |
| Buffer networking callbacks for an ongoing intercept. |
| |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::havePerformedSecurityChecks const): |
| Handle new response source. |
| |
| 2019-09-04 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed minor follow-up fix after r249501 to address crashes in debug. |
| |
| * NetworkProcess/cache/NetworkCache.h: |
| (WTF::HashTraits<WebKit::NetworkCache::GlobalFrameID>::constructDeletedValue): |
| (WTF::HashTraits<WebKit::NetworkCache::GlobalFrameID>::isDeletedValue): |
| |
| 2019-09-04 Chris Dumez <cdumez@apple.com> |
| |
| Expose WebPageProxy identifier to the Network Process |
| https://bugs.webkit.org/show_bug.cgi?id=201467 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Expose WebPageProxy identifier to the Network Process (similarly to WebPage / WebFrame identifiers) |
| so that it can use it whenever it IPCs the UIProcess. The IPCs from the network process were the |
| last one requiring the UIProcess to lookup a WebPageProxy object from a WebPageIdentifier (rather |
| than a WebPageProxyIdentifier). |
| |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::requestStorageAccess): |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h: |
| * NetworkProcess/NetworkCORSPreflightChecker.cpp: |
| (WebKit::NetworkCORSPreflightChecker::didReceiveChallenge): |
| * NetworkProcess/NetworkCORSPreflightChecker.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::testProcessIncomingSyncMessagesWhenWaitingForSyncReply): |
| (WebKit::NetworkConnectionToWebProcess::requestStorageAccess): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkLoad.cpp: |
| (WebKit::NetworkLoad::didReceiveChallenge): |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::NetworkLoadChecker): |
| (WebKit::NetworkLoadChecker::checkCORSRequestWithPreflight): |
| * NetworkProcess/NetworkLoadChecker.h: |
| * NetworkProcess/NetworkLoadParameters.h: |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::didCommitCrossSiteLoadWithDataTransfer): |
| (WebKit::NetworkProcess::logDiagnosticMessage): |
| (WebKit::NetworkProcess::logDiagnosticMessageWithResult): |
| (WebKit::NetworkProcess::logDiagnosticMessageWithValue): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * NetworkProcess/NetworkResourceLoadParameters.cpp: |
| (WebKit::NetworkResourceLoadParameters::encode const): |
| (WebKit::NetworkResourceLoadParameters::decode): |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::m_shouldCaptureExtraNetworkLoadMetrics): |
| (WebKit::NetworkResourceLoader::retrieveCacheEntry): |
| (WebKit::NetworkResourceLoader::startNetworkLoad): |
| (WebKit::NetworkResourceLoader::didReceiveResponse): |
| * NetworkProcess/NetworkResourceLoader.h: |
| * NetworkProcess/PingLoad.cpp: |
| (WebKit::PingLoad::PingLoad): |
| (WebKit::PingLoad::didReceiveChallenge): |
| * NetworkProcess/cache/NetworkCache.h: |
| (WebKit::NetworkCache::GlobalFrameID::hash const): |
| (WebKit::NetworkCache::operator==): |
| (WTF::GlobalFrameIDHash::hash): |
| (WTF::GlobalFrameIDHash::equal): |
| (WTF::HashTraits<WebKit::NetworkCache::GlobalFrameID>::emptyValue): |
| (WTF::HashTraits<WebKit::NetworkCache::GlobalFrameID>::constructDeletedValue): |
| (WTF::HashTraits<WebKit::NetworkCache::GlobalFrameID>::isDeletedValue): |
| * NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp: |
| (WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad): |
| * NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp: |
| (WebKit::NetworkCache::logSpeculativeLoadingDiagnosticMessage): |
| * Shared/Authentication/AuthenticationManager.cpp: |
| (WebKit::AuthenticationManager::shouldCoalesceChallenge const): |
| (WebKit::AuthenticationManager::didReceiveAuthenticationChallenge): |
| * Shared/Authentication/AuthenticationManager.h: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::didReceiveAuthenticationChallenge): |
| (WebKit::NetworkProcessProxy::logDiagnosticMessage): |
| (WebKit::NetworkProcessProxy::logDiagnosticMessageWithResult): |
| (WebKit::NetworkProcessProxy::logDiagnosticMessageWithValue): |
| (WebKit::NetworkProcessProxy::requestStorageAccessConfirm): |
| (WebKit::NetworkProcessProxy::didCommitCrossSiteLoadWithDataTransfer): |
| (WebKit::NetworkProcessProxy::didCommitCrossSiteLoadWithDataTransferFromPrevalentResource): |
| (WebKit::NetworkProcessProxy::testProcessIncomingSyncMessagesWhenWaitingForSyncReply): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| * UIProcess/ServiceWorkerProcessProxy.cpp: |
| (WebKit::ServiceWorkerProcessProxy::start): |
| * UIProcess/ServiceWorkerProcessProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didCommitLoadForFrame): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::isServiceWorkerPageID const): |
| (WebKit::WebProcessPool::didCommitCrossSiteLoadWithDataTransfer): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.cpp: |
| * UIProcess/WebProcessProxy.h: |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::scheduleLoad): |
| (WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess): |
| (WebKit::WebLoaderStrategy::loadResourceSynchronously): |
| (WebKit::WebLoaderStrategy::preconnectTo): |
| * WebProcess/Network/WebResourceLoader.h: |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::ServiceWorkerFrameLoaderClient::ServiceWorkerFrameLoaderClient): |
| (WebKit::ServiceWorkerFrameLoaderClient::createDocumentLoader): |
| (WebKit::WebSWContextManagerConnection::WebSWContextManagerConnection): |
| (WebKit::WebSWContextManagerConnection::installServiceWorker): |
| * WebProcess/Storage/WebSWContextManagerConnection.h: |
| (isType): |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::testProcessIncomingSyncMessagesWhenWaitingForSyncReply): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::webPageProxyID const): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::requestStorageAccess): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::establishWorkerContextConnectionToNetworkProcess): |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| |
| 2019-09-04 Tim Horton <timothy_horton@apple.com> |
| |
| macCatalyst: Re-enable iOS WKWebView printing API |
| https://bugs.webkit.org/show_bug.cgi?id=201392 |
| <rdar://problem/54690252> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _webViewPrintFormatter]): |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| * UIProcess/_WKWebViewPrintFormatter.mm: |
| * UIProcess/_WKWebViewPrintFormatterInternal.h: |
| * UIProcess/ios/WKContentView.mm: |
| _WKWwebViewPrintFormatter was disabled during bringup because requisite |
| UIKit bits were missing, but they are not anymore (and have not been for |
| quite some time), so remove these unnecessary platform ifdefs. |
| |
| 2019-09-04 Patrick Griffis <pgriffis@igalia.com> |
| |
| [WPE][GTK] Fix sandbox parsing DISPLAY on X11 |
| https://bugs.webkit.org/show_bug.cgi?id=201462 |
| |
| Reviewed by Michael Catanzaro. |
| |
| On some setups the DISPLAY env var was incorrectly parsed. |
| |
| * UIProcess/Launcher/glib/BubblewrapLauncher.cpp: |
| (WebKit::bindX11): |
| |
| 2019-09-04 Brian Burg <bburg@apple.com> |
| |
| Selenium test 'interactions_tests.py::testContextClick' is hanging |
| https://bugs.webkit.org/show_bug.cgi?id=201161 |
| <rdar://problem/54728541> |
| |
| Reviewed by Chris Dumez. |
| |
| A web page should not show native context menus if user interactions are being simulated for WebDriver. |
| Showing a native context menu spawns a nested run loop. Since there's no way to interact |
| with native UI via WebDriver, the test will hang until the context menu is manually dismissed. |
| |
| To fix this, pretend to show the context menu in UIProcess and dismiss it immediately. |
| This is necessary to trigger oncontextmenu events appropriately and resume handling mouse events. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::showContextMenu): Hook into isControlledByAutomation here. |
| We could short circuit this on the WebProcess side, but the check would be more crude |
| and suppress context menus even if user interaction isn't being simulated. This would be |
| problematic for a user who wants to interrupt their test session and interact with it. |
| The main use case for this is right clicking on the test page and choose "Inspect". |
| |
| 2019-09-04 Youenn Fablet <youenn@apple.com> |
| |
| Abstract out WebSocketChannel message queue |
| https://bugs.webkit.org/show_bug.cgi?id=201359 |
| |
| Reviewed by Alex Christensen. |
| |
| Make use of newly added NetworkSendQueue. |
| |
| * WebProcess/Network/WebSocketChannel.cpp: |
| (WebKit::WebSocketChannel::createMessageQueue): |
| (WebKit::WebSocketChannel::WebSocketChannel): |
| (WebKit::WebSocketChannel::send): |
| (WebKit::WebSocketChannel::disconnect): |
| * WebProcess/Network/WebSocketChannel.h: |
| |
| 2019-09-04 Youenn Fablet <youenn@apple.com> |
| |
| Move MessageRegistry to NetworkProcess |
| https://bugs.webkit.org/show_bug.cgi?id=201299 |
| |
| Reviewed by Alex Christensen. |
| |
| Move message registry to NetworkProcess. |
| Take benefit of this move to use async reply IPC as much as possible. |
| This also allows to remove the IPC message to UIProcess when doing postMessage with service workers. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::createNewMessagePortChannel): |
| (WebKit::NetworkConnectionToWebProcess::entangleLocalPortInThisProcessToRemote): |
| (WebKit::NetworkConnectionToWebProcess::messagePortDisentangled): |
| (WebKit::NetworkConnectionToWebProcess::messagePortClosed): |
| (WebKit::NetworkConnectionToWebProcess::nextMessageBatchIdentifier): |
| (WebKit::NetworkConnectionToWebProcess::takeAllMessagesForPort): |
| (WebKit::NetworkConnectionToWebProcess::didDeliverMessagePortMessages): |
| (WebKit::NetworkConnectionToWebProcess::postMessageToRemote): |
| (WebKit::NetworkConnectionToWebProcess::checkRemotePortForActivity): |
| (WebKit::NetworkConnectionToWebProcess::checkProcessLocalPortForActivity): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkMessagePortChannelProvider.cpp: Added. |
| (WebKit::NetworkMessagePortChannelProvider::NetworkMessagePortChannelProvider): |
| (WebKit::NetworkMessagePortChannelProvider::createNewMessagePortChannel): |
| (WebKit::NetworkMessagePortChannelProvider::entangleLocalPortInThisProcessToRemote): |
| (WebKit::NetworkMessagePortChannelProvider::messagePortDisentangled): |
| (WebKit::NetworkMessagePortChannelProvider::messagePortClosed): |
| (WebKit::NetworkMessagePortChannelProvider::takeAllMessagesForPort): |
| (WebKit::NetworkMessagePortChannelProvider::postMessageToRemote): |
| (WebKit::NetworkMessagePortChannelProvider::checkRemotePortForActivity): |
| (WebKit::NetworkMessagePortChannelProvider::checkProcessLocalPortForActivity): |
| * NetworkProcess/NetworkMessagePortChannelProvider.h: Added. |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::m_messagePortChannelProvider): |
| (WebKit::NetworkProcess::webProcessConnection const): |
| * NetworkProcess/NetworkProcess.h: |
| (WebKit::NetworkProcess::messagePortChannelRegistry): |
| * Sources.txt: |
| * UIProcess/Downloads/DownloadProxyMap.cpp: |
| * UIProcess/WebPageProxy.cpp: |
| * UIProcess/WebProcessPool.cpp: |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessPool.messages.in: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::~WebProcessProxy): |
| (WebKit::WebProcessProxy::shutDown): |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebProcessProxy.messages.in: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/Network/NetworkProcessConnection.cpp: |
| (WebKit::NetworkProcessConnection::initializeSWClientConnection): |
| (WebKit::NetworkProcessConnection::messagesAvailableForPort): |
| (WebKit::NetworkProcessConnection::checkProcessLocalPortForActivity): |
| * WebProcess/Network/NetworkProcessConnection.h: |
| * WebProcess/Network/NetworkProcessConnection.messages.in: |
| * WebProcess/Storage/WebSWClientConnection.cpp: |
| (WebKit::WebSWClientConnection::postMessageToServiceWorker): |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::postMessageToServiceWorkerClient): |
| * WebProcess/WebCoreSupport/WebMessagePortChannelProvider.cpp: |
| (WebKit::networkProcessConnection): |
| (WebKit::WebMessagePortChannelProvider::createNewMessagePortChannel): |
| (WebKit::WebMessagePortChannelProvider::entangleLocalPortInThisProcessToRemote): |
| (WebKit::WebMessagePortChannelProvider::messagePortDisentangled): |
| (WebKit::WebMessagePortChannelProvider::messagePortClosed): |
| (WebKit::WebMessagePortChannelProvider::takeAllMessagesForPort): |
| (WebKit::WebMessagePortChannelProvider::postMessageToRemote): |
| (WebKit::WebMessagePortChannelProvider::checkRemotePortForActivity): |
| * WebProcess/WebCoreSupport/WebMessagePortChannelProvider.h: |
| * WebProcess/WebProcess.cpp: |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| |
| 2019-09-03 Per Arne Vollan <pvollan@apple.com> |
| |
| [macOS] Unable to open local file from favorites bar |
| https://bugs.webkit.org/show_bug.cgi?id=201444 |
| |
| Reviewed by Brent Fulgham. |
| |
| The sandbox extension handle should be created providing the pid of the receiving process. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle): |
| |
| 2019-09-03 Chris Dumez <cdumez@apple.com> |
| |
| FrameLoader::FrameProgressTracker::progressCompleted() does not need a pageID |
| https://bugs.webkit.org/show_bug.cgi?id=201431 |
| |
| Reviewed by Antti Koivisto. |
| |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::pageLoadCompleted): |
| * WebProcess/Network/WebLoaderStrategy.h: |
| |
| 2019-09-03 Tim Horton <timothy_horton@apple.com> |
| |
| Null deref under -[WKWebView _addUpdateVisibleContentRectPreCommitHandler]'s handler block |
| https://bugs.webkit.org/show_bug.cgi?id=201436 |
| <rdar://problem/40640475> |
| |
| Reviewed by Simon Fraser. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView dealloc]): |
| (-[WKWebView _addUpdateVisibleContentRectPreCommitHandler]): |
| We crash sending a message to a deallocated WKWebView inside the handler block |
| passed to +[CATransaction addCommitHandler:]. This seems impossible, because |
| we carefully retain it, but it's possible that it could be the result of |
| the handler block being installed under -dealloc (in which case retaining |
| the WKWebView wouldn't actually extend its lifetime). -[WKWebView dealloc] |
| is fairly sizable, and it's hard to follow all paths from it, so instead |
| add a RELEASE_LOG_FAULT, so we'll get simulated crash logs, and bail, |
| so we'll stop actually crashing (if this is the cause). |
| |
| This is just a speculative fix, but a hopeful one, since intentionally calling |
| -_addUpdateVisibleContentRectPreCommitHandler: from dealloc yields a similar-looking |
| crash under the handler block. |
| |
| 2019-09-03 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthn] Enable WebAuthn by default for MobileSafari and SafariViewService |
| https://bugs.webkit.org/show_bug.cgi?id=201369 |
| <rdar://problem/54903724> |
| |
| Reviewed by Brent Fulgham. |
| |
| Communications to security keys require entitlements, which are not guaranteed to be present in third party |
| WKWebView clients. Therefore, only enable WebAuthn by default for MobileSafari and SafariViewService. |
| |
| * Shared/WebPreferences.yaml: |
| * Shared/WebPreferencesDefaultValues.cpp: |
| (WebKit::defaultWebAuthenticationEnabled): |
| * Shared/WebPreferencesDefaultValues.h: |
| |
| 2019-09-03 Chris Dumez <cdumez@apple.com> |
| |
| Rename WebPage::pageID() to WebPage::identifier() |
| https://bugs.webkit.org/show_bug.cgi?id=201428 |
| |
| Reviewed by Antti Koivisto. |
| |
| * Shared/API/Cocoa/WKBrowsingContextHandle.mm: |
| (-[WKBrowsingContextHandle _initWithPage:]): |
| * WebProcess/ApplePay/WebPaymentCoordinator.cpp: |
| (WebKit::WebPaymentCoordinator::WebPaymentCoordinator): |
| (WebKit::WebPaymentCoordinator::showPaymentUI): |
| (WebKit::WebPaymentCoordinator::messageSenderDestinationID const): |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::loadResourceSynchronously): |
| (WebKit::WebLoaderStrategy::preconnectTo): |
| * WebProcess/Notifications/WebNotificationManager.cpp: |
| (WebKit::WebNotificationManager::show): |
| (WebKit::WebNotificationManager::cancel): |
| (WebKit::WebNotificationManager::clearNotifications): |
| (WebKit::WebNotificationManager::didDestroyNotification): |
| * WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp: |
| (WebKit::WebAuthenticatorCoordinator::WebAuthenticatorCoordinator): |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::windowRect): |
| (WebKit::WebChromeClient::focusedFrameChanged): |
| (WebKit::WebChromeClient::createWindow): |
| (WebKit::WebChromeClient::testProcessIncomingSyncMessagesWhenWaitingForSyncReply): |
| (WebKit::WebChromeClient::toolbarsVisible): |
| (WebKit::WebChromeClient::statusbarVisible): |
| (WebKit::WebChromeClient::menubarVisible): |
| (WebKit::WebChromeClient::wrapCryptoKey const): |
| (WebKit::WebChromeClient::unwrapCryptoKey const): |
| (WebKit::WebChromeClient::signedPublicKeyAndChallengeString const): |
| * WebProcess/WebCoreSupport/WebColorChooser.cpp: |
| (WebKit::WebColorChooser::WebColorChooser): |
| (WebKit::WebColorChooser::reattachColorChooser): |
| (WebKit::WebColorChooser::setSelectedColor): |
| (WebKit::WebColorChooser::endChooser): |
| * WebProcess/WebCoreSupport/WebDataListSuggestionPicker.cpp: |
| (WebKit::WebDataListSuggestionPicker::handleKeydownWithIdentifier): |
| (WebKit::WebDataListSuggestionPicker::close): |
| (WebKit::WebDataListSuggestionPicker::displayWithActivationType): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::pageID const): |
| (WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad): |
| (WebKit::WebFrameLoaderClient::dispatchDidFailLoad): |
| * WebProcess/WebCoreSupport/WebPopupMenu.cpp: |
| (WebKit::WebPopupMenu::show): |
| (WebKit::WebPopupMenu::hide): |
| * WebProcess/WebCoreSupport/WebSearchPopupMenu.cpp: |
| (WebKit::WebSearchPopupMenu::saveRecentSearches): |
| (WebKit::WebSearchPopupMenu::loadRecentSearches): |
| * WebProcess/WebCoreSupport/ios/WebFrameLoaderClientIOS.mm: |
| (WebKit::WebFrameLoaderClient::createPreviewLoaderClient): |
| * WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm: |
| (WebKit::TextCheckingControllerProxy::TextCheckingControllerProxy): |
| (WebKit::TextCheckingControllerProxy::~TextCheckingControllerProxy): |
| * WebProcess/WebPage/Cocoa/WebRemoteObjectRegistry.cpp: |
| (WebKit::WebRemoteObjectRegistry::WebRemoteObjectRegistry): |
| (WebKit::WebRemoteObjectRegistry::close): |
| * WebProcess/WebPage/EventDispatcher.cpp: |
| (WebKit::EventDispatcher::addScrollingTreeForPage): |
| (WebKit::EventDispatcher::removeScrollingTreeForPage): |
| (WebKit::EventDispatcher::clearQueuedTouchEventsForPage): |
| (WebKit::EventDispatcher::getQueuedTouchEventsForPage): |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm: |
| (WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea): |
| (WebKit::RemoteLayerTreeDrawingArea::flushLayers): |
| * WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.mm: |
| (WebKit::RemoteScrollingCoordinator::RemoteScrollingCoordinator): |
| (WebKit::RemoteScrollingCoordinator::~RemoteScrollingCoordinator): |
| * WebProcess/WebPage/RemoteWebInspectorUI.cpp: |
| (WebKit::RemoteWebInspectorUI::sendMessageToBackend): |
| (WebKit::RemoteWebInspectorUI::changeSheetRect): |
| (WebKit::RemoteWebInspectorUI::startWindowDrag): |
| (WebKit::RemoteWebInspectorUI::bringToFront): |
| (WebKit::RemoteWebInspectorUI::closeWindow): |
| (WebKit::RemoteWebInspectorUI::reopen): |
| (WebKit::RemoteWebInspectorUI::resetState): |
| (WebKit::RemoteWebInspectorUI::openInNewTab): |
| (WebKit::RemoteWebInspectorUI::save): |
| (WebKit::RemoteWebInspectorUI::append): |
| (WebKit::RemoteWebInspectorUI::showCertificate): |
| * WebProcess/WebPage/ViewGestureGeometryCollector.cpp: |
| (WebKit::ViewGestureGeometryCollector::ViewGestureGeometryCollector): |
| (WebKit::ViewGestureGeometryCollector::~ViewGestureGeometryCollector): |
| * WebProcess/WebPage/WebBackForwardListProxy.cpp: |
| (WebKit::WebBackForwardListProxy::itemAtIndex): |
| (WebKit::WebBackForwardListProxy::backListCount const): |
| (WebKit::WebBackForwardListProxy::forwardListCount const): |
| * WebProcess/WebPage/WebInspector.cpp: |
| (WebKit::WebInspector::openLocalInspectorFrontend): |
| (WebKit::WebInspector::closeFrontendConnection): |
| (WebKit::WebInspector::bringToFront): |
| (WebKit::WebInspector::elementSelectionChanged): |
| (WebKit::WebInspector::timelineRecordingChanged): |
| (WebKit::WebInspector::setMockCaptureDevicesEnabledOverride): |
| (WebKit::WebInspector::updateDockingAvailability): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::WebPage): |
| (WebKit::m_textAutoSizingAdjustmentTimer): |
| (WebKit::WebPage::messageSenderDestinationID const): |
| (WebKit::WebPage::close): |
| (WebKit::WebPage::goToBackForwardItem): |
| (WebKit::WebPage::setFixedLayoutSize): |
| (WebKit::WebPage::freezeLayerTree): |
| (WebKit::WebPage::unfreezeLayerTree): |
| (WebKit::WebPage::restoreSessionInternal): |
| (WebKit::WebPage::setCurrentHistoryItemForReattach): |
| (WebKit::WebPage::updateIsInWindow): |
| (WebKit::WebPage::setActivityState): |
| (WebKit::WebPage::mainFrameDidLayout): |
| (WebKit::WebPage::didCommitLoad): |
| (WebKit::WebPage::hasStorageAccess): |
| (WebKit::WebPage::requestStorageAccess): |
| (WebKit::WebPage::textInputContextsInRect): |
| (WebKit::WebPage::elementForTextInputContext): |
| * WebProcess/WebPage/WebPage.h: |
| (WebKit::WebPage::identifier const): |
| (WebKit::WebPage::pageID const): Deleted. |
| * WebProcess/WebPage/WebPageInspectorTarget.cpp: |
| (WebKit::WebPageInspectorTarget::identifier const): |
| * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm: |
| (-[WKAccessibilityWebPageObjectBase setWebPage:]): |
| * WebProcess/WebPage/mac/WebPageMac.mm: |
| (WebKit::WebPage::executeKeypressCommandsInternal): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::transformObjectsToHandles): |
| * WebProcess/WebStorage/StorageNamespaceImpl.cpp: |
| (WebKit::StorageNamespaceImpl::copy): |
| * WebProcess/WebStorage/WebStorageNamespaceProvider.cpp: |
| (WebKit::WebStorageNamespaceProvider::createSessionStorageNamespace): |
| * WebProcess/cocoa/PlaybackSessionManager.mm: |
| (WebKit::PlaybackSessionManager::PlaybackSessionManager): |
| (WebKit::PlaybackSessionManager::~PlaybackSessionManager): |
| (WebKit::PlaybackSessionManager::invalidate): |
| * WebProcess/cocoa/VideoFullscreenManager.mm: |
| (WebKit::VideoFullscreenManager::VideoFullscreenManager): |
| (WebKit::VideoFullscreenManager::~VideoFullscreenManager): |
| (WebKit::VideoFullscreenManager::invalidate): |
| |
| 2019-09-03 Antoine Quint <graouts@apple.com> |
| |
| [iOS] Treat a two-finger single tap as if the user tapped with the Cmd key pressed |
| https://bugs.webkit.org/show_bug.cgi?id=201420 |
| <rdar://problem/53207786> |
| |
| Reviewed by Simon Fraser. |
| |
| Set the metaKey modifier to true when generating a click event based on a two-finger single tap. This is important so that sites like Google and DuckDuckGo |
| correctly open links in their search results page in a new tab in Safari on iOS. This currently doesn't work because those sites will call preventDefault() |
| if the metaKey flag isn't set on a "click" event, and if it is set, they let the browser handle the navigation themselves. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _twoFingerSingleTapGestureRecognized:]): |
| |
| 2019-08-28 Brent Fulgham <bfulgham@apple.com> |
| |
| [macOS] Correct sandbox violation in Flash plugin |
| https://bugs.webkit.org/show_bug.cgi?id=201228 |
| <rdar://problem/54347503> |
| |
| Reviewed by Alex Christensen. |
| |
| * PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in: |
| |
| 2019-09-03 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [WPE][GTK] Deprecate nonfunctional process limit APIs |
| https://bugs.webkit.org/show_bug.cgi?id=193749 |
| |
| Reviewed by Žan Doberšek. |
| |
| * UIProcess/API/glib/WebKitWebContext.cpp: |
| (webkitWebContextConstructed): |
| (webkit_web_context_set_process_model): |
| (webkit_web_context_get_process_model): |
| (webkit_web_context_set_web_process_count_limit): |
| (webkit_web_context_get_web_process_count_limit): |
| * UIProcess/API/gtk/WebKitWebContext.h: |
| * UIProcess/API/wpe/WebKitWebContext.h: |
| |
| 2019-09-02 Youenn Fablet <youenn@apple.com> |
| |
| Make NetworkConnectionToWebProcess keyed by their WebProcess identifier |
| https://bugs.webkit.org/show_bug.cgi?id=201300 |
| |
| Reviewed by Alex Christensen. |
| |
| Make sure to create each NetworkConnectionToWebProcess for a given WebProcess. |
| Pass the process identifier at creation time. |
| This will allow to have the message registry be moved to NetworkProcess |
| so as to check port activity between processes. |
| This identifier might also be used in the future for other connections like |
| service worker context/client/server identifiers. |
| |
| No observable change of behavior. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::create): |
| (WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| (WebKit::NetworkConnectionToWebProcess::webProcessIdentifier const): |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::removeNetworkConnectionToWebProcess): |
| (WebKit::NetworkProcess::createNetworkConnectionToWebProcess): |
| (WebKit::NetworkProcess::actualPrepareToSuspend): |
| (WebKit::NetworkProcess::resume): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * Platform/IPC/Connection.h: |
| (IPC::Connection::sendWithAsyncReply): |
| Allow to pass send options. |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::NetworkProcessProxy): |
| (WebKit::NetworkProcessProxy::getNetworkProcessConnection): |
| Make use of async reply to simplify the handling of lambdas. |
| (WebKit::NetworkProcessProxy::openNetworkProcessConnection): |
| (WebKit::NetworkProcessProxy::didFinishLaunching): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| |
| 2019-09-02 Youenn Fablet <youenn@apple.com> |
| |
| Introduce WorkerMessagePortChannelRegistry |
| https://bugs.webkit.org/show_bug.cgi?id=201333 |
| |
| Reviewed by Alex Christensen. |
| |
| By introducing WorkerMessagePortChannelRegistry, we are making |
| sure UIMessagePortChannelProvider is only called from the main thread. |
| This will help when moving the registry to network process. |
| |
| * UIProcess/UIMessagePortChannelProvider.cpp: |
| (WebKit::UIMessagePortChannelProvider::takeAllMessagesForPort): |
| (WebKit::UIMessagePortChannelProvider::checkRemotePortForActivity): |
| * UIProcess/UIMessagePortChannelProvider.h: |
| * WebProcess/WebCoreSupport/WebMessagePortChannelProvider.cpp: |
| (WebKit::WebMessagePortChannelProvider::takeAllMessagesForPort): |
| (WebKit::WebMessagePortChannelProvider::didTakeAllMessagesForPort): |
| (WebKit::WebMessagePortChannelProvider::didCheckRemotePortForActivity): |
| (WebKit::WebMessagePortChannelProvider::checkRemotePortForActivity): |
| * WebProcess/WebCoreSupport/WebMessagePortChannelProvider.h: |
| |
| 2019-09-01 Youenn Fablet <youenn@apple.com> |
| |
| Abstract out LibWebRTCSocketClient so that rtc sockets can be implemented without libwebrtc sockets |
| https://bugs.webkit.org/show_bug.cgi?id=201302 |
| |
| Reviewed by Alex Christensen. |
| |
| Introduce NetworkRTCProvider::Socket to be able to implement RTC socket support with non libwebrtc API |
| |
| * NetworkProcess/webrtc/LibWebRTCSocketClient.h: |
| * NetworkProcess/webrtc/NetworkRTCProvider.cpp: |
| (WebKit::NetworkRTCProvider::createSocket): |
| (WebKit::NetworkRTCProvider::createUDPSocket): |
| (WebKit::NetworkRTCProvider::createServerTCPSocket): |
| (WebKit::NetworkRTCProvider::proxyInfoFromSession): |
| (WebKit::NetworkRTCProvider::createClientTCPSocket): |
| (WebKit::NetworkRTCProvider::wrapNewTCPConnection): |
| (WebKit::NetworkRTCProvider::addSocket): |
| (WebKit::NetworkRTCProvider::takeSocket): |
| (WebKit::NetworkRTCProvider::newConnection): |
| (WebKit::NetworkRTCProvider::closeListeningSockets): |
| (WebKit::NetworkRTCProvider::callSocket): |
| * NetworkProcess/webrtc/NetworkRTCProvider.h: |
| * NetworkProcess/webrtc/NetworkRTCProvider.mm: |
| (WebKit::NetworkRTCProvider::createClientTCPSocket): |
| * NetworkProcess/webrtc/NetworkRTCSocket.cpp: |
| (WebKit::NetworkRTCSocket::sendTo): |
| (WebKit::NetworkRTCSocket::close): |
| (WebKit::NetworkRTCSocket::setOption): |
| |
| 2019-09-01 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [Cairo] out-of-bounds read in ShareableBitmap::paint if a fractional device scale factor is used |
| https://bugs.webkit.org/show_bug.cgi?id=196340 |
| |
| Reviewed by Brent Fulgham. |
| |
| In ShareableBitmap::paint, srcRectScaled can be out-of-bounds of |
| the surface if a fractional device scale factor is used. |
| |
| * Shared/cairo/ShareableBitmapCairo.cpp: |
| (WebKit::ShareableBitmap::paint): Use cairoSurfaceSetDeviceScale |
| to set a device scale factor to the surface instead of multiplying |
| srcRect with a device scale factor. |
| |
| 2019-09-01 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| Unreviewed, rolling out r249366. |
| |
| WinCairo WebKit2 crashes in some websites and the device scale |
| factor is not correct in high DPI. |
| |
| Reverted changeset: |
| |
| "[WinCairo, FTW] Properly handle device scale factor" |
| https://bugs.webkit.org/show_bug.cgi?id=201361 |
| https://trac.webkit.org/changeset/249366 |
| |
| 2019-09-01 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Long presses that interrupt accelerated scrolling dispatch clicks on apps linked against iOS 12 or earlier |
| https://bugs.webkit.org/show_bug.cgi?id=201346 |
| <rdar://problem/54885784> |
| |
| Reviewed by Dean Jackson. |
| |
| For apps that are linked on or after iOS 13, we add a context menu interaction to the content view, which |
| requires us to disable (or avoid adding) the highlight long press gesture recognizer. However, for apps that are |
| linked on the iOS 12 SDK or prior, this gesture is still present, and fires when long pressing for (roughly) up |
| to 0.75 seconds if a tap gesture was not recognized instead. Firing this gesture sends a click event to the |
| page; this brings back some form of <rdar://problem/53889373>, but only when holding for slightly longer than a |
| normal tap, and also only in apps linked on iOS 12 or earlier. To fix this, we apply a similar solution as in |
| r248433 and detect whether a long press gesture interrupted scroll view deceleration in |
| -gestureRecognizerShouldBegin:. If so, we return NO to avoid clicking. See per-method comments below for more |
| details. |
| |
| Testing this bug as-is was tricky, since there's no way in layout tests to simulate being linked on or before a |
| given SDK version. Luckily, recall that: |
| 1. This bug occurs when the highlight gesture recognizer is enabled and added to the content view. |
| 2. The highlight gesture recognizer only needs to be disabled or removed when context menu interaction is added. |
| As such, we should be able to restore the highlight gesture recognizer by suppressing the context menu |
| interaction in an app linked-on-or-after iOS 13, by setting allowsLinkPreview to NO. Unfortunately, this doesn't |
| quite work, since we currently always avoid adding the highlight gesture recognizer if the app is linked on |
| iOS 13 or later. |
| |
| However, this means that the highlight gesture recognizer is absent from the content view in apps linked against |
| iOS 13 that disable link previews, even though its absence is not required. This means that long pressing a |
| clickable element in a web view that disables link previews does not show a tap highlight on iOS 13, whereas it |
| would on iOS 12; this is a regression, albeit a very subtle one. To fix this subtle issue and make it possible |
| to write a test for this bug, we refactor some logic for creating and configuring the highlight long press |
| gesture, such that we now unconditionally add the highlight gesture, but only enable it in apps linked on or |
| after iOS 13 if link previews (i.e. context menu interaction) are not allowed. |
| |
| Test: fast/scrolling/ios/click-events-after-long-press-during-momentum-scroll-in-overflow.html |
| |
| * SourcesCocoa.txt: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView setAllowsLinkPreview:]): |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView setupInteraction]): |
| |
| Refactor our gesture setup logic to always create and add the long press and highlight long press gestures, but |
| conditionally disable them based on whether or not (1) the context menu is available, and (2) WKWebView's |
| allowsLinkPreview property. |
| |
| (-[WKContentView _didChangeLinkPreviewAvailability]): |
| (-[WKContentView _updateLongPressAndHighlightLongPressGestures]): |
| |
| Add a new helper to update the enabled state of the long press and highlight long press gestures, by consulting |
| -_shouldUseContextMenu and -allowsLinkPreview. This is called when setting up the gestures, as well as whenever |
| -allowsLinkPreview changes. |
| |
| (-[WKContentView gestureRecognizerShouldBegin:]): |
| |
| Factor out logic to ascend the view hierarchy in search of a UIScrollView that was interrupted while |
| decelerating into a local lambda function; use this for both the highlight gesture and the single tap gesture, |
| to determine whether they should begin. |
| |
| * UIProcess/ios/WKHighlightLongPressGestureRecognizer.h: Added. |
| * UIProcess/ios/WKHighlightLongPressGestureRecognizer.mm: Added. |
| |
| In order to remember the UIScrollView (if any) tracked by the highlight long press gesture, we subclass |
| _UIWebHighlightLongPressGestureRecognizer. While UILongPressGestureRecognizer does have SPI to ask for a list of |
| UITouches, by the time the gesture has been recognized and the gesture delegates are invoked, these UITouches |
| no longer correspond to UIViews. As such, the only time we have access to the list of UITouches with their |
| UIViews is during the touches* subclass hooks. |
| |
| (-[WKHighlightLongPressGestureRecognizer reset]): |
| |
| Clear out the tracked UIScrollView here, when the gesture is reset (i.e. after ending, or being canceled). |
| |
| (-[WKHighlightLongPressGestureRecognizer touchesBegan:withEvent:]): |
| |
| Remember the last touched UIScrollView here. |
| |
| (-[WKHighlightLongPressGestureRecognizer lastTouchedScrollView]): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-08-30 Brent Fulgham <bfulgham@apple.com> |
| |
| [WinCairo, FTW] Properly handle device scale factor |
| https://bugs.webkit.org/show_bug.cgi?id=201361 |
| |
| Reviewed by Don Olmstead. |
| |
| Update the WebView and WebProcess to correctly handle |
| the device scale factor. |
| |
| * UIProcess/win/WebView.cpp: |
| (WebKit::WebView::WebView): Tell the page the current device scale factor. |
| * WebProcess/win/WebProcessMainWin.cpp: |
| (WebKit::WebProcessMainWin): Tell the process to be aware of device scale. |
| |
| 2019-08-31 Chris Dumez <cdumez@apple.com> |
| |
| DocumentStorageAccess::hasStorageAccess() / requestStorageAccess() don't need to know about pageID / frameID |
| https://bugs.webkit.org/show_bug.cgi?id=201364 |
| |
| Reviewed by John Wilander. |
| |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::hasStorageAccess): |
| (WebKit::WebChromeClient::requestStorageAccess): |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::hasStorageAccess): |
| (WebKit::WebPage::requestStorageAccess): |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2019-08-30 Chris Dumez <cdumez@apple.com> |
| |
| WebPage::fromCorePage() to take and return a C++ reference |
| https://bugs.webkit.org/show_bug.cgi?id=201367 |
| |
| Reviewed by Antti Koivisto. |
| |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): |
| * WebProcess/WebPage/VisitedLinkTableController.cpp: |
| (WebKit::VisitedLinkTableController::addVisitedLink): |
| * WebProcess/WebPage/WebFrame.cpp: |
| (WebKit::WebFrame::page const): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::fromCorePage): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPageOverlay.cpp: |
| (WebKit::WebPageOverlay::willMoveToPage): |
| (WebKit::WebPageOverlay::didMoveToPage): |
| * WebProcess/WebStorage/StorageNamespaceImpl.cpp: |
| (WebKit::StorageNamespaceImpl::copy): |
| * WebProcess/WebStorage/StorageNamespaceImpl.h: |
| * WebProcess/WebStorage/WebStorageNamespaceProvider.cpp: |
| (WebKit::WebStorageNamespaceProvider::createSessionStorageNamespace): |
| |
| 2019-08-30 Chris Dumez <cdumez@apple.com> |
| |
| [PSON] We no longer need to throw away suspended pages in a process before using it for a navigation |
| https://bugs.webkit.org/show_bug.cgi?id=201344 |
| |
| Reviewed by Antti Koivisto. |
| |
| We no longer need to throw away suspended pages in a process before using it for a navigation, now that |
| Bug 201225 has been fixed. WebPage objects (suspended or live) in the process now have distinct |
| identifiers and can coexist. |
| |
| * Shared/API/Cocoa/RemoteObjectRegistry.h: |
| * Shared/API/Cocoa/RemoteObjectRegistry.mm: |
| (WebKit::RemoteObjectRegistry::RemoteObjectRegistry): |
| * UIProcess/Cocoa/UIRemoteObjectRegistry.cpp: |
| (WebKit::UIRemoteObjectRegistry::UIRemoteObjectRegistry): |
| * WebProcess/WebPage/Cocoa/WebRemoteObjectRegistry.cpp: |
| (WebKit::WebRemoteObjectRegistry::WebRemoteObjectRegistry): |
| (WebKit::WebRemoteObjectRegistry::close): |
| |
| 2019-08-30 Chris Dumez <cdumez@apple.com> |
| |
| Assertion hit when saving to PDF from printing dialog |
| https://bugs.webkit.org/show_bug.cgi?id=201351 |
| |
| Reviewed by Tim Horton. |
| |
| [WKPrintingView knowsPageRange:] may get called from a background thread and ends up calling |
| WeakPtr::get() which asserts because it is generally unsafe to get the raw pointer from a |
| WeakPtr to an object owned by another thread. However, the methods here merely want to null |
| check it so add a thread-safe method (pageIsClosed()) to WebFrameProxy for it. |
| |
| * UIProcess/WebFrameProxy.h: |
| (WebKit::WebFrameProxy::pageIsClosed const): |
| * UIProcess/mac/WKPrintingView.mm: |
| (-[WKPrintingView knowsPageRange:]): |
| |
| 2019-08-30 Alex Christensen <achristensen@webkit.org> |
| |
| Remove HAVE_CFNETWORK_WITH_AUTO_ADDED_HTTP_HEADER_SUPPRESSION_SUPPORT conditional |
| https://bugs.webkit.org/show_bug.cgi?id=201280 |
| |
| Reviewed by Youenn Fablet. |
| |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| |
| 2019-08-30 Alex Christensen <achristensen@webkit.org> |
| |
| Remove HAVE_CFNETWORK_WITH_IGNORE_HSTS conditional |
| https://bugs.webkit.org/show_bug.cgi?id=201279 |
| |
| Reviewed by Darin Adler. |
| |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (ignoreHSTS): |
| (updateIgnoreStrictTransportSecuritySettingIfNecessary): |
| (-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]): |
| (-[WKNetworkSessionDelegate URLSession:task:_schemeUpgraded:completionHandler:]): |
| |
| 2019-08-30 Alex Christensen <achristensen@webkit.org> |
| |
| Allow process cache to cache processes when using a non-default persistent WebsiteDataStore |
| https://bugs.webkit.org/show_bug.cgi?id=201329 |
| |
| Reviewed by Chris Dumez. |
| |
| Treat all persistent sessions the same when deciding whether to clear all cached web processes using a particular website data store. |
| This removes a huge performance regression on warm plt when switching to using a non-default persistent session. |
| I also removed a call to removeSession which is redundant with the one in the WebsiteDataStore destructor, which is where it should be. |
| |
| * UIProcess/WebProcessCache.cpp: |
| (WebKit::WebProcessCache::canCacheProcess const): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::pageBeginUsingWebsiteDataStore): |
| (WebKit::WebProcessPool::pageEndUsingWebsiteDataStore): |
| |
| 2019-08-30 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Caret does not appear in text field inside a transformed, overflow: hidden container |
| https://bugs.webkit.org/show_bug.cgi?id=201317 |
| <rdar://problem/54859264> |
| |
| Reviewed by Simon Fraser. |
| |
| Adjust isTransparentOrFullyClipped to use the new methods in RenderLayer and RenderObject. See WebCore ChangeLog |
| for more details. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::isTransparentOrFullyClipped const): |
| |
| 2019-08-30 Simon Fraser <simon.fraser@apple.com> |
| |
| Add system tracing points for compositing updates, and touch-event dispatching |
| https://bugs.webkit.org/show_bug.cgi?id=201327 |
| |
| Reviewed by Alex Christensen. |
| |
| TraceScope in EventDispatcher::dispatchTouchEvents(). |
| |
| * WebProcess/WebPage/EventDispatcher.cpp: |
| (WebKit::EventDispatcher::dispatchTouchEvents): |
| |
| 2019-08-30 Brent Fulgham <bfulgham@apple.com> |
| |
| [FTW] Use DirectX SharedResource as basis for SharedBitmap |
| https://bugs.webkit.org/show_bug.cgi?id=201157 |
| |
| Reviewed by Alex Christensen. |
| |
| Currently an ID2D1Bitmap is used as the backing store for the SharedBitmap that is the |
| base type for sharing data between the WebContent Process and the UIProcess. However, this |
| involves moving GPU memory to local memory, copying that memory into the SharedMemory member |
| of the SharedBitmap, then building a new GPU bitmap on the UIProcess side from that SharedMemory. |
| |
| Profiling indicates that this is the single largest place FTW WebKit spends its time. |
| |
| Instead, we should use Direct2D's ability to render to an IDXGISurface, which can be shared |
| between multiple processes. This should avoid the GPU->CPU copy, the Direct2D-allocated |
| CPU->Shared Memory copy, and the shared memory to GPU copy. |
| |
| Reviewed by Alex Christensen. |
| |
| * Platform/SharedMemory.h: |
| * Platform/win/SharedMemoryWin.cpp: |
| (WebKit::SharedMemory::Handle::encodeHandle): Added. |
| (WebKit::SharedMemory::Handle::encode const): Use new helper function. |
| (WebKit::SharedMemory::Handle::decodeHandle): Added. |
| (WebKit::SharedMemory::Handle::decode): Use new helper function. |
| * PlatformFTW.cmake: Add D3X11 libraries. |
| * Shared/ShareableBitmap.cpp: |
| (WebKit::ShareableBitmap::Configuration::encode const): Encode shared resource handle for DX texture. |
| (WebKit::ShareableBitmap::Configuration::decode): Ditto (but decode). |
| (WebKit::ShareableBitmap::ShareableBitmap): Create SharedResource (if needed). |
| (WebKit::ShareableBitmap::~ShareableBitmap): Add cleanup code for SharedResoure. |
| (WebKit::ShareableBitmap::numBytesForSize): Only allocate a small memory store when using GPU textures. |
| * Shared/ShareableBitmap.h: |
| (WebKit::ShareableBitmap::dxSurface): |
| * Shared/win/ShareableBitmapDirect2D.cpp: |
| (WebKit::ShareableBitmap::createSharedResource): Added. |
| (WebKit::ShareableBitmap::disposeSharedResource): Added. |
| (WebKit::ShareableBitmap::leakSharedResource): Added. |
| (WebKit::ShareableBitmap::createGraphicsContext): Update for new data types. |
| (WebKit::ShareableBitmap::paint): Ditto. |
| (WebKit::ShareableBitmap::createDirect2DSurface): Update for new data types. |
| (WebKit::ShareableBitmap::createImage): Ditto. |
| (WebKit::createSurfaceFromData): Deleted. |
| (WebKit::ShareableBitmap::sync): Deleted. |
| * UIProcess/BackingStore.cpp: |
| * UIProcess/BackingStore.h: |
| * UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp: |
| * UIProcess/WebPageProxy.cpp: |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/win/BackingStoreDirect2D.cpp: |
| (WebKit::BackingStore::createBackend): |
| (WebKit::BackingStore::paint): |
| (WebKit::BackingStore::incorporateUpdate): |
| * UIProcess/win/PageClientImpl.cpp: |
| * UIProcess/win/WebPageProxyWin.cpp: |
| (WebKit::WebPageProxy::device const): |
| (WebKit::WebPageProxy::setDevice): |
| * UIProcess/win/WebView.cpp: |
| (WebKit::WebView::WebView): Initialize DirectX stuff. |
| (WebKit::WebView::paint): Use new DiretX drawing logic. |
| (WebKit::WebView::onSizeEvent): Update SwapChain's buffer sizes when resizing. |
| (WebKit::WebView::setupSwapChain): Added. |
| (WebKit::WebView::configureBackingStore): Added. |
| * UIProcess/win/WebView.h: |
| (WebKit::WebView::d3dDevice): |
| * WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp: |
| (WebKit::DrawingAreaCoordinatedGraphics::display): |
| |
| 2019-08-30 Chris Dumez <cdumez@apple.com> |
| |
| [PSON] Bump the WebPage's identifier every time we process-swap |
| https://bugs.webkit.org/show_bug.cgi?id=201225 |
| |
| Reviewed by Alex Christensen. |
| |
| Every time we create a new WebPage object in a provisional process, we now assign it a new |
| identifier, instead of using the identifier of the WebPage in the committed process. This |
| will address issues with IPC when navigating back and forth between processes since we will |
| no longer be confused as to which WebPage the IPC is coming from. Also, this will allow |
| suspended WebPages to keep living in the process, even if we use the process for a new load |
| (will be done in a follow-up patch) since we will no longer have an identifier conflict. |
| |
| * Scripts/webkit/messages.py: |
| * Shared/API/APIPageHandle.cpp: |
| (API::PageHandle::create): |
| (API::PageHandle::createAutoconverting): |
| (API::PageHandle::PageHandle): |
| (API::PageHandle::encode const): |
| (API::PageHandle::decode): |
| * Shared/API/APIPageHandle.h: |
| (API::PageHandle::pageProxyID const): |
| (API::PageHandle::webPageID const): |
| * Shared/API/Cocoa/WKBrowsingContextHandle.mm: |
| (-[WKBrowsingContextHandle _initWithPageProxy:]): |
| (-[WKBrowsingContextHandle _initWithPage:]): |
| (-[WKBrowsingContextHandle _initWithPageProxyID:andWebPageID:]): |
| (-[WKBrowsingContextHandle hash]): |
| (-[WKBrowsingContextHandle isEqual:]): |
| (-[WKBrowsingContextHandle encodeWithCoder:]): |
| (-[WKBrowsingContextHandle initWithCoder:]): |
| * Shared/API/Cocoa/WKBrowsingContextHandleInternal.h: |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| * Shared/mac/ObjCObjectGraph.mm: |
| (WebKit::ObjCObjectGraph::encode): |
| (WebKit::ObjCObjectGraph::decode): |
| * UIProcess/API/Cocoa/WKBrowsingContextController.mm: |
| (-[WKBrowsingContextController handle]): |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView dealloc]): |
| (-[WKWebView _remoteObjectRegistry]): |
| (-[WKWebView _handle]): |
| * UIProcess/API/glib/WebKitURISchemeRequest.cpp: |
| (webkitURISchemeRequestCreate): |
| * UIProcess/Cocoa/WebProcessProxyCocoa.mm: |
| (WebKit::WebProcessProxy::transformHandlesToObjects): |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::~WebViewImpl): |
| (WebKit::WebViewImpl::remoteObjectRegistry): |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::didReceiveAuthenticationChallenge): |
| (WebKit::NetworkProcessProxy::logDiagnosticMessage): |
| (WebKit::NetworkProcessProxy::logDiagnosticMessageWithResult): |
| (WebKit::NetworkProcessProxy::logDiagnosticMessageWithValue): |
| (WebKit::NetworkProcessProxy::requestStorageAccessConfirm): |
| (WebKit::NetworkProcessProxy::didCommitCrossSiteLoadWithDataTransferFromPrevalentResource): |
| (WebKit::NetworkProcessProxy::testProcessIncomingSyncMessagesWhenWaitingForSyncReply): |
| * UIProcess/ProvisionalPageProxy.cpp: |
| (WebKit::ProvisionalPageProxy::ProvisionalPageProxy): |
| (WebKit::ProvisionalPageProxy::loadData): |
| (WebKit::ProvisionalPageProxy::loadRequest): |
| (WebKit::ProvisionalPageProxy::decidePolicyForNavigationActionAsync): |
| (WebKit::ProvisionalPageProxy::decidePolicyForResponse): |
| (WebKit::ProvisionalPageProxy::startURLSchemeTask): |
| (WebKit::ProvisionalPageProxy::decidePolicyForNavigationActionSync): |
| * UIProcess/ProvisionalPageProxy.h: |
| (WebKit::ProvisionalPageProxy::webPageID const): |
| * UIProcess/SuspendedPageProxy.h: |
| * UIProcess/UserContent/WebUserContentControllerProxy.cpp: |
| (WebKit::WebUserContentControllerProxy::didPostMessage): |
| * UIProcess/UserContent/WebUserContentControllerProxy.h: |
| * UIProcess/UserContent/WebUserContentControllerProxy.messages.in: |
| * UIProcess/VisitedLinkStore.cpp: |
| (WebKit::VisitedLinkStore::addVisitedLinkHashFromPage): |
| * UIProcess/VisitedLinkStore.h: |
| * UIProcess/VisitedLinkStore.messages.in: |
| * UIProcess/WebInspectorProxy.cpp: |
| (WebKit::WebInspectorProxy::createFrontendPage): |
| (WebKit::WebInspectorProxy::openLocalInspectorFrontend): |
| (WebKit::WebInspectorProxy::closeFrontendPageAndWindow): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::swapToWebProcess): |
| (WebKit::WebPageProxy::loadRequest): |
| (WebKit::WebPageProxy::loadRequestWithNavigationShared): |
| (WebKit::WebPageProxy::loadData): |
| (WebKit::WebPageProxy::loadDataWithNavigationShared): |
| (WebKit::WebPageProxy::commitProvisionalPage): |
| (WebKit::WebPageProxy::continueNavigationInNewProcess): |
| (WebKit::WebPageProxy::decidePolicyForNavigationActionAsync): |
| (WebKit::WebPageProxy::decidePolicyForNavigationActionAsyncShared): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::decidePolicyForNavigationActionSync): |
| (WebKit::WebPageProxy::decidePolicyForNavigationActionSyncShared): |
| (WebKit::WebPageProxy::decidePolicyForResponse): |
| (WebKit::WebPageProxy::decidePolicyForResponseShared): |
| (WebKit::WebPageProxy::createNewPage): |
| (WebKit::WebPageProxy::creationParameters): |
| (WebKit::WebPageProxy::startURLSchemeTask): |
| (WebKit::WebPageProxy::startURLSchemeTaskShared): |
| (WebKit::WebPageProxy::loadSynchronousURLSchemeTask): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::webPageFromCorePageIdentifier): |
| (WebKit::WebProcessProxy::didReceiveMessage): |
| (WebKit::WebProcessProxy::transformHandlesToObjects): |
| (WebKit::WebProcessProxy::transformObjectsToHandles): |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebURLSchemeHandler.cpp: |
| (WebKit::WebURLSchemeHandler::startTask): |
| (WebKit::WebURLSchemeHandler::taskCompleted): |
| * 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): |
| * UIProcess/WebURLSchemeTask.h: |
| (WebKit::WebURLSchemeTask::pageProxyID const): |
| (WebKit::WebURLSchemeTask::webPageID const): |
| * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm: |
| (-[WKWebProcessPlugInBrowserContextController handle]): |
| (+[WKWebProcessPlugInBrowserContextController lookUpBrowsingContextFromHandle:]): |
| * WebProcess/UserContent/WebUserContentController.cpp: |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::createWindow): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| * WebProcess/WebPage/Cocoa/WebRemoteObjectRegistry.cpp: |
| (WebKit::WebRemoteObjectRegistry::WebRemoteObjectRegistry): |
| (WebKit::WebRemoteObjectRegistry::close): |
| * WebProcess/WebPage/VisitedLinkTableController.cpp: |
| (WebKit::VisitedLinkTableController::addVisitedLink): |
| * WebProcess/WebPage/WebInspectorUI.cpp: |
| (WebKit::WebInspectorUI::establishConnection): |
| * WebProcess/WebPage/WebInspectorUI.h: |
| * WebProcess/WebPage/WebInspectorUI.messages.in: |
| * WebProcess/WebPage/WebPage.cpp: |
| * WebProcess/WebPage/WebPage.h: |
| (WebKit::WebPage::sessionStorageNamespaceIdentifier const): |
| (WebKit::WebPage::webPageProxyIdentifier const): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::didReceiveMessage): |
| (WebKit::WebProcess::transformHandlesToObjects): |
| (WebKit::WebProcess::transformObjectsToHandles): |
| * WebProcess/WebStorage/StorageNamespaceImpl.cpp: |
| (WebKit::StorageNamespaceImpl::createSessionStorageNamespace): |
| (WebKit::StorageNamespaceImpl::createLocalStorageNamespace): |
| (WebKit::StorageNamespaceImpl::createTransientLocalStorageNamespace): |
| (WebKit::StorageNamespaceImpl::StorageNamespaceImpl): |
| (WebKit::StorageNamespaceImpl::copy): |
| (WebKit::StorageNamespaceImpl::sessionStoragePageID const): |
| * WebProcess/WebStorage/StorageNamespaceImpl.h: |
| * WebProcess/WebStorage/WebStorageNamespaceProvider.cpp: |
| (WebKit::WebStorageNamespaceProvider::createSessionStorageNamespace): |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::transformHandlesToObjects): |
| |
| 2019-08-30 Keith Rollin <krollin@apple.com> |
| |
| Remove AppKitCompatibilityDeclarations.h |
| https://bugs.webkit.org/show_bug.cgi?id=201283 |
| <rdar://problem/54822042> |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| The two copies of these files -- on in WTF, one in MiniBrowser -- are |
| empty and can be removed. |
| |
| * WebKit2Prefix.h: |
| |
| 2019-08-30 Adrian Perez de Castro <aperez@igalia.com> |
| |
| [WPE][GTK] New API to remove a filter from an user content manager given its identifier |
| https://bugs.webkit.org/show_bug.cgi?id=200479 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * UIProcess/API/glib/WebKitUserContentManager.cpp: |
| (webkit_user_content_manager_remove_filter_by_id): Add new public API function. |
| * UIProcess/API/gtk/WebKitUserContentManager.h: Add declaration for |
| webkit_user_content_manager_remove_filter_by_id(). |
| * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: List new function. |
| * UIProcess/API/wpe/WebKitUserContentManager.h: Add declaration for |
| webkit_user_content_manager_remove_filter_by_id(). |
| * UIProcess/API/wpe/docs/wpe-1.0-sections.txt: List new function. |
| |
| 2019-08-30 Pablo Saavedra <psaavedra@igalia.com> |
| |
| [GTK] Build failure in Debian Stable and Ubuntu LTS bots |
| https://bugs.webkit.org/show_bug.cgi?id=201337 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * UIProcess/gtk/WaylandCompositor.cpp: |
| (WebKit::WaylandCompositor::bindSurfaceToWebPage): |
| |
| 2019-08-30 Philippe Normand <pnormand@igalia.com> |
| |
| [WPE][Qt] loadingChanged signal parameter is unusable |
| https://bugs.webkit.org/show_bug.cgi?id=201301 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * UIProcess/API/wpe/qt/WPEQtView.h: Explicitely name signal |
| parameter. It is a runtime requirement for QML. |
| |
| 2019-08-29 Keith Rollin <krollin@apple.com> |
| |
| Remove HAVE_PASSKIT_GRANULAR_ERRORS conditional |
| https://bugs.webkit.org/show_bug.cgi?id=201278 |
| <rdar://problem/54821052> |
| |
| Reviewed by Alex Christensen. |
| |
| HAVE_PASSKIT_GRANULAR_ERRORS is always True, so remove the conditional |
| tests, keeping the True branches and removing the False branches. |
| |
| * Platform/cocoa/PaymentAuthorizationPresenter.mm: |
| (WebKit::PaymentAuthorizationPresenter::completePaymentSession): |
| (WebKit::PaymentAuthorizationPresenter::completeShippingContactSelection): |
| * Platform/cocoa/PaymentAuthorizationViewController.mm: |
| (-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewController:didAuthorizePayment:completion:]): Deleted. |
| (-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewController:didSelectShippingMethod:completion:]): Deleted. |
| (-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewController:didSelectShippingContact:completion:]): Deleted. |
| (-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewController:didSelectPaymentMethod:completion:]): Deleted. |
| * Platform/cocoa/WKPaymentAuthorizationDelegate.h: |
| * Platform/cocoa/WKPaymentAuthorizationDelegate.mm: |
| (-[WKPaymentAuthorizationDelegate completePaymentMethodSelection:]): |
| (-[WKPaymentAuthorizationDelegate completePaymentSession:errors:didReachFinalState:]): |
| (-[WKPaymentAuthorizationDelegate completeShippingContactSelection:summaryItems:shippingMethods:errors:]): |
| (-[WKPaymentAuthorizationDelegate completeShippingMethodSelection:]): |
| * Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm: |
| (WebKit::WebPaymentCoordinatorProxy::platformCanMakePaymentsWithActiveCard): |
| (WebKit::toPKContactFields): |
| (WebKit::toNSSet): |
| (WebKit::WebPaymentCoordinatorProxy::platformPaymentRequest): |
| (WebKit::toPKAddressField): Deleted. |
| |
| 2019-08-29 Chris Dumez <cdumez@apple.com> |
| |
| Add "IsolatedCopy" in the name of String getters that call isolatedCopy() on the string |
| https://bugs.webkit.org/show_bug.cgi?id=201318 |
| |
| Reviewed by Alex Christensen. |
| |
| Add "IsolatedCopy" in the name of String getters that call isolatedCopy() on the string, for clarity. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsPersistentStorage.cpp: |
| (WebKit::ResourceLoadStatisticsPersistentStorage::storageDirectoryPathIsolatedCopy const): |
| (WebKit::ResourceLoadStatisticsPersistentStorage::resourceLogFilePath const): |
| (WebKit::ResourceLoadStatisticsPersistentStorage::monitorDirectoryForNewStatistics): |
| * NetworkProcess/Classifier/ResourceLoadStatisticsPersistentStorage.h: |
| * NetworkProcess/cache/NetworkCacheBlobStorage.cpp: |
| (WebKit::NetworkCache::BlobStorage::blobDirectoryPathIsolatedCopy const): |
| (WebKit::NetworkCache::BlobStorage::synchronize): |
| (WebKit::NetworkCache::BlobStorage::blobPathForHash const): |
| * NetworkProcess/cache/NetworkCacheBlobStorage.h: |
| * NetworkProcess/cache/NetworkCacheStorage.cpp: |
| (WebKit::NetworkCache::Storage::basePathIsolatedCopy const): |
| (WebKit::NetworkCache::Storage::versionPath const): |
| (WebKit::NetworkCache::Storage::recordsPathIsolatedCopy const): |
| (WebKit::NetworkCache::Storage::synchronize): |
| (WebKit::NetworkCache::Storage::recordDirectoryPathForKey const): |
| (WebKit::NetworkCache::Storage::traverse): |
| (WebKit::NetworkCache::Storage::clear): |
| (WebKit::NetworkCache::Storage::shrink): |
| (WebKit::NetworkCache::Storage::deleteOldVersions): |
| * NetworkProcess/cache/NetworkCacheStorage.h: |
| |
| 2019-08-29 Keith Rollin <krollin@apple.com> |
| |
| Update .xcconfig symbols to reflect the current set of past and future product versions. |
| https://bugs.webkit.org/show_bug.cgi?id=200720 |
| <rdar://problem/54305032> |
| |
| Reviewed by Alex Christensen. |
| |
| Remove version symbols related to old OS's we no longer support, |
| ensure that version symbols are defined for OS's we do support. |
| |
| * Configurations/Base.xcconfig: |
| * Configurations/DebugRelease.xcconfig: |
| * Configurations/Version.xcconfig: |
| |
| 2019-08-29 Keith Rollin <krollin@apple.com> |
| |
| Invalid XPCServices symlinks are being created |
| https://bugs.webkit.org/show_bug.cgi?id=201320 |
| <rdar://problem/54719612> |
| |
| Reviewed by Dan Bernstein. |
| |
| When performing incremental builds, errant XPCServices symlinks can be |
| created. For example, in the following, the second symlink is the |
| correct one. The first symlink gets created when the build process |
| tries to create the symlink and it already exists. When it already |
| exists, the command to create the symlink actually follows the |
| existing symlink and creates the (second) symlink at the location |
| where the first symlink points. |
| |
| WebKit.framework/Versions/A/XPCServices/XPCServices@ -> Versions/Current/XPCServices |
| WebKit.framework/XPCServices@ -> Versions/Current/XPCServices |
| |
| Address this by specifying -h to the `ln` command, which will cause it |
| to not follow symlinks if they already exist at the target. |
| |
| Also, fix a benign issue where the Xcode build variable WRAPPER_NAME |
| was being referenced in a context where it wasn't defined. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-08-29 Alex Christensen <achristensen@webkit.org> |
| |
| Speculative loads should use the NetworkSession owning their Cache |
| https://bugs.webkit.org/show_bug.cgi?id=201314 |
| |
| Reviewed by Chris Dumez. |
| |
| This provides a performance improvement when using non-default persistent WKWebsiteDataStores. |
| |
| * NetworkProcess/NetworkSession.cpp: |
| (WebKit::NetworkSession::NetworkSession): |
| * NetworkProcess/cache/NetworkCache.cpp: |
| (WebKit::NetworkCache::Cache::open): |
| (WebKit::NetworkCache::Cache::Cache): |
| * NetworkProcess/cache/NetworkCache.h: |
| (WebKit::NetworkCache::Cache::sessionID const): |
| * NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp: |
| (WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad): |
| |
| 2019-08-29 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS 13] Caret does not appear in text field if the body element is translated completely out of the viewport |
| https://bugs.webkit.org/show_bug.cgi?id=201287 |
| <rdar://problem/54780864> |
| |
| Reviewed by Tim Horton. |
| |
| During EditorState computation, we use the hidden editable element heuristic to determine whether we should |
| begin suppressing selection gestures and UI. Currently, we use the editable root of the selection range to |
| determine where in the layer tree we should start our ascent, in search of a completely transparent or |
| completely clipped container. |
| |
| However, in the case where the selection is inside a focused text field, this causes us to walk up the layer |
| tree starting at the RenderLayer corresponding to the text field's inner contenteditable div, which is different |
| than the text field's enclosing RenderLayer in the case where the containing block is transformed, such that no |
| part of it is within the visible viewport. This scenario is exercised by the below test case, in which the caret |
| after transforming the body horizontally by -100vw is hidden due to a false positive in the hidden editable area |
| heuristic. |
| |
| Fix this by starting the layer tree ascent from the enclosing layer of the text form control if applicable, |
| instead of the inner editable area under the shadow root of the form control. |
| |
| Test: editing/selection/ios/show-selection-in-transformed-container.html |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::platformEditorState const): |
| |
| 2019-08-29 Youenn Fablet <youenn@apple.com> |
| |
| Skip fetch event dispatching if no fetch event handler is added at script evaluation time |
| https://bugs.webkit.org/show_bug.cgi?id=201174 |
| |
| Reviewed by Chris Dumez. |
| |
| Store whether a fetch event handler is set at script evaluation time. |
| If not, we skip the fetch event entirely so that the network load can start sooner. |
| If fetch event is skipped, we trigger soft update, as defined in |
| https://w3c.github.io/ServiceWorker/#handle-fetch step 16. |
| |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::startFetch): |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp: |
| (WebKit::WebSWServerToContextConnection::softUpdate): |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h: |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.messages.in: |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::serviceWorkerStarted): |
| (WebKit::WebSWContextManagerConnection::serviceWorkerFailedToStart): |
| (WebKit::WebSWContextManagerConnection::softUpdate): |
| * WebProcess/Storage/WebSWContextManagerConnection.h: |
| * WebProcess/Storage/WebSWContextManagerConnection.messages.in: |
| |
| 2019-08-29 Keith Rollin <krollin@apple.com> |
| |
| Remove support for macOS < 10.13 (part 3) |
| https://bugs.webkit.org/show_bug.cgi?id=201224 |
| <rdar://problem/54795934> |
| |
| Reviewed by Darin Adler. |
| |
| Remove symbols in WebKitTargetConditionals.xcconfig related to macOS |
| 10.13, including WK_MACOS_1013 and WK_MACOS_BEFORE_1013, and suffixes |
| like _MACOS_SINCE_1013. |
| |
| * Configurations/WebKitTargetConditionals.xcconfig: |
| |
| 2019-08-29 Youenn Fablet <youenn@apple.com> |
| |
| Use WebPageProxy callbacks in case of authentication challenge received from Service Worker |
| https://bugs.webkit.org/show_bug.cgi?id=201177 |
| |
| Reviewed by Alex Christensen. |
| |
| Send topOrigin for every possible load to NetworkProcess. |
| Send topOrigin as part of authentication challenge to UIProcess. |
| |
| If there is no corresponding page for the pageID, try getting a page |
| related to the service worker using the topOrigin and send the challenge to it. |
| |
| * NetworkProcess/NetworkCORSPreflightChecker.cpp: |
| (WebKit::NetworkCORSPreflightChecker::didReceiveChallenge): |
| * NetworkProcess/NetworkCORSPreflightChecker.h: |
| * NetworkProcess/NetworkLoad.cpp: |
| (WebKit::NetworkLoad::didReceiveChallenge): |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::NetworkLoadChecker): |
| (WebKit::NetworkLoadChecker::checkCORSRequestWithPreflight): |
| * NetworkProcess/NetworkLoadChecker.h: |
| * NetworkProcess/NetworkLoadParameters.h: |
| * NetworkProcess/NetworkResourceLoadParameters.cpp: |
| (WebKit::NetworkResourceLoadParameters::encode const): |
| (WebKit::NetworkResourceLoadParameters::decode): |
| * NetworkProcess/NetworkResourceLoadParameters.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::m_shouldCaptureExtraNetworkLoadMetrics): |
| * NetworkProcess/PingLoad.cpp: |
| (WebKit::PingLoad::PingLoad): |
| (WebKit::PingLoad::didReceiveChallenge): |
| * Shared/Authentication/AuthenticationManager.cpp: |
| (WebKit::AuthenticationManager::didReceiveAuthenticationChallenge): |
| * Shared/Authentication/AuthenticationManager.h: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::processAuthenticationChallenge): |
| (WebKit::NetworkProcessProxy::didReceiveAuthenticationChallenge): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didReceiveAuthenticationChallengeProxy): |
| * UIProcess/WebPageProxy.h: |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess): |
| (WebKit::WebLoaderStrategy::loadResourceSynchronously): |
| (WebKit::WebLoaderStrategy::startPingLoad): |
| |
| 2019-08-29 Chris Dumez <cdumez@apple.com> |
| |
| Dissociate the WebPageProxy's identifier from the WebPage's |
| https://bugs.webkit.org/show_bug.cgi?id=201233 |
| |
| Reviewed by Alex Christensen. |
| |
| Dissociate the WebPageProxy's identifier from the WebPage's. This will allow bumping the |
| WebPage's identifier everytime we create a WebPage in a new process in case of process |
| swap on navigation (Bug 201225). |
| |
| * Shared/WebBackForwardListItem.cpp: |
| (WebKit::WebBackForwardListItem::create): |
| (WebKit::WebBackForwardListItem::WebBackForwardListItem): |
| * Shared/WebBackForwardListItem.h: |
| (WebKit::WebBackForwardListItem::pageID const): |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetPageLoaderClient): |
| * UIProcess/API/Cocoa/WKBrowsingContextController.mm: |
| (-[WKBrowsingContextController handle]): |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView dealloc]): |
| (-[WKWebView _didCommitLayerTree:]): |
| (-[WKWebView _dispatchSetViewLayoutSize:]): |
| (-[WKWebView _cancelAnimatedResize]): |
| (-[WKWebView _remoteObjectRegistry]): |
| (-[WKWebView _handle]): |
| (-[WKWebView _focusTextInputContext:completionHandler:]): |
| (-[WKWebView _endAnimatedResize]): |
| (-[WKWebView _resizeWhileHidingContentWithUpdates:]): |
| (-[WKWebView _overrideLayoutParametersWithMinimumLayoutSize:maximumUnobscuredSizeOverride:]): |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _getAllStorageAccessEntriesFor:completionHandler:]): |
| * UIProcess/API/glib/WebKitWebContext.cpp: |
| (webkitWebContextGetWebViewForPage): |
| * UIProcess/API/glib/WebKitWebView.cpp: |
| (webkit_web_view_get_page_id): |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::handleForWebPageProxy): |
| (WebKit::WebAutomationSession::switchToBrowsingContext): |
| (WebKit::WebAutomationSession::waitForNavigationToCompleteOnPage): |
| (WebKit::WebAutomationSession::respondToPendingPageNavigationCallbacksWithTimeout): |
| (WebKit::WebAutomationSession::navigationOccurredForFrame): |
| (WebKit::WebAutomationSession::documentLoadedForFrame): |
| (WebKit::WebAutomationSession::inspectorFrontendLoaded): |
| (WebKit::WebAutomationSession::mouseEventsFlushedForPage): |
| (WebKit::WebAutomationSession::keyboardEventsFlushedForPage): |
| (WebKit::WebAutomationSession::willClosePage): |
| (WebKit::WebAutomationSession::evaluateJavaScriptFunction): |
| (WebKit::WebAutomationSession::resolveChildFrameHandle): |
| (WebKit::WebAutomationSession::resolveParentFrameHandle): |
| (WebKit::WebAutomationSession::computeElementLayout): |
| (WebKit::WebAutomationSession::selectOptionElement): |
| (WebKit::WebAutomationSession::getAllCookies): |
| (WebKit::WebAutomationSession::deleteSingleCookie): |
| (WebKit::WebAutomationSession::inputDispatcherForPage): |
| (WebKit::WebAutomationSession::viewportInViewCenterPointOfElement): |
| (WebKit::WebAutomationSession::simulateMouseInteraction): |
| (WebKit::WebAutomationSession::simulateKeyboardInteraction): |
| (WebKit::WebAutomationSession::performMouseInteraction): |
| (WebKit::WebAutomationSession::performKeyboardInteractions): |
| (WebKit::WebAutomationSession::takeScreenshot): |
| * UIProcess/Automation/WebAutomationSession.h: |
| * UIProcess/Automation/mac/WebAutomationSessionMac.mm: |
| (WebKit::WebAutomationSession::inspectBrowsingContext): |
| * UIProcess/Cocoa/PlaybackSessionManagerProxy.mm: |
| (WebKit::PlaybackSessionManagerProxy::PlaybackSessionManagerProxy): |
| (WebKit::PlaybackSessionManagerProxy::invalidate): |
| * UIProcess/Cocoa/TextCheckingController.mm: |
| (WebKit::TextCheckingController::replaceRelativeToSelection): |
| (WebKit::TextCheckingController::removeAnnotationRelativeToSelection): |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.mm: |
| (WebKit::VideoFullscreenManagerProxy::VideoFullscreenManagerProxy): |
| (WebKit::VideoFullscreenManagerProxy::invalidate): |
| * UIProcess/Cocoa/WebPageProxyCocoa.mm: |
| (WebKit::WebPageProxy::performDictionaryLookupAtLocation): |
| (WebKit::WebPageProxy::performDictionaryLookupOfCurrentSelection): |
| (WebKit::WebPageProxy::paymentCoordinatorAddMessageReceiver): |
| (WebKit::WebPageProxy::paymentCoordinatorRemoveMessageReceiver): |
| (WebKit::WebPageProxy::speakingErrorOccurred): |
| (WebKit::WebPageProxy::boundaryEventOccurred): |
| (WebKit::WebPageProxy::voicesDidChange): |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::~WebViewImpl): |
| (WebKit::WebViewImpl::windowDidOrderOffScreen): |
| (WebKit::WebViewImpl::windowDidOrderOnScreen): |
| (WebKit::WebViewImpl::windowDidChangeOcclusionState): |
| (WebKit::WebViewImpl::viewDidHide): |
| (WebKit::WebViewImpl::viewDidUnhide): |
| (WebKit::WebViewImpl::activeSpaceDidChange): |
| (WebKit::WebViewImpl::remoteObjectRegistry): |
| * UIProcess/GeolocationPermissionRequestManagerProxy.cpp: |
| (WebKit::GeolocationPermissionRequestManagerProxy::didReceiveGeolocationPermissionDecision): |
| * UIProcess/InspectorTargetProxy.cpp: |
| (WebKit::InspectorTargetProxy::connect): |
| (WebKit::InspectorTargetProxy::disconnect): |
| (WebKit::InspectorTargetProxy::sendMessageToTargetBackend): |
| * UIProcess/Notifications/NotificationPermissionRequestManagerProxy.cpp: |
| (WebKit::NotificationPermissionRequestManagerProxy::createRequest): |
| * UIProcess/Notifications/WebNotificationManagerProxy.cpp: |
| (WebKit::WebNotificationManagerProxy::show): |
| (WebKit::WebNotificationManagerProxy::cancel): |
| (WebKit::WebNotificationManagerProxy::didDestroyNotification): |
| (WebKit::pageIDsMatch): |
| (WebKit::pageAndNotificationIDsMatch): |
| (WebKit::WebNotificationManagerProxy::clearNotifications): |
| (WebKit::WebNotificationManagerProxy::providerDidShowNotification): |
| (WebKit::WebNotificationManagerProxy::providerDidClickNotification): |
| * UIProcess/Notifications/WebNotificationManagerProxy.h: |
| * UIProcess/ProvisionalPageProxy.cpp: |
| (WebKit::ProvisionalPageProxy::ProvisionalPageProxy): |
| (WebKit::ProvisionalPageProxy::~ProvisionalPageProxy): |
| (WebKit::ProvisionalPageProxy::processDidTerminate): |
| (WebKit::ProvisionalPageProxy::cancel): |
| (WebKit::ProvisionalPageProxy::initializeWebPage): |
| (WebKit::ProvisionalPageProxy::loadData): |
| (WebKit::ProvisionalPageProxy::loadRequest): |
| (WebKit::ProvisionalPageProxy::goToBackForwardItem): |
| (WebKit::ProvisionalPageProxy::didCreateMainFrame): |
| (WebKit::ProvisionalPageProxy::didStartProvisionalLoadForFrame): |
| (WebKit::ProvisionalPageProxy::didFailProvisionalLoadForFrame): |
| (WebKit::ProvisionalPageProxy::didCommitLoadForFrame): |
| * UIProcess/ProvisionalPageProxy.h: |
| * UIProcess/RemoteWebInspectorProxy.cpp: |
| (WebKit::RemoteWebInspectorProxy::load): |
| (WebKit::RemoteWebInspectorProxy::sendMessageToFrontend): |
| (WebKit::RemoteWebInspectorProxy::createFrontendPageAndWindow): |
| (WebKit::RemoteWebInspectorProxy::closeFrontendPageAndWindow): |
| * UIProcess/SuspendedPageProxy.cpp: |
| (WebKit::SuspendedPageProxy::SuspendedPageProxy): |
| (WebKit::SuspendedPageProxy::~SuspendedPageProxy): |
| (WebKit::SuspendedPageProxy::unsuspend): |
| (WebKit::SuspendedPageProxy::close): |
| (WebKit::SuspendedPageProxy::didProcessRequestToSuspend): |
| (WebKit::SuspendedPageProxy::loggingString const): |
| * UIProcess/SuspendedPageProxy.h: |
| * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: |
| (WebKit::UserMediaPermissionRequestManagerProxy::captureDevicesChanged): |
| (WebKit::UserMediaPermissionRequestManagerProxy::denyRequest): |
| (WebKit::UserMediaPermissionRequestManagerProxy::finishGrantingRequest): |
| * UIProcess/ViewGestureController.cpp: |
| (WebKit::ViewGestureController::ViewGestureController): |
| (WebKit::ViewGestureController::~ViewGestureController): |
| (WebKit::ViewGestureController::disconnectFromProcess): |
| (WebKit::ViewGestureController::connectToProcess): |
| (WebKit::ViewGestureController::controllerForGesture): |
| (WebKit::ViewGestureController::forceRepaintIfNeeded): |
| (WebKit::ViewGestureController::requestRenderTreeSizeNotificationIfNeeded): |
| * UIProcess/ViewGestureController.h: |
| * UIProcess/VisitedLinkStore.cpp: |
| (WebKit::VisitedLinkStore::addVisitedLinkHashFromPage): |
| * UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp: |
| (WebKit::WebAuthenticatorCoordinatorProxy::WebAuthenticatorCoordinatorProxy): |
| (WebKit::WebAuthenticatorCoordinatorProxy::~WebAuthenticatorCoordinatorProxy): |
| * UIProcess/WebBackForwardList.cpp: |
| (WebKit::WebBackForwardList::itemForID): |
| (WebKit::WebBackForwardList::restoreFromState): |
| * UIProcess/WebEditCommandProxy.cpp: |
| (WebKit::WebEditCommandProxy::unapply): |
| (WebKit::WebEditCommandProxy::reapply): |
| * UIProcess/WebFrameProxy.cpp: |
| (WebKit::WebFrameProxy::loadURL): |
| (WebKit::WebFrameProxy::loadData): |
| (WebKit::WebFrameProxy::stopLoading const): |
| (WebKit::WebFrameProxy::collapseSelection): |
| * UIProcess/WebFullScreenManagerProxy.cpp: |
| (WebKit::WebFullScreenManagerProxy::WebFullScreenManagerProxy): |
| (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): |
| * UIProcess/WebInspectorProxy.cpp: |
| (WebKit::WebInspectorProxy::WebInspectorProxy): |
| (WebKit::WebInspectorProxy::invalidate): |
| (WebKit::WebInspectorProxy::sendMessageToFrontend): |
| (WebKit::WebInspectorProxy::connect): |
| (WebKit::WebInspectorProxy::close): |
| (WebKit::WebInspectorProxy::reset): |
| (WebKit::WebInspectorProxy::updateForNewPageProcess): |
| (WebKit::WebInspectorProxy::setFrontendConnection): |
| (WebKit::WebInspectorProxy::showConsole): |
| (WebKit::WebInspectorProxy::showResources): |
| (WebKit::WebInspectorProxy::showMainResourceForFrame): |
| (WebKit::WebInspectorProxy::attach): |
| (WebKit::WebInspectorProxy::detach): |
| (WebKit::WebInspectorProxy::togglePageProfiling): |
| (WebKit::WebInspectorProxy::toggleElementSelection): |
| (WebKit::WebInspectorProxy::createFrontendPage): |
| (WebKit::WebInspectorProxy::openLocalInspectorFrontend): |
| (WebKit::WebInspectorProxy::open): |
| (WebKit::WebInspectorProxy::closeFrontendPageAndWindow): |
| (WebKit::WebInspectorProxy::attachAvailabilityChanged): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::WebPageProxy): |
| (WebKit::m_resetRecentCrashCountTimer): |
| (WebKit::WebPageProxy::~WebPageProxy): |
| (WebKit::WebPageProxy::setUIClient): |
| (WebKit::WebPageProxy::setIconLoadingClient): |
| (WebKit::WebPageProxy::launchProcess): |
| (WebKit::WebPageProxy::suspendCurrentPageIfPossible): |
| (WebKit::WebPageProxy::swapToWebProcess): |
| (WebKit::WebPageProxy::launchProcessForReload): |
| (WebKit::WebPageProxy::launchProcessWithItem): |
| (WebKit::WebPageProxy::initializeWebPage): |
| (WebKit::WebPageProxy::close): |
| (WebKit::WebPageProxy::tryClose): |
| (WebKit::WebPageProxy::loadRequest): |
| (WebKit::WebPageProxy::loadRequestWithNavigationShared): |
| (WebKit::WebPageProxy::loadFile): |
| (WebKit::WebPageProxy::loadData): |
| (WebKit::WebPageProxy::loadDataWithNavigationShared): |
| (WebKit::WebPageProxy::loadAlternateHTML): |
| (WebKit::WebPageProxy::loadWebArchiveData): |
| (WebKit::WebPageProxy::navigateToPDFLinkWithSimulatedClick): |
| (WebKit::WebPageProxy::stopLoading): |
| (WebKit::WebPageProxy::reload): |
| (WebKit::WebPageProxy::goToBackForwardItem): |
| (WebKit::WebPageProxy::tryRestoreScrollPosition): |
| (WebKit::WebPageProxy::setControlledByAutomation): |
| (WebKit::WebPageProxy::setIndicating): |
| (WebKit::WebPageProxy::createInspectorTargets): |
| (WebKit::WebPageProxy::setBackgroundColor): |
| (WebKit::WebPageProxy::setTopContentInset): |
| (WebKit::WebPageProxy::setUnderlayColor): |
| (WebKit::WebPageProxy::viewWillStartLiveResize): |
| (WebKit::WebPageProxy::viewWillEndLiveResize): |
| (WebKit::WebPageProxy::activityStateDidChange): |
| (WebKit::WebPageProxy::viewDidEnterWindow): |
| (WebKit::WebPageProxy::dispatchActivityStateChange): |
| (WebKit::WebPageProxy::layerHostingModeDidChange): |
| (WebKit::WebPageProxy::setInitialFocus): |
| (WebKit::WebPageProxy::clearSelection): |
| (WebKit::WebPageProxy::restoreSelectionInFocusedEditableElement): |
| (WebKit::WebPageProxy::validateCommand): |
| (WebKit::WebPageProxy::increaseListLevel): |
| (WebKit::WebPageProxy::decreaseListLevel): |
| (WebKit::WebPageProxy::changeListType): |
| (WebKit::WebPageProxy::setBaseWritingDirection): |
| (WebKit::WebPageProxy::setNeedsFontAttributes): |
| (WebKit::WebPageProxy::scheduleFullEditorStateUpdate): |
| (WebKit::WebPageProxy::selectAll): |
| (WebKit::WebPageProxy::executeEditCommand): |
| (WebKit::WebPageProxy::requestFontAttributesAtSelectionStart): |
| (WebKit::WebPageProxy::setEditable): |
| (WebKit::WebPageProxy::performDragControllerAction): |
| (WebKit::WebPageProxy::dragEnded): |
| (WebKit::WebPageProxy::didStartDrag): |
| (WebKit::WebPageProxy::dragCancelled): |
| (WebKit::WebPageProxy::processNextQueuedMouseEvent): |
| (WebKit::WebPageProxy::sendWheelEvent): |
| (WebKit::WebPageProxy::handleKeyboardEvent): |
| (WebKit::WebPageProxy::handleGestureEvent): |
| (WebKit::WebPageProxy::handleTouchEventSynchronously): |
| (WebKit::WebPageProxy::resetPotentialTapSecurityOrigin): |
| (WebKit::WebPageProxy::handleTouchEventAsynchronously): |
| (WebKit::WebPageProxy::handleTouchEvent): |
| (WebKit::WebPageProxy::cancelPointer): |
| (WebKit::WebPageProxy::touchWithIdentifierWasRemoved): |
| (WebKit::WebPageProxy::scrollBy): |
| (WebKit::WebPageProxy::centerSelectionInVisibleArea): |
| (WebKit::WebPageProxy::commitProvisionalPage): |
| (WebKit::WebPageProxy::continueNavigationInNewProcess): |
| (WebKit::WebPageProxy::setUserAgent): |
| (WebKit::WebPageProxy::resumeActiveDOMObjectsAndAnimations): |
| (WebKit::WebPageProxy::suspendActiveDOMObjectsAndAnimations): |
| (WebKit::WebPageProxy::setCustomTextEncodingName): |
| (WebKit::WebPageProxy::restoreFromSessionState): |
| (WebKit::WebPageProxy::setTextZoomFactor): |
| (WebKit::WebPageProxy::setPageZoomFactor): |
| (WebKit::WebPageProxy::setPageAndTextZoomFactors): |
| (WebKit::WebPageProxy::scalePage): |
| (WebKit::WebPageProxy::scalePageInViewCoordinates): |
| (WebKit::WebPageProxy::scaleView): |
| (WebKit::WebPageProxy::windowScreenDidChange): |
| (WebKit::WebPageProxy::accessibilitySettingsDidChange): |
| (WebKit::WebPageProxy::setUseFixedLayout): |
| (WebKit::WebPageProxy::setFixedLayoutSize): |
| (WebKit::WebPageProxy::setAlwaysShowsHorizontalScroller): |
| (WebKit::WebPageProxy::setAlwaysShowsVerticalScroller): |
| (WebKit::WebPageProxy::listenForLayoutMilestones): |
| (WebKit::WebPageProxy::setSuppressScrollbarAnimations): |
| (WebKit::WebPageProxy::setEnableVerticalRubberBanding): |
| (WebKit::WebPageProxy::setEnableHorizontalRubberBanding): |
| (WebKit::WebPageProxy::setBackgroundExtendsBeyondPage): |
| (WebKit::WebPageProxy::setPaginationMode): |
| (WebKit::WebPageProxy::setPaginationBehavesLikeColumns): |
| (WebKit::WebPageProxy::setPageLength): |
| (WebKit::WebPageProxy::setGapBetweenPages): |
| (WebKit::WebPageProxy::setPaginationLineGridEnabled): |
| (WebKit::WebPageProxy::findStringMatches): |
| (WebKit::WebPageProxy::findString): |
| (WebKit::WebPageProxy::getImageForFindMatch): |
| (WebKit::WebPageProxy::selectFindMatch): |
| (WebKit::WebPageProxy::indicateFindMatch): |
| (WebKit::WebPageProxy::hideFindUI): |
| (WebKit::WebPageProxy::countStringMatches): |
| (WebKit::WebPageProxy::replaceMatches): |
| (WebKit::WebPageProxy::runJavaScriptInMainFrameScriptWorld): |
| (WebKit::WebPageProxy::runJavaScriptInFrame): |
| (WebKit::WebPageProxy::getRenderTreeExternalRepresentation): |
| (WebKit::WebPageProxy::getSourceForFrame): |
| (WebKit::WebPageProxy::getContentsAsString): |
| (WebKit::WebPageProxy::getContentsAsAttributedString): |
| (WebKit::WebPageProxy::getBytecodeProfile): |
| (WebKit::WebPageProxy::getSamplingProfilerOutput): |
| (WebKit::WebPageProxy::getContentsAsMHTMLData): |
| (WebKit::WebPageProxy::getSelectionOrContentsAsString): |
| (WebKit::WebPageProxy::getSelectionAsWebArchiveData): |
| (WebKit::WebPageProxy::getMainResourceDataOfFrame): |
| (WebKit::WebPageProxy::getResourceDataFromFrame): |
| (WebKit::WebPageProxy::getWebArchiveOfFrame): |
| (WebKit::WebPageProxy::forceRepaint): |
| (WebKit::WebPageProxy::preferencesDidChange): |
| (WebKit::WebPageProxy::didStartProvisionalLoadForFrameShared): |
| (WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrameShared): |
| (WebKit::WebPageProxy::willPerformClientRedirectForFrame): |
| (WebKit::WebPageProxy::didCancelClientRedirectForFrame): |
| (WebKit::WebPageProxy::didFailProvisionalLoadForFrameShared): |
| (WebKit::WebPageProxy::didCommitLoadForFrame): |
| (WebKit::WebPageProxy::didFinishDocumentLoadForFrame): |
| (WebKit::WebPageProxy::didFinishLoadForFrame): |
| (WebKit::WebPageProxy::didFailLoadForFrame): |
| (WebKit::WebPageProxy::didSameDocumentNavigationForFrame): |
| (WebKit::WebPageProxy::decidePolicyForNavigationActionAsyncShared): |
| (WebKit::WebPageProxy::decidePolicyForNewWindowAction): |
| (WebKit::WebPageProxy::decidePolicyForResponseShared): |
| (WebKit::WebPageProxy::willSubmitForm): |
| (WebKit::WebPageProxy::didNavigateWithNavigationDataShared): |
| (WebKit::WebPageProxy::didPerformClientRedirectShared): |
| (WebKit::WebPageProxy::didPerformServerRedirectShared): |
| (WebKit::trySOAuthorization): |
| (WebKit::WebPageProxy::createNewPage): |
| (WebKit::WebPageProxy::showShareSheet): |
| (WebKit::WebPageProxy::setMediaVolume): |
| (WebKit::WebPageProxy::setMuted): |
| (WebKit::WebPageProxy::stopMediaCapture): |
| (WebKit::WebPageProxy::stopAllMediaPlayback): |
| (WebKit::WebPageProxy::suspendAllMediaPlayback): |
| (WebKit::WebPageProxy::resumeAllMediaPlayback): |
| (WebKit::WebPageProxy::handleMediaEvent): |
| (WebKit::WebPageProxy::setVolumeOfMediaElement): |
| (WebKit::WebPageProxy::setMayStartMediaWhenInWindow): |
| (WebKit::WebPageProxy::didChooseColor): |
| (WebKit::WebPageProxy::didEndColorPicker): |
| (WebKit::WebPageProxy::didCloseSuggestions): |
| (WebKit::WebPageProxy::didSelectOption): |
| (WebKit::WebPageProxy::setAllowsMediaDocumentInlinePlayback): |
| (WebKit::WebPageProxy::backForwardAddItem): |
| (WebKit::WebPageProxy::messageSenderDestinationID const): |
| (WebKit::WebPageProxy::valueChangedForPopupMenu): |
| (WebKit::WebPageProxy::setTextFromItemForPopupMenu): |
| (WebKit::WebPageProxy::postMessageToInjectedBundle): |
| (WebKit::WebPageProxy::failedToShowPopupMenu): |
| (WebKit::WebPageProxy::showContextMenu): |
| (WebKit::WebPageProxy::contextMenuItemSelected): |
| (WebKit::WebPageProxy::handleContextMenuKeyEvent): |
| (WebKit::WebPageProxy::didChooseFilesForOpenPanelWithDisplayStringAndIcon): |
| (WebKit::WebPageProxy::didChooseFilesForOpenPanel): |
| (WebKit::WebPageProxy::didCancelForOpenPanel): |
| (WebKit::WebPageProxy::advanceToNextMisspelling): |
| (WebKit::WebPageProxy::changeSpellingToWord): |
| (WebKit::WebPageProxy::removeEditCommand): |
| (WebKit::WebPageProxy::didFinishCheckingText): |
| (WebKit::WebPageProxy::didCancelCheckingText): |
| (WebKit::WebPageProxy::didReceiveEvent): |
| (WebKit::WebPageProxy::processDidBecomeUnresponsive): |
| (WebKit::WebPageProxy::processDidBecomeResponsive): |
| (WebKit::WebPageProxy::dispatchProcessDidTerminate): |
| (WebKit::WebPageProxy::gamepadActivity): |
| (WebKit::WebPageProxy::updateWebsitePolicies): |
| (WebKit::WebPageProxy::backForwardRemovedItem): |
| (WebKit::WebPageProxy::setCanRunModal): |
| (WebKit::WebPageProxy::beginPrinting): |
| (WebKit::WebPageProxy::endPrinting): |
| (WebKit::WebPageProxy::computePagesForPrinting): |
| (WebKit::WebPageProxy::drawRectToImage): |
| (WebKit::WebPageProxy::drawPagesToPDF): |
| (WebKit::WebPageProxy::drawPagesForPrinting): |
| (WebKit::WebPageProxy::setMinimumSizeForAutoLayout): |
| (WebKit::WebPageProxy::setAutoSizingShouldExpandToViewHeight): |
| (WebKit::WebPageProxy::setViewportSizeForCSSViewportUnits): |
| (WebKit::WebPageProxy::handleAlternativeTextUIResult): |
| (WebKit::WebPageProxy::setComposition): |
| (WebKit::WebPageProxy::confirmComposition): |
| (WebKit::WebPageProxy::cancelComposition): |
| (WebKit::WebPageProxy::setScrollPinningBehavior): |
| (WebKit::WebPageProxy::setOverlayScrollbarStyle): |
| (WebKit::WebPageProxy::addMIMETypeWithCustomContentProvider): |
| (WebKit::WebPageProxy::changeFontAttributes): |
| (WebKit::WebPageProxy::changeFont): |
| (WebKit::WebPageProxy::setTextAsync): |
| (WebKit::WebPageProxy::insertTextAsync): |
| (WebKit::WebPageProxy::hasMarkedText): |
| (WebKit::WebPageProxy::getMarkedRangeAsync): |
| (WebKit::WebPageProxy::getSelectedRangeAsync): |
| (WebKit::WebPageProxy::characterIndexForPointAsync): |
| (WebKit::WebPageProxy::firstRectForCharacterRangeAsync): |
| (WebKit::WebPageProxy::setCompositionAsync): |
| (WebKit::WebPageProxy::confirmCompositionAsync): |
| (WebKit::WebPageProxy::takeSnapshot): |
| (WebKit::WebPageProxy::requestActiveNowPlayingSessionInfo): |
| (WebKit::WebPageProxy::performImmediateActionHitTestAtLocation): |
| (WebKit::WebPageProxy::immediateActionDidUpdate): |
| (WebKit::WebPageProxy::immediateActionDidCancel): |
| (WebKit::WebPageProxy::immediateActionDidComplete): |
| (WebKit::WebPageProxy::handleAcceptedCandidate): |
| (WebKit::WebPageProxy::setUseSystemAppearance): |
| (WebKit::WebPageProxy::setHeaderBannerHeightForTesting): |
| (WebKit::WebPageProxy::setFooterBannerHeightForTesting): |
| (WebKit::WebPageProxy::setShouldDispatchFakeMouseMoveEvents): |
| (WebKit::WebPageProxy::setPlaybackTarget): |
| (WebKit::WebPageProxy::externalOutputDeviceAvailableDidChange): |
| (WebKit::WebPageProxy::setShouldPlayToPlaybackTarget): |
| (WebKit::WebPageProxy::clearWheelEventTestTrigger): |
| (WebKit::WebPageProxy::setShouldScaleViewToFitDocument): |
| (WebKit::WebPageProxy::getLoadDecisionForIcon): |
| (WebKit::WebPageProxy::setResourceCachingDisabled): |
| (WebKit::WebPageProxy::setUserInterfaceLayoutDirection): |
| (WebKit::WebPageProxy::didAllowPointerLock): |
| (WebKit::WebPageProxy::didDenyPointerLock): |
| (WebKit::WebPageProxy::requestPointerUnlock): |
| (WebKit::WebPageProxy::setURLSchemeHandlerForScheme): |
| (WebKit::WebPageProxy::didCommitCrossSiteLoadWithDataTransferFromPrevalentResource): |
| (WebKit::WebPageProxy::effectiveAppearanceDidChange): |
| (WebKit::WebPageProxy::insertAttachment): |
| (WebKit::WebPageProxy::updateAttachmentAttributes): |
| (WebKit::WebPageProxy::getApplicationManifest): |
| (WebKit::WebPageProxy::setDefersLoadingForTesting): |
| (WebKit::WebPageProxy::updateCurrentModifierState): |
| (WebKit::WebPageProxy::simulateDeviceOrientationChange): |
| (WebKit::WebPageProxy::detectDataInAllFrames): |
| (WebKit::WebPageProxy::removeDataDetectedLinks): |
| (WebKit::WebPageProxy::textInputContextsInRect): |
| (WebKit::WebPageProxy::focusTextInputContext): |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::identifier const): |
| (WebKit::WebPageProxy::webPageID const): |
| * UIProcess/WebPageProxyIdentifier.h: Added. |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::pageBeginUsingWebsiteDataStore): |
| (WebKit::WebProcessPool::pageEndUsingWebsiteDataStore): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::webPage): |
| (WebKit::WebProcessProxy::addExistingWebPage): |
| (WebKit::WebProcessProxy::removeWebPage): |
| (WebKit::WebProcessProxy::addVisitedLinkStoreUser): |
| (WebKit::WebProcessProxy::removeVisitedLinkStoreUser): |
| (WebKit::WebProcessProxy::hasProvisionalPageWithID const): |
| (WebKit::WebProcessProxy::isAllowedToUpdateBackForwardItem const): |
| (WebKit::WebProcessProxy::transformObjectsToHandles): |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebURLSchemeHandler.cpp: |
| (WebKit::WebURLSchemeHandler::startTask): |
| (WebKit::WebURLSchemeHandler::stopAllTasksForPage): |
| (WebKit::WebURLSchemeHandler::stopTask): |
| (WebKit::WebURLSchemeHandler::removeTaskFromPageMap): |
| * UIProcess/WebURLSchemeHandler.h: |
| * UIProcess/WebURLSchemeTask.cpp: |
| (WebKit::WebURLSchemeTask::WebURLSchemeTask): |
| (WebKit::WebURLSchemeTask::didPerformRedirection): |
| (WebKit::WebURLSchemeTask::didReceiveResponse): |
| (WebKit::WebURLSchemeTask::didReceiveData): |
| (WebKit::WebURLSchemeTask::didComplete): |
| * UIProcess/WebURLSchemeTask.h: |
| (WebKit::WebURLSchemeTask::pageID const): |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::getAllStorageAccessEntries): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| * UIProcess/gtk/WebPageProxyGtk.cpp: |
| (WebKit::WebPageProxy::getCenterForZoomGesture): |
| * UIProcess/ios/EditableImageController.mm: |
| (WebKit::EditableImageController::EditableImageController): |
| (WebKit::EditableImageController::~EditableImageController): |
| * UIProcess/ios/SmartMagnificationController.mm: |
| (WebKit::SmartMagnificationController::SmartMagnificationController): |
| (WebKit::SmartMagnificationController::~SmartMagnificationController): |
| (WebKit::SmartMagnificationController::handleSmartMagnificationGesture): |
| * UIProcess/ios/ViewGestureControllerIOS.mm: |
| (WebKit::ViewGestureController::beginSwipeGesture): |
| (WebKit::ViewGestureController::endSwipeGesture): |
| * UIProcess/ios/WKContentView.mm: |
| (-[WKContentView _wk_printedDocument]): |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView ensurePositionInformationIsUpToDate:]): |
| (-[WKContentView requestAutocorrectionContextWithCompletionHandler:]): |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::requestFocusedElementInformation): |
| (WebKit::WebPageProxy::updateVisibleContentRects): |
| (WebKit::WebPageProxy::resendLastVisibleContentRects): |
| (WebKit::WebPageProxy::dynamicViewportSizeUpdate): |
| (WebKit::WebPageProxy::setViewportConfigurationViewLayoutSize): |
| (WebKit::WebPageProxy::setForceAlwaysUserScalable): |
| (WebKit::WebPageProxy::setMaximumUnobscuredSize): |
| (WebKit::WebPageProxy::setDeviceOrientation): |
| (WebKit::WebPageProxy::setOverrideViewportArguments): |
| (WebKit::WebPageProxy::selectWithGesture): |
| (WebKit::WebPageProxy::updateSelectionWithTouches): |
| (WebKit::WebPageProxy::replaceDictatedText): |
| (WebKit::WebPageProxy::replaceSelectedText): |
| (WebKit::WebPageProxy::requestAutocorrectionData): |
| (WebKit::WebPageProxy::applyAutocorrection): |
| (WebKit::WebPageProxy::selectTextWithGranularityAtPoint): |
| (WebKit::WebPageProxy::selectPositionAtBoundaryWithDirection): |
| (WebKit::WebPageProxy::moveSelectionAtBoundaryWithDirection): |
| (WebKit::WebPageProxy::selectPositionAtPoint): |
| (WebKit::WebPageProxy::beginSelectionInDirection): |
| (WebKit::WebPageProxy::updateSelectionWithExtentPoint): |
| (WebKit::WebPageProxy::updateSelectionWithExtentPointAndBoundary): |
| (WebKit::WebPageProxy::requestDictationContext): |
| (WebKit::WebPageProxy::requestAutocorrectionContext): |
| (WebKit::WebPageProxy::getSelectionContext): |
| (WebKit::WebPageProxy::handleTwoFingerTapAtPoint): |
| (WebKit::WebPageProxy::handleStylusSingleTapAtPoint): |
| (WebKit::WebPageProxy::selectWithTwoTouches): |
| (WebKit::WebPageProxy::requestPositionInformation): |
| (WebKit::WebPageProxy::startInteractionWithElementAtPosition): |
| (WebKit::WebPageProxy::stopInteraction): |
| (WebKit::WebPageProxy::performActionOnElement): |
| (WebKit::WebPageProxy::applicationDidEnterBackground): |
| (WebKit::WebPageProxy::applicationDidFinishSnapshottingAfterEnteringBackground): |
| (WebKit::WebPageProxy::applicationWillEnterForeground): |
| (WebKit::WebPageProxy::applicationWillResignActive): |
| (WebKit::WebPageProxy::applicationDidBecomeActive): |
| (WebKit::WebPageProxy::extendSelection): |
| (WebKit::WebPageProxy::selectWordBackward): |
| (WebKit::WebPageProxy::requestRectsForGranularityWithSelectionOffset): |
| (WebKit::WebPageProxy::requestRectsAtSelectionOffsetWithText): |
| (WebKit::WebPageProxy::storeSelectionForAccessibility): |
| (WebKit::WebPageProxy::startAutoscrollAtPosition): |
| (WebKit::WebPageProxy::cancelAutoscroll): |
| (WebKit::WebPageProxy::moveSelectionByOffset): |
| (WebKit::WebPageProxy::registerUIProcessAccessibilityTokens): |
| (WebKit::WebPageProxy::willStartUserTriggeredZooming): |
| (WebKit::WebPageProxy::potentialTapAtPosition): |
| (WebKit::WebPageProxy::commitPotentialTap): |
| (WebKit::WebPageProxy::cancelPotentialTap): |
| (WebKit::WebPageProxy::tapHighlightAtPosition): |
| (WebKit::WebPageProxy::handleTap): |
| (WebKit::WebPageProxy::didRecognizeLongPress): |
| (WebKit::WebPageProxy::handleDoubleTapForDoubleClickAtPoint): |
| (WebKit::WebPageProxy::inspectorNodeSearchMovedToPosition): |
| (WebKit::WebPageProxy::inspectorNodeSearchEndedAtPosition): |
| (WebKit::WebPageProxy::blurFocusedElement): |
| (WebKit::WebPageProxy::setIsShowingInputViewForFocusedElement): |
| (WebKit::WebPageProxy::autofillLoginCredentials): |
| (WebKit::WebPageProxy::focusNextFocusedElement): |
| (WebKit::WebPageProxy::setFocusedElementValue): |
| (WebKit::WebPageProxy::setFocusedElementValueAsNumber): |
| (WebKit::WebPageProxy::setFocusedElementSelectedIndex): |
| (WebKit::WebPageProxy::computePagesForPrintingAndDrawToPDF): |
| (WebKit::WebPageProxy::contentSizeCategoryDidChange): |
| (WebKit::WebPageProxy::generateSyntheticEditingCommand): |
| (WebKit::WebPageProxy::hardwareKeyboardAvailabilityChanged): |
| (WebKit::WebPageProxy::requestEvasionRectsAboveSelection): |
| (WebKit::WebPageProxy::updateSelectionWithDelta): |
| (WebKit::WebPageProxy::requestDocumentEditingContext): |
| (WebKit::WebPageProxy::requestDragStart): |
| (WebKit::WebPageProxy::requestAdditionalItemsForDragSession): |
| (WebKit::WebPageProxy::didConcludeDrop): |
| (WebKit::WebPageProxy::didRequestPasswordForQuickLookDocumentInMainFrameShared): |
| * UIProcess/mac/RemoteWebInspectorProxyMac.mm: |
| (WebKit::RemoteWebInspectorProxy::platformSave): |
| (WebKit::RemoteWebInspectorProxy::platformAppend): |
| * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm: |
| (WebKit::TiledCoreAnimationDrawingAreaProxy::waitForDidUpdateActivityState): |
| * UIProcess/mac/ViewGestureControllerMac.mm: |
| (WebKit::ViewGestureController::handleMagnificationGestureEvent): |
| (WebKit::ViewGestureController::handleSmartMagnificationGesture): |
| * UIProcess/mac/WKImmediateActionController.mm: |
| (-[WKImmediateActionController immediateActionRecognizerWillBeginAnimation:]): |
| * UIProcess/mac/WebInspectorProxyMac.mm: |
| (WebKit::WebInspectorProxy::platformSave): |
| (WebKit::WebInspectorProxy::platformAppend): |
| * UIProcess/mac/WebPageProxyMac.mm: |
| (WebKit::WebPageProxy::windowAndViewFramesChanged): |
| (WebKit::WebPageProxy::setMainFrameIsScrollable): |
| (WebKit::WebPageProxy::insertDictatedTextAsync): |
| (WebKit::WebPageProxy::attributedSubstringForCharacterRangeAsync): |
| (WebKit::WebPageProxy::fontAtSelection): |
| (WebKit::WebPageProxy::stringSelectionForPasteboard): |
| (WebKit::WebPageProxy::dataSelectionForPasteboard): |
| (WebKit::WebPageProxy::readSelectionFromPasteboard): |
| (WebKit::WebPageProxy::replaceSelectionWithPasteboardData): |
| (WebKit::WebPageProxy::sendComplexTextInputToPlugin): |
| (WebKit::WebPageProxy::uppercaseWord): |
| (WebKit::WebPageProxy::lowercaseWord): |
| (WebKit::WebPageProxy::capitalizeWord): |
| (WebKit::WebPageProxy::setSmartInsertDeleteEnabled): |
| (WebKit::WebPageProxy::registerUIProcessAccessibilityTokens): |
| (WebKit::WebPageProxy::shouldDelayWindowOrderingForEvent): |
| (WebKit::WebPageProxy::acceptsFirstMouse): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-08-29 Chris Dumez <cdumez@apple.com> |
| |
| Use inline data member initialization in ProcessLauncher |
| https://bugs.webkit.org/show_bug.cgi?id=201247 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * UIProcess/Launcher/ProcessLauncher.cpp: |
| (WebKit::ProcessLauncher::ProcessLauncher): |
| * UIProcess/Launcher/ProcessLauncher.h: |
| |
| 2019-08-28 Tim Horton <timothy_horton@apple.com> |
| |
| Reloading a web view with a fixed-width viewport and variable content width restores the previous page scale, shouldn't |
| https://bugs.webkit.org/show_bug.cgi?id=201256 |
| <rdar://problem/54809509> |
| |
| Reviewed by Simon Fraser. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::restorePageState): |
| When restoring page state from a history item, if the saved scale was equal to the |
| initial scale at the time it was saved, ignore the saved scale and use the current |
| initial scale instead. |
| |
| Normally this doesn't matter because a given page's initial scale doesn't usually change |
| between loads, but it totally can! See the test for one example of a way an API client |
| might cause this; you could also imagine something similar happening if the actual |
| page content changed. |
| |
| 2019-08-28 Megan Gardner <megan_gardner@apple.com> |
| |
| Null check webFrame when creating a print preview to prevent a crash. |
| https://bugs.webkit.org/show_bug.cgi?id=201237 |
| <rdar://problem/51618863> |
| |
| Reviewed by Tim Horton. |
| |
| Move and expend a null check to keep from crashing when making a print preview. |
| |
| * UIProcess/mac/WKPrintingView.mm: |
| (-[WKPrintingView _drawPreview:]): |
| (-[WKPrintingView drawRect:]): |
| |
| 2019-08-28 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| All image drawing functions should take an argument of type ImagePaintingOptions |
| https://bugs.webkit.org/show_bug.cgi?id=201059 |
| |
| Reviewed by Simon Fraser. |
| |
| GraphicsContext::drawImage() now takes an ImagePaintingOptions. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::imagePositionInformation): |
| |
| 2019-08-28 Keith Rollin <krollin@apple.com> |
| |
| Remove support for macOS < 10.13 (part 2) |
| https://bugs.webkit.org/show_bug.cgi?id=201197 |
| <rdar://problem/54759985> |
| |
| Reviewed by Darin Adler. |
| |
| Update conditionals that reference WK_MACOS_1013 and suffixes like |
| _MACOS_SINCE_1013, assuming that we're always building on 10.13 or |
| later and that these conditionals are always True or False. |
| |
| See Bug 200694 for earlier changes in this area. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * Configurations/WebKit.xcconfig: |
| |
| 2019-08-28 Chris Dumez <cdumez@apple.com> |
| |
| Have WebPageProxy generate the page identifier by itself |
| https://bugs.webkit.org/show_bug.cgi?id=201223 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Have WebPageProxy generate the page identifier by itself instead of |
| having the WebProcessProxy do it. |
| |
| * UIProcess/ServiceWorkerProcessProxy.cpp: |
| (WebKit::m_serviceWorkerPageID): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::create): |
| (WebKit::WebPageProxy::WebPageProxy): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::createWebPage): |
| (WebKit::WebProcessProxy::generatePageID): Deleted. |
| * UIProcess/WebProcessProxy.h: |
| |
| 2019-08-28 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| REGRESSION(r243434): Wrong URL passed to WebKitWebView::load-failed when cancelling previous load |
| https://bugs.webkit.org/show_bug.cgi?id=201176 |
| |
| Reviewed by Žan Doberšek. |
| |
| Use the current provisional/committed url when faking an error event, instead of the current active URI that can |
| be the pending api request of a new load. |
| |
| * UIProcess/API/glib/WebKitWebView.cpp: |
| (webkitWebViewWillStartLoad): |
| |
| 2019-08-28 Claudio Saavedra <csaavedra@igalia.com> |
| |
| [GTK][WPE] Implement HSTS for the soup network backend |
| https://bugs.webkit.org/show_bug.cgi?id=192074 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| libsoup 2.67.1 introduced HSTS support via a SoupSessionFeature. |
| Add support to the soup network backend by adding the feature to |
| SoupNetworkSession and handling HSTS protocol upgrades, by |
| propagating the scheme change further to clients. This patch adds |
| the HSTS feature unconditionally, but it still possible to add |
| a boolean property to the web context class if desired. |
| |
| Additionally, add API to the WebKitWebsiteDataManager to specify |
| the directory where the HSTS database is saved. If the directory |
| is not set or if the data manager is ephemeral, use a |
| non-persistent, memory only HSTS enforcer. |
| |
| Implement as well the methods needed to clean-up and delete HSTS |
| policies from the storage and expose the feature in GTK+ |
| MiniBrowser's about:data. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::fetchWebsiteData): |
| (WebKit::NetworkProcess::deleteWebsiteData): |
| (WebKit::NetworkProcess::deleteWebsiteDataForOrigins): |
| (WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains): |
| (WebKit::NetworkProcess::registrableDomainsWithWebsiteData): |
| * NetworkProcess/NetworkProcess.h: |
| (WebKit::NetworkProcess::suppressesConnectionTerminationOnSystemChange const): |
| * NetworkProcess/soup/NetworkDataTaskSoup.cpp: |
| (WebKit::NetworkDataTaskSoup::createRequest): |
| (WebKit::NetworkDataTaskSoup::clearRequest): |
| (WebKit::NetworkDataTaskSoup::shouldAllowHSTSPolicySetting const): |
| (WebKit::NetworkDataTaskSoup::shouldAllowHSTSProtocolUpgrade const): |
| (WebKit::NetworkDataTaskSoup::protocolUpgradedViaHSTS): |
| (WebKit::NetworkDataTaskSoup::hstsEnforced): |
| * NetworkProcess/soup/NetworkDataTaskSoup.h: |
| * NetworkProcess/soup/NetworkProcessSoup.cpp: |
| (WebKit::NetworkProcess::getHostNamesWithHSTSCache): |
| (WebKit::NetworkProcess::deleteHSTSCacheForHostNames): |
| (WebKit::NetworkProcess::clearHSTSCache): |
| (WebKit::NetworkProcess::platformInitializeNetworkProcess): |
| * UIProcess/API/APIWebsiteDataStore.h: |
| * UIProcess/API/glib/APIWebsiteDataStoreGLib.cpp: |
| (API::WebsiteDataStore::defaultHSTSDirectory): |
| * UIProcess/API/glib/WebKitWebContext.cpp: |
| (webkitWebContextConstructed): |
| * UIProcess/API/glib/WebKitWebsiteData.cpp: |
| (recordContainsSupportedDataTypes): |
| (toWebKitWebsiteDataTypes): |
| * UIProcess/API/glib/WebKitWebsiteDataManager.cpp: |
| (webkitWebsiteDataManagerGetProperty): |
| (webkitWebsiteDataManagerSetProperty): |
| (webkitWebsiteDataManagerConstructed): |
| (webkit_website_data_manager_class_init): |
| (webkitWebsiteDataManagerGetDataStore): |
| (webkit_website_data_manager_get_hsts_cache_directory): |
| (toWebsiteDataTypes): |
| * UIProcess/API/gtk/WebKitWebsiteData.h: |
| * UIProcess/API/gtk/WebKitWebsiteDataManager.h: |
| * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: |
| * UIProcess/API/wpe/WebKitWebsiteData.h: |
| * UIProcess/API/wpe/WebKitWebsiteDataManager.h: |
| * UIProcess/API/wpe/docs/wpe-1.0-sections.txt: |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp: |
| (WebKit::WebsiteDataStoreConfiguration::copy): |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h: |
| (WebKit::WebsiteDataStoreConfiguration::hstsStorageDirectory const): |
| (WebKit::WebsiteDataStoreConfiguration::setHSTSStorageDirectory): |
| |
| 2019-08-27 Mark Lam <mark.lam@apple.com> |
| |
| Refactor to use VM& instead of VM* at as many places as possible. |
| https://bugs.webkit.org/show_bug.cgi?id=201172 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| * WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMNode.cpp: |
| (webkit_dom_node_for_js_value): |
| * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp: |
| (WebKit::InjectedBundleNodeHandle::getOrCreate): |
| * WebProcess/Plugins/Netscape/JSNPObject.cpp: |
| (WebKit::JSNPObject::getOwnPropertyNames): |
| * WebProcess/Plugins/Netscape/NPJSObject.cpp: |
| (WebKit::identifierFromIdentifierRep): |
| (WebKit::NPJSObject::enumerate): |
| * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp: |
| (WebKit::NPRuntimeObjectMap::convertNPVariantToJSValue): |
| (WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant): |
| * WebProcess/WebPage/WebFrame.cpp: |
| (WebKit::WebFrame::counterValue): |
| |
| 2019-08-27 James Savage <james.savage@apple.com> |
| |
| Populate alternate URL for _WKActivatedElementInfo in UIContextMenu SPI. |
| https://bugs.webkit.org/show_bug.cgi?id=201165. |
| rdar://problem/54729648. |
| |
| Reviewed by Dean Jackson. |
| |
| * UIProcess/API/APIContextMenuElementInfo.h: |
| * UIProcess/API/APIContextMenuElementInfo.cpp: |
| (API::ContextMenuElementInfo::ContextMenuElementInfo): Initialize new memeber. |
| |
| * UIProcess/API/Cocoa/WKContextMenuElementInfo.mm: |
| (-[WKContextMenuElementInfo _activatedElementInfo]): Use new initializer. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _requestActivatedElementAtPosition:completionBlock:]): Ditto. |
| |
| * UIProcess/API/Cocoa/_WKActivatedElementInfoInternal.h: |
| * UIProcess/API/Cocoa/_WKActivatedElementInfo.mm: |
| (+[_WKActivatedElementInfo activatedElementInfoWithInteractionInformationAtPosition:userInfo:]): |
| Ditto. |
| (-[_WKActivatedElementInfo _initWithInteractionInformationAtPosition:userInfo:]): Set new ivar. |
| (+[_WKActivatedElementInfo activatedElementInfoWithInteractionInformationAtPosition:]): Deleted. |
| (-[_WKActivatedElementInfo _initWithInteractionInformationAtPosition:]): Deleted. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView assignLegacyDataForContextMenuInteraction]): Use new initializer. |
| (-[WKContentView continueContextMenuInteraction:]): If the context menu is being generated for |
| an image, and we do not have a URL associated with the position information, try to |
| generate one using existing SPI. This change also passes through the userInfo via a new |
| property on _WKActivatedElementInfo. We only do this for the SPI version of this delegate |
| method, because the API is not called for image previews. |
| (-[WKContentView _contextMenuInteraction:overrideSuggestedActionsForConfiguration:]): Use new |
| initializer. |
| |
| 2019-08-27 Basuke Suzuki <Basuke.Suzuki@sony.com> |
| |
| [RemoteInspector][Socket] Restructuring the components of Socket implementation |
| https://bugs.webkit.org/show_bug.cgi?id=201079 |
| |
| Reviewed by Ross Kirsling. |
| |
| RemoteInspectorClient is now free from creation of SocketEndpoint. All communication |
| to SocketEndpoint id now the duty of super class. |
| |
| * UIProcess/socket/RemoteInspectorClient.cpp: |
| (WebKit::RemoteInspectorClient::RemoteInspectorClient): Remove direct communication to Socket Endpoint. |
| (WebKit::RemoteInspectorClient::sendWebInspectorEvent): Ditto. |
| * UIProcess/socket/RemoteInspectorClient.h: |
| |
| 2019-08-27 Chris Dumez <cdumez@apple.com> |
| |
| Introduce subclasses to RemoteObjectRegistry for the UIProcess and the WebProcess |
| https://bugs.webkit.org/show_bug.cgi?id=201153 |
| |
| Reviewed by Alex Christensen. |
| |
| This better factoring improves code clarity. |
| |
| * PlatformMac.cmake: |
| * Shared/API/Cocoa/RemoteObjectRegistry.h: |
| (WebKit::RemoteObjectRegistry::~RemoteObjectRegistry): |
| (WebKit::RemoteObjectRegistry::takeBackgroundActivityToken): |
| * Shared/API/Cocoa/RemoteObjectRegistry.mm: |
| (WebKit::RemoteObjectRegistry::RemoteObjectRegistry): |
| (WebKit::RemoteObjectRegistry::sendInvocation): |
| (WebKit::RemoteObjectRegistry::sendReplyBlock): |
| (WebKit::RemoteObjectRegistry::sendUnusedReply): |
| * Shared/API/Cocoa/_WKRemoteObjectRegistry.mm: |
| (-[_WKRemoteObjectRegistry _initWithWebPage:]): |
| (-[_WKRemoteObjectRegistry _initWithWebPageProxy:]): |
| * SourcesCocoa.txt: |
| * UIProcess/Cocoa/UIRemoteObjectRegistry.cpp: Added. |
| (WebKit::UIRemoteObjectRegistry::takeBackgroundActivityToken): |
| (WebKit::UIRemoteObjectRegistry::UIRemoteObjectRegistry): |
| (WebKit::UIRemoteObjectRegistry::sendInvocation): |
| (WebKit::UIRemoteObjectRegistry::messageSender): |
| * UIProcess/Cocoa/UIRemoteObjectRegistry.h: Added. |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebPage/Cocoa/WebPageCocoa.mm: |
| (WebKit::WebPage::setRemoteObjectRegistry): |
| (WebKit::WebPage::remoteObjectRegistry): |
| * WebProcess/WebPage/Cocoa/WebRemoteObjectRegistry.cpp: Added. |
| (WebKit::WebRemoteObjectRegistry::WebRemoteObjectRegistry): |
| (WebKit::WebRemoteObjectRegistry::~WebRemoteObjectRegistry): |
| (WebKit::WebRemoteObjectRegistry::close): |
| (WebKit::WebRemoteObjectRegistry::messageSender): |
| * WebProcess/WebPage/Cocoa/WebRemoteObjectRegistry.h: Added. |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::close): |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2019-08-26 Jer Noble <jer.noble@apple.com> |
| |
| Removing fullscreen element in rAF() callback after requestFullscreen() can leave fullscreen in inconsistent state. |
| https://bugs.webkit.org/show_bug.cgi?id=201101 |
| <rdar://problem/54164587> |
| |
| Reviewed by Eric Carlson. |
| |
| Add more state to track in which direction the animation is flowing to allow in-process |
| animations to be cancelled more gracefully. |
| |
| * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm: |
| (-[WKFullScreenWindowController enterFullScreen]): |
| (-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]): |
| (-[WKFullScreenWindowController requestExitFullScreen]): |
| (-[WKFullScreenWindowController exitFullScreen]): |
| * WebProcess/cocoa/VideoFullscreenManager.h: |
| (WebKit::VideoFullscreenInterfaceContext::animationState const): |
| (WebKit::VideoFullscreenInterfaceContext::setAnimationState): |
| (WebKit::VideoFullscreenInterfaceContext::isAnimating const): Deleted. |
| (WebKit::VideoFullscreenInterfaceContext::setIsAnimating): Deleted. |
| * WebProcess/cocoa/VideoFullscreenManager.mm: |
| (WebKit::VideoFullscreenManager::enterVideoFullscreenForVideoElement): |
| (WebKit::VideoFullscreenManager::exitVideoFullscreenForVideoElement): |
| (WebKit::VideoFullscreenManager::didEnterFullscreen): |
| (WebKit::VideoFullscreenManager::didCleanupFullscreen): |
| |
| 2019-08-27 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Do not clear the pending api request when there's no navigation ID |
| https://bugs.webkit.org/show_bug.cgi?id=201175 |
| |
| Reviewed by Chris Dumez. |
| |
| After r247851, the pending API request URL is cleared for subresources in some cases. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didStartProvisionalLoadForFrameShared): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| |
| 2019-08-27 Zan Dobersek <zdobersek@igalia.com> |
| |
| [CoordGraphics] Delay LayerTreeHost creation in always-on AC until DrawingArea painting is enabled |
| https://bugs.webkit.org/show_bug.cgi?id=201178 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| When in always-on AC mode, the LayerTreeHost spawning should be delayed |
| until the WebPage construction (which sets up the LayerTreeHost-owning |
| DrawingArea implementation) is further done with initializing relevant |
| state, and not immediately after the DrawingArea is done with preference |
| updates. |
| |
| This is necessary in order to enable the LayerTreeHost instance to take |
| into account additional WebPage-creation attributes like the correct |
| device scale factor. Until now, when the LayerTreeHost was spawned in |
| always-on AC mode, the device scale factor was not yet updated in the |
| WebPage construction to the appropriate value, leaving the LayerTreeHost |
| with the default 1.0 value instead of the intended one. |
| |
| DrawingArea::setPaintingEnabled() is repurposed into enablePainting() |
| that is to be called once everything should be set for painting (i.e. |
| when setPaintingEnabled(true) was being called until now). Inside the |
| DrawingAreaProxyCoordinatedGraphics class (only one to provide an |
| implementation for this method), the LayerTreeHost is now spawned if |
| in always-on AC mode. At this point, all relevant state coming from |
| the owning WebPage object should be readily available for the host |
| to correctly set up initial graphics scene. |
| |
| * WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp: |
| (WebKit::DrawingAreaCoordinatedGraphics::updatePreferences): |
| (WebKit::DrawingAreaCoordinatedGraphics::enablePainting): |
| * WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.h: |
| * WebProcess/WebPage/DrawingArea.h: |
| (WebKit::DrawingArea::enablePainting): |
| (WebKit::DrawingArea::setPaintingEnabled): Deleted. |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_textAutoSizingAdjustmentTimer): |
| (WebKit::WebPage::reinitializeWebPage): |
| |
| 2019-08-26 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: use more C++ keywords for defining agents |
| https://bugs.webkit.org/show_bug.cgi?id=200959 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| - make constructors `protected` when the agent isn't meant to be constructed directly |
| - add `virtual` destructors that are defined in the *.cpp so forward-declarations work |
| - use `final` wherever possible |
| - add comments to indicate where any virtual functions come from |
| |
| * UIProcess/WebPageInspectorTargetAgent.h: |
| * UIProcess/WebPageInspectorTargetAgent.cpp: |
| |
| 2019-08-26 Chris Dumez <cdumez@apple.com> |
| |
| Regression: ITP started doing a lot more IPC after its logic was moved to the network process |
| https://bugs.webkit.org/show_bug.cgi?id=201155 |
| |
| Reviewed by John Wilander. |
| |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeWebProcess): |
| |
| 2019-08-26 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| REGRESSION (iOS 13): Tests that simulate multiple back-to-back single taps fail or time out |
| https://bugs.webkit.org/show_bug.cgi?id=201129 |
| <rdar://problem/51857277> |
| |
| Reviewed by Tim Horton. |
| |
| Adds a new SPI hook in WebKit to let clients know when a synthetic tap gesture that has ended has been reset. |
| See Tools/ChangeLog and LayoutTests/ChangeLog for more details. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _doAfterResettingSingleTapGesture:]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _singleTapDidReset:]): |
| (-[WKContentView _doAfterResettingSingleTapGesture:]): |
| |
| 2019-08-26 Brent Fulgham <bfulgham@apple.com> |
| |
| [FTW] Go back to ID2D1Bitmap as our NativeImage type |
| https://bugs.webkit.org/show_bug.cgi?id=201122 |
| |
| Reviewed by Alex Christensen. |
| |
| In Bug 200093 I switched the OS type of NativeImagePtr from ID2D1Bitmap to IWICBitmap. |
| However, this was an ill-advised approach, because it dramatically harmed performance due |
| to the heavy use of software rendering. |
| |
| I originally made this change because I thought this was the only way to get to the backing |
| bits of the bitmaps, but it turns out that a more recent Direct2D data type (ID2D1Bitmap1) |
| has the ability to map its memory to CPU-accessible memory, allowing software filter effects. |
| |
| This patch switches back to the ID2D1Bitap data type, and hooks up the ID2D1Bitmap1 data type |
| to access the underlying memory of the bitmaps when software filter effects are used. |
| |
| Reviewed by Alex Christensen. |
| |
| * Shared/ShareableBitmap.h: |
| * Shared/win/ShareableBitmapDirect2D.cpp: |
| * UIProcess/win/BackingStoreDirect2D.cpp: |
| * WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp: |
| |
| 2019-08-26 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthn] Support HID authenticators on iOS |
| https://bugs.webkit.org/show_bug.cgi?id=201084 |
| <rdar://problem/51908390> |
| |
| Reviewed by Youenn Fablet. |
| |
| This patch makes the macOS HID implementation available in iOS as well. |
| Mostly, it removes the PLATFORM(MAC) compile time flag. |
| |
| * UIProcess/WebAuthentication/AuthenticatorManager.cpp: |
| (WebKit::AuthenticatorManagerInternal::collectTransports): |
| * UIProcess/WebAuthentication/AuthenticatorTransportService.cpp: |
| (WebKit::AuthenticatorTransportService::create): |
| (WebKit::AuthenticatorTransportService::createMock): |
| * UIProcess/WebAuthentication/Cocoa/HidConnection.h: |
| * UIProcess/WebAuthentication/Cocoa/HidConnection.mm: |
| * UIProcess/WebAuthentication/Cocoa/HidService.h: |
| * UIProcess/WebAuthentication/Cocoa/HidService.mm: |
| * UIProcess/WebAuthentication/Cocoa/NfcConnection.mm: |
| (WebKit::NfcConnection::NfcConnection): |
| A tentative solution before there is an official UI. |
| * UIProcess/WebAuthentication/Mock/MockHidConnection.cpp: |
| * UIProcess/WebAuthentication/Mock/MockHidConnection.h: |
| * UIProcess/WebAuthentication/Mock/MockHidService.cpp: |
| * UIProcess/WebAuthentication/Mock/MockHidService.h: |
| * UIProcess/WebAuthentication/fido/CtapHidDriver.cpp: |
| * UIProcess/WebAuthentication/fido/CtapHidDriver.h: |
| |
| 2019-08-26 Russell Epstein <repstein@apple.com> |
| |
| Unreviewed, rolling out r248961. |
| |
| Same patch was re-landed after being rolled out. Patch is |
| causing Catalina/iOS 13 test failures. Rolling out. |
| |
| Reverted changeset: |
| |
| "Verify Prefetch and credential behavior" |
| https://bugs.webkit.org/show_bug.cgi?id=200000 |
| https://trac.webkit.org/changeset/248961 |
| |
| 2019-08-26 Youenn Fablet <youenn@apple.com> |
| |
| Add a WebsiteDataStore delegate to handle AuthenticationChallenge that do not come from pages |
| https://bugs.webkit.org/show_bug.cgi?id=196870 |
| |
| Reviewed by Alex Christensen. |
| |
| Make NetworkProcess provide the session ID for any authentication challenge. |
| In case there is no associated page for the authentication challenge or this is related to a service worker, |
| ask the website data store to take a decision. |
| Add website data store delegate to allow applications to make the decision. |
| Restrict using the delegate to server trust evaluation only. |
| |
| Make ping loads reuse the same mechanism. |
| |
| Covered by service worker tests and updated beacon test. |
| |
| * NetworkProcess/NetworkCORSPreflightChecker.cpp: |
| (WebKit::NetworkCORSPreflightChecker::didReceiveChallenge): |
| * NetworkProcess/NetworkDataTask.cpp: |
| (WebKit::NetworkDataTask::sessionID const): |
| * NetworkProcess/NetworkDataTask.h: |
| * NetworkProcess/NetworkLoad.cpp: |
| (WebKit::NetworkLoad::didReceiveChallenge): |
| * NetworkProcess/NetworkLoadChecker.h: |
| (WebKit::NetworkLoadChecker::networkProcess): |
| * NetworkProcess/PingLoad.cpp: |
| (WebKit::PingLoad::didReceiveChallenge): |
| * Shared/Authentication/AuthenticationManager.cpp: |
| (WebKit::AuthenticationManager::didReceiveAuthenticationChallenge): |
| * Shared/Authentication/AuthenticationManager.h: |
| * Shared/Authentication/cocoa/AuthenticationChallengeDispositionCocoa.h: Copied from Tools/WebKitTestRunner/cocoa/TestWebsiteDataStoreDelegate.h. |
| * Shared/Authentication/cocoa/AuthenticationChallengeDispositionCocoa.mm: Copied from Source/WebKit/Shared/Authentication/cocoa/ClientCertificateAuthenticationXPCConstants.h. |
| (WebKit::toAuthenticationChallengeDisposition): |
| * SourcesCocoa.txt: |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (WebsiteDataStoreClient::WebsiteDataStoreClient): |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreDelegate.h: |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationClient::didReceiveAuthenticationChallenge): |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::didReceiveAuthenticationChallenge): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| * UIProcess/ServiceWorkerProcessProxy.cpp: |
| * UIProcess/ServiceWorkerProcessProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::isServiceWorkerPageID const): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebsiteData/WebsiteDataStoreClient.h: |
| (WebKit::WebsiteDataStoreClient::didReceiveAuthenticationChallenge): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-08-25 Simon Fraser <simon.fraser@apple.com> |
| |
| [iOS WK2] Make a strongly-typed TransactionID to replace uint64_t transactionIDs |
| https://bugs.webkit.org/show_bug.cgi?id=199983 |
| |
| Reviewed by Dean Jackson. |
| |
| Add TransactionID which is a MonotonicObjectIdentifier<TransactionIDType>. This is modeled |
| after ObjectIdentifier<>, but we can't use that because it doesn't have a guarantee of |
| values always increasing by 1 (all derived classes share the same value source). Also, we |
| need a per-RemoteLayerTreeDrawingArea set of values, but a static seed would cause values to |
| be incremented by all RemoteLayerTreeDrawingAreas in a WebProcess. |
| |
| Replace all the bare uint64_t with TransactionID, fixing message generation codegen. |
| |
| * Scripts/webkit/messages.py: |
| * Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h: |
| (WebKit::RemoteLayerTreeTransaction::transactionID const): |
| (WebKit::RemoteLayerTreeTransaction::setTransactionID): |
| * Shared/TransactionID.h: Added. |
| (WebKit::MonotonicObjectIdentifier::MonotonicObjectIdentifier): |
| (WebKit::MonotonicObjectIdentifier::isHashTableDeletedValue const): |
| (WebKit::MonotonicObjectIdentifier::encode const): |
| (WebKit::MonotonicObjectIdentifier::decode): |
| (WebKit::MonotonicObjectIdentifier::operator== const): |
| (WebKit::MonotonicObjectIdentifier::operator> const): |
| (WebKit::MonotonicObjectIdentifier::operator>= const): |
| (WebKit::MonotonicObjectIdentifier::operator< const): |
| (WebKit::MonotonicObjectIdentifier::operator<= const): |
| (WebKit::MonotonicObjectIdentifier::operator!= const): |
| (WebKit::MonotonicObjectIdentifier::increment): |
| (WebKit::MonotonicObjectIdentifier::next const): |
| (WebKit::MonotonicObjectIdentifier::toUInt64 const): |
| (WebKit::MonotonicObjectIdentifier::operator bool const): |
| (WebKit::MonotonicObjectIdentifier::loggingString const): |
| (WebKit::MonotonicObjectIdentifier::hashTableDeletedValue): |
| (WebKit::MonotonicObjectIdentifier::isValidIdentifier): |
| (WebKit::operator<<): |
| * Shared/VisibleContentRectUpdateInfo.h: |
| (WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo): |
| (WebKit::VisibleContentRectUpdateInfo::lastLayerTreeTransactionID const): |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _processWillSwapOrDidExit]): |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h: |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.messages.in: |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm: |
| (WebKit::RemoteLayerTreeDrawingAreaProxy::willCommitLayerTree): |
| (WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::resetState): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView cleanupInteraction]): |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::commitPotentialTap): |
| (WebKit::WebPageProxy::handleTap): |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h: |
| (WebKit::RemoteLayerTreeDrawingArea::nextTransactionID const): |
| (WebKit::RemoteLayerTreeDrawingArea::lastCommittedTransactionID const): |
| (WebKit::RemoteLayerTreeDrawingArea::takeNextTransactionID): |
| * WebProcess/WebPage/WebFrame.h: |
| (WebKit::WebFrame::firstLayerTreeTransactionIDAfterDidCommitLoad const): |
| (WebKit::WebFrame::setFirstLayerTreeTransactionIDAfterDidCommitLoad): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::handleTap): |
| (WebKit::WebPage::handlePotentialDoubleTapForDoubleClickAtPoint): |
| (WebKit::WebPage::commitPotentialTap): |
| |
| 2019-08-24 Chris Dumez <cdumez@apple.com> |
| |
| Make CacheStorageEngineCaches's decodeCachesNames() more robust against bad input data |
| https://bugs.webkit.org/show_bug.cgi?id=201102 |
| |
| Reviewed by Antti Koivisto. |
| |
| Use Vector::tryReserveCapacity() instead of Vector::reserveInitialCapacity() in CacheStorage::decodeCachesNames() |
| since the size is read from disk and thus cannot be trusted. If the size is too large, reserveInitialCapacity() |
| would end up crashing the network process. Now, we merely discard the data if tryReserveCapacity() fails because |
| the size is too large. |
| |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::decodeCachesNames): |
| |
| 2019-08-23 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS] [WebKit2] Tapping on the “I’m” text suggestion after typing “i’” does nothing |
| https://bugs.webkit.org/show_bug.cgi?id=201085 |
| <rdar://problem/53056118> |
| |
| Reviewed by Tim Horton. |
| |
| Currently, logic in applyAutocorrectionInternal only selects the range to autocorrect if the text of the range |
| matches the string to replace (delivered to us from UIKit). In the case of changing "I’" to "I’m", the string to |
| replace is "I'" (with a straight quote rather than an apostrophe), even though the DOM contains an apostrophe. |
| |
| This is because kbd believes that the document context contains straight quotes (rather than apostrophes). For |
| native text views, this works out because UIKit uses relative UITextPositions to determine the replacement |
| range rather than by checking against the contents of the document. However, WKWebView does not have the ability |
| to synchronously compute and reason about arbitrary UITextPositions relative to the selection, so we instead |
| search for the string near the current selection when applying autocorrections. |
| |
| Of course, this doesn't work in this scenario because the replacement string contains a straight quote, yet the |
| text node contains an apostrophe, so we bail and don't end up replacing any text. To address this, we repurpose |
| TextIterator helpers currently used to allow find-in-page to match straight quotes against apostrophes; instead |
| of matching the replacement string exactly, we instead match the quote-folded versions of these strings when |
| finding the range to replace. |
| |
| Test: fast/events/ios/autocorrect-with-apostrophe.html |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::applyAutocorrectionInternal): |
| |
| 2019-08-23 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Unreviewed, build fix after r249059 |
| |
| * UIProcess/WebAuthentication/Cocoa/NfcConnection.mm: |
| (WebKit::NfcConnection::NfcConnection): |
| Remove the HAVE() macro. |
| |
| 2019-08-23 Chris Dumez <cdumez@apple.com> |
| |
| [geolocation] Rename interfaces and remove [NoInterfaceObject] |
| https://bugs.webkit.org/show_bug.cgi?id=200885 |
| |
| Reviewed by Alex Christensen. |
| |
| * Shared/WebGeolocationPosition.cpp: |
| (WebKit::WebGeolocationPosition::create): |
| * Shared/WebGeolocationPosition.h: |
| (WebKit::WebGeolocationPosition::corePosition const): |
| (WebKit::WebGeolocationPosition::WebGeolocationPosition): |
| * UIProcess/API/C/WKGeolocationPosition.cpp: |
| (WKGeolocationPositionCreate_c): |
| * UIProcess/WebGeolocationManagerProxy.h: |
| (WebKit::WebGeolocationManagerProxy::lastPosition const): |
| * UIProcess/ios/WKGeolocationProviderIOS.mm: |
| (-[WKLegacyCoreLocationProvider positionChanged:]): |
| * WebProcess/Geolocation/WebGeolocationManager.cpp: |
| (WebKit::WebGeolocationManager::didChangePosition): |
| * WebProcess/Geolocation/WebGeolocationManager.h: |
| * WebProcess/Geolocation/WebGeolocationManager.messages.in: |
| * WebProcess/WebCoreSupport/WebGeolocationClient.cpp: |
| (WebKit::WebGeolocationClient::lastPosition): |
| * WebProcess/WebCoreSupport/WebGeolocationClient.h: |
| |
| 2019-08-23 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r249001. |
| |
| Caused one layout test to fail on all configurations and |
| another to time out on Catalina / iOS 13. |
| |
| Reverted changeset: |
| |
| "Add a WebsiteDataStore delegate to handle |
| AuthenticationChallenge that do not come from pages" |
| https://bugs.webkit.org/show_bug.cgi?id=196870 |
| https://trac.webkit.org/changeset/249001 |
| |
| 2019-08-23 Brian Burg <bburg@apple.com> |
| |
| REGRESSION(r248713): WebDriver commands which target the implicit main frame now hit an ASSERT |
| https://bugs.webkit.org/show_bug.cgi?id=200793 |
| <rdar://problem/54516988> |
| |
| Reviewed by Chris Dumez. |
| |
| SimulatedInputDispatcher and its callers need to support Optional<FrameIdentifier> |
| and WTF::nullopt as an encoding for the implicit main frame. |
| |
| * UIProcess/Automation/SimulatedInputDispatcher.h: |
| * UIProcess/Automation/SimulatedInputDispatcher.cpp: |
| (WebKit::SimulatedInputDispatcher::resolveLocation): |
| (WebKit::SimulatedInputDispatcher::run): |
| |
| * UIProcess/Automation/WebAutomationSession.h: |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::viewportInViewCenterPointOfElement): |
| (WebKit::WebAutomationSession::performInteractionSequence): |
| (WebKit::WebAutomationSession::cancelInteractionSequence): |
| |
| 2019-08-20 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthn] Support NFC authenticators for iOS |
| https://bugs.webkit.org/show_bug.cgi?id=188624 |
| <rdar://problem/43354214> |
| |
| Reviewed by Chris Dumez. |
| |
| This patch implements support for NFC authenticators including both FIDO2 and U2F ones. It utilizes a private |
| framework called NearField instead of CoreNFC to be able to supply a custom UI later if necessary. |
| |
| The patch follows almost the same flow as previous HID and Local authenticator support. |
| 1) Discovery is via NfcService which will invoke NFHardwareManager to start a generic NFC reader session. |
| 2) Once a reader session is established, a NfcConnection is created to start the polling and register the WKNFReaderSessionDelegate |
| to wait for 'didDetectTags'. |
| 3) When tags are detected, NfcConnection will determine if it meets our requriements: { type, connectability, fido applet availability }. |
| The first tag that meets all requirement will then be returned for WebAuthn operations. |
| 4) The first WebAuthn operation is to send authenticatorGetInfo command to determine the supported protocol, and then initialize corresponding |
| authenticators. Noted, the sending/receiving of this command is now abstracted into FidoService which will be shared across HidService and NfcService. |
| 5) From then, the actual WebAuthn request, either makeCredential or getAssertion will be sent. |
| |
| For testing, this patch follows the same flow as well. |
| 1) MockNfcService overrides NfcService to mock the behavior of NFC Tags discovery. |
| 2) The same class also swizzles methods from NFReaderSession to mock tag connection and communication. |
| |
| * Platform/spi/Cocoa/NearFieldSPI.h: Added. |
| * Sources.txt: |
| * SourcesCocoa.txt: |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreSetWebAuthenticationMockConfiguration): |
| * UIProcess/WebAuthentication/AuthenticatorManager.cpp: |
| (WebKit::AuthenticatorManagerInternal::collectTransports): |
| * UIProcess/WebAuthentication/AuthenticatorTransportService.cpp: |
| (WebKit::AuthenticatorTransportService::create): |
| (WebKit::AuthenticatorTransportService::createMock): |
| * UIProcess/WebAuthentication/Cocoa/HidService.h: |
| * UIProcess/WebAuthentication/Cocoa/HidService.mm: |
| (WebKit::HidService::HidService): |
| (WebKit::HidService::deviceAdded): |
| (WebKit::HidService::continueAddDeviceAfterGetInfo): Deleted. |
| * UIProcess/WebAuthentication/Cocoa/NearFieldSoftLink.h: Copied from Source/WebKit/UIProcess/WebAuthentication/Cocoa/HidService.h. |
| * UIProcess/WebAuthentication/Cocoa/NearFieldSoftLink.mm: Copied from Source/WebKit/UIProcess/WebAuthentication/Cocoa/HidService.h. |
| * UIProcess/WebAuthentication/Cocoa/NfcConnection.h: Copied from Source/WebKit/UIProcess/WebAuthentication/Cocoa/HidService.h. |
| * UIProcess/WebAuthentication/Cocoa/NfcConnection.mm: Added. |
| (WebKit::fido::compareVersion): |
| (WebKit::NfcConnection::NfcConnection): |
| (WebKit::NfcConnection::~NfcConnection): |
| (WebKit::NfcConnection::transact const): |
| (WebKit::NfcConnection::didDetectTags const): |
| * UIProcess/WebAuthentication/Cocoa/NfcService.h: Copied from Source/WebKit/UIProcess/WebAuthentication/Cocoa/HidService.h. |
| * UIProcess/WebAuthentication/Cocoa/NfcService.mm: Added. |
| (WebKit::NfcService::NfcService): |
| (WebKit::NfcService::~NfcService): |
| (WebKit::NfcService::didConnectTag): |
| (WebKit::NfcService::startDiscoveryInternal): |
| (WebKit::NfcService::platformStartDiscovery): |
| * UIProcess/WebAuthentication/Cocoa/WKNFReaderSessionDelegate.h: Copied from Source/WebKit/UIProcess/WebAuthentication/Cocoa/HidService.h. |
| * UIProcess/WebAuthentication/Cocoa/WKNFReaderSessionDelegate.mm: Copied from Source/WebKit/UIProcess/WebAuthentication/Cocoa/HidService.h. |
| (-[WKNFReaderSessionDelegate initWithConnection:]): |
| (-[WKNFReaderSessionDelegate readerSession:didDetectTags:]): |
| * UIProcess/WebAuthentication/Mock/MockHidConnection.cpp: |
| (WebKit::MockHidConnection::send): |
| (WebKit::MockHidConnection::registerDataReceivedCallbackInternal): |
| (WebKit::MockHidConnection::parseRequest): |
| (WebKit::MockHidConnection::feedReports): |
| (WebKit::MockHidConnection::shouldContinueFeedReports): |
| * UIProcess/WebAuthentication/Mock/MockNfcService.h: Copied from Source/WebKit/UIProcess/WebAuthentication/Cocoa/HidService.h. |
| * UIProcess/WebAuthentication/Mock/MockNfcService.mm: Added. |
| (-[WKMockNFTag type]): |
| (-[WKMockNFTag initWithNFTag:]): |
| (-[WKMockNFTag description]): |
| (-[WKMockNFTag isEqualToNFTag:]): |
| (-[WKMockNFTag initWithType:]): |
| (WebKit::MockNfcService::MockNfcService): |
| (WebKit::MockNfcService::transceive): |
| (WebKit::MockNfcService::platformStartDiscovery): |
| (WebKit::MockNfcService::detectTags const): |
| * UIProcess/WebAuthentication/Mock/MockWebAuthenticationConfiguration.h: |
| * UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp: |
| * UIProcess/WebAuthentication/fido/CtapAuthenticator.h: |
| * UIProcess/WebAuthentication/fido/CtapNfcDriver.cpp: Added. |
| (WebKit::CtapNfcDriver::CtapNfcDriver): |
| (WebKit::CtapNfcDriver::transact): |
| (WebKit::CtapNfcDriver::respondAsync const): |
| * UIProcess/WebAuthentication/fido/CtapNfcDriver.h: Copied from Source/WebKit/UIProcess/WebAuthentication/Cocoa/HidService.h. |
| * UIProcess/WebAuthentication/fido/FidoService.cpp: Added. |
| (WebKit::FidoService::FidoService): |
| (WebKit::FidoService::getInfo): |
| (WebKit::FidoService::continueAfterGetInfo): |
| * UIProcess/WebAuthentication/fido/FidoService.h: Copied from Source/WebKit/UIProcess/WebAuthentication/Cocoa/HidService.h. |
| * UIProcess/WebAuthentication/fido/U2fAuthenticator.cpp: |
| * UIProcess/WebAuthentication/fido/U2fAuthenticator.h: |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-08-23 Kate Cheney <katherine_cheney@apple.com> |
| |
| Support ITP on a per-session basis (198923) |
| https://bugs.webkit.org/show_bug.cgi?id=198923 |
| |
| Reviewed by Chris Dumez. |
| |
| The original implementation of resourceLoadStatisticsUpdated |
| did not allow for ITP on a per session basis due to the sessionID |
| not being passed to the resourceLoadStatisticsUpdated function. |
| This patch allows access of the correct networkSession by passing |
| all resourceLoadStatistics in a new data structure of key-value |
| pairs, where the sessionID is the key. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::resourceLoadStatisticsUpdated): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * WebProcess/WebProcess.cpp: |
| |
| 2019-08-23 Russell Epstein <repstein@apple.com> |
| |
| Unreviewed, rolling out r249031. |
| |
| Causes multiple test failures on iOS simulator |
| |
| Reverted changeset: |
| |
| "[iOS] Should show input view when became first responder if |
| keyboard was showing when the view was resigned" |
| https://bugs.webkit.org/show_bug.cgi?id=200902 |
| https://trac.webkit.org/changeset/249031 |
| |
| 2019-08-22 Andy Estes <aestes@apple.com> |
| |
| [watchOS] Disable Content Filtering in the simulator build |
| https://bugs.webkit.org/show_bug.cgi?id=201047 |
| |
| Reviewed by Tim Horton. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2019-08-22 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Should show input view when became first responder if keyboard was showing when the view was resigned |
| https://bugs.webkit.org/show_bug.cgi?id=200902 |
| <rdar://problem/54231756> |
| |
| Reviewed by Wenson Hsieh. |
| |
| When resigning first responder save whether the peripheral host has an input view on screen, |
| including the software keyboard, so that we show the input view(s) again when the WKWebView |
| is made first responder. In Safari, this avoids the need for a person to explicitly focus an |
| editable element again to bring up the keyboard when returning to a tab they were previously |
| typing in. It also makes the behavior of switching tabs in Safari with a software keyboard |
| match the behavior of doing the same thing when a hardware keyboard attached. |
| |
| * UIProcess/PageClient.h: |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::focusedElementDidChangeInputMode): |
| Pass a diff of the activity state from the web process to the UI process so that we can |
| differentiate between an inputmode change as a result of page deactivation vs a change |
| caused by some other means. We need to differentiate these cases because we want to |
| ignore a page that sets inputmode "none" (i.e. a request to hide the keyboard) from inside |
| a focus event handler if the handler was called as part of the process of page activation |
| (i.e. switching to the tab). Google Docs is one example of a web site that sets inputmode |
| to "none" as a result of the page activation process. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView cleanupInteraction]): Clear out state. |
| (-[WKContentView resignFirstResponderForWebView]): Save whether the peripheral host is on screen |
| into a local before ending the editing session. We then copy the local into the ivar if we |
| actually will resign. This ordering is explicitly done because: |
| 1. Ending the editing session may dismiss the keyboard => we need to query the peripheral |
| host first. |
| 2. If the view is being resigned as a result of a keyboard dismissal (i.e. a person pressed |
| the hide keyboard button on iPad) then the user has indicated that they are finished |
| with the keyboard and we do not want to show the keyboard on page re-activation => we |
| do not want to copy the local to the ivar. |
| 3. If the view refuses to resign itself then it does not make sense to save the keyboard |
| state as responder status hasn't changed. |
| (-[WKContentView shouldShowAutomaticKeyboardUI]): Ignore inputmode="none", if needed. |
| (-[WKContentView _didCommitLoadForMainFrame]): Clear out state. |
| (-[WKContentView isFirstResponderOrBecomingFirstResponder]): Added. |
| (-[WKContentView shouldShowInputViewOnPageActivation:]): Added. |
| (-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:activityStateChanges:userObject:]): |
| Update ivar if this element is being focused as a result of page activation. |
| (-[WKContentView _didUpdateInputMode:activityStateChanges:]): Modified to take the activity state |
| diff. If the input mode was changed as a result of page activation then we want to update our ivar |
| so that when we call -reloadInputViews and UIKit calls us back in -shouldShowAutomaticKeyboardUI we |
| will know to ignore inputmode set to "none" when determining whether to show the automatic keyboard UI. |
| Note that we do not need to check/track whether an earlier -_elementDidFocus actually started an |
| input session as part of updating the value of our ivar because if an input session was not started, |
| say the embedding client disallowed it, then we would not have a focused element => we early return from |
| this function. Also remove duplication and improve code readbility by making use of the convenience function |
| hasFocusedElement() instead of duplicating what it does. |
| (-[WKContentView _didUpdateInputMode:]): Deleted. |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::focusedElementDidChangeInputMode): Modified to take the activity state diff |
| and pass it through. |
| (WebKit::WebPageProxy::didReleaseAllTouchPoints): Pass the empty set for the activity state diff to |
| keep our current behavior. |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::focusedElementDidChangeInputMode): Send the activity state diff to the UI process. |
| 2019-08-22 Keith Rollin <krollin@apple.com> |
| |
| Remove logging that contains a URL |
| https://bugs.webkit.org/show_bug.cgi?id=201052 |
| <rdar://problem/54613204> |
| |
| Reviewed by Chris Dumez. |
| |
| checkURLReceivedFromWebProcess in WebProcessProxy.cpp contains an old |
| logging line that logs a URL. We don't log URLs any more for privacy |
| reasons, so remove this. |
| |
| A search for WTFLogAlways.*url turns up other matches, but those are |
| either false positives or cases where the URLs are logged only on |
| demand by the developer as part of debugging. |
| checkURLReceivedFromWebProcess is the only place where a URL is logged |
| as a matter of course. |
| |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::checkURLReceivedFromWebProcess): |
| |
| 2019-08-22 Adrian Perez de Castro <aperez@igalia.com> |
| |
| [GTK][WPE] Fixes for non-unified builds after r248547 |
| https://bugs.webkit.org/show_bug.cgi?id=201044 |
| |
| Reviewed by Philippe Normand. |
| |
| * NetworkProcess/WebStorage/LocalStorageDatabaseTracker.cpp: Add missing inclusion of |
| the wtf/CrossThreadCopier.h header. |
| * WebProcess/WebStorage/StorageNamespaceImpl.h: Add missing inclusion of the |
| WebCore/PageIdentifier.h header. |
| |
| 2019-08-22 Alex Christensen <achristensen@webkit.org> |
| |
| Disable legacy TLS versions and add a temporary default to re-enable it |
| https://bugs.webkit.org/show_bug.cgi?id=200945 |
| |
| Reviewed by Brady Eidson. |
| |
| * NetworkProcess/NetworkSessionCreationParameters.cpp: |
| (WebKit::NetworkSessionCreationParameters::privateSessionParameters): |
| (WebKit::NetworkSessionCreationParameters::encode const): |
| (WebKit::NetworkSessionCreationParameters::decode): |
| * NetworkProcess/NetworkSessionCreationParameters.h: |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeNetworkProcess): |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| |
| 2019-08-17 Darin Adler <darin@apple.com> |
| |
| Use makeString and multi-argument StringBuilder::append instead of less efficient multiple appends |
| https://bugs.webkit.org/show_bug.cgi?id=200862 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * Shared/mac/AuxiliaryProcessMac.mm: |
| (WebKit::setAndSerializeSandboxParameters): Use one append instead of multiple. |
| |
| 2019-08-22 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Typing Korean in title field after typing in the body inserts extraneous characters on blog.naver.com |
| https://bugs.webkit.org/show_bug.cgi?id=201023 |
| <rdar://problem/54294794> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| After r242833, we began to avoid sending redundant ElementDidFocus updates in the case where a focused element |
| was blurred and refocused within the same runloop. This was done to prevent the input view from flickering due |
| to input view reloading, as well as scrolling to reveal the focused element, when tapping to change selection on |
| Microsoft Word online. |
| |
| However, on blog.naver.com, these ElementDidFocus messages were necessary in order to ensure that the platform |
| input context changes when moving between the title and body fields, or when tapping to change selection. This |
| is because blog.naver.com uses a hidden contenteditable area under a subframe (see WebCore ChangeLog for more |
| detail here). While text is never directly inserted into this hidden contenteditable, the events are observed |
| and used to "play back" editing in the main visible content area. |
| |
| Thus, when moving between the title and body fields (or when changing selection within either), the only hint we |
| get is that the hidden editable element is blurred and immediately refocused. Since we no longer send |
| ElementDidFocus updates in this scenario, UIKeyboardImpl and kbd are not aware that the page has effectively |
| changed input contexts. |
| |
| Combined with the fact that Korean IME on iOS may insert additional text given the document context (i.e. text |
| that the input manager, kbd, thinks we've previously inserted), this means that when typing several characters |
| into the body field on naver and then switching to edit the title, initial keystrokes may insert unexpected |
| text in the title field. |
| |
| To fix this, we add some hooks to notify the UI process when an element that was blurred has been immediately |
| refocused. Upon receiving this message, the UI process then tells UIKeyboardImpl to re-retrieve its input |
| context, which calls into -requestAutocorrectionContextWithCompletionHandler: in WKContentView. While notorious |
| for being synchronous IPC, this is mitigated by (1) being limiting to only instances where we have a hidden |
| editable area, and (2) being limited by a batching mechanism in the web process, such that if the focused |
| element is blurred, refocused, re-blurred, and refocused many times in the same runloop, we'll only send a |
| single UpdateInputContextAfterBlurringAndRefocusingElement message (as opposed to the many ElementDidFocus |
| messages we would've sent in previous releases). |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/PageClient.h: |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| |
| Add a new mechanism to update the platform input context (on iOS, UIKeyboardImpl's document state) when focus |
| moves away from and immediately returns to a hidden editable element. |
| |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::updateInputContextAfterBlurringAndRefocusingElement): |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _updateInputContextAfterBlurringAndRefocusingElement]): |
| |
| Tell the active UIKeyboardImpl to refetch document state from the WKContentView. While this does result in a new |
| autocorrection context request (which, unfortunately, triggers synchronous IPC to the web process), this request |
| would've still happened anyways in the case where we would previously have sent an ElementDidFocus message. |
| |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::updateInputContextAfterBlurringAndRefocusingElement): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::elementDidFocus): |
| |
| In the case where we avoid sending a full ElementDidFocus message to the UI process due to refocusing the same |
| element, we should still notify the UI process so that it can synchronize state between the application process |
| and kbd. See above for more details. |
| |
| (WebKit::WebPage::elementDidBlur): |
| (WebKit::WebPage::updateInputContextAfterBlurringAndRefocusingElementIfNeeded): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::updateInputContextAfterBlurringAndRefocusingElementIfNeeded): |
| |
| 2019-08-22 Youenn Fablet <youenn@apple.com> |
| |
| Add a WebsiteDataStore delegate to handle AuthenticationChallenge that do not come from pages |
| https://bugs.webkit.org/show_bug.cgi?id=196870 |
| |
| Reviewed by Alex Christensen. |
| |
| Make NetworkProcess provide the session ID for any authentication challenge. |
| In case there is no associated page for the authentication challenge or this is related to a service worker, |
| ask the website data store to take a decision. |
| Add website data store delegate to allow applications to make the decision. |
| Restrict using the delegate to server trust evaluation only. |
| |
| Make ping loads reuse the same mechanism. |
| |
| Covered by service worker tests and updated beacon test. |
| |
| * NetworkProcess/NetworkCORSPreflightChecker.cpp: |
| (WebKit::NetworkCORSPreflightChecker::didReceiveChallenge): |
| * NetworkProcess/NetworkDataTask.cpp: |
| (WebKit::NetworkDataTask::sessionID const): |
| * NetworkProcess/NetworkDataTask.h: |
| * NetworkProcess/NetworkLoad.cpp: |
| (WebKit::NetworkLoad::didReceiveChallenge): |
| * NetworkProcess/NetworkLoadChecker.h: |
| (WebKit::NetworkLoadChecker::networkProcess): |
| * NetworkProcess/PingLoad.cpp: |
| (WebKit::PingLoad::didReceiveChallenge): |
| * Shared/Authentication/AuthenticationManager.cpp: |
| (WebKit::AuthenticationManager::didReceiveAuthenticationChallenge): |
| * Shared/Authentication/AuthenticationManager.h: |
| * Shared/Authentication/cocoa/AuthenticationChallengeDispositionCocoa.h: Copied from Tools/WebKitTestRunner/cocoa/TestWebsiteDataStoreDelegate.h. |
| * Shared/Authentication/cocoa/AuthenticationChallengeDispositionCocoa.mm: Copied from Source/WebKit/Shared/Authentication/cocoa/ClientCertificateAuthenticationXPCConstants.h. |
| (WebKit::toAuthenticationChallengeDisposition): |
| * SourcesCocoa.txt: |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (WebsiteDataStoreClient::WebsiteDataStoreClient): |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreDelegate.h: |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationClient::didReceiveAuthenticationChallenge): |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::didReceiveAuthenticationChallenge): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| * UIProcess/ServiceWorkerProcessProxy.cpp: |
| * UIProcess/ServiceWorkerProcessProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::isServiceWorkerPageID const): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebsiteData/WebsiteDataStoreClient.h: |
| (WebKit::WebsiteDataStoreClient::didReceiveAuthenticationChallenge): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-08-22 Claudio Saavedra <csaavedra@igalia.com> |
| |
| [SOUP] NetworkProcessSoup does not initialize CacheOptions correctly |
| https://bugs.webkit.org/show_bug.cgi?id=200886 |
| |
| Reviewed by Philippe Normand. |
| |
| r247567 wrongly initializes CacheOptions in a local variable that is never used |
| instead of using NetworkProcess's member variable, that is later used by the |
| NetworkSession to initialize the cache. |
| |
| * NetworkProcess/soup/NetworkProcessSoup.cpp: |
| (WebKit::NetworkProcess::platformInitializeNetworkProcess): |
| |
| 2019-08-21 Tim Horton <timothy_horton@apple.com> |
| |
| [Mail] Tapping top of message scrolls back to copied text instead of top of the message |
| https://bugs.webkit.org/show_bug.cgi?id=200999 |
| <rdar://problem/54564878> |
| |
| Reviewed by Wenson Hsieh. |
| |
| In the case where you have a WebCore selection but are not first responder, |
| when you tap the WKWebView to become first responder, EventHandler would |
| bail from setting the selection, assuming UIKit was going to do it. This |
| behavior was introduced in r233311. |
| |
| However, since we are not first responder, UIKit does not change the |
| selection, since it considers the view to not be editable. |
| |
| Fix this by letting WebCore set the selection in this case, as it used to. |
| |
| * WebProcess/WebCoreSupport/WebEditorClient.h: |
| * WebProcess/WebCoreSupport/ios/WebEditorClientIOS.mm: |
| (WebKit::WebEditorClient::shouldAllowSingleClickToChangeSelection const): |
| * WebProcess/WebPage/WebPage.h: |
| (WebKit::WebPage::isShowingInputViewForFocusedElement const): |
| Copy the logic from EventHandler, with the added caveat (which fixes the |
| aforementioned behavior) that we will allow EventHandler to change the |
| selection if we don't have a focused node in the UIKit sense, because |
| we know that the platform text interaction code will *not* change the |
| selection if that is the case, so it's up to us. |
| |
| 2019-08-21 Chris Dumez <cdumez@apple.com> |
| |
| Crash under NetworkCache::Data::mapToFile() |
| https://bugs.webkit.org/show_bug.cgi?id=200996 |
| <rdar://problem/54570421> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Make sure NetworkCache::Data::mapToFile() calls makeSafeToUseMemoryMapForPath() between |
| creating the file and calling mmap(). |
| |
| * NetworkProcess/cache/NetworkCacheBlobStorage.cpp: |
| (WebKit::NetworkCache::BlobStorage::add): |
| * NetworkProcess/cache/NetworkCacheData.cpp: |
| (WebKit::NetworkCache::Data::mapToFile const): |
| |
| 2019-08-21 Chris Dumez <cdumez@apple.com> |
| |
| Have NetworkCache::store() null check its completion handler before calling it |
| https://bugs.webkit.org/show_bug.cgi?id=200994 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::retrieveCacheEntry): |
| Stop passing nullptr for the completion handler now that the parameter has a default value. |
| Note that passing nullptr here was likely wrong since the NetworkCache::store() implementation |
| did not null-check the completion handler before calling it. |
| |
| * NetworkProcess/cache/NetworkCache.cpp: |
| (WebKit::NetworkCache::Cache::store): |
| Have NetworkCache::store() null check its completion handler before calling it as calling |
| a null WTF::Function crashes. |
| |
| * NetworkProcess/cache/NetworkCache.h: |
| Use nullptr as default parameter value for the completion handler. |
| |
| 2019-08-21 Rob Buis <rbuis@igalia.com> |
| |
| Verify Prefetch and credential behavior |
| https://bugs.webkit.org/show_bug.cgi?id=200000 |
| |
| Reviewed by Youenn Fablet. |
| |
| Cancel cross-origin prefetches for Vary: Cookie. |
| |
| Test: http/wpt/prefetch/link-prefetch-cross-origin-vary-cookie.html |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::retrieveCacheEntry): |
| (WebKit::NetworkResourceLoader::didReceiveResponse): |
| * NetworkProcess/cache/PrefetchCache.cpp: |
| (WebKit::PrefetchCache::take): |
| |
| 2019-08-21 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Put keygen element behind a runtime flag and disable it by default |
| https://bugs.webkit.org/show_bug.cgi?id=200850 |
| |
| Reviewed by Antti Koivisto. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetKeygenElementEnabled): |
| (WKPreferencesGetKeygenElementEnabled): |
| * UIProcess/API/C/WKPreferencesRefPrivate.h: |
| |
| 2019-08-21 Chris Dumez <cdumez@apple.com> |
| |
| Crash under StringImpl::~StringImpl() in NetworkProcess::deleteWebsiteDataForRegistrableDomains() |
| https://bugs.webkit.org/show_bug.cgi?id=200986 |
| <rdar://problem/32850192> |
| |
| Reviewed by Brent Fulgham. |
| |
| Code was calling postStorageTask() with a lambda that captures Strings that are not isolated copied. |
| The lambda would get executed on another thread so this is not safe. The CrossThreadTask constructor |
| does not take care of this for you, despite its name (the createCrossThreadTask() function does though). |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::fetchWebsiteData): |
| (WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains): |
| (WebKit::NetworkProcess::registrableDomainsWithWebsiteData): |
| |
| 2019-08-21 Chris Dumez <cdumez@apple.com> |
| |
| Add internal setting to disable SecureContext checks |
| https://bugs.webkit.org/show_bug.cgi?id=200980 |
| <rdar://problem/54438512> |
| |
| Reviewed by Alex Christensen. |
| |
| Add internal setting to disable SecureContext checks, in order to facilitate development |
| for features like Service workers or device orientation / motion. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences _secureContextChecksEnabled]): |
| (-[WKPreferences _setSecureContextChecksEnabled:]): |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: |
| |
| 2019-08-21 Chris Dumez <cdumez@apple.com> |
| |
| registrableDomainsToRemoveWebsiteDataFor() does not need to return a HashMap |
| https://bugs.webkit.org/show_bug.cgi?id=200985 |
| |
| Reviewed by John Wilander. |
| |
| registrableDomainsToRemoveWebsiteDataFor() does not need to return a HashMap. It is more |
| efficient to simply return a Vector since we never need to look up keys. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: |
| (WebKit::ResourceLoadStatisticsDatabaseStore::registrableDomainsToRemoveWebsiteDataFor): |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h: |
| * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ResourceLoadStatisticsMemoryStore::registrableDomainsToRemoveWebsiteDataFor): |
| * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h: |
| * NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp: |
| (WebKit::domainsToString): |
| * NetworkProcess/Classifier/ResourceLoadStatisticsStore.h: |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::deleteWebsiteDataForRegistrableDomains): |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h: |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains): |
| (WebKit::NetworkProcess::deleteCookiesForTesting): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkSession.cpp: |
| (WebKit::NetworkSession::deleteWebsiteDataForRegistrableDomains): |
| * NetworkProcess/NetworkSession.h: |
| |
| 2019-08-21 Russell Epstein <repstein@apple.com> |
| |
| Unreviewed, rolling out r248942. |
| |
| Causes multiple layout test crashes on MacOS Bots |
| |
| Reverted changeset: |
| |
| "Verify Prefetch and credential behavior" |
| https://bugs.webkit.org/show_bug.cgi?id=200000 |
| https://trac.webkit.org/changeset/248942 |
| |
| 2019-08-21 Keith Rollin <krollin@apple.com> |
| |
| Remove support for watchOS < 6.0 |
| https://bugs.webkit.org/show_bug.cgi?id=200937 |
| <rdar://problem/54524009> |
| |
| Reviewed by Darin Adler. |
| |
| Update conditionals that reference __WATCH_OS_VERSION_MIN_REQUIRED and |
| __WATCH_OS_VERSION_MAX_ALLOWED, assuming that they both have values >= |
| 60000. This means that expressions like |
| "__WATCH_OS_VERSION_MIN_REQUIRED < 60000" are always False and |
| "__WATCH_OS_VERSION_MIN_REQUIRED >= 60000" are always True. |
| |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| |
| 2019-08-21 Adrian Perez de Castro <aperez@igalia.com> |
| |
| [GTK] Build failure due to unwieldy definition of “None” from X11 headers |
| https://bugs.webkit.org/show_bug.cgi?id=200984 |
| |
| Reviewed by Carlos Alberto Lopez Perez. |
| |
| * SourcesGTK.txt: Mark AcceleratedBackingStore.cpp with @no-unify |
| because it includes AcceleratedSurfaceX11.h when building with |
| ENABLE_X11_TARGET=ON, which in turn will include the X11 headers. |
| It is just lucky that most of the time the order of the generated |
| #include statements in the unified sources has been masking this |
| problem. |
| |
| 2019-08-21 Rob Buis <rbuis@igalia.com> |
| |
| Verify Prefetch and credential behavior |
| https://bugs.webkit.org/show_bug.cgi?id=200000 |
| |
| Reviewed by Youenn Fablet. |
| |
| Cancel cross-origin prefetches for Vary: Cookie. |
| |
| Test: http/wpt/prefetch/link-prefetch-cross-origin-vary-cookie.html |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::retrieveCacheEntry): |
| (WebKit::NetworkResourceLoader::didReceiveResponse): |
| * NetworkProcess/cache/PrefetchCache.cpp: |
| (WebKit::PrefetchCache::take): |
| |
| 2019-08-21 Pablo Saavedra <psaavedra@igalia.com> |
| |
| [WPE] Build failure after r248846 ([WTF] Add makeUnique<T>, which ensures T is fast-allocated, makeUnique / makeUniqueWithoutFastMallocCheck part) |
| https://bugs.webkit.org/show_bug.cgi?id=200973 |
| |
| WPE fails to build with `-DENABLE_WPE_QT_API=ON` after changes done by r248846 in: |
| |
| Source/WebKit/UIProcess/API/wpe/qt/WPEQtView.cpp |
| Source/WebKit/UIProcess/API/wpe/qt/WPEQtViewBackend.cpp |
| |
| ; to forces FastMalloc use. |
| |
| Related to: |
| |
| https://bugs.webkit.org/show_bug.cgi?id=200611 |
| https://bugs.webkit.org/show_bug.cgi?id=200620 |
| |
| This patch puts WPEQt... classes into FastMalloc in the same way it |
| was done by many others in r248603. |
| |
| Reviewed by Philippe Normand. |
| |
| * UIProcess/API/wpe/qt/WPEQtView.cpp: |
| (WPEQtView::runJavaScript): |
| * UIProcess/API/wpe/qt/WPEQtViewBackend.h: |
| * UIProcess/API/wpe/qt/WPEQtViewLoadRequest.h: |
| |
| 2019-08-20 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| [iOS] REGRESSION (248501): gmail.com images are still not shown on some versions of iPhone iOS13 |
| https://bugs.webkit.org/show_bug.cgi?id=200948 |
| |
| Reviewed by Tim Horton. |
| |
| Apply the gmail.com quirk for all iPhone iOS versions till the gmail.com |
| bug is fixed. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::platformUserAgent const): |
| |
| 2019-08-20 Chris Dumez <cdumez@apple.com> |
| |
| WebSQLiteDatabaseTracker does not ensure it is still alive after dispatching to the main thread |
| https://bugs.webkit.org/show_bug.cgi?id=200925 |
| |
| Reviewed by Geoffrey Garen. |
| |
| WebSQLiteDatabaseTracker does not ensure it is still alive after dispatching to the main thread, |
| which is not safe. Use WeakPtr to address the issue. |
| |
| * Shared/WebSQLiteDatabaseTracker.cpp: |
| (WebKit::WebSQLiteDatabaseTracker::WebSQLiteDatabaseTracker): |
| (WebKit::WebSQLiteDatabaseTracker::willBeginFirstTransaction): |
| (WebKit::WebSQLiteDatabaseTracker::didFinishLastTransaction): |
| * Shared/WebSQLiteDatabaseTracker.h: |
| |
| 2019-08-20 Brent Fulgham <bfulgham@apple.com> |
| |
| [FTW] Fix scrolling in modern WebKit views |
| https://bugs.webkit.org/show_bug.cgi?id=200923 |
| |
| Reviewed by Don Olmstead. |
| |
| The initial implementation of scrolling in Direct2D had errors that |
| caused hilarious rendering glitches. This patch corrects the logic |
| so that page scroll is correct. |
| |
| This patch also fixes a bug that would trigger when resizing windows. |
| |
| * Shared/win/ShareableBitmapDirect2D.cpp: |
| (WebKit::ShareableBitmap::paint): |
| * UIProcess/BackingStore.h: |
| (WebKit::BackingStore::renderTarget): Deleted. |
| * UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp: |
| (WebKit::DrawingAreaProxyCoordinatedGraphics::sizeDidChange): |
| (WebKit::DrawingAreaProxyCoordinatedGraphics::deviceScaleFactorDidChange): |
| * UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.h: |
| * UIProcess/win/BackingStoreDirect2D.cpp: |
| (WebKit::BackingStore::paint): |
| (WebKit::BackingStore::incorporateUpdate): |
| (WebKit::BackingStore::scroll): |
| * UIProcess/win/WebView.cpp: |
| (WebKit::WebView::paint): |
| (WebKit::WebView::onSizeEvent): |
| |
| 2019-08-20 Chris Dumez <cdumez@apple.com> |
| |
| Unsafe usage of CookieStorageObserver from a background thread |
| https://bugs.webkit.org/show_bug.cgi?id=200920 |
| |
| Reviewed by Alex Christensen. |
| |
| * UIProcess/API/APIHTTPCookieStore.h: |
| * UIProcess/API/Cocoa/APIHTTPCookieStoreCocoa.mm: |
| (API::HTTPCookieStore::startObservingChangesToDefaultUIProcessCookieStore): |
| |
| 2019-08-20 Chris Dumez <cdumez@apple.com> |
| |
| Use a strongly typed identifier for StorageNamespace's identifier |
| https://bugs.webkit.org/show_bug.cgi?id=200895 |
| |
| Reviewed by Alex Christensen and Youenn Fablet. |
| |
| Use a strongly typed identifier for StorageNamespace's identifier instead of uint64_t, to |
| avoid type confusion. |
| |
| * NetworkProcess/WebStorage/LocalStorageNamespace.cpp: |
| (WebKit::LocalStorageNamespace::LocalStorageNamespace): |
| * NetworkProcess/WebStorage/LocalStorageNamespace.h: |
| * NetworkProcess/WebStorage/StorageManager.cpp: |
| (WebKit::StorageManager::createSessionStorageNamespace): |
| (WebKit::StorageManager::destroySessionStorageNamespace): |
| (WebKit::StorageManager::cloneSessionStorageNamespace): |
| (WebKit::StorageManager::createLocalStorageArea): |
| (WebKit::StorageManager::createTransientLocalStorageArea): |
| (WebKit::StorageManager::createSessionStorageArea): |
| (WebKit::StorageManager::getOrCreateLocalStorageNamespace): |
| (WebKit::StorageManager::getOrCreateTransientLocalStorageNamespace): |
| (WebKit::StorageManager::getOrCreateSessionStorageNamespace): |
| * NetworkProcess/WebStorage/StorageManager.h: |
| * NetworkProcess/WebStorage/StorageManagerSet.cpp: |
| (WebKit::StorageManagerSet::connectToLocalStorageArea): |
| (WebKit::StorageManagerSet::connectToTransientLocalStorageArea): |
| (WebKit::StorageManagerSet::connectToSessionStorageArea): |
| (WebKit::StorageManagerSet::cloneSessionStorageNamespace): |
| * NetworkProcess/WebStorage/StorageManagerSet.h: |
| * NetworkProcess/WebStorage/StorageManagerSet.messages.in: |
| * Scripts/webkit/messages.py: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::setPrivateBrowsingEnabled): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_textAutoSizingAdjustmentTimer): |
| * WebProcess/WebPage/WebPage.h: |
| (WebKit::WebPage::sessionStorageNamespaceIdentifier const): |
| * WebProcess/WebPage/WebPageGroupProxy.h: |
| (WebKit::WebPageGroupProxy::localStorageNamespaceIdentifier const): |
| * WebProcess/WebStorage/StorageAreaMap.cpp: |
| (WebKit::StorageAreaMap::dispatchSessionStorageEvent): |
| (WebKit::StorageAreaMap::dispatchLocalStorageEvent): |
| * WebProcess/WebStorage/StorageNamespaceIdentifier.h: Copied from Source/WebKit/WebProcess/WebStorage/WebStorageNamespaceProvider.h. |
| * WebProcess/WebStorage/StorageNamespaceImpl.cpp: |
| (WebKit::StorageNamespaceImpl::createSessionStorageNamespace): |
| (WebKit::StorageNamespaceImpl::createLocalStorageNamespace): |
| (WebKit::StorageNamespaceImpl::createTransientLocalStorageNamespace): |
| (WebKit::StorageNamespaceImpl::StorageNamespaceImpl): |
| (WebKit::StorageNamespaceImpl::copy): |
| (WebKit::StorageNamespaceImpl::sessionStoragePageID const): |
| (WebKit::StorageNamespaceImpl::pageGroupID const): |
| * WebProcess/WebStorage/StorageNamespaceImpl.h: |
| (WebKit::StorageNamespaceImpl::storageNamespaceID const): |
| * WebProcess/WebStorage/WebStorageNamespaceProvider.cpp: |
| (WebKit::WebStorageNamespaceProvider::getOrCreate): |
| (WebKit::WebStorageNamespaceProvider::WebStorageNamespaceProvider): |
| (WebKit::WebStorageNamespaceProvider::~WebStorageNamespaceProvider): |
| (WebKit::WebStorageNamespaceProvider::createSessionStorageNamespace): |
| (WebKit::WebStorageNamespaceProvider::createLocalStorageNamespace): |
| (WebKit::WebStorageNamespaceProvider::createTransientLocalStorageNamespace): |
| * WebProcess/WebStorage/WebStorageNamespaceProvider.h: |
| |
| 2019-08-20 Dean Jackson <dino@apple.com> |
| |
| REGRESSION: Open in New Tab is missing from context menu |
| https://bugs.webkit.org/show_bug.cgi?id=200909 |
| <rdar://problem/54476169> |
| |
| Reviewed by Simon Fraser. |
| |
| Don't assume the new API if webView:contextMenuWillPresentForElement: |
| is implemented. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (needsDeprecatedPreviewAPI): |
| |
| 2019-08-20 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Support for JavaScript BigInt |
| https://bugs.webkit.org/show_bug.cgi?id=180731 |
| <rdar://problem/36298748> |
| |
| Reviewed by Devin Rousso. |
| |
| * WebProcess/WebPage/WebInspectorUI.cpp: |
| (WebKit::WebInspectorUI::WebInspectorUI): |
| Enable BigInt in the Web Inspector process. It only makes use of |
| `globalThis.BigInt(...)` to hold the value. |
| |
| 2019-08-19 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [CMake] WebKit2.dll can't link because of missing PAL's import symbols for WinCairo port |
| https://bugs.webkit.org/show_bug.cgi?id=200910 |
| |
| Unreviewed build fix for Windows port. |
| |
| * CMakeLists.txt: Added -DSTATICALLY_LINKED_WITH_PAL=1 if PAL_LIBRARY_TYPE is STATIC. |
| |
| 2019-08-19 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| Unreviewed build fix for WinCairo port. |
| |
| The base class of NetworkDataTask has been changed in r248874. |
| |
| * NetworkProcess/curl/NetworkDataTaskCurl.h: |
| (ref): |
| (deref): |
| Call 'ref' and 'deref' of NetworkDataTask instead of RefCounted<NetworkDataTask>. |
| |
| 2019-08-19 Keith Rollin <krollin@apple.com> |
| |
| Unreviewed build fix for security entitlements. |
| |
| Bug 200242 (r248164) changed the way that entitlements were generated |
| and applied during the build. In that refactoring, the codesign |
| parameter "-o library" was dropped. This change adds it back. |
| |
| * Configurations/BaseXPCService.xcconfig: |
| |
| 2019-08-19 Chris Dumez <cdumez@apple.com> |
| |
| NetworkDataTask is being ref'd / deref'd from several threads and is not ThreadSafeRefCounted |
| https://bugs.webkit.org/show_bug.cgi?id=200897 |
| |
| Reviewed by Geoffrey Garen. |
| |
| NetworkDataTask subclasses RefCounted and is ref'd / deref'd on the main thread. However, there |
| is code in NetworkDataTaskCocoa::resume() that was ref'ing / deref'ing it on a background thread, |
| which is unsafe. To address the issue, Have NetworkDataTask subclass ThreadSafeRefCounted, and |
| make sure it always gets destroyed on the main thread. |
| |
| * NetworkProcess/NetworkDataTask.h: |
| |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::resume): |
| Avoid some unnecessary refcounting churn. |
| |
| 2019-08-19 Alex Christensen <achristensen@webkit.org> |
| |
| Move call to initializeMainThread introduced in r248549 to after WebKit.framework has been loaded |
| https://bugs.webkit.org/show_bug.cgi?id=200896 |
| <rdar://problem/54479065> |
| |
| Reviewed by Chris Dumez. |
| |
| In XPCServiceMain we haven't been told which WebKit.framework to load yet, so when using staged frameworks it |
| causes problems if we call a function from a WebKit framework. We need to wait until after initializerFunctionPtr is called. |
| |
| * NetworkProcess/EntryPoint/Cocoa/XPCService/NetworkServiceEntryPoint.mm: |
| (NetworkServiceInitializer): |
| * PluginProcess/EntryPoint/Cocoa/XPCService/PluginServiceEntryPoint.mm: |
| (PluginServiceInitializer): |
| * Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm: |
| (WebKit::XPCServiceMain): |
| * WebProcess/EntryPoint/Cocoa/XPCService/WebContentServiceEntryPoint.mm: |
| (WebContentServiceInitializer): |
| |
| 2019-08-19 Yusuke Suzuki <ysuzuki@apple.com> |
| |
| Unreviewed, build fix for PLATFORM_DRIVEN_TEXT_CHECKING |
| https://bugs.webkit.org/show_bug.cgi?id=200620 |
| |
| It is enabled if PLATFORM(MACCATALYST) is true. |
| |
| * UIProcess/Cocoa/TextCheckingController.h: |
| |
| 2019-08-19 Sihui Liu <sihui_liu@apple.com> |
| |
| Remove IDB-specific quota |
| https://bugs.webkit.org/show_bug.cgi?id=196545 |
| <rdar://problem/54201783> |
| |
| Reviewed by Youenn Fablet. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::createIDBServer): |
| (WebKit::NetworkProcess::addIndexedDatabaseSession): |
| (WebKit::NetworkProcess::setIDBPerOriginQuota): Deleted. |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextSetIDBPerOriginQuota): Deleted. |
| * UIProcess/API/C/WKContextPrivate.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::setIDBPerOriginQuota): Deleted. |
| * UIProcess/WebProcessPool.h: |
| |
| 2019-08-19 Youenn Fablet <youenn@apple.com> |
| |
| Remove SessionID::emptySessionID() |
| https://bugs.webkit.org/show_bug.cgi?id=200811 |
| |
| Reviewed by Alex Christensen. |
| |
| Update SessionID call sites to use toUInt64. |
| Remove debug asserts to isValid since construction of invalid session IDs can only happen in very specific cases |
| typically for HashMaps. |
| |
| * NetworkProcess/Downloads/DownloadManager.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::storageSession): |
| (WebKit::NetworkConnectionToWebProcess::logUserInteraction): |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::networkSession const): |
| (WebKit::NetworkProcess::networkSessionByConnection const): |
| (WebKit::NetworkProcess::setSession): |
| (WebKit::NetworkProcess::destroySession): |
| (WebKit::NetworkProcess::fetchWebsiteData): |
| (WebKit::NetworkProcess::deleteWebsiteData): |
| (WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains): |
| (WebKit::NetworkProcess::registrableDomainsWithWebsiteData): |
| (WebKit::NetworkProcess::existingSWOriginStoreForSession const): |
| (WebKit::NetworkProcess::webProcessWasDisconnected): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::startNetworkLoad): |
| * NetworkProcess/mac/RemoteNetworkingContext.mm: |
| (WebKit::RemoteNetworkingContext::ensureWebsiteDataStoreSession): |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::retrieveCacheStorageParameters): |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::~WebsiteDataStore): |
| (WebKit::WebsiteDataStore::maybeRegisterWithSessionIDMap): |
| (WebKit::WebsiteDataStore::existingNonDefaultDataStoreForSessionID): |
| * WebProcess/Cache/WebCacheStorageProvider.cpp: |
| (WebKit::WebCacheStorageProvider::createCacheStorageConnection): |
| * WebProcess/Cache/WebCacheStorageProvider.h: |
| * WebProcess/Storage/WebSWClientConnection.cpp: |
| (WebKit::WebSWClientConnection::WebSWClientConnection): |
| (WebKit::WebSWClientConnection::initializeConnectionIfNeeded): |
| * WebProcess/Storage/WebServiceWorkerProvider.cpp: |
| (WebKit::WebServiceWorkerProvider::existingServiceWorkerConnectionForSession): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_textAutoSizingAdjustmentTimer): |
| |
| 2019-08-19 Yusuke Suzuki <ysuzuki@apple.com> |
| |
| Unreviewed, speculative build fix for GTK and WinCairo |
| https://bugs.webkit.org/show_bug.cgi?id=200620 |
| |
| * UIProcess/socket/RemoteInspectorProtocolHandler.cpp: |
| |
| 2019-08-19 Yusuke Suzuki <ysuzuki@apple.com> |
| |
| Unreviewed, build fix in WinCairo and GTK ports |
| https://bugs.webkit.org/show_bug.cgi?id=200767 |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::enumerateMediaDevicesForFrame): |
| |
| 2019-08-19 Youenn Fablet <youenn@apple.com> |
| |
| enumerateDevices should return the same JS objects if called twice |
| https://bugs.webkit.org/show_bug.cgi?id=200767 |
| |
| Reviewed by Eric Carlson. |
| |
| Update code as enumerate device request is now gone. |
| Make use of async IPC to simplify code since we are now passing a completion handler directly. |
| |
| * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: |
| (WebKit::UserMediaPermissionRequestManagerProxy::captureDevicesChanged): |
| (WebKit::UserMediaPermissionRequestManagerProxy::finishGrantingRequest): |
| (WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame): |
| * UIProcess/UserMediaPermissionRequestManagerProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp: |
| (WebKit::UserMediaPermissionRequestManager::enumerateMediaDevices): |
| * WebProcess/MediaStream/UserMediaPermissionRequestManager.h: |
| * WebProcess/WebCoreSupport/WebUserMediaClient.cpp: |
| (WebKit::WebUserMediaClient::enumerateMediaDevices): |
| * WebProcess/WebCoreSupport/WebUserMediaClient.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2019-08-18 Yusuke Suzuki <ysuzuki@apple.com> |
| |
| [WTF] Add makeUnique<T>, which ensures T is fast-allocated, makeUnique / makeUniqueWithoutFastMallocCheck part |
| https://bugs.webkit.org/show_bug.cgi?id=200620 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsPersistentStorage.cpp: |
| (WebKit::ResourceLoadStatisticsPersistentStorage::startMonitoringDisk): |
| (WebKit::ResourceLoadStatisticsPersistentStorage::monitorDirectoryForNewStatistics): |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore): |
| * NetworkProcess/CustomProtocols/soup/LegacyCustomProtocolManagerSoup.cpp: |
| * NetworkProcess/Downloads/DownloadManager.cpp: |
| (WebKit::DownloadManager::startDownload): |
| (WebKit::DownloadManager::convertNetworkLoadToDownload): |
| (WebKit::DownloadManager::resumeDownload): |
| * NetworkProcess/Downloads/DownloadMap.cpp: |
| (WebKit::DownloadMap::add): |
| * NetworkProcess/Downloads/PendingDownload.cpp: |
| (WebKit::PendingDownload::PendingDownload): |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::establishSWServerConnection): |
| * NetworkProcess/NetworkContentRuleListManager.cpp: |
| (WebKit::NetworkContentRuleListManager::addContentRuleLists): |
| * NetworkProcess/NetworkDataTaskBlob.cpp: |
| (WebKit::NetworkDataTaskBlob::NetworkDataTaskBlob): |
| (WebKit::NetworkDataTaskBlob::download): |
| * NetworkProcess/NetworkHTTPSUpgradeChecker.cpp: |
| (WebKit::NetworkHTTPSUpgradeChecker::NetworkHTTPSUpgradeChecker): |
| * NetworkProcess/NetworkLoad.cpp: |
| (WebKit::NetworkLoad::didReceiveResponse): |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::checkCORSRequestWithPreflight): |
| (WebKit::NetworkLoadChecker::contentSecurityPolicy): |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::switchToNewTestingSession): |
| (WebKit::NetworkProcess::ensureSession): |
| (WebKit::NetworkProcess::swServerForSession): |
| (WebKit::NetworkProcess::initializeQuotaUsers): |
| (WebKit::NetworkProcess::storageQuotaManager): |
| * NetworkProcess/NetworkProcess.h: |
| (WebKit::NetworkProcess::addSupplement): |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::m_shouldCaptureExtraNetworkLoadMetrics): |
| (WebKit::NetworkResourceLoader::startNetworkLoad): |
| * NetworkProcess/NetworkSocketChannel.cpp: |
| (WebKit::NetworkSocketChannel::create): |
| * NetworkProcess/PreconnectTask.cpp: |
| * NetworkProcess/WebStorage/LocalStorageDatabase.cpp: |
| (WebKit::LocalStorageDatabase::scheduleDatabaseUpdate): |
| * NetworkProcess/WebStorage/LocalStorageNamespace.cpp: |
| (WebKit::LocalStorageNamespace::getOrCreateStorageArea): |
| * NetworkProcess/WebStorage/SessionStorageNamespace.cpp: |
| (WebKit::SessionStorageNamespace::getOrCreateStorageArea): |
| * NetworkProcess/WebStorage/StorageArea.cpp: |
| (WebKit::StorageArea::clone const): |
| * NetworkProcess/WebStorage/StorageManager.cpp: |
| (WebKit::StorageManager::createSessionStorageNamespace): |
| (WebKit::StorageManager::getOrCreateLocalStorageNamespace): |
| (WebKit::StorageManager::getOrCreateTransientLocalStorageNamespace): |
| (WebKit::StorageManager::getOrCreateSessionStorageNamespace): |
| * NetworkProcess/WebStorage/StorageManagerSet.cpp: |
| (WebKit::StorageManagerSet::add): |
| * NetworkProcess/WebStorage/TransientLocalStorageNamespace.cpp: |
| (WebKit::TransientLocalStorageNamespace::getOrCreateStorageArea): |
| * NetworkProcess/cache/NetworkCache.cpp: |
| (WebKit::NetworkCache::Cache::Cache): |
| (WebKit::NetworkCache::Cache::makeEntry): |
| (WebKit::NetworkCache::Cache::makeRedirectEntry): |
| (WebKit::NetworkCache::Cache::update): |
| * NetworkProcess/cache/NetworkCacheEntry.cpp: |
| (WebKit::NetworkCache::Entry::decodeStorageRecord): |
| * NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp: |
| (WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad): |
| * NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp: |
| (WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::registerSubresourceLoad): |
| (WebKit::NetworkCache::SpeculativeLoadManager::retrieve): |
| (WebKit::NetworkCache::SpeculativeLoadManager::addPreloadedEntry): |
| (WebKit::NetworkCache::SpeculativeLoadManager::satisfyPendingRequests): |
| (WebKit::NetworkCache::SpeculativeLoadManager::revalidateSubresource): |
| (WebKit::NetworkCache::SpeculativeLoadManager::startSpeculativeRevalidation): |
| * NetworkProcess/cache/NetworkCacheStorage.cpp: |
| (WebKit::NetworkCache::Storage::synchronize): |
| (WebKit::NetworkCache::Storage::readRecord): |
| (WebKit::NetworkCache::retrieveFromMemory): |
| (WebKit::NetworkCache::Storage::retrieve): |
| (WebKit::NetworkCache::Storage::store): |
| (WebKit::NetworkCache::Storage::traverse): |
| * NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp: |
| (WebKit::NetworkCache::SubresourcesEntry::decodeStorageRecord): |
| * NetworkProcess/cache/PrefetchCache.cpp: |
| (WebKit::PrefetchCache::store): |
| (WebKit::PrefetchCache::storeRedirect): |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::platformCreateDefaultStorageSession const): |
| (WebKit::NetworkProcess::networkHTTPSUpgradeChecker): |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (-[WKNetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]): |
| (WebKit::NetworkSessionCocoa::create): |
| (WebKit::NetworkSessionCocoa::createWebSocketTask): |
| * NetworkProcess/curl/NetworkProcessCurl.cpp: |
| (WebKit::NetworkProcess::platformCreateDefaultStorageSession const): |
| * NetworkProcess/curl/NetworkSessionCurl.h: |
| * NetworkProcess/ios/NetworkConnectionToWebProcessIOS.mm: |
| (WebKit::NetworkConnectionToWebProcess::paymentCoordinator): |
| (WebKit::NetworkConnectionToWebProcess::paymentCoordinatorAuthorizationPresenter): |
| * NetworkProcess/soup/NetworkDataTaskSoup.cpp: |
| (WebKit::NetworkDataTaskSoup::download): |
| * NetworkProcess/soup/NetworkProcessSoup.cpp: |
| (WebKit::NetworkProcess::platformCreateDefaultStorageSession const): |
| * NetworkProcess/soup/NetworkSessionSoup.cpp: |
| (WebKit::NetworkSessionSoup::NetworkSessionSoup): |
| (WebKit::NetworkSessionSoup::createWebSocketTask): |
| * NetworkProcess/soup/NetworkSessionSoup.h: |
| * NetworkProcess/soup/WebKitSoupRequestInputStream.cpp: |
| (webkitSoupRequestInputStreamReadAsync): |
| * NetworkProcess/webrtc/NetworkMDNSRegister.cpp: |
| (WebKit::NetworkMDNSRegister::registerMDNSName): |
| * NetworkProcess/webrtc/NetworkRTCMonitor.cpp: |
| (WebKit::NetworkRTCMonitor::startUpdating): |
| * NetworkProcess/webrtc/NetworkRTCProvider.cpp: |
| (WebKit::NetworkRTCProvider::NetworkRTCProvider): |
| (WebKit::NetworkRTCProvider::createSocket): |
| (WebKit::NetworkRTCProvider::wrapNewTCPConnection): |
| * Platform/IPC/Connection.cpp: |
| (IPC::Connection::dispatchWorkQueueMessageReceiverMessage): |
| (IPC::Connection::createSyncMessageEncoder): |
| (IPC::Connection::enableIncomingMessagesThrottling): |
| (IPC::Connection::dispatchSyncMessage): |
| * Platform/IPC/Connection.h: |
| (IPC::Connection::send): |
| (IPC::Connection::sendWithAsyncReply): |
| * Platform/IPC/Decoder.cpp: |
| (IPC::Decoder::unwrapForTesting): |
| * Platform/IPC/HandleMessage.h: |
| (IPC::handleMessageAsync): |
| * Platform/IPC/MessageSender.h: |
| * Platform/IPC/cocoa/ConnectionCocoa.mm: |
| (IPC::ConnectionTerminationWatchdog::ConnectionTerminationWatchdog): |
| (IPC::Connection::open): |
| (IPC::createMessageDecoder): |
| (IPC::Connection::receiveSourceEventHandler): |
| * Platform/IPC/unix/ConnectionUnix.cpp: |
| (IPC::Connection::processMessage): |
| (IPC::Connection::sendOutputMessage): |
| * Platform/IPC/win/ConnectionWin.cpp: |
| (IPC::Connection::readEventHandler): |
| * Platform/mac/LayerHostingContext.mm: |
| (WebKit::LayerHostingContext::createForPort): |
| (WebKit::LayerHostingContext::createForExternalHostingProcess): |
| (WebKit::LayerHostingContext::createForExternalPluginHostingProcess): |
| * PluginProcess/WebProcessConnection.cpp: |
| (WebKit::WebProcessConnection::createPluginInternal): |
| * Shared/API/APIURL.h: |
| (API::URL::create): |
| (API::URL::parseURLIfNecessary const): |
| * Shared/API/Cocoa/RemoteObjectInvocation.mm: |
| (WebKit::RemoteObjectInvocation::decode): |
| * Shared/API/Cocoa/_WKRemoteObjectRegistry.mm: |
| (-[_WKRemoteObjectRegistry _initWithWebPage:]): |
| (-[_WKRemoteObjectRegistry _initWithWebPageProxy:]): |
| (-[_WKRemoteObjectRegistry _sendInvocation:interface:]): |
| * Shared/API/glib/WebKitContextMenuItem.cpp: |
| (webkitContextMenuItemCreate): |
| (webkit_context_menu_item_new): |
| (webkit_context_menu_item_new_from_gaction): |
| (webkit_context_menu_item_new_from_stock_action): |
| (webkit_context_menu_item_new_from_stock_action_with_label): |
| (webkit_context_menu_item_new_with_submenu): |
| (webkit_context_menu_item_new_separator): |
| * Shared/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm: |
| (WebKit::WebPaymentCoordinatorProxy::platformShowPaymentUI): |
| * Shared/Cocoa/SandboxExtensionCocoa.mm: |
| (WebKit::SandboxExtension::Handle::decode): |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: |
| (WebKit::texmapLayer): |
| (WebKit::CoordinatedGraphicsScene::ensureRootLayer): |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: |
| (WebKit::ThreadedCompositor::ThreadedCompositor): |
| * Shared/Plugins/NPRemoteObjectMap.cpp: |
| (WebKit::NPRemoteObjectMap::registerNPObject): |
| * Shared/Plugins/Netscape/NetscapePluginModule.cpp: |
| (WebKit::NetscapePluginModule::tryLoad): |
| * Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm: |
| (WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties): |
| (WebKit::RemoteLayerTreeTransaction::LayerProperties::decode): |
| (WebKit::RemoteLayerTreeTransaction::decode): |
| * Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp: |
| (WebKit::RemoteScrollingCoordinatorTransaction::decode): |
| * Shared/cairo/ShareableBitmapCairo.cpp: |
| (WebKit::ShareableBitmap::createGraphicsContext): |
| * Shared/cg/ShareableBitmapCG.cpp: |
| (WebKit::ShareableBitmap::createGraphicsContext): |
| * Shared/win/ShareableBitmapDirect2D.cpp: |
| (WebKit::ShareableBitmap::createGraphicsContext): |
| * UIProcess/API/APIHTTPCookieStore.cpp: |
| (API::HTTPCookieStore::registerObserver): |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextSetInjectedBundleClient): |
| (WKContextSetHistoryClient): |
| (WKContextSetDownloadClient): |
| * UIProcess/API/C/WKGeolocationManager.cpp: |
| (WKGeolocationManagerSetProvider): |
| * UIProcess/API/C/WKNotificationManager.cpp: |
| (WKNotificationManagerSetProvider): |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetPageContextMenuClient): |
| (WKPageSetPageDiagnosticLoggingClient): |
| (WKPageSetPageFindClient): |
| (WKPageSetPageFindMatchesClient): |
| (WKPageSetPageFormClient): |
| (WKPageSetPageLoaderClient): |
| (WKPageSetPagePolicyClient): |
| (WKPageSetPageUIClient): |
| (WKPageSetPageStateClient): |
| * UIProcess/API/C/mac/WKPagePrivateMac.mm: |
| (-[WKObservablePageState initWithPage:]): |
| * UIProcess/API/C/wpe/WKView.cpp: |
| (WKViewSetViewClient): |
| * UIProcess/API/Cocoa/WKBrowsingContextController.mm: |
| (-[WKBrowsingContextController _initWithPageRef:]): |
| * UIProcess/API/Cocoa/WKHTTPCookieStore.mm: |
| (-[WKHTTPCookieStore addObserver:]): |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _setDownloadDelegate:]): |
| (-[WKProcessPool _setAutomationDelegate:]): |
| * UIProcess/API/Cocoa/WKUserContentController.mm: |
| (-[WKUserContentController addScriptMessageHandler:name:]): |
| (-[WKUserContentController _addScriptMessageHandler:name:userContentWorld:]): |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| (-[WKWebView setAllowsBackForwardNavigationGestures:]): |
| (-[WKWebView _setInputDelegate:]): |
| * UIProcess/API/Cocoa/_WKAutomationSession.mm: |
| (-[_WKAutomationSession setDelegate:]): |
| * UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm: |
| (-[_WKRemoteWebInspectorViewController init]): |
| * UIProcess/API/glib/IconDatabase.cpp: |
| (WebKit::readySQLiteStatement): |
| * UIProcess/API/glib/WebKitAutomationSession.cpp: |
| (webkitAutomationSessionConstructed): |
| * UIProcess/API/glib/WebKitContextMenuClient.cpp: |
| (attachContextMenuClientToView): |
| * UIProcess/API/glib/WebKitCustomProtocolManagerClient.cpp: |
| (attachCustomProtocolManagerClientToContext): |
| * UIProcess/API/glib/WebKitDownloadClient.cpp: |
| (attachDownloadClientToContext): |
| * UIProcess/API/glib/WebKitFaviconDatabase.cpp: |
| (webkitFaviconDatabaseOpen): |
| * UIProcess/API/glib/WebKitFindController.cpp: |
| (webkitFindControllerConstructed): |
| * UIProcess/API/glib/WebKitFormClient.cpp: |
| (attachFormClientToView): |
| * UIProcess/API/glib/WebKitGeolocationManager.cpp: |
| (webkitGeolocationManagerCreate): |
| * UIProcess/API/glib/WebKitIconLoadingClient.cpp: |
| (attachIconLoadingClientToView): |
| * UIProcess/API/glib/WebKitInjectedBundleClient.cpp: |
| (attachInjectedBundleClientToContext): |
| * UIProcess/API/glib/WebKitNotificationProvider.cpp: |
| (WebKitNotificationProvider::WebKitNotificationProvider): |
| * UIProcess/API/glib/WebKitUIClient.cpp: |
| (attachUIClientToView): |
| * UIProcess/API/glib/WebKitUserContentManager.cpp: |
| (webkit_user_content_manager_register_script_message_handler): |
| (webkit_user_content_manager_register_script_message_handler_in_world): |
| * UIProcess/API/glib/WebKitWebContext.cpp: |
| (webkitWebContextConstructed): |
| (webkit_web_context_set_automation_allowed): |
| * UIProcess/API/glib/WebKitWebView.cpp: |
| (webkitWebViewConstructed): |
| * UIProcess/API/gtk/PageClientImpl.cpp: |
| (WebKit::PageClientImpl::createDrawingAreaProxy): |
| * UIProcess/API/gtk/WebKitEmojiChooser.cpp: |
| (webkitEmojiChooserSetupEmojiSections): |
| * UIProcess/API/gtk/WebKitRemoteInspectorProtocolHandler.cpp: |
| (WebKit::RemoteInspectorProtocolHandler::handleRequest): |
| * UIProcess/API/gtk/WebKitWebInspector.cpp: |
| (webkitWebInspectorCreate): |
| * UIProcess/API/gtk/WebKitWebViewBase.cpp: |
| (webkitWebViewBaseConstructed): |
| (webkitWebViewBaseGestureController): |
| (webkitWebViewBaseDragAndDropHandler): |
| (webkitWebViewBaseDidRelaunchWebProcess): |
| * UIProcess/API/mac/WKView.mm: |
| (-[WKView maybeInstallIconLoadingClient]): |
| (-[WKView initWithFrame:processPool:configuration:]): |
| * UIProcess/API/wpe/PageClientImpl.cpp: |
| (WebKit::PageClientImpl::PageClientImpl): |
| (WebKit::PageClientImpl::createDrawingAreaProxy): |
| * UIProcess/API/wpe/WPEView.cpp: |
| (WKWPE::View::View): |
| (WKWPE::View::setClient): |
| * UIProcess/API/wpe/qt/WPEQtView.cpp: |
| (WPEQtView::notifyLoadChangedCallback): |
| (WPEQtView::notifyLoadFailedCallback): |
| (WPEQtView::runJavaScript): |
| * UIProcess/API/wpe/qt/WPEQtViewBackend.cpp: |
| (WPEQtViewBackend::create): |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::WebAutomationSession): |
| * UIProcess/AuxiliaryProcessProxy.h: |
| (WebKit::AuxiliaryProcessProxy::send): |
| * UIProcess/Cocoa/IconLoadingDelegate.mm: |
| (WebKit::IconLoadingDelegate::createIconLoadingClient): |
| * UIProcess/Cocoa/UIDelegate.mm: |
| (WebKit::UIDelegate::createContextMenuClient): |
| (WebKit::UIDelegate::createUIClient): |
| * UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp: |
| (WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints): |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitialize): |
| (WebKit::WebProcessPool::startDisplayLink): |
| * UIProcess/Cocoa/WebProcessProxyCocoa.mm: |
| (WebKit::WebProcessProxy::processWasUnexpectedlyUnsuspended): |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::WebViewImpl): |
| (WebKit::WebViewImpl::createDrawingAreaProxy): |
| (WebKit::WebViewImpl::setTextIndicator): |
| (WebKit::WebViewImpl::ensureGestureController): |
| * UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp: |
| (WebKit::DrawingAreaProxyCoordinatedGraphics::incorporateUpdate): |
| (WebKit::DrawingAreaProxyCoordinatedGraphics::dispatchAfterEnsuringDrawing): |
| * UIProcess/DeviceIdHashSaltStorage.cpp: |
| (WebKit::DeviceIdHashSaltStorage::getDataFromDecoder const): |
| (WebKit::DeviceIdHashSaltStorage::completeDeviceIdHashSaltForOriginCall): |
| * UIProcess/Downloads/DownloadProxyMap.cpp: |
| (WebKit::DownloadProxyMap::createDownloadProxy): |
| * UIProcess/Gamepad/UIGamepadProvider.cpp: |
| (WebKit::UIGamepadProvider::setInitialConnectedGamepads): |
| (WebKit::UIGamepadProvider::platformGamepadConnected): |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::createDownloadProxy): |
| (WebKit::NetworkProcessProxy::takeUploadAssertion): |
| * UIProcess/Notifications/WebNotificationManagerProxy.cpp: |
| (WebKit::WebNotificationManagerProxy::WebNotificationManagerProxy): |
| (WebKit::WebNotificationManagerProxy::setProvider): |
| * UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp: |
| (WebKit::pluginRequiresGtk2): |
| * UIProcess/ProcessThrottler.cpp: |
| (WebKit::ProcessThrottler::didConnectToProcess): |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm: |
| (WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy): |
| (WebKit::RemoteLayerTreeDrawingAreaProxy::initializeDebugIndicator): |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm: |
| (WebKit::RemoteLayerTreeHost::makeNode): |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm: |
| (WebKit::RemoteLayerTreeNode::createWithPlainLayer): |
| * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm: |
| (WebKit::RemoteLayerTreeHost::makeNode): |
| * UIProcess/RemoteLayerTree/ios/ScrollingTreeFrameScrollingNodeRemoteIOS.mm: |
| (WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::commitStateBeforeChildren): |
| * UIProcess/RemoteLayerTree/ios/ScrollingTreeOverflowScrollingNodeIOS.mm: |
| (WebKit::ScrollingTreeOverflowScrollingNodeIOS::ScrollingTreeOverflowScrollingNodeIOS): |
| * UIProcess/RemoteLayerTree/mac/ScrollingTreeFrameScrollingNodeRemoteMac.cpp: |
| (WebKit::ScrollingTreeFrameScrollingNodeRemoteMac::ScrollingTreeFrameScrollingNodeRemoteMac): |
| * UIProcess/RemoteLayerTree/mac/ScrollingTreeOverflowScrollingNodeRemoteMac.cpp: |
| (WebKit::ScrollingTreeOverflowScrollingNodeRemoteMac::ScrollingTreeOverflowScrollingNodeRemoteMac): |
| * UIProcess/WebAuthentication/Cocoa/HidService.mm: |
| (WebKit::HidService::deviceAdded): |
| * UIProcess/WebGeolocationManagerProxy.cpp: |
| (WebKit::WebGeolocationManagerProxy::WebGeolocationManagerProxy): |
| (WebKit::WebGeolocationManagerProxy::setProvider): |
| * UIProcess/WebMediaSessionFocusManager.cpp: |
| (WebKit::WebMediaSessionFocusManager::setFocusedMediaElement): |
| * UIProcess/WebPageInspectorController.cpp: |
| (WebKit::WebPageInspectorController::WebPageInspectorController): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::WebPageProxy): |
| (WebKit::m_resetRecentCrashCountTimer): |
| (WebKit::WebPageProxy::setFormClient): |
| (WebKit::WebPageProxy::setUIClient): |
| (WebKit::WebPageProxy::setIconLoadingClient): |
| (WebKit::WebPageProxy::setFindClient): |
| (WebKit::WebPageProxy::setFindMatchesClient): |
| (WebKit::WebPageProxy::setContextMenuClient): |
| (WebKit::WebPageProxy::setInjectedBundleClient): |
| (WebKit::WebPageProxy::suspendCurrentPageIfPossible): |
| (WebKit::WebPageProxy::didAttachToRunningProcess): |
| (WebKit::WebPageProxy::setDrawingArea): |
| (WebKit::WebPageProxy::close): |
| (WebKit::WebPageProxy::loadData): |
| (WebKit::WebPageProxy::handleWheelEvent): |
| (WebKit::WebPageProxy::processNextQueuedWheelEvent): |
| (WebKit::WebPageProxy::continueNavigationInNewProcess): |
| (WebKit::WebPageProxy::setFullscreenClient): |
| (WebKit::WebPageProxy::userMediaPermissionRequestManager): |
| (WebKit::WebPageProxy::setScrollPerformanceDataCollectionEnabled): |
| (WebKit::WebPageProxy::speechSynthesisData): |
| * UIProcess/WebProcessCache.cpp: |
| (WebKit::WebProcessCache::addProcessIfPossible): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::WebProcessPool): |
| (WebKit::WebProcessPool::setInjectedBundleClient): |
| (WebKit::WebProcessPool::setHistoryClient): |
| (WebKit::WebProcessPool::setDownloadClient): |
| (WebKit::WebProcessPool::setAutomationClient): |
| (WebKit::WebProcessPool::setLegacyCustomProtocolManagerClient): |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| (WebKit::WebProcessPool::didCollectPrewarmInformation): |
| (WebKit::WebProcessPool::setWebProcessHasUploads): |
| (WebKit::WebProcessPool::setWebProcessIsPlayingAudibleMedia): |
| * UIProcess/WebProcessProxy.cpp: |
| * UIProcess/cairo/BackingStoreCairo.cpp: |
| (WebKit::BackingStore::createBackend): |
| * UIProcess/glib/RemoteInspectorClient.cpp: |
| (WebKit::RemoteInspectorClient::inspect): |
| * UIProcess/gtk/AcceleratedBackingStoreWayland.cpp: |
| (WebKit::AcceleratedBackingStoreWayland::checkRequirements): |
| * UIProcess/gtk/DragAndDropHandler.cpp: |
| (WebKit::DragAndDropHandler::dragDataSelection): |
| * UIProcess/gtk/WaylandCompositor.cpp: |
| (WebKit::WaylandCompositor::initializeEGL): |
| * UIProcess/ios/EditableImageController.mm: |
| (WebKit::EditableImageController::ensureEditableImage): |
| * UIProcess/ios/WKApplicationStateTrackingView.mm: |
| (-[WKApplicationStateTrackingView didMoveToWindow]): |
| * UIProcess/ios/WKContentView.mm: |
| (-[WKContentView _commonInitializationWithProcessPool:configuration:]): |
| (-[WKContentView initWithFrame:processPool:configuration:webView:]): |
| (-[WKContentView _createDrawingAreaProxy:]): |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView setupInteraction]): |
| (-[WKContentView becomeFirstResponderForWebView]): |
| (-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:activityStateChanges:userObject:]): |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::elementDidFocus): |
| (WebKit::WebPageProxy::paymentCoordinatorAuthorizationPresenter): |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::PageClientImpl): |
| * UIProcess/mac/WKFullScreenWindowController.mm: |
| (-[WKFullScreenWindowController initWithWindow:webView:page:]): |
| * UIProcess/mac/WKTextFinderClient.mm: |
| (-[WKTextFinderClient initWithPage:view:usePlatformFindUI:]): |
| * UIProcess/socket/RemoteInspectorClient.cpp: |
| (WebKit::RemoteInspectorClient::inspect): |
| * UIProcess/socket/RemoteInspectorProtocolHandler.cpp: |
| (WebKit::RemoteInspectorProtocolHandler::platformStartTask): |
| * UIProcess/win/BackingStoreDirect2D.cpp: |
| (WebKit::BackingStore::createBackend): |
| * UIProcess/win/PageClientImpl.cpp: |
| (WebKit::PageClientImpl::createDrawingAreaProxy): |
| * UIProcess/win/WebView.cpp: |
| (WebKit::WebView::WebView): |
| * WebProcess/Gamepad/WebGamepadProvider.cpp: |
| (WebKit::WebGamepadProvider::setInitialGamepads): |
| (WebKit::WebGamepadProvider::gamepadConnected): |
| * WebProcess/InjectedBundle/API/c/WKBundle.cpp: |
| (WKBundleSetClient): |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: |
| (WKBundlePageSetContextMenuClient): |
| (WKBundlePageSetEditorClient): |
| (WKBundlePageSetFormClient): |
| (WKBundlePageSetPageLoaderClient): |
| (WKBundlePageSetResourceLoadClient): |
| (WKBundlePageSetUIClient): |
| * WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp: |
| (WKBundlePageOverlayCreate): |
| * WebProcess/InjectedBundle/API/c/mac/WKBundlePageBannerMac.mm: |
| (WKBundlePageBannerCreateBannerWithCALayer): |
| * WebProcess/InjectedBundle/API/glib/DOM/DOMObjectCache.cpp: |
| (WebKit::getOrCreateDOMObjectCacheFrameObserver): |
| (WebKit::DOMObjectCache::put): |
| * WebProcess/InjectedBundle/API/glib/WebKitExtensionManager.cpp: |
| (WebKit::WebKitExtensionManager::initialize): |
| * WebProcess/InjectedBundle/API/glib/WebKitWebEditor.cpp: |
| (webkitWebEditorCreate): |
| * WebProcess/InjectedBundle/API/glib/WebKitWebExtension.cpp: |
| (webkitWebExtensionCreate): |
| * WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp: |
| (webkitFrameGetOrCreate): |
| (webkitWebPageCreate): |
| * WebProcess/InjectedBundle/API/mac/WKDOMTextIterator.mm: |
| (-[WKDOMTextIterator initWithRange:]): |
| * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm: |
| (-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]): |
| (-[WKWebProcessPlugInBrowserContextController _setEditingDelegate:]): |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::InjectedBundle): |
| (WebKit::InjectedBundle::setClient): |
| * WebProcess/Network/WebSocketChannel.cpp: |
| (WebKit::PendingMessage::PendingMessage): |
| (WebKit::WebSocketChannel::send): |
| * WebProcess/Network/webrtc/LibWebRTCProvider.cpp: |
| (WebKit::LibWebRTCProvider::createPeerConnection): |
| (WebKit::LibWebRTCProvider::createSocketFactory): |
| * WebProcess/Network/webrtc/LibWebRTCSocketFactory.cpp: |
| (WebKit::LibWebRTCSocketFactory::createServerTcpSocket): |
| (WebKit::LibWebRTCSocketFactory::createUdpSocket): |
| (WebKit::LibWebRTCSocketFactory::createClientTcpSocket): |
| (WebKit::LibWebRTCSocketFactory::createNewConnectionSocket): |
| (WebKit::LibWebRTCSocketFactory::createAsyncResolver): |
| * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp: |
| (WebKit::PluginDestructionProtector::PluginDestructionProtector): |
| * WebProcess/Plugins/Netscape/NetscapePlugin.cpp: |
| (WebKit::NetscapePlugin::scheduleTimer): |
| * WebProcess/Plugins/Netscape/NetscapePluginStream.cpp: |
| (WebKit::NetscapePluginStream::deliverData): |
| * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp: |
| (WebKit::NetscapePluginX11::create): |
| * WebProcess/Plugins/PluginProxy.cpp: |
| (WebKit::PluginProxy::initialize): |
| * WebProcess/Plugins/PluginView.cpp: |
| (WebKit::PluginView::createWebEvent const): |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::installServiceWorker): |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::createColorChooser): |
| (WebKit::WebChromeClient::createDataListSuggestionPicker): |
| * WebProcess/WebCoreSupport/WebInspectorClient.cpp: |
| (WebKit::WebInspectorClient::showPaintRect): |
| * WebProcess/WebCoreSupport/WebPasteboardOverrides.cpp: |
| (WebKit::WebPasteboardOverrides::addOverride): |
| * WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp: |
| (WebKit::DrawingAreaCoordinatedGraphics::enterAcceleratedCompositingMode): |
| * WebProcess/WebPage/DrawingArea.cpp: |
| (WebKit::DrawingArea::create): |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp: |
| (WebKit::PlatformCALayerRemote::ensureBackingStore): |
| (WebKit::PlatformCALayerRemote::setTransform): |
| (WebKit::PlatformCALayerRemote::setSublayerTransform): |
| (WebKit::PlatformCALayerRemote::setFilters): |
| (WebKit::PlatformCALayerRemote::setShapeRoundedRect): |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteTiledBacking.cpp: |
| (WebKit::PlatformCALayerRemoteTiledBacking::PlatformCALayerRemoteTiledBacking): |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm: |
| (WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea): |
| (WebKit::RemoteLayerTreeDrawingArea::flushLayers): |
| * WebProcess/WebPage/WebFrame.cpp: |
| (WebKit::WebFrame::createSubframe): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_textAutoSizingAdjustmentTimer): |
| (WebKit::WebPage::setInjectedBundleContextMenuClient): |
| (WebKit::WebPage::setInjectedBundleEditorClient): |
| (WebKit::WebPage::setInjectedBundleFormClient): |
| (WebKit::WebPage::setInjectedBundlePageLoaderClient): |
| (WebKit::WebPage::setInjectedBundleResourceLoadClient): |
| (WebKit::WebPage::setInjectedBundleUIClient): |
| (WebKit::WebPage::close): |
| (WebKit::WebPage::beginPrinting): |
| * WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp: |
| (WebKit::WebPrintOperationGtk::print): |
| * WebProcess/WebPage/ios/FindControllerIOS.mm: |
| (WebKit::FindController::updateFindIndicator): |
| * WebProcess/WebPage/mac/DrawingAreaMac.cpp: |
| (WebKit::DisplayRefreshMonitorMac::requestRefreshCallback): |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: |
| (WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::markAllLayersVolatile): |
| (WebKit::WebProcess::ensureAutomationSessionProxy): |
| (WebKit::WebProcess::libWebRTCNetwork): |
| (WebKit::WebProcess::establishWorkerContextConnectionToNetworkProcess): |
| * WebProcess/WebProcess.h: |
| (WebKit::WebProcess::addSupplement): |
| * WebProcess/cocoa/UserMediaCaptureManager.cpp: |
| (WebKit::UserMediaCaptureManager::Source::Source): |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::processTaskStateDidChange): |
| (WebKit::WebProcess::updateCPUMonitorState): |
| |
| 2019-08-18 Per Arne Vollan <pvollan@apple.com> |
| |
| [Mac] Use the PID of the WebContent process when issuing local file read sandbox extensions |
| https://bugs.webkit.org/show_bug.cgi?id=200543 |
| <rdar://problem/49394015> |
| |
| Reviewed by Brent Fulgham. |
| |
| Adopt SPI to issue a process-specific sandbox extension for local file read, passing it the process |
| identifier of the WebContent process. |
| |
| * Shared/Cocoa/SandboxExtensionCocoa.mm: |
| (WebKit::SandboxExtensionImpl::sandboxExtensionForType): |
| (WebKit::SandboxExtension::createHandleForReadByPid): |
| * Shared/SandboxExtension.h: |
| * UIProcess/Cocoa/WebPageProxyCocoa.mm: |
| (WebKit::WebPageProxy::createSandboxExtensionsIfNeeded): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle): |
| (WebKit::WebPageProxy::loadFile): |
| |
| 2019-08-17 Tim Horton <timothy_horton@apple.com> |
| |
| Layout tests that call resizeTo() crash when run on iOS with IOSurface support enabled |
| https://bugs.webkit.org/show_bug.cgi?id=200866 |
| <rdar://problem/50254021> |
| |
| Reviewed by Simon Fraser. |
| |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::convertToDeviceSpace): |
| (WebKit::PageClientImpl::convertToUserSpace): |
| Implement convertTo{Device,User}Space in PageClientImplIOS. |
| We don't actually do any conversion. For our purposes, the window is |
| "device" space, and we never allow iOS WebKit clients to resize the window... |
| except for in tests! So just pass the rects straight through, instead of |
| returning an empty rect. |
| |
| 2019-08-17 Eric Liang <ericliang@apple.com> |
| |
| Use bundlePath SPI in AccessibilitySupport for WebProcessLoader |
| https://bugs.webkit.org/show_bug.cgi?id=200367 |
| |
| Reviewed by Darin Adler. |
| |
| * Platform/spi/ios/AccessibilitySupportSPI.h: |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::accessibilityWebProcessLoaderBundlePath): |
| (WebKit::registerWithAccessibility): |
| |
| 2019-08-17 Sam Weinig <weinig@apple.com> |
| |
| Rename StringBuilder::flexibleAppend(...) to StringBuilder::append(...) |
| https://bugs.webkit.org/show_bug.cgi?id=200756 |
| |
| Reviewed by Darin Adler. |
| |
| Update call sites for rename from StringBuilder::flexibleAppend(...) to |
| StringBuilder::append(...). |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::dumpHistoryItem): |
| We have to explicitly access the underlying String of the URL rather than |
| relying on the implicit conversion since it is now ambiguous which append(...) |
| overload should be used. |
| |
| 2019-08-17 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: make the initial height bigger when attached |
| https://bugs.webkit.org/show_bug.cgi?id=200855 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * Shared/WebPreferences.yaml: |
| Increase the default attached height from `300px` to `500px`, which is close to the same |
| amount of area given a 15" MacBook Pro's aspect ratio (default attached width is `750px`). |
| |
| 2019-08-17 Simon Fraser <simon.fraser@apple.com> |
| |
| [iOS WK2] Scroll indicators disappear sometimes |
| https://bugs.webkit.org/show_bug.cgi?id=200791 |
| |
| Reviewed by Tim Horton. |
| |
| _web_setSubviews: replaces all of the views subviews with the supplied array, but this blows |
| away views not managed by WebKit, including UIScrollViews scroll indicators. Fix by having |
| WebKit-managed views implement the WKWebKitControlled protocol, and only removing views |
| implementing that protocol. |
| |
| * Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm: |
| (-[UIView _web_setSubviews:]): |
| * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.h: |
| |
| 2019-08-17 Antti Koivisto <antti@apple.com> |
| |
| Content in <iframe> should override "touch-action" set in embedding document |
| https://bugs.webkit.org/show_bug.cgi?id=200204 |
| <rdar://problem/54355249> |
| |
| Reviewed by Antoine Quint. |
| |
| Subframes where content doesn't use any touch-action properties won't generate event region for their main layer. |
| As a result the touch-action property gets computed in UI process to the parent frames touch-action (instead of 'auto'). |
| |
| * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm: |
| (WebKit::touchActionsForPoint): |
| |
| If the topmost layer hit is a WKChildScrollView we know its content layer didn't have an event region. |
| This means we should return the default value 'auto'. |
| |
| 2019-08-16 Chris Dumez <cdumez@apple.com> |
| |
| Use strongly typed identifiers for StorageArea / StorageAreaImpl |
| https://bugs.webkit.org/show_bug.cgi?id=200835 |
| |
| Reviewed by Alex Christensen. |
| |
| Use strongly typed identifiers for StorageArea / StorageAreaImpl. They currently both use uint64_t |
| and are used in the same code, it is therefore very easy to confused the 2 types of identifiers. |
| |
| * NetworkProcess/WebStorage/StorageArea.cpp: |
| (WebKit::StorageArea::StorageArea): |
| (WebKit::StorageArea::setItem): |
| (WebKit::StorageArea::removeItem): |
| (WebKit::StorageArea::clear): |
| (WebKit::StorageArea::dispatchEvents const): |
| * NetworkProcess/WebStorage/StorageArea.h: |
| (WebKit::StorageArea::identifier): |
| * NetworkProcess/WebStorage/StorageAreaIdentifier.h: Copied from Source/WebKit/WebProcess/WebStorage/StorageAreaImpl.h. |
| * NetworkProcess/WebStorage/StorageManagerSet.cpp: |
| (WebKit::StorageManagerSet::connectToLocalStorageArea): |
| (WebKit::StorageManagerSet::connectToTransientLocalStorageArea): |
| (WebKit::StorageManagerSet::connectToSessionStorageArea): |
| (WebKit::StorageManagerSet::disconnectFromStorageArea): |
| (WebKit::StorageManagerSet::getValues): |
| (WebKit::StorageManagerSet::setItem): |
| (WebKit::StorageManagerSet::removeItem): |
| (WebKit::StorageManagerSet::clear): |
| * NetworkProcess/WebStorage/StorageManagerSet.h: |
| * NetworkProcess/WebStorage/StorageManagerSet.messages.in: |
| * Scripts/webkit/messages.py: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/Network/NetworkProcessConnection.cpp: |
| (WebKit::NetworkProcessConnection::didReceiveMessage): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::registerStorageAreaMap): |
| (WebKit::WebProcess::unregisterStorageAreaMap): |
| (WebKit::WebProcess::storageAreaMap const): |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebStorage/StorageAreaImpl.cpp: |
| (WebKit::StorageAreaImpl::StorageAreaImpl): |
| * WebProcess/WebStorage/StorageAreaImpl.h: |
| * WebProcess/WebStorage/StorageAreaImplIdentifier.h: Copied from Source/WebKit/WebProcess/WebStorage/StorageAreaImpl.h. |
| * WebProcess/WebStorage/StorageAreaMap.cpp: |
| (WebKit::StorageAreaMap::StorageAreaMap): |
| (WebKit::StorageAreaMap::setItem): |
| (WebKit::StorageAreaMap::removeItem): |
| (WebKit::StorageAreaMap::clear): |
| (WebKit::StorageAreaMap::loadValuesIfNeeded): |
| (WebKit::StorageAreaMap::dispatchStorageEvent): |
| (WebKit::StorageAreaMap::dispatchSessionStorageEvent): |
| (WebKit::StorageAreaMap::dispatchLocalStorageEvent): |
| (WebKit::StorageAreaMap::disconnect): |
| * WebProcess/WebStorage/StorageAreaMap.h: |
| (WebKit::StorageAreaMap::identifier const): |
| * WebProcess/WebStorage/StorageAreaMap.messages.in: |
| |
| 2019-08-16 Chris Dumez <cdumez@apple.com> |
| |
| Drop StorageArea::setWorkQueue() member function |
| https://bugs.webkit.org/show_bug.cgi?id=200832 |
| |
| Reviewed by Alex Christensen. |
| |
| Drop StorageArea::setWorkQueue() member function and pass the WorkQueue to the StorageArea constructor instead. |
| The WorkQueue can never get updated so an explicit setter is not necessary. It also makes it clearer that the |
| m_queue data member can never be null. |
| |
| * NetworkProcess/WebStorage/LocalStorageNamespace.cpp: |
| (WebKit::LocalStorageNamespace::getOrCreateStorageArea): |
| * NetworkProcess/WebStorage/LocalStorageNamespace.h: |
| * NetworkProcess/WebStorage/SessionStorageNamespace.cpp: |
| (WebKit::SessionStorageNamespace::getOrCreateStorageArea): |
| * NetworkProcess/WebStorage/SessionStorageNamespace.h: |
| * NetworkProcess/WebStorage/StorageArea.cpp: |
| (WebKit::StorageArea::StorageArea): |
| (WebKit::StorageArea::clone const): |
| (WebKit::StorageArea::openDatabaseAndImportItemsIfNeeded const): |
| * NetworkProcess/WebStorage/StorageArea.h: |
| (WebKit::StorageArea::setWorkQueue): Deleted. |
| * NetworkProcess/WebStorage/StorageManager.cpp: |
| (WebKit::StorageManager::createLocalStorageArea): |
| (WebKit::StorageManager::createTransientLocalStorageArea): |
| (WebKit::StorageManager::createSessionStorageArea): |
| * NetworkProcess/WebStorage/StorageManager.h: |
| * NetworkProcess/WebStorage/StorageManagerSet.cpp: |
| (WebKit::StorageManagerSet::connectToLocalStorageArea): |
| (WebKit::StorageManagerSet::connectToTransientLocalStorageArea): |
| (WebKit::StorageManagerSet::connectToSessionStorageArea): |
| * NetworkProcess/WebStorage/TransientLocalStorageNamespace.cpp: |
| (WebKit::TransientLocalStorageNamespace::getOrCreateStorageArea): |
| * NetworkProcess/WebStorage/TransientLocalStorageNamespace.h: |
| |
| 2019-08-16 Chris Dumez <cdumez@apple.com> |
| |
| LocalStorageDatabaseTracker does not need to subclass ThreadSafeRefCounted |
| https://bugs.webkit.org/show_bug.cgi?id=200825 |
| |
| Reviewed by Alex Christensen. |
| |
| LocalStorageDatabaseTracker does not need to subclass ThreadSafeRefCounted. It is currently always |
| ref'd / deref'd from the com.apple.WebKit.WebStorage serial WorkQueue, save from inside |
| LocalStorageDatabaseTracker::platformMaybeExcludeFromBackup() on iOS. However, it is probably |
| not a good idea to set FileSystem metadata from the main thread in platformMaybeExcludeFromBackup() |
| anyway. |
| |
| Note that I had to get rid of an old linked-on-after check since those are currently only safe |
| to do on the main thread. I cleared this with Brady. It has been a while since we've shipped this |
| behavior now and apps have had a chance to update. |
| |
| * NetworkProcess/WebStorage/LocalStorageDatabaseTracker.cpp: |
| (WebKit::LocalStorageDatabaseTracker::databasePath const): |
| * NetworkProcess/WebStorage/LocalStorageDatabaseTracker.h: |
| * NetworkProcess/WebStorage/ios/LocalStorageDatabaseTrackerIOS.mm: |
| (WebKit::LocalStorageDatabaseTracker::platformMaybeExcludeFromBackup const): |
| * UIProcess/Cocoa/VersionChecks.h: |
| |
| 2019-08-16 Chris Dumez <cdumez@apple.com> |
| |
| LocalStorageDatabase should use inline initialization for its data members |
| https://bugs.webkit.org/show_bug.cgi?id=200828 |
| |
| Reviewed by John Wilander. |
| |
| * NetworkProcess/WebStorage/LocalStorageDatabase.cpp: |
| (WebKit::LocalStorageDatabase::LocalStorageDatabase): |
| * NetworkProcess/WebStorage/LocalStorageDatabase.h: |
| |
| 2019-08-16 Kate Cheney <katherine_cheney@apple.com> |
| |
| Functions with no parameters in WebKit/Shared/API/c and WebKit/UIProcess/API/C are |
| missing a "void" specifier in their argument list |
| https://bugs.webkit.org/show_bug.cgi?id=200826 |
| |
| Reviewed by Chris Dumez. |
| |
| Added void to indicate functions with no arguments to satisfy compiler errors. |
| This error came to light when fixing another patch. |
| |
| * Shared/API/c/WKArray.h: |
| * Shared/API/c/WKConnectionRef.h: |
| * Shared/API/c/WKContextMenuItem.h: |
| * Shared/API/c/WKData.h: |
| * Shared/API/c/WKDictionary.h: |
| * Shared/API/c/WKErrorRef.h: |
| * Shared/API/c/WKMutableArray.h: |
| * Shared/API/c/WKMutableDictionary.h: |
| * Shared/API/c/WKNumber.h: |
| * Shared/API/c/WKPluginInformation.h: |
| * Shared/API/c/WKRenderLayer.h: |
| * Shared/API/c/WKRenderObject.h: |
| * Shared/API/c/WKSecurityOriginRef.h: |
| * Shared/API/c/WKSerializedScriptValue.h: |
| * Shared/API/c/WKString.h: |
| * Shared/API/c/WKURL.h: |
| * Shared/API/c/WKURLRequest.h: |
| * Shared/API/c/WKURLResponse.h: |
| * Shared/API/c/WKUserContentURLPattern.h: |
| * UIProcess/API/C/WKBackForwardListItemRef.h: |
| * UIProcess/API/C/WKBackForwardListRef.h: |
| * UIProcess/API/C/WKContext.h: |
| * UIProcess/API/C/WKFormSubmissionListener.h: |
| * UIProcess/API/C/WKFrame.h: |
| * UIProcess/API/C/WKFramePolicyListener.h: |
| * UIProcess/API/C/WKGeolocationManager.h: |
| * UIProcess/API/C/WKGeolocationPermissionRequest.h: |
| * UIProcess/API/C/WKGeolocationPosition.h: |
| * UIProcess/API/C/WKHitTestResult.h: |
| * UIProcess/API/C/WKNavigationDataRef.h: |
| * UIProcess/API/C/WKOpenPanelParametersRef.h: |
| * UIProcess/API/C/WKOpenPanelResultListener.h: |
| * UIProcess/API/C/WKPage.h: |
| * UIProcess/API/C/WKPageConfigurationRef.h: |
| * UIProcess/API/C/WKPageGroup.h: |
| * UIProcess/API/C/WKPageUIClient.h: |
| * UIProcess/API/C/WKPreferencesRef.h: |
| * UIProcess/API/C/WKUserContentControllerRef.h: |
| * UIProcess/API/C/WKUserMediaPermissionRequest.h: |
| * UIProcess/API/C/WKUserScriptRef.h: |
| |
| 2019-08-16 Chris Dumez <cdumez@apple.com> |
| |
| LocalStorageDatabase does not need to subclass ThreadSafeRefCounted |
| https://bugs.webkit.org/show_bug.cgi?id=200822 |
| |
| Reviewed by Geoff Garen. |
| |
| LocalStorageDatabase does not need to subclass ThreadSafeRefCounted, it is only ref'd / deref'd by the StorageArea |
| on the com.apple.WebKit.WebStorage serial WorkQueue, and in LocalStorageDatabase::scheduleDatabaseUpdate() on the |
| same WorkQueue. |
| |
| * NetworkProcess/WebStorage/LocalStorageDatabase.cpp: |
| (WebKit::LocalStorageDatabase::LocalStorageDatabase): |
| (WebKit::LocalStorageDatabase::~LocalStorageDatabase): |
| * NetworkProcess/WebStorage/LocalStorageDatabase.h: |
| |
| 2019-08-16 Chris Dumez <cdumez@apple.com> |
| |
| Many WebStorage classes do not need to subclass ThreadSafeRefCounted |
| https://bugs.webkit.org/show_bug.cgi?id=200821 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Many WebStorage classes do not need to subclass ThreadSafeRefCounted. They never get ref'd or deref'd. |
| |
| * NetworkProcess/WebStorage/LocalStorageNamespace.cpp: |
| (WebKit::LocalStorageNamespace::getOrCreateStorageArea): |
| (WebKit::LocalStorageNamespace::clearAllStorageAreas): |
| * NetworkProcess/WebStorage/LocalStorageNamespace.h: |
| * NetworkProcess/WebStorage/SessionStorageNamespace.cpp: |
| (WebKit::SessionStorageNamespace::getOrCreateStorageArea): |
| * NetworkProcess/WebStorage/SessionStorageNamespace.h: |
| * NetworkProcess/WebStorage/StorageArea.cpp: |
| (WebKit::StorageArea::clone const): |
| * NetworkProcess/WebStorage/StorageArea.h: |
| * NetworkProcess/WebStorage/StorageManager.cpp: |
| (WebKit::StorageManager::createSessionStorageNamespace): |
| (WebKit::StorageManager::createLocalStorageArea): |
| (WebKit::StorageManager::createTransientLocalStorageArea): |
| (WebKit::StorageManager::createSessionStorageArea): |
| (WebKit::StorageManager::getOrCreateLocalStorageNamespace): |
| (WebKit::StorageManager::getOrCreateTransientLocalStorageNamespace): |
| (WebKit::StorageManager::getOrCreateSessionStorageNamespace): |
| * NetworkProcess/WebStorage/StorageManager.h: |
| * NetworkProcess/WebStorage/TransientLocalStorageNamespace.cpp: |
| (WebKit::TransientLocalStorageNamespace::getOrCreateStorageArea): |
| * NetworkProcess/WebStorage/TransientLocalStorageNamespace.h: |
| |
| 2019-08-16 Dean Jackson <dino@apple.com> |
| |
| Long pressing images with transparent backgrounds in dark mode causes a black background to appear around the image content |
| https://bugs.webkit.org/show_bug.cgi?id=200827 |
| <rdar://53933379> |
| |
| Reviewed by Tim Horton. |
| |
| Set a clear color when there is no provided background. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (createTargetedPreview): |
| |
| 2019-08-16 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Split tabIndex computation for DOM and the rest of WebCore |
| https://bugs.webkit.org/show_bug.cgi?id=200806 |
| |
| Reviewed by Chris Dumez. |
| |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElement.cpp: |
| (webkit_dom_html_element_get_tab_index): |
| (webkit_dom_html_element_set_tab_index): |
| |
| 2019-08-16 Ross Kirsling <ross.kirsling@sony.com> |
| |
| Unreviewed restabilization of non-unified build. |
| |
| * NetworkProcess/NetworkCORSPreflightChecker.h: |
| * NetworkProcess/WebStorage/StorageManagerSet.cpp: |
| (WebKit::StorageManagerSet::StorageManagerSet): |
| * Shared/FrameInfoData.cpp: |
| (WebKit::FrameInfoData::decode): |
| * WebProcess/WebStorage/StorageNamespaceImpl.cpp: |
| * WebProcess/WebStorage/StorageNamespaceImpl.h: |
| |
| 2019-08-16 Chris Dumez <cdumez@apple.com> |
| |
| StorageManager does not need to subclass RefCounted |
| https://bugs.webkit.org/show_bug.cgi?id=200818 |
| |
| Reviewed by Geoffrey Garen. |
| |
| StorageManager does not need to subclass RefCounted. It is owned by the StorageManagerSet |
| and is never ref'd / deref'd. |
| |
| * NetworkProcess/WebStorage/StorageManager.h: |
| (WebKit::StorageManager::create): Deleted. |
| * NetworkProcess/WebStorage/StorageManagerSet.cpp: |
| (WebKit::StorageManagerSet::add): |
| * NetworkProcess/WebStorage/StorageManagerSet.h: |
| |
| 2019-08-16 Chris Dumez <cdumez@apple.com> |
| |
| Clarify StorageManagerSet / StorageManager threading model after r248734 |
| https://bugs.webkit.org/show_bug.cgi?id=200817 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Clarify StorageManagerSet / StorageManager threading model after r248734. StorageManager is now |
| a background thread object but it still calls its completion handlers on the main thread, which |
| is very error prone. The pattern in WebKit for thread safety is that methods should always call |
| their completion handler of the thread / queue they were called on themselves. Doing differently |
| has caused so many thread-safety bugs in the past. |
| |
| * NetworkProcess/WebStorage/StorageManager.cpp: |
| (WebKit::StorageManager::getSessionStorageOrigins const): |
| (WebKit::StorageManager::deleteSessionStorageOrigins): |
| (WebKit::StorageManager::deleteSessionStorageEntriesForOrigins): |
| (WebKit::StorageManager::getLocalStorageOrigins const): |
| (WebKit::StorageManager::getLocalStorageOriginDetails const): |
| (WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince): |
| (WebKit::StorageManager::deleteLocalStorageEntriesForOrigins): |
| (WebKit::StorageManager::getSessionStorageOrigins): Deleted. |
| (WebKit::StorageManager::getLocalStorageOrigins): Deleted. |
| (WebKit::StorageManager::getLocalStorageOriginDetails): Deleted. |
| * NetworkProcess/WebStorage/StorageManager.h: |
| * NetworkProcess/WebStorage/StorageManagerSet.cpp: |
| (WebKit::StorageManagerSet::getSessionStorageOrigins): |
| (WebKit::StorageManagerSet::deleteSessionStorage): |
| (WebKit::StorageManagerSet::deleteSessionStorageForOrigins): |
| (WebKit::StorageManagerSet::getLocalStorageOrigins): |
| (WebKit::StorageManagerSet::deleteLocalStorageModifiedSince): |
| (WebKit::StorageManagerSet::deleteLocalStorageForOrigins): |
| (WebKit::StorageManagerSet::getLocalStorageOriginDetails): |
| |
| 2019-08-16 Chris Dumez <cdumez@apple.com> |
| |
| StorageManagerSet constructor should not be public |
| https://bugs.webkit.org/show_bug.cgi?id=200816 |
| |
| Reviewed by Geoffrey Garen. |
| |
| StorageManagerSet constructor should not be public since it subclasses ThreadSafeRefCounted and |
| has a factory method. |
| |
| * NetworkProcess/WebStorage/StorageManagerSet.h: |
| |
| 2019-08-16 Timothy Hatcher <timothy@apple.com> |
| |
| REGRESSION (r248436): WKWebView doesn’t respect isOpaque setting in NIB. |
| https://bugs.webkit.org/show_bug.cgi?id=200802 |
| rdar://problem/54357818 |
| |
| Reviewed by Tim Horton. |
| |
| Tests: WKWebView.IsOpaqueDefault, WKWebView.SetOpaqueYes, WKWebView.SetOpaqueNo, WKWebView.IsOpaqueYesSubclassOverridden, |
| WKWebView.IsOpaqueNoSubclassOverridden, WKWebView.IsOpaqueYesDecodedFromArchive, WKWebView.IsOpaqueNoDecodedFromArchive, |
| WKWebView.IsOpaqueDrawsBackgroundYesConfiguration, WKWebView.IsOpaqueDrawsBackgroundNoConfiguration. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): Call _setOpaqueInternal:NO instead of self.opaque = NO. |
| (-[WKWebView _setOpaqueInternal:]): Added. Moved code from setOpaque:. |
| (-[WKWebView setOpaque:]): Call _setOpaqueInternal:. |
| |
| 2019-08-15 Yusuke Suzuki <ysuzuki@apple.com> |
| |
| [WTF] Add makeUnique<T>, which ensures T is fast-allocated, WTF_MAKE_FAST_ALLOCATED annotation part |
| https://bugs.webkit.org/show_bug.cgi?id=200620 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * NetworkProcess/AdClickAttributionManager.h: |
| * NetworkProcess/Classifier/ResourceLoadStatisticsPersistentStorage.h: |
| * NetworkProcess/Classifier/ResourceLoadStatisticsStore.h: |
| * NetworkProcess/Cookies/WebCookieManager.h: |
| * NetworkProcess/CustomProtocols/LegacyCustomProtocolManager.h: |
| * NetworkProcess/NetworkHTTPSUpgradeChecker.h: |
| * NetworkProcess/NetworkProcess.cpp: |
| * NetworkProcess/NetworkSession.h: |
| * NetworkProcess/NetworkSocketChannel.h: |
| * NetworkProcess/WebSocketTask.h: |
| * NetworkProcess/cache/PrefetchCache.h: |
| * NetworkProcess/cocoa/WebSocketTaskCocoa.h: |
| * NetworkProcess/soup/WebKitSoupRequestInputStream.cpp: |
| * NetworkProcess/soup/WebSocketTaskSoup.h: |
| * NetworkProcess/webrtc/LibWebRTCSocketClient.h: |
| * NetworkProcess/webrtc/NetworkMDNSRegister.cpp: |
| * Platform/Module.h: |
| * PluginProcess/PluginControllerProxy.h: |
| * Shared/ApplePay/WebPaymentCoordinatorProxy.h: |
| * Shared/Authentication/AuthenticationManager.h: |
| * Shared/Cocoa/SandboxExtensionCocoa.mm: |
| * Shared/Plugins/NPObjectMessageReceiver.h: |
| * Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h: |
| * UIProcess/API/APIAutomationClient.h: |
| * UIProcess/API/APIAutomationSessionClient.h: |
| * UIProcess/API/APIContextMenuClient.h: |
| * UIProcess/API/APICustomProtocolManagerClient.h: |
| * UIProcess/API/APIDiagnosticLoggingClient.h: |
| * UIProcess/API/APIDownloadClient.h: |
| * UIProcess/API/APIFindClient.h: |
| * UIProcess/API/APIFindMatchesClient.h: |
| * UIProcess/API/APIFormClient.h: |
| * UIProcess/API/APIFullscreenClient.h: |
| * UIProcess/API/APIGeolocationProvider.h: |
| * UIProcess/API/APIHistoryClient.h: |
| * UIProcess/API/APIIconDatabaseClient.h: |
| * UIProcess/API/APIIconLoadingClient.h: |
| * UIProcess/API/APIInjectedBundleClient.h: |
| * UIProcess/API/APILegacyContextHistoryClient.h: |
| * UIProcess/API/APILoaderClient.h: |
| * UIProcess/API/APINavigationClient.h: |
| * UIProcess/API/APIPolicyClient.h: |
| * UIProcess/API/APIUIClient.h: |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetPageStateClient): |
| * UIProcess/API/Cocoa/WKUserContentController.mm: |
| * UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm: |
| * UIProcess/API/glib/IconDatabase.h: |
| * UIProcess/API/glib/WebKitAutomationSession.cpp: |
| * UIProcess/API/glib/WebKitIconLoadingClient.cpp: |
| * UIProcess/API/glib/WebKitNotificationProvider.h: |
| * UIProcess/API/glib/WebKitUserContentManager.cpp: |
| * UIProcess/API/glib/WebKitWebContext.cpp: |
| * UIProcess/API/glib/WebKitWebView.cpp: |
| * UIProcess/API/gtk/WebKitRemoteInspectorProtocolHandler.cpp: |
| * UIProcess/API/gtk/WebKitWebInspector.cpp: |
| * UIProcess/API/mac/WKView.mm: |
| (-[WKView maybeInstallIconLoadingClient]): |
| * UIProcess/API/wpe/APIViewClient.h: |
| * UIProcess/API/wpe/ScrollGestureController.h: |
| * UIProcess/ApplicationStateTracker.h: |
| * UIProcess/Cocoa/AutomationSessionClient.h: |
| * UIProcess/Cocoa/IconLoadingDelegate.h: |
| * UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp: |
| * UIProcess/Cocoa/UserMediaCaptureManagerProxy.h: |
| * UIProcess/DrawingAreaProxy.h: |
| * UIProcess/HighPerformanceGraphicsUsageSampler.h: |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/PageClient.h: |
| * UIProcess/PerActivityStateCPUUsageSampler.h: |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeScrollingPerformanceData.h: |
| * UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h: |
| * UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.h: |
| * UIProcess/SystemPreviewController.h: |
| * UIProcess/UserMediaPermissionRequestManagerProxy.h: |
| * UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.h: |
| * UIProcess/WebNavigationState.h: |
| * UIProcess/WebPageInjectedBundleClient.h: |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebsiteData/WebsiteDataStoreClient.h: |
| * UIProcess/gtk/DragAndDropHandler.h: |
| * UIProcess/ios/EditableImageController.h: |
| * UIProcess/ios/InputViewUpdateDeferrer.h: |
| * UIProcess/ios/SmartMagnificationController.h: |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.mm: |
| * UIProcess/mac/WKFullScreenWindowController.mm: |
| * UIProcess/mac/WKTextFinderClient.mm: |
| * WebProcess/ApplePay/WebPaymentCoordinator.h: |
| * WebProcess/Geolocation/GeolocationPermissionRequestManager.h: |
| * WebProcess/Geolocation/WebGeolocationManager.h: |
| * WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp: |
| * WebProcess/InjectedBundle/API/c/mac/WKBundlePageBannerMac.mm: |
| * WebProcess/InjectedBundle/API/glib/DOM/DOMObjectCache.cpp: |
| * WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp: |
| * WebProcess/MediaCache/WebMediaKeyStorageManager.h: |
| * WebProcess/MediaStream/UserMediaPermissionRequestManager.h: |
| * WebProcess/Network/webrtc/LibWebRTCProvider.cpp: |
| * WebProcess/Network/webrtc/LibWebRTCResolver.h: |
| * WebProcess/Notifications/WebNotificationManager.h: |
| * WebProcess/Plugins/Netscape/NetscapePlugin.h: |
| * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.h: |
| * WebProcess/Plugins/PluginController.h: |
| * WebProcess/Storage/WebSWOriginTable.h: |
| * WebProcess/WebCoreSupport/WebAlternativeTextClient.h: |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| * WebProcess/WebCoreSupport/WebContextMenuClient.h: |
| * WebProcess/WebCoreSupport/WebDragClient.h: |
| * WebProcess/WebCoreSupport/WebEditorClient.h: |
| * WebProcess/WebCoreSupport/WebGeolocationClient.h: |
| * WebProcess/WebCoreSupport/WebInspectorClient.h: |
| * WebProcess/WebCoreSupport/WebMessagePortChannelProvider.h: |
| * WebProcess/WebCoreSupport/WebNotificationClient.h: |
| * WebProcess/WebCoreSupport/WebPlugInClient.h: |
| * WebProcess/WebCoreSupport/WebProgressTrackerClient.h: |
| * WebProcess/WebCoreSupport/WebSpeechSynthesisClient.h: |
| * WebProcess/WebCoreSupport/WebUserMediaClient.h: |
| * WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.h: |
| * WebProcess/WebPage/FindController.h: |
| * WebProcess/WebPage/ViewGestureGeometryCollector.h: |
| * WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp: |
| * WebProcess/WebPage/ios/FindIndicatorOverlayClientIOS.h: |
| * WebProcess/WebProcess.h: |
| * WebProcess/cocoa/UserMediaCaptureManager.h: |
| |
| 2019-08-15 Brent Fulgham <bfulgham@apple.com> |
| |
| [FTW] Enable CoreFoundation use if building for Apple target |
| https://bugs.webkit.org/show_bug.cgi?id=200799 |
| |
| Reviewed by Alex Christensen. |
| |
| Fix the build and remove an unused method. |
| |
| * PlatformFTW.cmake: |
| * Shared/ShareableBitmap.h: |
| * Shared/win/ShareableBitmapDirect2D.cpp: |
| (WebKit::ShareableBitmap::createDirect2DSurface): |
| (WebKit::ShareableBitmap::releaseSurfaceData): Deleted. |
| |
| 2019-08-15 Sihui Liu <sihui_liu@apple.com> |
| |
| Some improvements on web storage |
| https://bugs.webkit.org/show_bug.cgi?id=200373 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Fix some issues in web storage architecture. For example, sessionStorageNameSpace for web page is prepared and |
| destroyed in the network process when the page comes and goes, even though the page may not use sessionStorage |
| at all. The messages about page state sent from web process to network process can be waste. |
| |
| Here are some general ideas of this patch: |
| 1. Network process owns the web storage, and web process keeps a small local copy (based on session and |
| origins that are visited). There is a virtual connection from the local copy in the web process to the original |
| copy in the network process. The connection is created by web process when some page asks for web storage. |
| 2. If connection is lost because network process is gone, storage in memory will be lost. The local copy in web |
| processs will be discarded. |
| 3. (SessionID, StorageNamespaceID, SecurityOrigin) is used to identify a storage area. If session is changed in |
| web process (like enabling private browsing in layout test now), a re-connection with different sessionID would |
| suffice to load another copy of storage. |
| 4. localStorage in ephemeral session has the same behavior as localStorage instead of sessionStorage, which |
| means different pages in the same ephemeral session share the same localStorage. |
| |
| Also, this patch introduces StorageManagerSet to network process. It handles web storage stuff, including |
| receiving storage messages from web process, on one background thread. Previously each session has its own |
| StorageManager and each StorageManager has its own WorkQueue. |
| |
| * CMakeLists.txt: |
| * DerivedSources-input.xcfilelist: |
| * DerivedSources-output.xcfilelist: |
| * DerivedSources.make: |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: remove message handlers that are no longer needed. Network |
| process no longer needs to know page states from web process. |
| (WebKit::NetworkConnectionToWebProcess::didClose): |
| (WebKit::NetworkConnectionToWebProcess::webPageWasAdded): Deleted. |
| (WebKit::NetworkConnectionToWebProcess::webPageWasRemoved): Deleted. |
| (WebKit::NetworkConnectionToWebProcess::webProcessSessionChanged): Deleted. |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| |
| * NetworkProcess/NetworkProcess.cpp: NetworkProcess uses StorageManagerSet instead of StorageManager from |
| different sessions to deal with web storage. |
| (WebKit::NetworkProcess::NetworkProcess): |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| (WebKit::NetworkProcess::createNetworkConnectionToWebProcess): StorageManagerSet starts handling |
| StorageManagerSet messages from the new connection. |
| (WebKit::NetworkProcess::addWebsiteDataStore): |
| (WebKit::NetworkProcess::destroySession): |
| (WebKit::NetworkProcess::hasLocalStorage): |
| (WebKit::NetworkProcess::fetchWebsiteData): |
| (WebKit::NetworkProcess::deleteWebsiteData): |
| (WebKit::NetworkProcess::deleteWebsiteDataForOrigins): |
| (WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains): |
| (WebKit::NetworkProcess::actualPrepareToSuspend): |
| (WebKit::NetworkProcess::resume): |
| (WebKit::NetworkProcess::syncLocalStorage): |
| (WebKit::NetworkProcess::clearLegacyPrivateBrowsingLocalStorage): added for clearing in-memory ephemeral |
| localStorage. |
| (WebKit::NetworkProcess::getLocalStorageOriginDetails): |
| (WebKit::NetworkProcess::connectionToWebProcessClosed): |
| (WebKit::NetworkProcess::webPageWasAdded): Deleted. |
| (WebKit::NetworkProcess::webPageWasRemoved): Deleted. |
| (WebKit::NetworkProcess::webProcessWasDisconnected): Deleted. |
| (WebKit::NetworkProcess::webProcessSessionChanged): Deleted. |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| |
| * NetworkProcess/NetworkSession.cpp: StorageManager is moved out of NetworkSession. It is now managed by |
| StorageManagerSet. |
| (WebKit::NetworkSession::NetworkSession): |
| (WebKit::NetworkSession::~NetworkSession): |
| * NetworkProcess/NetworkSession.h: |
| (WebKit::NetworkSession::storageManager): Deleted. |
| |
| * NetworkProcess/NetworkSessionCreationParameters.cpp: creation parameters of StorageManager is moved out of |
| NetworkSessionCreationParameters. |
| (WebKit::NetworkSessionCreationParameters::privateSessionParameters): |
| (WebKit::NetworkSessionCreationParameters::encode const): |
| (WebKit::NetworkSessionCreationParameters::decode): |
| * NetworkProcess/NetworkSessionCreationParameters.h: |
| |
| * NetworkProcess/WebStorage/LocalStorageDatabase.cpp: |
| (WebKit::LocalStorageDatabase::updateDatabase): remove an assertion that is no longer true as we can force an |
| update with syncLocalStorage now. |
| * NetworkProcess/WebStorage/LocalStorageDatabase.h: make updateDatabase public for syncLocalStorage. |
| |
| * NetworkProcess/WebStorage/LocalStorageDatabaseTracker.cpp: LocalStorageDatabaseTracker is created on the |
| background thread now, so it does not hold WorkQueue to do the file operation. |
| (WebKit::LocalStorageDatabaseTracker::create): |
| (WebKit::LocalStorageDatabaseTracker::LocalStorageDatabaseTracker): |
| (WebKit::LocalStorageDatabaseTracker::~LocalStorageDatabaseTracker): |
| * NetworkProcess/WebStorage/LocalStorageDatabaseTracker.h: |
| * NetworkProcess/WebStorage/LocalStorageNamespace.cpp: |
| (WebKit::LocalStorageNamespace::getOrCreateStorageArea): |
| (WebKit::LocalStorageNamespace::cloneTo): Deleted. |
| * NetworkProcess/WebStorage/LocalStorageNamespace.h: |
| * NetworkProcess/WebStorage/SessionStorageNamespace.cpp: |
| (WebKit::SessionStorageNamespace::getOrCreateStorageArea): |
| (WebKit::SessionStorageNamespace::addAllowedConnection): Deleted. |
| (WebKit::SessionStorageNamespace::removeAllowedConnection): Deleted. |
| * NetworkProcess/WebStorage/SessionStorageNamespace.h: |
| (WebKit::SessionStorageNamespace::allowedConnections const): Deleted. |
| |
| * NetworkProcess/WebStorage/StorageArea.cpp: |
| (WebKit::generateStorageAreaIdentifier): each StorageArea has an identifier. StorageAreaMap in web process uses |
| this identifier to indicate which StorageArea it is connecting to. |
| (WebKit::StorageArea::StorageArea): |
| (WebKit::StorageArea::~StorageArea): StorageArea may still have listeners because StorageArea should be |
| destroyed by requests from UI process, and listeners are connections to web processses. |
| (WebKit::StorageArea::addListener): load localStorageDatabase in advance if there is some connection to this |
| LocalStorage area. |
| (WebKit::StorageArea::removeListener): |
| (WebKit::StorageArea::hasListener const): |
| (WebKit::StorageArea::clear): |
| (WebKit::StorageArea::openDatabaseAndImportItemsIfNeeded const): |
| (WebKit::StorageArea::dispatchEvents const): |
| (WebKit::StorageArea::syncToDatabase): |
| (WebKit::StorageArea::setItems): Deleted. Stop syncing from web process to network process after network process |
| is relaunched. |
| * NetworkProcess/WebStorage/StorageArea.h: |
| (WebKit::StorageArea::identifier): |
| (WebKit::StorageArea::setWorkQueue): |
| |
| * NetworkProcess/WebStorage/StorageManager.cpp: StorageManager should be accessed by only background thread now. |
| (WebKit::StorageManager::StorageManager): |
| (WebKit::StorageManager::~StorageManager): |
| (WebKit::StorageManager::createSessionStorageNamespace): |
| (WebKit::StorageManager::destroySessionStorageNamespace): this is not used now but keep it for future |
| improvement to remove in-memory sessionStorage in network process if we know some web page is gone forever. |
| (WebKit::StorageManager::cloneSessionStorageNamespace): previously each page had its own ephemeral |
| localStorageNamespace and now all pages in the same session share one localStorage, so we don't need to clone |
| localStorageNamespace. |
| (WebKit::StorageManager::getSessionStorageOrigins): |
| (WebKit::StorageManager::deleteSessionStorageOrigins): |
| (WebKit::StorageManager::deleteSessionStorageEntriesForOrigins): |
| (WebKit::StorageManager::getLocalStorageOrigins): |
| (WebKit::StorageManager::getLocalStorageOriginDetails): |
| (WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince): |
| (WebKit::StorageManager::deleteLocalStorageEntriesForOrigins): |
| (WebKit::StorageManager::createLocalStorageArea): |
| (WebKit::StorageManager::createTransientLocalStorageArea): |
| (WebKit::StorageManager::createSessionStorageArea): |
| (WebKit::StorageManager::getOrCreateLocalStorageNamespace): |
| (WebKit::StorageManager::getOrCreateTransientLocalStorageNamespace): |
| (WebKit::StorageManager::getOrCreateSessionStorageNamespace): |
| (WebKit::StorageManager::clearStorageNamespaces): |
| (WebKit::StorageManager::addAllowedSessionStorageNamespaceConnection): Deleted. |
| (WebKit::StorageManager::removeAllowedSessionStorageNamespaceConnection): Deleted. |
| (WebKit::StorageManager::processDidCloseConnection): Deleted. |
| (WebKit::StorageManager::deleteLocalStorageEntriesForOrigin): Deleted. |
| (WebKit::StorageManager::createLocalStorageMap): Deleted. |
| (WebKit::StorageManager::createTransientLocalStorageMap): Deleted. |
| (WebKit::StorageManager::createSessionStorageMap): Deleted. |
| (WebKit::StorageManager::destroyStorageMap): Deleted. |
| (WebKit::StorageManager::prewarm): Deleted. |
| (WebKit::StorageManager::getValues): Deleted. |
| (WebKit::StorageManager::setItem): Deleted. |
| (WebKit::StorageManager::setItems): Deleted. |
| (WebKit::StorageManager::removeItem): Deleted. |
| (WebKit::StorageManager::clear): Deleted. |
| (WebKit::StorageManager::waitUntilTasksFinished): Deleted. |
| (WebKit::StorageManager::suspend): Deleted. |
| (WebKit::StorageManager::resume): Deleted. |
| (WebKit::StorageManager::findStorageArea const): Deleted. |
| * NetworkProcess/WebStorage/StorageManager.h: |
| (WebKit::StorageManager::workQueue const): Deleted. |
| (): Deleted. |
| |
| * NetworkProcess/WebStorage/StorageManager.messages.in: Removed. Moved to StorageManagerSet.messages.in. |
| |
| * NetworkProcess/WebStorage/StorageManagerSet.cpp: Added. |
| (WebKit::StorageManagerSet::create): |
| (WebKit::StorageManagerSet::StorageManagerSet): |
| (WebKit::StorageManagerSet::~StorageManagerSet): |
| (WebKit::StorageManagerSet::add): |
| (WebKit::StorageManagerSet::remove): |
| (WebKit::StorageManagerSet::contains): |
| (WebKit::StorageManagerSet::addConnection): |
| (WebKit::StorageManagerSet::removeConnection): |
| (WebKit::StorageManagerSet::waitUntilTasksFinished): |
| (WebKit::StorageManagerSet::waitUntilSyncingLocalStorageFinished): |
| (WebKit::StorageManagerSet::suspend): |
| (WebKit::StorageManagerSet::resume): |
| (WebKit::StorageManagerSet::getSessionStorageOrigins): |
| (WebKit::StorageManagerSet::deleteSessionStorage): |
| (WebKit::StorageManagerSet::deleteSessionStorageForOrigins): |
| (WebKit::StorageManagerSet::getLocalStorageOrigins): |
| (WebKit::StorageManagerSet::deleteLocalStorageModifiedSince): |
| (WebKit::StorageManagerSet::deleteLocalStorageForOrigins): |
| (WebKit::StorageManagerSet::getLocalStorageOriginDetails): |
| (WebKit::StorageManagerSet::connectToLocalStorageArea): |
| (WebKit::StorageManagerSet::connectToTransientLocalStorageArea): |
| (WebKit::StorageManagerSet::connectToSessionStorageArea): |
| (WebKit::StorageManagerSet::disconnectFromStorageArea): |
| (WebKit::StorageManagerSet::getValues): |
| (WebKit::StorageManagerSet::setItem): |
| (WebKit::StorageManagerSet::removeItem): |
| (WebKit::StorageManagerSet::clear): |
| (WebKit::StorageManagerSet::cloneSessionStorageNamespace): |
| * NetworkProcess/WebStorage/StorageManagerSet.h: Added. |
| * NetworkProcess/WebStorage/StorageManagerSet.messages.in: Added. |
| |
| * Shared/WebsiteDataStoreParameters.cpp: creation parameters of StorageManager are moved to |
| WebsiteDataStoreParameters. |
| (WebKit::WebsiteDataStoreParameters::encode const): |
| (WebKit::WebsiteDataStoreParameters::decode): |
| (WebKit::WebsiteDataStoreParameters::privateSessionParameters): |
| * Shared/WebsiteDataStoreParameters.h: |
| * Sources.txt: |
| |
| * UIProcess/API/C/WKContext.cpp: add SPI for tests. |
| (WKContextSyncLocalStorage): |
| (WKContextClearLegacyPrivateBrowsingLocalStorage): |
| * UIProcess/API/C/WKContextPrivate.h: |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreRemoveLocalStorage): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| (WebKit::WebProcessPool::syncLocalStorage): |
| (WebKit::WebProcessPool::clearLegacyPrivateBrowsingLocalStorage): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::parameters): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: session change of web storage is done via |
| WebStorageNamespaceProvider instead of WebProcess now. |
| (WebKit::InjectedBundle::setPrivateBrowsingEnabled): |
| * WebProcess/WebProcess.cpp: web process no longer sends messsages about page state to network process. |
| (WebKit::WebProcess::createWebPage): |
| (WebKit::WebProcess::removeWebPage): |
| (WebKit::WebProcess::ensureNetworkProcessConnection): |
| (WebKit::WebProcess::networkProcessConnectionClosed): |
| (WebKit::WebProcess::storageAreaMap const): |
| (WebKit::WebProcess::enablePrivateBrowsingForTesting): Deleted. This was used for changing session via |
| WebProcess. |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebStorage/StorageAreaImpl.cpp: |
| (WebKit::StorageAreaImpl::StorageAreaImpl): |
| (WebKit::StorageAreaImpl::length): |
| (WebKit::StorageAreaImpl::key): |
| (WebKit::StorageAreaImpl::item): |
| (WebKit::StorageAreaImpl::setItem): |
| (WebKit::StorageAreaImpl::removeItem): |
| (WebKit::StorageAreaImpl::clear): |
| (WebKit::StorageAreaImpl::contains): |
| (WebKit::StorageAreaImpl::storageType const): |
| (WebKit::StorageAreaImpl::incrementAccessCount): |
| (WebKit::StorageAreaImpl::decrementAccessCount): |
| (WebKit::StorageAreaImpl::prewarm): Deleted. |
| (WebKit::StorageAreaImpl::securityOrigin const): Deleted. |
| |
| * WebProcess/WebStorage/StorageAreaImpl.h: make StorageAreaImpl hold a weak reference to StorageAreaMap and |
| StorageNamespaceImpl hold a strong reference. In this way lifeime of localStorage StorageAreraMap stays align |
| with StorageNameSpaceProvider and Page. |
| |
| * WebProcess/WebStorage/StorageAreaMap.cpp: identifier of StorageAreaMap is the same as identifier of |
| StorageArea it connects to. If the identifier is 0, it means the StorageAreaMap is disconnected. |
| (WebKit::StorageAreaMap::StorageAreaMap): |
| (WebKit::StorageAreaMap::~StorageAreaMap): |
| (WebKit::StorageAreaMap::setItem): |
| (WebKit::StorageAreaMap::removeItem): |
| (WebKit::StorageAreaMap::clear): |
| (WebKit::StorageAreaMap::resetValues): |
| (WebKit::StorageAreaMap::loadValuesIfNeeded): |
| (WebKit::StorageAreaMap::applyChange): |
| (WebKit::StorageAreaMap::dispatchStorageEvent): |
| (WebKit::StorageAreaMap::dispatchSessionStorageEvent): |
| (WebKit::StorageAreaMap::dispatchLocalStorageEvent): |
| (WebKit::StorageAreaMap::connect): |
| (WebKit::StorageAreaMap::disconnect): |
| (WebKit::generateStorageMapID): Deleted. |
| (WebKit::StorageAreaMap::prewarm): Deleted. |
| (WebKit::StorageAreaMap::didGetValues): Deleted. This is useless as GetValues is a synchronous operation. |
| * WebProcess/WebStorage/StorageAreaMap.h: |
| (): Deleted. |
| |
| * WebProcess/WebStorage/StorageAreaMap.messages.in: there are two synchronous messages, one for connection and |
| one for getting values. We may merge them into one in future improvement. |
| * WebProcess/WebStorage/StorageNamespaceImpl.cpp: |
| (WebKit::StorageNamespaceImpl::createSessionStorageNamespace): |
| (WebKit::StorageNamespaceImpl::createLocalStorageNamespace): |
| (WebKit::StorageNamespaceImpl::createTransientLocalStorageNamespace): |
| (WebKit::StorageNamespaceImpl::StorageNamespaceImpl): |
| (WebKit::StorageNamespaceImpl::storageArea): |
| (WebKit::StorageNamespaceImpl::copy): |
| (WebKit::StorageNamespaceImpl::setSessionIDForTesting): |
| (WebKit::StorageNamespaceImpl::createEphemeralLocalStorageNamespace): Deleted. |
| * WebProcess/WebStorage/StorageNamespaceImpl.h: |
| * WebProcess/WebStorage/WebStorageNamespaceProvider.cpp: |
| (WebKit::WebStorageNamespaceProvider::createSessionStorageNamespace): |
| (WebKit::WebStorageNamespaceProvider::createLocalStorageNamespace): |
| (WebKit::WebStorageNamespaceProvider::createTransientLocalStorageNamespace): |
| (WebKit::WebStorageNamespaceProvider::createEphemeralLocalStorageNamespace): Deleted. |
| * WebProcess/WebStorage/WebStorageNamespaceProvider.h: |
| |
| 2019-08-15 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Occasional hang under -[UIKeyboardTaskQueue lockWhenReadyForMainThread] when long-pressing non-editable text |
| https://bugs.webkit.org/show_bug.cgi?id=200731 |
| <rdar://problem/54315371> |
| |
| Reviewed by Tim Horton. |
| |
| When handling a single tap in non-editable content, keyboards logic in UIKit may attempt to wait for all |
| pending tasks in UIKeyboardTaskQueue to finish executing (e.g. by calling -waitUntilAllTasksAreFinished]). If |
| the task queue has a pending task at this moment - for example, a text selection update that is waiting for a |
| response from the web process - this will result in a permanent deadlock, since the main thread will be blocked, |
| and therefore cannot receive any IPC communication from the web process. |
| |
| One way to trigger this is to activate both the loupe gesture and non-editable text tap gesture simultaneously, |
| by tapping in a non-editable part of the web page, while an ongoing loupe gesture is driving selection updates |
| (see the layout test for more details). |
| |
| To avoid getting into this scenario, prevent the text tap gesture recognizer from firing in a few edge cases |
| that could lead to hangs under keyboard code in UIKit. See comments below. |
| |
| Test: editing/selection/ios/tap-during-loupe-gesture.html |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView textInteractionGesture:shouldBeginAtPoint:]): |
| |
| Don't allow the text tap gesture recognizer to fire if the user is actively modifying the text selection using |
| the loupe gesture, or if there's other pending selection change updates that are pending responses from the web |
| content process. |
| |
| (-[WKContentView selectTextWithGranularity:atPoint:completionHandler:]): |
| (-[WKContentView updateSelectionWithExtentPoint:withBoundary:completionHandler:]): |
| |
| Increment and decrement _suppressNonEditableSingleTapTextInteractionCount while handling these selection |
| updates. |
| |
| 2019-08-15 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r248440. |
| https://bugs.webkit.org/show_bug.cgi?id=200772 |
| |
| Introduced regressions related to loading of local files. |
| (Requested by perarne on #webkit). |
| |
| Reverted changeset: |
| |
| "[Mac] Use the PID of the WebContent process when issuing |
| local file read sandbox extensions" |
| https://bugs.webkit.org/show_bug.cgi?id=200543 |
| https://trac.webkit.org/changeset/248440 |
| |
| 2019-08-15 Alex Christensen <achristensen@webkit.org> |
| |
| WKUIDelegate's webView:contextMenuDidEndForElement: should be called when context menus end |
| https://bugs.webkit.org/show_bug.cgi?id=200750 |
| <rdar://problem/54232261> and <rdar://problem/52355829> |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView contextMenuInteraction:willEndForConfiguration:animator:]): |
| |
| 2019-08-14 Brian Burg <bburg@apple.com> |
| |
| Web Automation: mouse buttons are not correctly printed in SimulatedInputDispatcher log spew |
| https://bugs.webkit.org/show_bug.cgi?id=200729 |
| |
| Reviewed by Devin Rousso. |
| |
| This was printing out gibberish because it was trying to decode a WebMouseEvent button |
| as an Automation protocol button. The logging was less useful because of it. |
| |
| To fix this, push usage of Automation protocol-based MouseButton type alias all the way |
| to the platform-specific methods. The mouse buttons are the same for WebMouseEvent::Button |
| and the Automation protocol type, except the automation type has an auto-generated toString. |
| |
| * UIProcess/Automation/SimulatedInputDispatcher.h: |
| * UIProcess/Automation/SimulatedInputDispatcher.cpp: |
| (WebKit::SimulatedInputDispatcher::transitionInputSourceToState): |
| (WebKit::SimulatedInputDispatcher::run): |
| Fix types. |
| |
| * UIProcess/Automation/WebAutomationSession.h: |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::simulateMouseInteraction): |
| (WebKit::WebAutomationSession::performMouseInteraction): |
| (WebKit::WebAutomationSession::performInteractionSequence): |
| (WebKit::protocolMouseButtonToWebMouseEventButton): Deleted. |
| Fix types. |
| |
| * UIProcess/Automation/mac/WebAutomationSessionMac.mm: |
| (WebKit::automationMouseButtonToPlatformMouseButton): |
| (WebKit::WebAutomationSession::platformSimulateMouseInteraction): |
| * UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp: |
| (WebKit::mouseButtonToGdkButton): |
| (WebKit::WebAutomationSession::platformSimulateMouseInteraction): |
| * UIProcess/Automation/wpe/WebAutomationSessionWPE.cpp: |
| (WebKit::mouseButtonToWPEButton): |
| (WebKit::WebAutomationSession::platformSimulateMouseInteraction): |
| Move translation between MouseButton and native button values to platform methods. |
| |
| 2019-08-15 Simon Fraser <simon.fraser@apple.com> |
| |
| Use ObjectIdentifier<FrameIdentifierType> for frameIDs |
| https://bugs.webkit.org/show_bug.cgi?id=199986 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Use the strongly-typed FrameIdentifier instead of uint64_t as frame identifiers everywhere. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: |
| (WebKit::ResourceLoadStatisticsDatabaseStore::hasStorageAccess): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::requestStorageAccess): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::grantStorageAccess): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::grantStorageAccessInternal): |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h: |
| * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ResourceLoadStatisticsMemoryStore::hasStorageAccess): |
| (WebKit::ResourceLoadStatisticsMemoryStore::requestStorageAccess): |
| (WebKit::ResourceLoadStatisticsMemoryStore::grantStorageAccess): |
| (WebKit::ResourceLoadStatisticsMemoryStore::grantStorageAccessInternal): |
| * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h: |
| * NetworkProcess/Classifier/ResourceLoadStatisticsStore.h: |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::hasStorageAccess): |
| (WebKit::WebResourceLoadStatisticsStore::hasStorageAccessForFrame): |
| (WebKit::WebResourceLoadStatisticsStore::callHasStorageAccessForFrameHandler): |
| (WebKit::WebResourceLoadStatisticsStore::requestStorageAccess): |
| (WebKit::WebResourceLoadStatisticsStore::grantStorageAccess): |
| (WebKit::WebResourceLoadStatisticsStore::callGrantStorageAccessHandler): |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h: |
| * NetworkProcess/NetworkCORSPreflightChecker.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::cookiesForDOM): |
| (WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM): |
| (WebKit::NetworkConnectionToWebProcess::cookieRequestHeaderFieldValue): |
| (WebKit::NetworkConnectionToWebProcess::getRawCookies): |
| (WebKit::NetworkConnectionToWebProcess::removeStorageAccessForFrame): |
| (WebKit::NetworkConnectionToWebProcess::hasStorageAccess): |
| (WebKit::NetworkConnectionToWebProcess::requestStorageAccess): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::NetworkLoadChecker): |
| * NetworkProcess/NetworkLoadChecker.h: |
| * NetworkProcess/NetworkLoadParameters.h: |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::start): |
| (WebKit::NetworkResourceLoader::retrieveCacheEntry): |
| (WebKit::NetworkResourceLoader::startNetworkLoad): |
| (WebKit::NetworkResourceLoader::convertToDownload): |
| (WebKit::NetworkResourceLoader::abort): |
| (WebKit::NetworkResourceLoader::didReceiveResponse): |
| (WebKit::NetworkResourceLoader::didReceiveBuffer): |
| (WebKit::NetworkResourceLoader::didFinishLoading): |
| (WebKit::NetworkResourceLoader::didFailLoading): |
| (WebKit::NetworkResourceLoader::continueWillSendRequest): |
| (WebKit::escapeIDForJSON): |
| (WebKit::logBlockedCookieInformation): |
| (WebKit::logCookieInformationInternal): |
| (WebKit::NetworkResourceLoader::logCookieInformation): |
| * NetworkProcess/NetworkResourceLoader.h: |
| * NetworkProcess/cache/NetworkCache.h: |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.h: |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): |
| (WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection): |
| * Scripts/webkit/messages.py: |
| * Shared/API/APIFrameHandle.cpp: |
| (API::FrameHandle::create): |
| (API::FrameHandle::createAutoconverting): |
| (API::FrameHandle::FrameHandle): |
| (API::FrameHandle::decode): |
| * Shared/API/APIFrameHandle.h: |
| (API::FrameHandle::frameID const): |
| * Shared/API/Cocoa/_WKFrameHandle.mm: |
| (-[_WKFrameHandle hash]): |
| (-[_WKFrameHandle _frameID]): |
| (-[_WKFrameHandle initWithCoder:]): |
| (-[_WKFrameHandle encodeWithCoder:]): |
| * Shared/Authentication/AuthenticationManager.cpp: |
| (WebKit::AuthenticationManager::didReceiveAuthenticationChallenge): |
| * Shared/Authentication/AuthenticationManager.h: |
| * Shared/FrameInfoData.h: |
| * UIProcess/API/C/WKFrameHandleRef.cpp: |
| (WKFrameHandleGetFrameID): |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _printOperationWithPrintInfo:forFrame:]): |
| (-[WKWebView _canChangeFrameLayout:]): |
| * UIProcess/API/Cocoa/_WKInspector.mm: |
| (-[_WKInspector showMainResourceForFrame:]): |
| * UIProcess/Automation/SimulatedInputDispatcher.cpp: |
| (WebKit::SimulatedInputDispatcher::run): |
| * UIProcess/Automation/SimulatedInputDispatcher.h: |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::webFrameIDForHandle): |
| (WebKit::WebAutomationSession::handleForWebFrameID): |
| (WebKit::WebAutomationSession::switchToBrowsingContext): |
| (WebKit::WebAutomationSession::waitForNavigationToComplete): |
| (WebKit::findPageForFrameID): |
| (WebKit::WebAutomationSession::respondToPendingFrameNavigationCallbacksWithTimeout): |
| (WebKit::WebAutomationSession::evaluateJavaScriptFunction): |
| (WebKit::WebAutomationSession::resolveChildFrameHandle): |
| (WebKit::WebAutomationSession::resolveParentFrameHandle): |
| (WebKit::WebAutomationSession::computeElementLayout): |
| (WebKit::WebAutomationSession::selectOptionElement): |
| (WebKit::WebAutomationSession::getAllCookies): |
| (WebKit::WebAutomationSession::deleteSingleCookie): |
| (WebKit::WebAutomationSession::viewportInViewCenterPointOfElement): |
| (WebKit::WebAutomationSession::takeScreenshot): |
| * UIProcess/Automation/WebAutomationSession.h: |
| * UIProcess/Cocoa/UIDelegate.mm: |
| (WebKit::UIDelegate::UIClient::checkUserMediaPermissionForOrigin): |
| * UIProcess/Cocoa/WKReloadFrameErrorRecoveryAttempter.mm: |
| (-[WKReloadFrameErrorRecoveryAttempter attemptRecovery]): |
| * UIProcess/Cocoa/WebPageProxyCocoa.mm: |
| (WebKit::WebPageProxy::contentFilterDidBlockLoadForFrame): |
| (WebKit::WebPageProxy::contentFilterDidBlockLoadForFrameShared): |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::didReceiveAuthenticationChallenge): |
| (WebKit::NetworkProcessProxy::requestStorageAccessConfirm): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| * UIProcess/ProvisionalPageProxy.cpp: |
| (WebKit::ProvisionalPageProxy::validateInput): |
| (WebKit::ProvisionalPageProxy::didCreateMainFrame): |
| (WebKit::ProvisionalPageProxy::didPerformClientRedirect): |
| (WebKit::ProvisionalPageProxy::didStartProvisionalLoadForFrame): |
| (WebKit::ProvisionalPageProxy::didFailProvisionalLoadForFrame): |
| (WebKit::ProvisionalPageProxy::didCommitLoadForFrame): |
| (WebKit::ProvisionalPageProxy::didNavigateWithNavigationData): |
| (WebKit::ProvisionalPageProxy::didChangeProvisionalURLForFrame): |
| (WebKit::ProvisionalPageProxy::decidePolicyForNavigationActionAsync): |
| (WebKit::ProvisionalPageProxy::decidePolicyForResponse): |
| (WebKit::ProvisionalPageProxy::didPerformServerRedirect): |
| (WebKit::ProvisionalPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame): |
| (WebKit::ProvisionalPageProxy::decidePolicyForNavigationActionSync): |
| (WebKit::ProvisionalPageProxy::contentFilterDidBlockLoadForFrame): |
| * UIProcess/ProvisionalPageProxy.h: |
| * UIProcess/ServiceWorkerProcessProxy.cpp: |
| (WebKit::ServiceWorkerProcessProxy::didReceiveAuthenticationChallenge): |
| * UIProcess/ServiceWorkerProcessProxy.h: |
| * UIProcess/SuspendedPageProxy.cpp: |
| (WebKit::SuspendedPageProxy::SuspendedPageProxy): |
| * UIProcess/SuspendedPageProxy.h: |
| * UIProcess/UserMediaPermissionCheckProxy.cpp: |
| (WebKit::UserMediaPermissionCheckProxy::UserMediaPermissionCheckProxy): |
| * UIProcess/UserMediaPermissionCheckProxy.h: |
| (WebKit::UserMediaPermissionCheckProxy::create): |
| (WebKit::UserMediaPermissionCheckProxy::frameID const): |
| * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: |
| (WebKit::UserMediaPermissionRequestManagerProxy::resetAccess): |
| (WebKit::UserMediaPermissionRequestManagerProxy::searchForGrantedRequest const): |
| (WebKit::UserMediaPermissionRequestManagerProxy::wasRequestDenied): |
| (WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame): |
| (WebKit::UserMediaPermissionRequestManagerProxy::getUserMediaPermissionInfo): |
| (WebKit::UserMediaPermissionRequestManagerProxy::wasGrantedVideoOrAudioAccess): |
| (WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame): |
| * UIProcess/UserMediaPermissionRequestManagerProxy.h: |
| * UIProcess/UserMediaPermissionRequestProxy.cpp: |
| (WebKit::UserMediaPermissionRequestProxy::UserMediaPermissionRequestProxy): |
| * UIProcess/UserMediaPermissionRequestProxy.h: |
| (WebKit::UserMediaPermissionRequestProxy::create): |
| (WebKit::UserMediaPermissionRequestProxy::mainFrameID const): |
| (WebKit::UserMediaPermissionRequestProxy::frameID const): |
| * UIProcess/WebFrameProxy.cpp: |
| (WebKit::WebFrameProxy::WebFrameProxy): |
| * UIProcess/WebFrameProxy.h: |
| (WebKit::WebFrameProxy::create): |
| (WebKit::WebFrameProxy::frameID const): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::suspendCurrentPageIfPossible): |
| (WebKit::WebPageProxy::commitProvisionalPage): |
| (WebKit::WebPageProxy::runJavaScriptInFrame): |
| (WebKit::WebPageProxy::didCreateMainFrame): |
| (WebKit::WebPageProxy::didCreateSubframe): |
| (WebKit::WebPageProxy::didCreateWindow): |
| (WebKit::WebPageProxy::didStartProvisionalLoadForFrame): |
| (WebKit::WebPageProxy::didStartProvisionalLoadForFrameShared): |
| (WebKit::WebPageProxy::didExplicitOpenForFrame): |
| (WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame): |
| (WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrameShared): |
| (WebKit::WebPageProxy::willPerformClientRedirectForFrame): |
| (WebKit::WebPageProxy::didCancelClientRedirectForFrame): |
| (WebKit::WebPageProxy::didChangeProvisionalURLForFrame): |
| (WebKit::WebPageProxy::didChangeProvisionalURLForFrameShared): |
| (WebKit::WebPageProxy::didFailProvisionalLoadForFrame): |
| (WebKit::WebPageProxy::didFailProvisionalLoadForFrameShared): |
| (WebKit::WebPageProxy::didCommitLoadForFrame): |
| (WebKit::WebPageProxy::didFinishDocumentLoadForFrame): |
| (WebKit::WebPageProxy::didFinishLoadForFrame): |
| (WebKit::WebPageProxy::didFailLoadForFrame): |
| (WebKit::WebPageProxy::didSameDocumentNavigationForFrame): |
| (WebKit::WebPageProxy::didChangeMainDocument): |
| (WebKit::WebPageProxy::didReceiveTitleForFrame): |
| (WebKit::WebPageProxy::didFirstLayoutForFrame): |
| (WebKit::WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame): |
| (WebKit::WebPageProxy::didDisplayInsecureContentForFrame): |
| (WebKit::WebPageProxy::didRunInsecureContentForFrame): |
| (WebKit::WebPageProxy::didDetectXSSForFrame): |
| (WebKit::WebPageProxy::frameDidBecomeFrameSet): |
| (WebKit::WebPageProxy::decidePolicyForNavigationActionAsync): |
| (WebKit::WebPageProxy::decidePolicyForNavigationActionAsyncShared): |
| (WebKit::WebPageProxy::decidePolicyForNavigationActionSync): |
| (WebKit::WebPageProxy::decidePolicyForNavigationActionSyncShared): |
| (WebKit::WebPageProxy::decidePolicyForNewWindowAction): |
| (WebKit::WebPageProxy::decidePolicyForResponse): |
| (WebKit::WebPageProxy::decidePolicyForResponseShared): |
| (WebKit::WebPageProxy::unableToImplementPolicy): |
| (WebKit::WebPageProxy::willSubmitForm): |
| (WebKit::WebPageProxy::didNavigateWithNavigationData): |
| (WebKit::WebPageProxy::didNavigateWithNavigationDataShared): |
| (WebKit::WebPageProxy::didPerformClientRedirect): |
| (WebKit::WebPageProxy::didPerformClientRedirectShared): |
| (WebKit::WebPageProxy::didPerformServerRedirect): |
| (WebKit::WebPageProxy::didPerformServerRedirectShared): |
| (WebKit::WebPageProxy::didUpdateHistoryTitle): |
| (WebKit::WebPageProxy::runJavaScriptAlert): |
| (WebKit::WebPageProxy::runJavaScriptConfirm): |
| (WebKit::WebPageProxy::runJavaScriptPrompt): |
| (WebKit::WebPageProxy::runBeforeUnloadConfirmPanel): |
| (WebKit::WebPageProxy::runOpenPanel): |
| (WebKit::WebPageProxy::printFrame): |
| (WebKit::WebPageProxy::focusedFrameChanged): |
| (WebKit::WebPageProxy::frameSetLargestFrameChanged): |
| (WebKit::WebPageProxy::didReceiveAuthenticationChallengeProxy): |
| (WebKit::WebPageProxy::exceededDatabaseQuota): |
| (WebKit::WebPageProxy::requestStorageSpace): |
| (WebKit::WebPageProxy::makeStorageSpaceRequest): |
| (WebKit::WebPageProxy::requestGeolocationPermissionForFrame): |
| (WebKit::WebPageProxy::requestUserMediaPermissionForFrame): |
| (WebKit::WebPageProxy::enumerateMediaDevicesForFrame): |
| (WebKit::WebPageProxy::shouldAllowDeviceOrientationAndMotionAccess): |
| (WebKit::WebPageProxy::requestStorageAccessConfirm): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::webFrame const): |
| (WebKit::WebProcessProxy::canCreateFrame const): |
| (WebKit::WebProcessProxy::frameCreated): |
| (WebKit::WebProcessProxy::didDestroyFrame): |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebProcessProxy.messages.in: |
| * UIProcess/ios/WKContentView.mm: |
| (-[WKContentView _wk_pageCountForPrintFormatter:]): |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::computePagesForPrintingAndDrawToPDF): |
| * WebProcess/Automation/WebAutomationSessionProxy.cpp: |
| (WebKit::evaluateJavaScriptCallback): |
| (WebKit::WebAutomationSessionProxy::didClearWindowObjectForFrame): |
| (WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction): |
| (WebKit::WebAutomationSessionProxy::didEvaluateJavaScriptFunction): |
| (WebKit::WebAutomationSessionProxy::resolveChildFrameWithOrdinal): |
| (WebKit::WebAutomationSessionProxy::resolveChildFrameWithNodeHandle): |
| (WebKit::WebAutomationSessionProxy::resolveChildFrameWithName): |
| (WebKit::WebAutomationSessionProxy::resolveParentFrame): |
| (WebKit::WebAutomationSessionProxy::focusFrame): |
| (WebKit::WebAutomationSessionProxy::computeElementLayout): |
| (WebKit::WebAutomationSessionProxy::selectOptionElement): |
| (WebKit::WebAutomationSessionProxy::takeScreenshot): |
| (WebKit::WebAutomationSessionProxy::getCookiesForFrame): |
| (WebKit::WebAutomationSessionProxy::deleteCookie): |
| * WebProcess/Automation/WebAutomationSessionProxy.h: |
| * WebProcess/Automation/WebAutomationSessionProxy.messages.in: |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm: |
| (+[WKWebProcessPlugInFrame lookUpFrameFromHandle:]): |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::scheduleLoad): |
| (WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess): |
| (WebKit::WebLoaderStrategy::loadResourceSynchronously): |
| * WebProcess/Network/WebResourceLoader.cpp: |
| (WebKit::WebResourceLoader::willSendRequest): |
| (WebKit::WebResourceLoader::didReceiveResponse): |
| (WebKit::WebResourceLoader::didReceiveData): |
| (WebKit::WebResourceLoader::didFinishResourceLoad): |
| (WebKit::WebResourceLoader::didFailResourceLoad): |
| (WebKit::WebResourceLoader::didBlockAuthenticationChallenge): |
| (WebKit::WebResourceLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied): |
| (WebKit::WebResourceLoader::didReceiveResource): |
| * WebProcess/Network/WebResourceLoader.h: |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::installServiceWorker): |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::focusedFrameChanged): |
| (WebKit::WebChromeClient::contentsSizeChanged const): |
| (WebKit::WebChromeClient::hasStorageAccess): |
| (WebKit::WebChromeClient::requestStorageAccess): |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::frameID const): |
| (WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad): |
| (WebKit::WebFrameLoaderClient::dispatchDidFailLoad): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: |
| * WebProcess/WebPage/WebCookieJar.cpp: |
| (WebKit::WebCookieJar::cookies const): |
| (WebKit::WebCookieJar::setCookies): |
| (WebKit::WebCookieJar::cookieRequestHeaderFieldValue const): |
| (WebKit::WebCookieJar::getRawCookies const): |
| * WebProcess/WebPage/WebCookieJar.h: |
| * WebProcess/WebPage/WebFrame.cpp: |
| (WebKit::WebFrame::WebFrame): |
| (WebKit::generateFrameID): Deleted. |
| * WebProcess/WebPage/WebFrame.h: |
| (WebKit::WebFrame::frameID const): |
| * WebProcess/WebPage/WebInspector.cpp: |
| (WebKit::WebInspector::showMainResourceForFrame): |
| * WebProcess/WebPage/WebInspector.h: |
| * WebProcess/WebPage/WebInspector.messages.in: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::loadURLInFrame): |
| (WebKit::WebPage::loadDataInFrame): |
| (WebKit::WebPage::stopLoadingFrame): |
| (WebKit::WebPage::didReceivePolicyDecision): |
| (WebKit::WebPage::continueWillSubmitForm): |
| (WebKit::WebPage::runJavaScriptInFrame): |
| (WebKit::WebPage::getSourceForFrame): |
| (WebKit::WebPage::getMainResourceDataOfFrame): |
| (WebKit::WebPage::getResourceDataFromFrame): |
| (WebKit::WebPage::getWebArchiveOfFrame): |
| (WebKit::WebPage::addConsoleMessage): |
| (WebKit::WebPage::sendCSPViolationReport): |
| (WebKit::WebPage::enqueueSecurityPolicyViolationEvent): |
| (WebKit::WebPage::beginPrinting): |
| (WebKit::WebPage::computePagesForPrinting): |
| (WebKit::WebPage::computePagesForPrintingImpl): |
| (WebKit::WebPage::drawRectToImage): |
| (WebKit::WebPage::drawPagesToPDF): |
| (WebKit::WebPage::drawPagesToPDFImpl): |
| (WebKit::WebPage::drawPagesForPrinting): |
| (WebKit::WebPage::frameBecameRemote): |
| (WebKit::WebPage::hasStorageAccess): |
| (WebKit::WebPage::requestStorageAccess): |
| (WebKit::WebPage::shouldAllowDeviceOrientationAndMotionAccess): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::computePagesForPrintingPDFDocument): |
| (WebKit::WebPage::computePagesForPrintingAndDrawToPDF): |
| * WebProcess/WebPage/mac/WebPageMac.mm: |
| (WebKit::WebPage::computePagesForPrintingPDFDocument): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::webFrame const): |
| (WebKit::WebProcess::addWebFrame): |
| (WebKit::WebProcess::removeWebFrame): |
| * WebProcess/WebProcess.h: |
| |
| 2019-08-14 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Remove m_blockRectForTextSelection (along with related code) |
| https://bugs.webkit.org/show_bug.cgi?id=200695 |
| |
| Reviewed by Megan Gardner. |
| |
| This member variable was consulted by block selection codepaths which no longer exist. |
| No change in behavior. |
| |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::selectTextWithGranularityAtPoint): |
| (WebKit::selectionBoxForRange): Deleted. |
| |
| 2019-08-14 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r248526. |
| |
| Caused two IndexedDB perf tests to fail |
| |
| Reverted changeset: |
| |
| "Remove IDB-specific quota" |
| https://bugs.webkit.org/show_bug.cgi?id=196545 |
| https://trac.webkit.org/changeset/248526 |
| |
| 2019-08-14 Andy Estes <aestes@apple.com> |
| |
| Fix the build when ENABLE(APPLE_PAY) is false. |
| |
| * Shared/Cocoa/WebCoreArgumentCodersCocoa.mm: |
| |
| 2019-08-14 Keith Rollin <krollin@apple.com> |
| |
| Remove support for macOS < 10.13 |
| https://bugs.webkit.org/show_bug.cgi?id=200694 |
| <rdar://problem/54278851> |
| |
| Reviewed by Youenn Fablet. |
| |
| Update conditionals that reference __MAC_OS_X_VERSION_MIN_REQUIRED and |
| __MAC_OS_X_VERSION_MAX_ALLOWED, assuming that they both have values >= |
| 101300. This means that expressions like |
| "__MAC_OS_X_VERSION_MIN_REQUIRED < 101300" are always False and |
| "__MAC_OS_X_VERSION_MIN_REQUIRED >= 101300" are always True. |
| |
| * NetworkProcess/Downloads/cocoa/WKDownloadProgress.mm: |
| (-[WKDownloadProgress initWithDownloadTask:download:URL:sandboxExtension:]): |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (-[WKNetworkSessionDelegate URLSession:task:didFinishCollectingMetrics:]): |
| * Shared/WebPreferencesDefaultValues.cpp: |
| (WebKit::defaultCustomPasteboardDataEnabled): |
| * Shared/WebPreferencesDefaultValues.h: |
| * Shared/mac/AuxiliaryProcessMac.mm: |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (-[WKTextTouchBarItemController itemForIdentifier:]): |
| (WebKit::WebViewImpl::mediaPlaybackControlsView const): |
| (WebKit::WebViewImpl::updateMediaTouchBar): |
| * UIProcess/mac/WebColorPickerMac.mm: |
| * WebProcess/Plugins/PDF/PDFLayerControllerSPI.h: |
| * WebProcess/Plugins/PDF/PDFPlugin.h: |
| * WebProcess/Plugins/PDF/PDFPlugin.mm: |
| (-[WKPDFPluginAccessibilityObject setPdfLayerController:]): |
| (-[WKPDFPluginAccessibilityObject accessibilityAttributeValue:]): |
| (-[WKPDFPluginAccessibilityObject ALLOW_DEPRECATED_IMPLEMENTATIONS_END]): |
| (-[WKPDFPluginAccessibilityObject accessibilityFocusedUIElement]): |
| (-[WKPDFPluginAccessibilityObject accessibilityAssociatedControlForAnnotation:]): |
| (-[WKPDFPluginAccessibilityObject accessibilityHitTest:]): |
| (WebKit::PDFPlugin::pdfDocumentDidLoad): |
| (WebKit::PDFPlugin::handleMouseEvent): |
| (WebKit::PDFPlugin::handleMouseEnterEvent): |
| (WebKit::PDFPlugin::handleContextMenuEvent): |
| (WebKit::PDFPlugin::pluginHandlesContentOffsetForAccessibilityHitTest const): |
| (WebKit::PDFPlugin::accessibilityAssociatedPluginParentForElement const): |
| (WebKit::PDFPlugin::updateCursor): Deleted. |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeWebProcess): |
| |
| 2019-08-14 Brian Burg <bburg@apple.com> |
| |
| REGRESSION(r245320): Web Automation: Perform Actions hangs when pointerdown happens near top of page |
| https://bugs.webkit.org/show_bug.cgi?id=200728 |
| <rdar://problem/54260518> |
| |
| Reviewed by Devin Rousso. |
| |
| In the last major refactoring for this code, it seems that the argument to |
| platformSimulateMouseInteraction was not unified to use viewport coordinates |
| in all code paths. This patch fixes both callers to *not* add in topContentInset, |
| and instead this is added back in when doing platform-specific event simulation. |
| |
| This has no effect on iOS since it's guarded by ENABLE(WEBDRIVER_MOUSE_INTERACTIONS), |
| which is only built on macOS. |
| |
| * UIProcess/Automation/WebAutomationSession.h: |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::performMouseInteraction): |
| * UIProcess/Automation/mac/WebAutomationSessionMac.mm: |
| (WebKit::WebAutomationSession::platformSimulateMouseInteraction): |
| |
| 2019-08-14 Andy Estes <aestes@apple.com> |
| |
| [Cocoa] Add some WKA extension points |
| https://bugs.webkit.org/show_bug.cgi?id=200506 |
| <rdar://problem/51682474> |
| |
| Reviewed by Tim Horton. |
| |
| * Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm: |
| (WebKit::finishCreating): |
| (WebKit::WebPaymentCoordinatorProxy::platformPaymentRequest): |
| * Shared/Cocoa/WebCoreArgumentCodersCocoa.mm: |
| (IPC::finishDecoding): |
| (IPC::finishEncoding): |
| (IPC::ArgumentCoder<ApplePaySessionPaymentRequest>::encode): |
| (IPC::ArgumentCoder<ApplePaySessionPaymentRequest>::decode): |
| * Shared/WebCoreArgumentCoders.h: |
| |
| 2019-08-14 Luming Yin <luming_yin@apple.com> |
| |
| v3: CrashTracer: Regression : MobileSafari at UIKitCore: -[UITargetedPreview initWithView:parameters:] |
| https://bugs.webkit.org/show_bug.cgi?id=200634 |
| |
| Reviewed by Simon Fraser. |
| |
| Under rare race conditions, the WKContentView may no longer have an associated window. However, |
| UIContextMenuInteraction may still attempt initialize a UITargetedPreview with the orphaned |
| WKContentView. Speculative fix for crashes under such scenarios, so that we can continue without |
| a context menu configuration to prevent the UIKit exception. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView continueContextMenuInteraction:]): |
| |
| 2019-08-14 Zalan Bujtas <zalan@apple.com> |
| |
| [ContentChangeObserver] Stop content change observation explicitly. |
| https://bugs.webkit.org/show_bug.cgi?id=200689 |
| <rdar://problem/54274887> |
| |
| Reviewed by Simon Fraser. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::handleSyntheticClick): |
| |
| 2019-08-14 Youenn Fablet <youenn@apple.com> |
| |
| Remove use of emptySessionID from NetworkLoadParameters |
| https://bugs.webkit.org/show_bug.cgi?id=200712 |
| |
| Reviewed by Alex Christensen. |
| |
| Make NetworkLoadParameters constructor take a session ID. |
| Update call sites accordingly. |
| |
| * NetworkProcess/AdClickAttributionManager.cpp: |
| (WebKit::AdClickAttributionManager::fireConversionRequest): |
| * NetworkProcess/Downloads/DownloadManager.cpp: |
| (WebKit::DownloadManager::startDownload): |
| * NetworkProcess/NetworkCORSPreflightChecker.cpp: |
| (WebKit::NetworkCORSPreflightChecker::startPreflight): |
| * NetworkProcess/NetworkLoadParameters.h: |
| (WebKit::NetworkLoadParameters::NetworkLoadParameters): |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::preconnectTo): |
| * NetworkProcess/NetworkResourceLoadParameters.cpp: |
| (WebKit::NetworkResourceLoadParameters::encode const): |
| (WebKit::NetworkResourceLoadParameters::decode): |
| * NetworkProcess/NetworkResourceLoadParameters.h: |
| (WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters): |
| * NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp: |
| (WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad): |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess): |
| (WebKit::WebLoaderStrategy::loadResourceSynchronously): |
| (WebKit::WebLoaderStrategy::startPingLoad): |
| (WebKit::WebLoaderStrategy::preconnectTo): |
| |
| 2019-08-14 Youenn Fablet <youenn@apple.com> |
| |
| Remove use of emptySessionID from WebPageCreationParameters |
| https://bugs.webkit.org/show_bug.cgi?id=200708 |
| |
| Reviewed by Alex Christensen. |
| |
| Make WebPageCreationParameters constructor take a SessionID. |
| Update constructor call sites. |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| (WebKit::WebPageCreationParameters::WebPageCreationParameters): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle): |
| |
| 2019-08-14 Youenn Fablet <youenn@apple.com> |
| |
| Remove API::PageConfiguration::m_sessionID |
| https://bugs.webkit.org/show_bug.cgi?id=200670 |
| |
| Reviewed by Alex Christensen. |
| |
| We can remove this member since it is only accessed for a debug assertion that can be removed without any harm. |
| |
| * UIProcess/API/APIPageConfiguration.cpp: |
| (API::PageConfiguration::PageConfiguration): |
| (API::PageConfiguration::copy const): |
| (API::PageConfiguration::setWebsiteDataStore): |
| * UIProcess/API/APIPageConfiguration.h: |
| * UIProcess/API/glib/WebKitWebContext.cpp: |
| (webkitWebContextCreatePageForWebView): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::createWebPage): |
| |
| 2019-08-14 Youenn Fablet <youenn@apple.com> |
| |
| ThreadableBlobRegistry::blobSize should take a SessionID as parameter |
| https://bugs.webkit.org/show_bug.cgi?id=200671 |
| |
| Reviewed by Alex Christensen. |
| |
| Update WebCacheStorageConnection to implement sessionID getter. |
| Update NetworkConnectionToWebProcess to get a sessionID as parameter to blobSize computation. |
| |
| * NetworkProcess/curl/NetworkDataTaskCurl.cpp: |
| (WebKit::NetworkDataTaskCurl::createCurlRequest): |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::blobSize): |
| (WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFiles): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkProcessPlatformStrategies.cpp: |
| (WebKit::NetworkProcessPlatformStrategies::createBlobRegistry): |
| * WebProcess/Cache/WebCacheStorageConnection.h: |
| * WebProcess/FileAPI/BlobRegistryProxy.cpp: |
| (WebKit::BlobRegistryProxy::blobSize): |
| * WebProcess/FileAPI/BlobRegistryProxy.h: |
| |
| 2019-08-14 Youenn Fablet <youenn@apple.com> |
| |
| Remove SessionID default constructor |
| https://bugs.webkit.org/show_bug.cgi?id=200669 |
| |
| Reviewed by Alex Christensen. |
| |
| Update IPC decoder to use an Optional<SessionID>. |
| Update PageConfiguration to use emptySessionID instead of default constructor. |
| |
| * NetworkProcess/NetworkSessionCreationParameters.cpp: |
| (WebKit::NetworkSessionCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| * UIProcess/API/APIPageConfiguration.cpp: |
| (API::PageConfiguration::PageConfiguration): |
| (API::PageConfiguration::sessionID): Deleted. |
| (API::PageConfiguration::setSessionID): Deleted. |
| |
| 2019-08-14 Youenn Fablet <youenn@apple.com> |
| |
| Make WebSWOriginStore::m_webSWServerConnections a WeakHashSet |
| https://bugs.webkit.org/show_bug.cgi?id=200661 |
| |
| Reviewed by Alex Christensen. |
| |
| * NetworkProcess/ServiceWorker/WebSWOriginStore.cpp: |
| (WebKit::WebSWOriginStore::importComplete): |
| (WebKit::WebSWOriginStore::registerSWServerConnection): |
| (WebKit::WebSWOriginStore::unregisterSWServerConnection): |
| (WebKit::WebSWOriginStore::didInvalidateSharedMemory): |
| * NetworkProcess/ServiceWorker/WebSWOriginStore.h: |
| |
| 2019-08-14 Youenn Fablet <youenn@apple.com> |
| |
| NetworkProcess::m_swServerConnections should use WeakPtr |
| https://bugs.webkit.org/show_bug.cgi?id=200660 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Use WeakPtr for SWServer connections as an extra safety measure. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::postMessageToServiceWorkerClient): |
| (WebKit::NetworkProcess::postMessageToServiceWorker): |
| (WebKit::NetworkProcess::registerSWServerConnection): |
| (WebKit::NetworkProcess::unregisterSWServerConnection): |
| * NetworkProcess/NetworkProcess.h: |
| |
| 2019-08-14 Youenn Fablet <youenn@apple.com> |
| |
| Move some WebRTC runtime flags from experimental to internal |
| https://bugs.webkit.org/show_bug.cgi?id=200672 |
| |
| Reviewed by Eric Carlson. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2019-08-13 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| shouldRespectImageOrientation should be a value in ImageOrientation |
| https://bugs.webkit.org/show_bug.cgi?id=200553 |
| |
| Reviewed by Simon Fraser. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::imagePositionInformation): |
| |
| 2019-08-13 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Switch NSURLSession on top navigation to prevalent resource with user interaction |
| https://bugs.webkit.org/show_bug.cgi?id=200642 |
| <rdar://problem/53962073> |
| |
| Reviewed by Alex Christensen. |
| |
| Since prevalent resources with user interaction get to keep their cookies and website |
| data, we should use a different NSURLSessions for when they are first-party websites |
| and have access to that data. This patch achieves that. |
| |
| The WebKit::NetworkDataTaskCocoa constructor now checks with the network storage session |
| if the first party for this load should be isolated. The category for which this is true |
| is checked in the new function |
| WebCore:NetworkStorageSession::shouldBlockThirdPartyCookiesButKeepFirstPartyCookiesFor() |
| which in turn is backed by a new split of m_registrableDomainsToBlockCookieFor into: |
| - m_registrableDomainsToBlockAndDeleteCookiesFor |
| - m_registrableDomainsToBlockButKeepCookiesFor |
| ... in WebCore:NetworkStorageSession. |
| |
| Non-isolated sessions are now picked up through the convenience function |
| WebKit::NetworkSessionCocoa::session() whereas isolated sessions are created lazily and |
| picked up through WebKit::NetworkSessionCocoa::isolatedSession(). |
| |
| The number of isolated NSURLSessions in memory is capped to 10. When the cap is hit, |
| the session that's been unused the longest is aged out. |
| |
| The C API changes are test infrastructure. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: |
| (WebKit::ResourceLoadStatisticsDatabaseStore::clear): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::domainsToBlockAndDeleteCookiesFor const): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::domainsToBlockButKeepCookiesFor const): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::updateCookieBlocking): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::domainsToBlock const): Deleted. |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h: |
| * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ResourceLoadStatisticsMemoryStore::clear): |
| (WebKit::ResourceLoadStatisticsMemoryStore::updateCookieBlocking): |
| * NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp: |
| (WebKit::ResourceLoadStatisticsStore::updateCookieBlockingForDomains): |
| (WebKit::ResourceLoadStatisticsStore::debugLogDomainsInBatches): |
| * NetworkProcess/Classifier/ResourceLoadStatisticsStore.h: |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::callUpdatePrevalentDomainsToBlockCookiesForHandler): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleCookieBlockingUpdateForDomains): Deleted. |
| (WebKit::WebResourceLoadStatisticsStore::scheduleClearBlockingStateForDomains): Deleted. |
| Dead code. |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h: |
| (WebKit::RegistrableDomainsToBlockCookiesFor::isolatedCopy const): |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::updatePrevalentDomainsToBlockCookiesFor): |
| (WebKit::NetworkProcess::scheduleClearInMemoryAndPersistent): |
| (WebKit::NetworkProcess::hasIsolatedSession const): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * NetworkProcess/NetworkSession.h: |
| (WebKit::NetworkSession::shouldIsolateSessionsForPrevalentTopFrames const): |
| (WebKit::NetworkSession::hasIsolatedSession const): |
| (WebKit::NetworkSession::clearIsolatedSessions): |
| * NetworkProcess/NetworkSessionCreationParameters.cpp: |
| (WebKit::NetworkSessionCreationParameters::encode const): |
| (WebKit::NetworkSessionCreationParameters::decode): |
| * NetworkProcess/NetworkSessionCreationParameters.h: |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): |
| * NetworkProcess/cocoa/NetworkSessionCocoa.h: |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| (WebKit::NetworkSessionCocoa::session): |
| (WebKit::NetworkSessionCocoa::isolatedSession): |
| (WebKit::NetworkSessionCocoa::hasIsolatedSession const): |
| (WebKit::NetworkSessionCocoa::clearIsolatedSessions): |
| (WebKit::NetworkSessionCocoa::invalidateAndCancel): |
| (WebKit::NetworkSessionCocoa::clearCredentials): |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreStatisticsHasIsolatedSession): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::hasIsolatedSession): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::hasLocalStorageForTesting const): |
| (WebKit::WebsiteDataStore::hasIsolatedSessionForTesting const): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| |
| 2019-08-13 Chris Dumez <cdumez@apple.com> |
| |
| Fix potential thread safety issue under WebResourceLoadStatisticsStore::hasHadUserInteraction() |
| https://bugs.webkit.org/show_bug.cgi?id=200688 |
| |
| Reviewed by Alex Christensen. |
| |
| Fix potential thread safety issue under WebResourceLoadStatisticsStore::hasHadUserInteraction(). |
| It passes a RegistrableDomain to another thread without isolated copying it. |
| |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::hasHadUserInteraction): |
| |
| 2019-08-13 Chris Dumez <cdumez@apple.com> |
| |
| Fix potential thread safety issue under StorageManager::getSessionStorageOrigins() |
| https://bugs.webkit.org/show_bug.cgi?id=200684 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Fix potential thread safety issue under StorageManager::getSessionStorageOrigins(). The origins are being |
| passed from the background queue to the main thread without isolated copy. |
| |
| * NetworkProcess/WebStorage/StorageManager.cpp: |
| (WebKit::StorageManager::getSessionStorageOrigins): |
| |
| 2019-08-12 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthn] Make CtapHidAuthenticator/U2fHidAuthenticator to CtapAuthenticator/U2fAuthenticator |
| https://bugs.webkit.org/show_bug.cgi?id=191527 |
| <rdar://problem/54237146> |
| |
| Reviewed by Chris Dumez. |
| |
| This patch makes an ABC CtapDriver, which services as an abstract interface for CtapAuthenticator/U2fAuthenticator to talk to |
| the actual object that implement the specific CTAP protocol that mananges communications over different transports, for example, |
| CtapHidDriver, such that CtapAuthenticator/U2fAuthenticator can be shared across different transports. |
| |
| This patch also renames CtapHidAuthenticator/U2fHidAuthenticator to CtapAuthenticator/U2fAuthenticator correspondingly. |
| |
| * Sources.txt: |
| * UIProcess/WebAuthentication/Cocoa/HidService.mm: |
| (WebKit::HidService::continueAddDeviceAfterGetInfo): |
| * UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp: Renamed from Source/WebKit/UIProcess/WebAuthentication/fido/CtapHidAuthenticator.cpp. |
| (WebKit::CtapAuthenticator::CtapAuthenticator): |
| (WebKit::CtapAuthenticator::makeCredential): |
| (WebKit::CtapAuthenticator::continueMakeCredentialAfterResponseReceived const): |
| (WebKit::CtapAuthenticator::getAssertion): |
| (WebKit::CtapAuthenticator::continueGetAssertionAfterResponseReceived): |
| (WebKit::CtapAuthenticator::tryDowngrade): |
| * UIProcess/WebAuthentication/fido/CtapAuthenticator.h: Copied from Source/WebKit/UIProcess/WebAuthentication/fido/CtapHidAuthenticator.h. |
| * UIProcess/WebAuthentication/fido/CtapDriver.h: Renamed from Source/WebKit/UIProcess/WebAuthentication/fido/CtapHidAuthenticator.h. |
| * UIProcess/WebAuthentication/fido/CtapHidDriver.h: |
| (WebKit::CtapHidDriver::setProtocol): |
| * UIProcess/WebAuthentication/fido/U2fAuthenticator.cpp: Renamed from Source/WebKit/UIProcess/WebAuthentication/fido/U2fHidAuthenticator.cpp. |
| (WebKit::U2fAuthenticator::U2fAuthenticator): |
| (WebKit::U2fAuthenticator::makeCredential): |
| (WebKit::U2fAuthenticator::checkExcludeList): |
| (WebKit::U2fAuthenticator::issueRegisterCommand): |
| (WebKit::U2fAuthenticator::getAssertion): |
| (WebKit::U2fAuthenticator::issueSignCommand): |
| (WebKit::U2fAuthenticator::issueNewCommand): |
| (WebKit::U2fAuthenticator::issueCommand): |
| (WebKit::U2fAuthenticator::responseReceived): |
| (WebKit::U2fAuthenticator::continueRegisterCommandAfterResponseReceived): |
| (WebKit::U2fAuthenticator::continueCheckOnlyCommandAfterResponseReceived): |
| (WebKit::U2fAuthenticator::continueBogusCommandAfterResponseReceived): |
| (WebKit::U2fAuthenticator::continueSignCommandAfterResponseReceived): |
| * UIProcess/WebAuthentication/fido/U2fAuthenticator.h: Renamed from Source/WebKit/UIProcess/WebAuthentication/fido/U2fHidAuthenticator.h. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-08-13 Chris Dumez <cdumez@apple.com> |
| |
| Crash under IPC::Connection::markCurrentlyDispatchedMessageAsInvalid() |
| https://bugs.webkit.org/show_bug.cgi?id=200674 |
| <rdar://problem/50692748> |
| |
| Reviewed by Geoff Garen. |
| |
| When the client terminates a provisional process (e.g. via the [WKWebView _killWebContentProcessAndResetState] |
| SPI), the WebProcessProxy would notify its associated WebPageProxy objects that it had terminated but would fail |
| to notify its associated ProvisionalPageProxy objects. As a result, those objects would not get destroyed and |
| would still think that they were in the middle of a provisional load the next time a load started. This inconsistent |
| state would lead to crashes such as the one in the radar. |
| |
| * UIProcess/ProvisionalPageProxy.cpp: |
| (WebKit::ProvisionalPageProxy::cancel): |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::requestTermination): |
| |
| 2019-08-13 Youenn Fablet <youenn@apple.com> |
| |
| Blob registries should be keyed by session IDs |
| https://bugs.webkit.org/show_bug.cgi?id=200567 |
| <rdar://problem/54120212> |
| |
| Reviewed by Alex Christensen. |
| |
| Move blob registry to NetworkSession so that it is partitioned by session ID. |
| In case session ID is not given through IPC, use the connection as key to get the network session. |
| This is used for blobSize. |
| |
| * NetworkProcess/Downloads/DownloadManager.cpp: |
| (WebKit::DownloadManager::startDownload): |
| * NetworkProcess/Downloads/DownloadManager.h: |
| * NetworkProcess/FileAPI/NetworkBlobRegistry.cpp: |
| * NetworkProcess/FileAPI/NetworkBlobRegistry.h: Removed. |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::didClose): |
| (WebKit::NetworkConnectionToWebProcess::resolveBlobReferences): |
| (WebKit::NetworkConnectionToWebProcess::registerFileBlobURL): |
| (WebKit::NetworkConnectionToWebProcess::registerBlobURL): |
| (WebKit::NetworkConnectionToWebProcess::registerBlobURLFromURL): |
| (WebKit::NetworkConnectionToWebProcess::registerBlobURLOptionallyFileBacked): |
| (WebKit::NetworkConnectionToWebProcess::registerBlobURLForSlice): |
| (WebKit::NetworkConnectionToWebProcess::unregisterBlobURL): |
| (WebKit::NetworkConnectionToWebProcess::blobSize): |
| (WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFiles): |
| (WebKit::NetworkConnectionToWebProcess::filesInBlob): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::blobRegistry): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcessPlatformStrategies.cpp: |
| (WebKit::NetworkProcessPlatformStrategies::createBlobRegistry): |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::startNetworkLoad): |
| * NetworkProcess/NetworkSession.h: |
| (WebKit::NetworkSession::blobRegistry): |
| * NetworkProcess/soup/NetworkDataTaskSoup.cpp: |
| (WebKit::NetworkDataTaskSoup::createRequest): |
| * NetworkProcess/soup/NetworkSessionSoup.cpp: |
| (WebKit::NetworkSessionSoup::createWebSocketTask): |
| * Sources.txt: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/FileAPI/BlobRegistryProxy.cpp: |
| (WebKit::BlobRegistryProxy::registerFileBlobURL): |
| (WebKit::BlobRegistryProxy::registerBlobURL): |
| (WebKit::BlobRegistryProxy::registerBlobURLOptionallyFileBacked): |
| (WebKit::BlobRegistryProxy::unregisterBlobURL): |
| (WebKit::BlobRegistryProxy::registerBlobURLForSlice): |
| (WebKit::BlobRegistryProxy::writeBlobsToTemporaryFiles): |
| * WebProcess/FileAPI/BlobRegistryProxy.h: |
| * WebProcess/Network/NetworkProcessConnection.cpp: |
| (WebKit::NetworkProcessConnection::writeBlobsToTemporaryFiles): |
| * WebProcess/Network/NetworkProcessConnection.h: |
| |
| 2019-08-13 Youenn Fablet <youenn@apple.com> |
| |
| User Agent and SessionID should be given to NetworkRTCProvider to set up the correct proxy information |
| https://bugs.webkit.org/show_bug.cgi?id=200583 |
| |
| Reviewed by Eric Carlson. |
| |
| Pass session id and user agent whenever creating a TCP client socket. |
| Use this information to get the proxy information from NetworkSession and pass it to libwebrtc socket creation. |
| |
| * NetworkProcess/cocoa/NetworkSessionCocoa.h: |
| * NetworkProcess/webrtc/NetworkRTCProvider.cpp: |
| (WebKit::NetworkRTCProvider::proxyInfoFromSession): |
| (WebKit::NetworkRTCProvider::createClientTCPSocket): |
| * NetworkProcess/webrtc/NetworkRTCProvider.h: |
| * NetworkProcess/webrtc/NetworkRTCProvider.messages.in: |
| * WebKit.xcodeproj/project.pbxproj: |
| * NetworkProcess/webrtc/NetworkRTCProvider.mm: Added. |
| (WebKit::NetworkRTCProvider::proxyInfoFromSession): |
| * WebProcess/Network/webrtc/LibWebRTCProvider.cpp: |
| (WebKit::LibWebRTCProvider::createPeerConnection): |
| (WebKit::LibWebRTCProvider::createSocketFactory): |
| * WebProcess/Network/webrtc/LibWebRTCProvider.h: |
| * WebProcess/Network/webrtc/LibWebRTCSocketFactory.cpp: |
| (WebKit::LibWebRTCSocketFactory::createServerTcpSocket): |
| (WebKit::LibWebRTCSocketFactory::createUdpSocket): |
| (WebKit::LibWebRTCSocketFactory::createClientTcpSocket): |
| (WebKit::LibWebRTCSocketFactory::createAsyncResolver): |
| * WebProcess/Network/webrtc/LibWebRTCSocketFactory.h: |
| |
| 2019-08-12 Chris Dumez <cdumez@apple.com> |
| |
| Fix bad RELEASE_LOG_ERROR under ProvisionalPageProxy::ProvisionalPageProxy() |
| https://bugs.webkit.org/show_bug.cgi?id=200646 |
| |
| Reviewed by Alex Christensen. |
| |
| Fix bad RELEASE_LOG_ERROR under ProvisionalPageProxy::ProvisionalPageProxy(). Should be a |
| simple RELEASE_LOG() as this is not an error. |
| |
| * UIProcess/ProvisionalPageProxy.cpp: |
| (WebKit::ProvisionalPageProxy::ProvisionalPageProxy): |
| |
| 2019-08-12 Sam Weinig <weinig@apple.com> |
| |
| Replace multiparameter overloads of append() in StringBuilder as a first step toward standardizinging on the flexibleAppend() implementation |
| https://bugs.webkit.org/show_bug.cgi?id=200614 |
| |
| Reviewed by Darin Adler. |
| |
| Renames StringBuilder::append(const LChar*, unsigned), StringBuilder::append(const UChar*, unsigned) and |
| StringBuilder::append(const char*, unsigned) to StringBuilder::appendCharacters(...). |
| |
| Renames StringBuilder::append(const String& string, unsigned offset, unsigned length) to |
| StringBuilder::appendSubstring(...). |
| |
| * Shared/mac/AuxiliaryProcessMac.mm: |
| (WebKit::setAndSerializeSandboxParameters): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::didReceiveInvalidMessage): |
| Update for renames. |
| |
| 2019-08-12 Dean Jackson <dino@apple.com> |
| |
| Contextual menu Hide and Show Link Previews should not have a symbol |
| https://bugs.webkit.org/show_bug.cgi?id=200645 |
| <rdar://problem/54129647> |
| |
| Reviewed by Wenson Hsieh. |
| |
| Don't use an image on the UIMenuItem. |
| |
| * UIProcess/API/Cocoa/_WKElementAction.mm: |
| (+[_WKElementAction imageForElementActionType:]): Return nil for Show/Hide Link Previews. |
| |
| 2019-08-12 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, add missing WTF::initializeMainThread() call to fix some crashes on the bots after r248533. |
| |
| * Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm: |
| (WebKit::XPCServiceMain): |
| |
| 2019-08-12 Megan Gardner <megan_gardner@apple.com> |
| |
| Fix Crash in Mail Search |
| https://bugs.webkit.org/show_bug.cgi?id=200589 |
| <rdar://problem/53666720> |
| |
| Reviewed by Tim Horton. |
| |
| If we search in Mail backwards first, for AppKit reasons |
| we get a -1 for the index of the found item. |
| Do not try and insert data in this case. |
| |
| * UIProcess/mac/WKTextFinderClient.mm: |
| |
| 2019-08-12 Adrian Perez de Castro <aperez@igalia.com> |
| |
| [WPE][GTK] Fix building without unified sources |
| https://bugs.webkit.org/show_bug.cgi?id=200641 |
| |
| Reviewed by Žan Doberšek. |
| |
| * UIProcess/gtk/WebDataListSuggestionsDropdownGtk.cpp: Add missing inclusions for headers |
| WebCore/GtkUtilities.h (for convertWidgetPointToScreenPoint), WebCore/IntPoint.h, and |
| WebPageProxy.h (the two latter to avoid usage of undefined types). |
| (WebKit::WebDataListSuggestionsDropdownGtk::show): Add namespace prefix to use |
| WebCore::IntPoint. |
| |
| 2019-08-12 Sihui Liu <sihui_liu@apple.com> |
| |
| Clear m_sessionStorageNamespaces on the background thread |
| https://bugs.webkit.org/show_bug.cgi?id=200631 |
| <rdar://problem/54149638> |
| |
| Reviewed by Chris Dumez. |
| |
| Network process receives messages about web page state from web process and destroys sessionStorageNamespace if |
| needed. It also receives messages about session state from UI process and destroys StorageManager, which owns |
| SessionStorageNamespaces, if needed. Because of the race in receiving the messages from different processes, |
| network process may decide to destroy StorageManager before destroying all SessionStorageNamespaces, and |
| SessionStorageNamespaces are destroyed with StorageManager on the main thread. |
| |
| * NetworkProcess/WebStorage/StorageManager.cpp: |
| (WebKit::StorageManager::waitUntilTasksFinished): |
| |
| 2019-08-12 Sihui Liu <sihui_liu@apple.com> |
| |
| Remove an assertion in ~StorageArea() |
| https://bugs.webkit.org/show_bug.cgi?id=200630 |
| <rdar://problem/54097722> |
| |
| Reviewed by Chris Dumez. |
| |
| In r247370, we clear the LocalStorageNamespace before the destructor of LocalStorageNamespace is invoked, to |
| make sure StorageArea gets destroyed on the background thread. |
| StorageArea can get destroyed before LocalStorageNamespace, so the assertion in ~StorageArea() is not true any |
| more. |
| |
| * NetworkProcess/WebStorage/StorageArea.cpp: |
| (WebKit::StorageArea::~StorageArea): |
| |
| 2019-08-12 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iPadOS] Web pages sometimes load at half width in Safari |
| https://bugs.webkit.org/show_bug.cgi?id=200624 |
| <rdar://problem/52694257> |
| |
| Reviewed by Simon Fraser. |
| |
| Whenever WKWebView's size changes, it normally notifies the web content process by calling into WebPageProxy:: |
| setViewportConfigurationViewLayoutSize, which remembers this view layout size using a member variable, |
| m_viewportConfigurationViewLayoutSize. Later, m_viewportConfigurationViewLayoutSize is consulted as a part of |
| constructing the creation parameters used to set up a new page. |
| |
| However, during animated resize, WKWebView avoids these calls to setViewportConfigurationViewLayoutSize via the |
| dynamic viewport update mode check in -[WKWebView _frameOrBoundsChanged]. Instead, the new view layout size is |
| pushed to the web process by calling WebPageProxy::dynamicViewportSizeUpdate. |
| |
| Since dynamicViewportSizeUpdate doesn't update m_viewportConfigurationViewLayoutSize, the next |
| WebPageCreationParameters that are created with this WebPageProxy (e.g. after a process swap, or after |
| reloading, if the process was terminated) will use the size of the WKWebView prior to the most recent animated |
| resize. |
| |
| To fix the bug, we simply make sure that m_viewportConfigurationViewLayoutSize is updated in the dynamic |
| viewport size update (i.e. animated resize) case as well. |
| |
| Test: WebKit.CreateWebPageAfterAnimatedResize |
| |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::dynamicViewportSizeUpdate): |
| |
| 2019-08-12 Chris Dumez <cdumez@apple.com> |
| |
| Crash under NetworkResourceLoader::start() |
| https://bugs.webkit.org/show_bug.cgi?id=200628 |
| |
| Reviewed by Youenn Fablet. |
| |
| Make sure the NetworkResourceLoader is still alive when the lambda passed to NetworkLoadChecker::check() |
| gets executed. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::start): |
| (WebKit::NetworkResourceLoader::retrieveCacheEntry): |
| * NetworkProcess/NetworkResourceLoader.h: |
| |
| 2019-08-12 Jonathan Bedard <jbedard@apple.com> |
| |
| Tapping buttons in Data Detectors lookup previews doesn't work (Follow-up fix) |
| https://bugs.webkit.org/show_bug.cgi?id=200579 |
| <rdar://problem/54056519> |
| |
| Reviewed by Megan Gardner. |
| |
| * Platform/spi/ios/UIKitSPI.h: Add _UIContextMenuStyle SPI. |
| |
| 2019-08-12 Chris Dumez <cdumez@apple.com> |
| |
| Add threading assertions to RefCounted |
| https://bugs.webkit.org/show_bug.cgi?id=200507 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Enable new RefCounted threading assertions for WebKit2 |
| (UIProcess + auxiliary processes). |
| |
| * Shared/AuxiliaryProcess.cpp: |
| (WebKit::AuxiliaryProcess::initialize): |
| * Shared/Cocoa/WebKit2InitializeCocoa.mm: |
| (WebKit::runInitializationCode): |
| * Shared/WebKit2Initialize.cpp: |
| (WebKit::InitializeWebKit2): |
| |
| 2019-08-12 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, rolling out r248525. |
| |
| Revert new threading assertions while I work on fixing the |
| issues they exposed |
| |
| Reverted changeset: |
| |
| "Add threading assertions to RefCounted" |
| https://bugs.webkit.org/show_bug.cgi?id=200507 |
| https://trac.webkit.org/changeset/248525 |
| |
| 2019-08-12 Youenn Fablet <youenn@apple.com> |
| |
| Remove IDB-specific quota |
| https://bugs.webkit.org/show_bug.cgi?id=196545 |
| |
| Reviewed by Alex Christensen. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::createIDBServer): |
| (WebKit::NetworkProcess::addIndexedDatabaseSession): |
| (WebKit::NetworkProcess::setIDBPerOriginQuota): Deleted. |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextSetIDBPerOriginQuota): Deleted. |
| * UIProcess/API/C/WKContextPrivate.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::setIDBPerOriginQuota): Deleted. |
| * UIProcess/WebProcessPool.h: |
| |
| 2019-08-11 Chris Dumez <cdumez@apple.com> |
| |
| Add threading assertions to RefCounted |
| https://bugs.webkit.org/show_bug.cgi?id=200507 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Enable new RefCounted threading assertions for WebKit2 |
| (UIProcess + auxiliary processes). |
| |
| * Shared/AuxiliaryProcess.cpp: |
| (WebKit::AuxiliaryProcess::initialize): |
| * Shared/Cocoa/WebKit2InitializeCocoa.mm: |
| (WebKit::runInitializationCode): |
| * Shared/WebKit2Initialize.cpp: |
| (WebKit::InitializeWebKit2): |
| |
| 2019-08-11 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| WebPage and ViewportConfiguration have differing notions of viewLayoutSize |
| https://bugs.webkit.org/show_bug.cgi?id=200619 |
| |
| Reviewed by Tim Horton. |
| |
| The notion of a "view layout size" exists on WebPage and WebPageProxy for the purpose of specifying an intrinsic |
| content size for the entire web view on macOS. However, it also exists in ViewportConfiguration (as |
| viewLayoutSize) and WebPageProxy (under the name m_viewportConfigurationViewLayoutSize) for the purposes of |
| specifying the minimum layout size of the page's viewport. |
| |
| This is especially confusing in WebPageProxy, which has both m_viewportConfigurationViewLayoutSize and |
| m_viewLayoutSize. To remedy this, rename "*viewLayoutSize" for the purposes of specifying an intrinsic web view |
| size to "*minimumSizeForAutoLayout" instead, which is consistent with the corresponding SPI property name on |
| WKView. |
| |
| No change in behavior. |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _minimumLayoutWidth]): |
| (-[WKWebView _setMinimumLayoutWidth:]): |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::setMinimumSizeForAutoLayout): |
| (WebKit::WebViewImpl::minimumSizeForAutoLayout const): |
| (WebKit::WebViewImpl::setIntrinsicContentSize): |
| * UIProcess/DrawingAreaProxy.h: |
| (WebKit::DrawingAreaProxy::minimumSizeForAutoLayoutDidChange): |
| (WebKit::DrawingAreaProxy::viewLayoutSizeDidChange): Deleted. |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle): |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::minimumSizeForAutoLayout const): |
| (WebKit::WebPageProxy::viewLayoutSize const): Deleted. |
| * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h: |
| * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm: |
| (WebKit::TiledCoreAnimationDrawingAreaProxy::minimumSizeForAutoLayoutDidChange): |
| (WebKit::TiledCoreAnimationDrawingAreaProxy::didUpdateGeometry): |
| (WebKit::TiledCoreAnimationDrawingAreaProxy::willSendUpdateGeometry): |
| (WebKit::TiledCoreAnimationDrawingAreaProxy::viewLayoutSizeDidChange): Deleted. |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_textAutoSizingAdjustmentTimer): |
| (WebKit::WebPage::reinitializeWebPage): |
| (WebKit::WebPage::setMinimumSizeForAutoLayout): |
| (WebKit::WebPage::updateIntrinsicContentSizeIfNeeded): |
| (WebKit::WebPage::setViewLayoutSize): Deleted. |
| * WebProcess/WebPage/WebPage.h: |
| (WebKit::WebPage::minimumSizeForAutoLayout const): |
| (WebKit::WebPage::viewLayoutSize const): Deleted. |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: |
| (WebKit::TiledCoreAnimationDrawingArea::updateGeometry): |
| |
| 2019-08-10 Alex Christensen <achristensen@webkit.org> |
| |
| Disable ContentChangeObserver TouchEvent adjustment on youtube.com on iOS in mobile browsing mode |
| https://bugs.webkit.org/show_bug.cgi?id=200609 |
| <rdar://problem/54015403> |
| |
| Reviewed by Maciej Stachowiak. |
| |
| * Shared/WebsitePoliciesData.cpp: |
| (WebKit::WebsitePoliciesData::encode const): |
| (WebKit::WebsitePoliciesData::decode): |
| (WebKit::WebsitePoliciesData::applyToDocumentLoader): |
| * Shared/WebsitePoliciesData.h: |
| * UIProcess/API/APIWebsitePolicies.cpp: |
| (API::WebsitePolicies::copy const): |
| (API::WebsitePolicies::data): |
| * UIProcess/API/APIWebsitePolicies.h: |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::effectiveContentModeAfterAdjustingPolicies): |
| |
| 2019-08-10 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| [iOS] Add a quirk for gmail.com messages on iPhone iOS13 |
| https://bugs.webkit.org/show_bug.cgi?id=200605 |
| |
| Reviewed by Maciej Stachowiak. |
| |
| Use WebPage::platformUserAgent() to add the gmail.com quirk. |
| |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::effectiveContentModeAfterAdjustingPolicies): |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::platformUserAgent const): |
| |
| 2019-08-10 Tim Horton <timothy_horton@apple.com> |
| |
| Remove some more unused 32-bit code |
| https://bugs.webkit.org/show_bug.cgi?id=200607 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| * Modules/OSX.modulemap: |
| |
| 2019-08-09 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS 13] Google Docs/Slides/Sheets: paste often doesn't work and sometimes produces an error |
| https://bugs.webkit.org/show_bug.cgi?id=200591 |
| <rdar://problem/54102238> |
| |
| Reviewed by Ryosuke Niwa and Tim Horton. |
| |
| Adopts UIKit SPI to avoid incrementing the general pasteboard's change count whenever an editable element is |
| focused. This is due to how, in iOS 13, UIKit temporarily writes an image to the pasteboard when showing the |
| keyboard, to determine whether or not to show the Memojis in the input view. |
| |
| This causes UIPasteboard's changeCount to increment twice due to adding and then removing the image, which means |
| that the changeCount sanity checks in the web process will race against the pasteboard gaining and then losing |
| this temporary image. |
| |
| Instead, the new -supportsImagePaste SPI may be used to short-circuit this step, and avoid updating the |
| changeCount when UIKeyboardImpl's delegate changes. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView supportsImagePaste]): |
| |
| 2019-08-09 Alex Christensen <achristensen@webkit.org> |
| |
| Remove unused Connection::sendWithReply |
| https://bugs.webkit.org/show_bug.cgi?id=200590 |
| |
| Reviewed by Chris Dumez. |
| |
| This was attempted in r245151, but rolled out in r245164 because my SecItemShim code didn't work well on non-main threads. |
| Chris found a better solution for SecItemShim in r248014, making this unused code. Let's remove it. |
| |
| * Platform/IPC/Connection.cpp: |
| (IPC::Connection::invalidate): |
| (IPC::Connection::processIncomingSyncReply): |
| (IPC::Connection::connectionDidClose): |
| (IPC::Connection::sendMessageWithReply): Deleted. |
| * Platform/IPC/Connection.h: |
| (IPC::Connection::send): |
| (IPC::Connection::sendWithReply): Deleted. |
| |
| 2019-08-09 Simon Fraser <simon.fraser@apple.com> |
| |
| [iOS WK2] Remove context menu hints on navigation |
| https://bugs.webkit.org/show_bug.cgi?id=200588 |
| rdar://problem/54061796 |
| |
| Reviewed by Tim Horton. |
| |
| Make sure the context menu hint doesn't linger across navigations by hosting it in its |
| own container view (shared with drag previews), and hiding that view on navigation (unparenting |
| may have bad consequences). We remove the view when the animation ends. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _didCommitLoadForMainFrame]): |
| (-[WKContentView containerViewForTargetedPreviews]): |
| (-[WKContentView _hideContextMenu]): |
| (-[WKContentView contextMenuInteraction:willEndForConfiguration:animator:]): |
| |
| 2019-08-09 Alex Christensen <achristensen@webkit.org> |
| |
| Disable CSSOM View Scrolling API for IMDb iOS app |
| https://bugs.webkit.org/show_bug.cgi?id=200586 |
| <rdar://problem/53645833> |
| |
| Reviewed by Simon Fraser. |
| |
| Change the CSSOMViewScrollingAPIEnabled default value to be off for the IMDb app's WKWebViews. |
| I manually verified this is effective in those WKWebViews but no other WKWebViews and that it fixes the radar. |
| |
| * Shared/WebPreferences.yaml: |
| * Shared/WebPreferencesDefaultValues.cpp: |
| (WebKit::defaultCSSOMViewScrollingAPIEnabled): |
| * Shared/WebPreferencesDefaultValues.h: |
| |
| 2019-08-09 Tim Horton <timothy_horton@apple.com> |
| |
| Tapping buttons in Data Detectors lookup previews doesn't work |
| https://bugs.webkit.org/show_bug.cgi?id=200579 |
| <rdar://problem/54056519> |
| |
| Reviewed by Megan Gardner. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _contextMenuInteraction:styleForMenuWithConfiguration:]): |
| If a Data Detectors context menu wants the action menu style, provide it. |
| |
| (-[WKContentView contextMenuInteraction:willPerformPreviewActionForMenuWithConfiguration:animator:]): |
| If a Data Detectors context menu provides a view controller to present |
| on context menu commit, present it. We present on top of the same view |
| controller that is currently presenting the context menu, but modally |
| instead of inside the context menu. |
| |
| If a Data Detectors context menu instead provides a URL to launch on |
| context menu commit, call openURL. |
| |
| In both cases, change the commit style to pop, since we're committing |
| instead of dismissing. |
| |
| 2019-08-08 Dean Jackson <dino@apple.com> |
| |
| REGRESSION (52279987): Most of the WKUIDelegate contextMenu delegate methods are not being called |
| https://bugs.webkit.org/show_bug.cgi?id=200557 |
| <rdar://problem/53717962> |
| |
| Reviewed by Wenson Hsieh. |
| |
| UIKit changed the name of delegates recently. We ignored the warning because |
| it was still calling the old methods. However, it will only do so for applications |
| authored by Apple, breaking 3rd parties. |
| |
| The change here is just adopting the new methods in place of the old ones. |
| It does not change the API that WebKit vends (they still use the older names). |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView contextMenuInteraction:willDisplayMenuForConfiguration:animator:]): |
| (-[WKContentView contextMenuInteraction:willPerformPreviewActionForMenuWithConfiguration:animator:]): |
| (-[WKContentView contextMenuInteraction:willEndForConfiguration:animator:]): |
| (-[WKContentView contextMenuInteractionWillPresent:]): Deleted. |
| (-[WKContentView contextMenuInteraction:willCommitWithAnimator:]): Deleted. |
| (-[WKContentView contextMenuInteractionDidEnd:]): Deleted. |
| |
| 2019-08-08 Simon Fraser <simon.fraser@apple.com> |
| |
| [iOS WK2] Hide previews when an inner overflow or frame scrollview scrolls |
| https://bugs.webkit.org/show_bug.cgi?id=200552 |
| rdar://problem/54086338 |
| |
| Reviewed by Wenson Hsieh. |
| |
| Give UITargetedPreview the UIScrollView that the target element is inside of, |
| so it can clean up if the user starts to scroll that view. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _createTargetedPreviewIfPossible]): |
| |
| 2019-08-08 Chris Dumez <cdumez@apple.com> |
| |
| Add threading assertions to WebStorage code |
| https://bugs.webkit.org/show_bug.cgi?id=200550 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Add threading assertions to WebStorage code for extra safety. |
| |
| * NetworkProcess/WebStorage/LocalStorageNamespace.cpp: |
| (WebKit::LocalStorageNamespace::LocalStorageNamespace): |
| (WebKit::LocalStorageNamespace::~LocalStorageNamespace): |
| (WebKit::LocalStorageNamespace::getOrCreateStorageArea): |
| (WebKit::LocalStorageNamespace::clearStorageAreasMatchingOrigin): |
| (WebKit::LocalStorageNamespace::clearAllStorageAreas): |
| (WebKit::LocalStorageNamespace::ephemeralOrigins const): |
| (WebKit::LocalStorageNamespace::cloneTo): |
| * NetworkProcess/WebStorage/SessionStorageNamespace.cpp: |
| (WebKit::SessionStorageNamespace::SessionStorageNamespace): |
| (WebKit::SessionStorageNamespace::~SessionStorageNamespace): |
| (WebKit::SessionStorageNamespace::addAllowedConnection): |
| (WebKit::SessionStorageNamespace::removeAllowedConnection): |
| (WebKit::SessionStorageNamespace::getOrCreateStorageArea): |
| (WebKit::SessionStorageNamespace::cloneTo): |
| (WebKit::SessionStorageNamespace::origins const): |
| (WebKit::SessionStorageNamespace::clearStorageAreasMatchingOrigin): |
| (WebKit::SessionStorageNamespace::clearAllStorageAreas): |
| * NetworkProcess/WebStorage/StorageArea.cpp: |
| (WebKit::StorageArea::StorageArea): |
| (WebKit::StorageArea::~StorageArea): |
| (WebKit::StorageArea::addListener): |
| (WebKit::StorageArea::removeListener): |
| (WebKit::StorageArea::hasListener const): |
| (WebKit::StorageArea::clone const): |
| (WebKit::StorageArea::setItem): |
| (WebKit::StorageArea::setItems): |
| (WebKit::StorageArea::removeItem): |
| (WebKit::StorageArea::clear): |
| (WebKit::StorageArea::items const): |
| (WebKit::StorageArea::openDatabaseAndImportItemsIfNeeded const): |
| (WebKit::StorageArea::dispatchEvents const): |
| * NetworkProcess/WebStorage/StorageManager.cpp: |
| (WebKit::StorageManager::createSessionStorageNamespace): |
| (WebKit::StorageManager::destroySessionStorageNamespace): |
| (WebKit::StorageManager::addAllowedSessionStorageNamespaceConnection): |
| (WebKit::StorageManager::removeAllowedSessionStorageNamespaceConnection): |
| (WebKit::StorageManager::cloneSessionStorageNamespace): |
| (WebKit::StorageManager::processDidCloseConnection): |
| (WebKit::StorageManager::getSessionStorageOrigins): |
| (WebKit::StorageManager::deleteSessionStorageOrigins): |
| (WebKit::StorageManager::deleteSessionStorageEntriesForOrigins): |
| (WebKit::StorageManager::getLocalStorageOrigins): |
| (WebKit::StorageManager::getLocalStorageOriginDetails): |
| (WebKit::StorageManager::deleteLocalStorageEntriesForOrigin): |
| (WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince): |
| (WebKit::StorageManager::deleteLocalStorageEntriesForOrigins): |
| (WebKit::StorageManager::waitUntilTasksFinished): |
| (WebKit::StorageManager::suspend): |
| (WebKit::StorageManager::resume): |
| (WebKit::StorageManager::findStorageArea const): |
| (WebKit::StorageManager::getOrCreateLocalStorageNamespace): |
| (WebKit::StorageManager::getOrCreateTransientLocalStorageNamespace): |
| * NetworkProcess/WebStorage/TransientLocalStorageNamespace.cpp: |
| (WebKit::TransientLocalStorageNamespace::TransientLocalStorageNamespace): |
| (WebKit::TransientLocalStorageNamespace::~TransientLocalStorageNamespace): |
| (WebKit::TransientLocalStorageNamespace::getOrCreateStorageArea): |
| (WebKit::TransientLocalStorageNamespace::origins const): |
| (WebKit::TransientLocalStorageNamespace::clearStorageAreasMatchingOrigin): |
| (WebKit::TransientLocalStorageNamespace::clearAllStorageAreas): |
| |
| 2019-08-08 Brent Fulgham <bfulgham@apple.com> |
| |
| [FTW] Get WebKit, WebKit2, and MiniBrowser building and executing |
| https://bugs.webkit.org/show_bug.cgi?id=200539 |
| <rdar://problem/54082550> |
| |
| Reviewed by Dean Jackson. |
| |
| * PlatformFTW.cmake: Added. |
| * Shared/ShareableBitmap.h: |
| * Shared/win/ShareableBitmapDirect2D.cpp: Added. |
| * UIProcess/BackingStore.cpp: |
| * UIProcess/BackingStore.h: |
| (WebKit::BackingStore::renderTarget): |
| * UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp: |
| * UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.h: |
| * UIProcess/win/BackingStoreDirect2D.cpp: Added. |
| * UIProcess/win/WebInspectorProxyWin.cpp: |
| (WebKit::WebInspectorProxy::inspectorPageURL): |
| (WebKit::WebInspectorProxy::inspectorTestPageURL): |
| (WebKit::WebInspectorProxy::inspectorBaseURL): |
| * UIProcess/win/WebView.cpp: |
| (WebKit::WebView::paint): |
| * UIProcess/win/WebView.h: |
| * WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp: |
| (WebKit::DrawingAreaCoordinatedGraphics::display): |
| * WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.h: |
| * WebProcess/WebPage/win/WebInspectorUIWin.cpp: |
| (WebKit::WebInspectorUI::localizedStringsURL): |
| (WebKit::RemoteWebInspectorUI::localizedStringsURL): |
| * WebProcess/win/WebProcessMainWin.cpp: |
| (WebKit::WebProcessMainWin): |
| |
| 2019-08-08 Per Arne Vollan <pvollan@apple.com> |
| |
| [Mac] Use the PID of the WebContent process when issuing local file read sandbox extensions |
| https://bugs.webkit.org/show_bug.cgi?id=200543 |
| |
| Reviewed by Brent Fulgham. |
| |
| Adopt SPI to issue a process-specific sandbox extension for local file read, passing it the process |
| identifier of the WebContent process. |
| |
| * Shared/Cocoa/SandboxExtensionCocoa.mm: |
| (WebKit::SandboxExtensionImpl::sandboxExtensionForType): |
| (WebKit::SandboxExtension::createHandleForReadByPid): |
| * Shared/SandboxExtension.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle): |
| |
| 2019-08-08 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| [iOS] Position image information should respect the image orientation |
| https://bugs.webkit.org/show_bug.cgi?id=200487 |
| |
| Reviewed by Simon Fraser. |
| |
| imagePositionInformation() should respect the image orientation when |
| drawing an Image to a ShareableBitmap context. |
| |
| boundsPositionInformation() already takes care of the image orientation |
| because it gets RenderImage::enclosingBoundingBox(). |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::imagePositionInformation): |
| |
| 2019-08-08 Timothy Hatcher <timothy@apple.com> |
| |
| Set WKWebView opaque based on drawsBackground in PageConfiguration. |
| https://bugs.webkit.org/show_bug.cgi?id=200528 |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): Set self.opaque = NO when !self.opaque || !pageConfiguration->drawsBackground(). |
| It is almost impossible to have !self.opaque be NO at this point, since we are still inside initWithFrame:. A subclass could |
| override opaque and return NO, but checking pageConfiguration's drawsBackground is a good alternative. |
| * WebProcess/WebPage/WebPage.h: Remove unused m_drawsBackground member. |
| |
| 2019-08-08 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS 13] Taps that interrupt momentum scrolling are recognized as clicks |
| https://bugs.webkit.org/show_bug.cgi?id=200516 |
| <rdar://problem/53889373> |
| |
| Reviewed by Tim Horton. |
| |
| After <https://trac.webkit.org/r247656>, the -tracksImmediatelyWhileDecelerating property of WKScrollView and |
| WKChildScrollView is set to NO. This means that if a user interacts with the page while the scroll view is |
| decelerating (e.g. after momentum scrolling), the pan gesture recognizer will not be immediately recognized. |
| This gives other gesture recognizers, such as the synthetic click (single tap) gesture a chance to instead |
| recognize first. In this particular bug, this causes taps on the web view that are intended to only stop |
| momentum scrolling to instead activate clickable elements beneath the touch, such as links and buttons. |
| |
| To mitigate this, we add some logic to prevent the click gesture recognizer from firing in the case where the |
| tap also causes the scroll view to decelerate. This heuristic is similar to the one introduced in r219310, which |
| has the same purpose of hiding gestures that stop momentum scrolling from the page, and also consults |
| -[UIScrollView _isInterruptingDeceleration]. |
| |
| Tests: fast/scrolling/ios/click-events-during-momentum-scroll-in-main-frame.html |
| fast/scrolling/ios/click-events-during-momentum-scroll-in-overflow-after-tap-on-body.html |
| fast/scrolling/ios/click-events-during-momentum-scroll-in-overflow.html |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView gestureRecognizerShouldBegin:]): |
| |
| Return NO in the case of the single tap gesture if the UIScrollView most recently touched by the single tap |
| gesture (or one of its enclosing scroll views, up to the main WKScrollView) is being interrupted while |
| decelerating. |
| |
| * UIProcess/ios/WKSyntheticTapGestureRecognizer.h: |
| * UIProcess/ios/WKSyntheticTapGestureRecognizer.mm: |
| (-[WKSyntheticTapGestureRecognizer reset]): |
| (-[WKSyntheticTapGestureRecognizer touchesBegan:withEvent:]): |
| |
| Teach WKSyntheticTapGestureRecognizer to keep track of the last WKScrollView that was touched, for later use in |
| -gestureRecognizerShouldBegin:. To do this, we keep a weak reference to the first UIScrollView we find in the |
| set of touches. |
| |
| (-[WKSyntheticTapGestureRecognizer lastTouchedScrollView]): |
| |
| 2019-08-08 Dean Jackson <dino@apple.com> |
| |
| Use "safari" glyph for "Show Link Previews" contextual menu |
| https://bugs.webkit.org/show_bug.cgi?id=200544 |
| <rdar://problem/54087842> |
| |
| Reviewed by Tim Horton. |
| |
| Use the system image for the compass. |
| |
| * UIProcess/API/Cocoa/_WKElementAction.mm: |
| (+[_WKElementAction imageForElementActionType:]): |
| |
| 2019-08-08 Chris Dumez <cdumez@apple.com> |
| |
| Move classes declared inside StorageManager.cpp into their own headers |
| https://bugs.webkit.org/show_bug.cgi?id=200527 |
| |
| Reviewed by Alex Christensen. |
| |
| Move classes declared inside StorageManager.cpp into their own headers |
| for clarity. StorageManager.cpp was getting really big. |
| |
| * NetworkProcess/WebStorage/LocalStorageNamespace.cpp: Added. |
| (WebKit::LocalStorageNamespace::LocalStorageNamespace): |
| (WebKit::LocalStorageNamespace::~LocalStorageNamespace): |
| (WebKit::LocalStorageNamespace::getOrCreateStorageArea): |
| (WebKit::LocalStorageNamespace::clearStorageAreasMatchingOrigin): |
| (WebKit::LocalStorageNamespace::clearAllStorageAreas): |
| (WebKit::LocalStorageNamespace::ephemeralOrigins const): |
| (WebKit::LocalStorageNamespace::cloneTo): |
| * NetworkProcess/WebStorage/LocalStorageNamespace.h: Added. |
| (WebKit::LocalStorageNamespace::create): |
| (WebKit::LocalStorageNamespace::storageManager const): |
| * NetworkProcess/WebStorage/SessionStorageNamespace.cpp: Added. |
| (WebKit::SessionStorageNamespace::SessionStorageNamespace): |
| (WebKit::SessionStorageNamespace::~SessionStorageNamespace): |
| (WebKit::SessionStorageNamespace::addAllowedConnection): |
| (WebKit::SessionStorageNamespace::removeAllowedConnection): |
| (WebKit::SessionStorageNamespace::getOrCreateStorageArea): |
| (WebKit::SessionStorageNamespace::cloneTo): |
| (WebKit::SessionStorageNamespace::origins const): |
| (WebKit::SessionStorageNamespace::clearStorageAreasMatchingOrigin): |
| (WebKit::SessionStorageNamespace::clearAllStorageAreas): |
| * NetworkProcess/WebStorage/SessionStorageNamespace.h: Added. |
| (WebKit::SessionStorageNamespace::create): |
| (WebKit::SessionStorageNamespace::isEmpty const): |
| (WebKit::SessionStorageNamespace::allowedConnections const): |
| * NetworkProcess/WebStorage/StorageArea.cpp: Added. |
| (WebKit::StorageArea::StorageArea): |
| (WebKit::StorageArea::~StorageArea): |
| (WebKit::StorageArea::addListener): |
| (WebKit::StorageArea::removeListener): |
| (WebKit::StorageArea::hasListener const): |
| (WebKit::StorageArea::clone const): |
| (WebKit::StorageArea::setItem): |
| (WebKit::StorageArea::setItems): |
| (WebKit::StorageArea::removeItem): |
| (WebKit::StorageArea::clear): |
| (WebKit::StorageArea::items const): |
| (WebKit::StorageArea::openDatabaseAndImportItemsIfNeeded const): |
| (WebKit::StorageArea::dispatchEvents const): |
| * NetworkProcess/WebStorage/StorageArea.h: Added. |
| (WebKit::StorageArea::create): |
| (WebKit::StorageArea::securityOrigin const): |
| (WebKit::StorageArea::isEphemeral const): |
| * NetworkProcess/WebStorage/StorageManager.cpp: |
| (WebKit::StorageManager::createLocalStorageMap): |
| (WebKit::StorageManager::findStorageArea const): |
| (WebKit::StorageManager::getOrCreateLocalStorageNamespace): |
| (WebKit::StorageManager::getOrCreateTransientLocalStorageNamespace): |
| * NetworkProcess/WebStorage/StorageManager.h: |
| (WebKit::StorageManager::create): |
| (WebKit::StorageManager::localStorageDatabaseTracker const): |
| (WebKit::StorageManager::workQueue const): |
| * NetworkProcess/WebStorage/TransientLocalStorageNamespace.cpp: Added. |
| (WebKit::TransientLocalStorageNamespace::TransientLocalStorageNamespace): |
| (WebKit::TransientLocalStorageNamespace::~TransientLocalStorageNamespace): |
| (WebKit::TransientLocalStorageNamespace::getOrCreateStorageArea): |
| (WebKit::TransientLocalStorageNamespace::origins const): |
| (WebKit::TransientLocalStorageNamespace::clearStorageAreasMatchingOrigin): |
| (WebKit::TransientLocalStorageNamespace::clearAllStorageAreas): |
| * NetworkProcess/WebStorage/TransientLocalStorageNamespace.h: Added. |
| (WebKit::TransientLocalStorageNamespace::create): |
| * NetworkProcess/cache/NetworkCache.cpp: |
| (WebKit::NetworkCache::canRequestUseSpeculativeRevalidation): |
| * Sources.txt: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-08-08 Rob Buis <rbuis@igalia.com> |
| |
| Add runtime flag for lazy image loading |
| https://bugs.webkit.org/show_bug.cgi?id=199794 |
| |
| Reviewed by Darin Adler. |
| |
| Add LazyImageLoading preference. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetLazyImageLoadingEnabled): |
| (WKPreferencesGetLazyImageLoadingEnabled): |
| * UIProcess/API/C/WKPreferencesRefPrivate.h: |
| |
| 2019-08-07 Chris Dumez <cdumez@apple.com> |
| |
| Turn some ITP threading ASSERTs into RELEASE_ASSERTs |
| https://bugs.webkit.org/show_bug.cgi?id=200521 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Turn some ITP threading ASSERTs into RELEASE_ASSERTs to help catch more bugs. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ResourceLoadStatisticsMemoryStore::ResourceLoadStatisticsMemoryStore): |
| (WebKit::ResourceLoadStatisticsMemoryStore::isEmpty const): |
| * NetworkProcess/Classifier/ResourceLoadStatisticsPersistentStorage.cpp: |
| (WebKit::ResourceLoadStatisticsPersistentStorage::ResourceLoadStatisticsPersistentStorage): |
| (WebKit::ResourceLoadStatisticsPersistentStorage::~ResourceLoadStatisticsPersistentStorage): |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore): |
| (WebKit::WebResourceLoadStatisticsStore::~WebResourceLoadStatisticsStore): |
| (WebKit::WebResourceLoadStatisticsStore::flushAndDestroyPersistentStore): |
| |
| 2019-08-07 Kate Cheney <katherine_cheney@apple.com> |
| |
| Adopt non-deprecated CGColorSpace API |
| https://bugs.webkit.org/show_bug.cgi?id=184358 |
| |
| Reviewed by Darin Adler. |
| |
| * Shared/mac/ColorSpaceData.mm: |
| (WebKit::ColorSpaceData::decode): |
| |
| We changed the deprecated CGColorSpaceCreateWithICCProfile function to |
| CGColorSpaceCreateWithICCData. |
| |
| 2019-08-07 Alex Christensen <achristensen@webkit.org> |
| |
| Remove speculative workaround for upload crash |
| https://bugs.webkit.org/show_bug.cgi?id=200514 |
| |
| Reviewed by Geoffrey Garen. |
| |
| This workaround didn't help anyways, and the crash has been resolved. Let's clean up. |
| |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (-[WKNetworkSessionDelegate URLSession:task:needNewBodyStream:]): |
| |
| 2019-08-07 Chris Dumez <cdumez@apple.com> |
| |
| Regression(r247784) ResourceLoadStatisticsMemoryStore / ResourceLoadStatisticsPersistentStorage may get destroyed on the wrong thread |
| https://bugs.webkit.org/show_bug.cgi?id=200517 |
| |
| Reviewed by Geoffrey Garen. |
| |
| The issue is that WebResourceLoadStatisticsStore::flushAndDestroyPersistentStore() is null checking |
| m_persistentStorage and m_statisticsStore on the main thread, even though those members are initialized |
| and destroyed on the background thread. As a result, if flushAndDestroyPersistentStore() is called *before* |
| the background task to initialize those members has had a chance to run, then we'd return early without |
| destroying those members. Later on, the background task would then initialize those data members and we |
| would then destroy them on the main thread when the WebResourceLoadStatisticsStore is destroyed on the |
| main thread. |
| |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::flushAndDestroyPersistentStore): |
| |
| 2019-08-06 Dean Jackson <dino@apple.com> |
| |
| Context menu on a universal link produces a blank preview |
| https://bugs.webkit.org/show_bug.cgi?id=200485 |
| <rdar://problem/53699620> |
| |
| Reviewed by Tim Horton. |
| |
| If the context menu is activated on an iTunesStore URL, pass it |
| on to DataDetectors, who should know how to handle it. |
| |
| Two drive-by fixes: |
| - make it clear that early returns do not produce a value. Instead call the |
| completion handler first, then return. |
| - The new API DataDetectors case doesn't need to worry about hiding link previews |
| as DataDetectors itself will handle that. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: If the URL is an iTunesStoreURL |
| (as defined by CoreServices), let DataDetectors handle it. |
| (-[WKContentView assignLegacyDataForContextMenuInteraction]): |
| (-[WKContentView continueContextMenuInteraction:]): |
| (-[WKContentView continueContextMenuInteractionWithDataDetectors:]): New method to |
| use DataDetectors if possible. |
| |
| 2019-08-08 Simon Fraser <simon.fraser@apple.com> |
| |
| Add to InteractionInformationAtPosition information about whether the element is in a subscrollable region |
| https://bugs.webkit.org/show_bug.cgi?id=200374 |
| rdar://problem/54095519 |
| |
| Reviewed by Tim Horton. |
| |
| Add InteractionInformationAtPosition.containerScrollingNodeID and initialize it in elementPositionInformation() |
| by asking the scrolling coordinator. |
| |
| Also add a way to get from a ScrollingNodeID to a UIScrollView to RemoteScrollingCoordinatorProxy, |
| which gets the scrolling node and asks the delegate for the UIView. |
| |
| * Shared/ios/InteractionInformationAtPosition.h: |
| * Shared/ios/InteractionInformationAtPosition.mm: |
| (WebKit::InteractionInformationAtPosition::encode const): |
| (WebKit::InteractionInformationAtPosition::decode): |
| * UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h: |
| * UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm: |
| (WebKit::RemoteScrollingCoordinatorProxy::scrollViewForScrollingNodeID const): |
| * UIProcess/RemoteLayerTree/ios/ScrollingTreeOverflowScrollingNodeIOS.h: |
| * UIProcess/RemoteLayerTree/ios/ScrollingTreeOverflowScrollingNodeIOS.mm: |
| (WebKit::ScrollingTreeOverflowScrollingNodeIOS::scrollView const): |
| * UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.h: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::elementPositionInformation): |
| |
| 2019-08-07 Priyanka Agarwal <pagarwal999@apple.com> |
| |
| Allow clients to toggle a text input field between being viewable and having characters hidden while maintaining |
| a yellow auto-filled appearance |
| https://bugs.webkit.org/show_bug.cgi?id=200037 |
| rdar://problem/51900961 |
| |
| Reviewed by Daniel Bates. |
| |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.h: |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm: |
| (-[WKWebProcessPlugInNodeHandle HTMLInputElementIsAutoFilledAndViewable]): |
| Accessor function for boolean which represents if the input element is autofilled and viewable. |
| |
| (-[WKWebProcessPlugInNodeHandle setHTMLInputElementIsAutoFilledAndViewable:]): |
| Setter function for boolean which represents if the input element is autofilled and viewable. |
| |
| * WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp: |
| (WKBundleNodeHandleSetHTMLInputElementAutoFilledAndViewable): |
| Accessor function for boolean which represents if the input element is autofilled and viewable. |
| |
| * WebProcess/InjectedBundle/API/c/WKBundleNodeHandlePrivate.h: |
| Creating function declaration for boolean setter. |
| |
| * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp: |
| Accessor function for boolean which represents if the input element is autofilled and viewable. |
| |
| (WebKit::InjectedBundleNodeHandle::isHTMLInputElementAutoFilledAndViewable const): |
| Setter function for boolean which represents if the input element is autofilled and viewable. |
| |
| (WebKit::InjectedBundleNodeHandle::setHTMLInputElementAutoFilledAndViewable): |
| Setter function for boolean which represents if the input element is autofilled and viewable. |
| |
| * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h: |
| Adding setter and getter functions for the boolean which represents if the input element is autofilled |
| and viewable. |
| |
| 2019-08-07 Chris Dumez <cdumez@apple.com> |
| |
| Add more threading assertions to ITP code |
| https://bugs.webkit.org/show_bug.cgi?id=200505 |
| |
| Reviewed by Brent Fulgham. |
| |
| Add more threading assertions to ITP code to help catch bugs and protect against future bad usage. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ResourceLoadStatisticsMemoryStore::isEmpty const): |
| (WebKit::ResourceLoadStatisticsMemoryStore::setPersistentStorage): |
| (WebKit::ResourceLoadStatisticsMemoryStore::incrementRecordsDeletedCountForDomains): |
| (WebKit::ResourceLoadStatisticsMemoryStore::classifyPrevalentResources): |
| (WebKit::ResourceLoadStatisticsMemoryStore::syncStorageIfNeeded): |
| (WebKit::ResourceLoadStatisticsMemoryStore::syncStorageImmediately): |
| (WebKit::ResourceLoadStatisticsMemoryStore::grandfatherDataForDomains): |
| (WebKit::ResourceLoadStatisticsMemoryStore::ensurePrevalentResourcesForDebugMode): |
| * NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp: |
| (WebKit::ResourceLoadStatisticsStore::statisticsEpirationTime const): |
| (WebKit::ResourceLoadStatisticsStore::mergeOperatingDates): |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::hasStorageAccessForFrame): |
| (WebKit::WebResourceLoadStatisticsStore::requestStorageAccess): |
| (WebKit::WebResourceLoadStatisticsStore::grantStorageAccess): |
| (WebKit::WebResourceLoadStatisticsStore::applicationWillTerminate): |
| (WebKit::WebResourceLoadStatisticsStore::logFrameNavigation): |
| (WebKit::WebResourceLoadStatisticsStore::logWebSocketLoading): |
| (WebKit::WebResourceLoadStatisticsStore::logSubresourceLoading): |
| (WebKit::WebResourceLoadStatisticsStore::logSubresourceRedirect): |
| (WebKit::WebResourceLoadStatisticsStore::hasHadUserInteraction): |
| (WebKit::WebResourceLoadStatisticsStore::removePrevalentDomains): |
| (WebKit::WebResourceLoadStatisticsStore::networkSession): |
| (WebKit::WebResourceLoadStatisticsStore::invalidateAndCancel): |
| (WebKit::WebResourceLoadStatisticsStore::sendDiagnosticMessageWithValue const): |
| (WebKit::WebResourceLoadStatisticsStore::notifyPageStatisticsTelemetryFinished const): |
| |
| 2019-08-07 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r248330. |
| |
| Breaks internal builds. |
| |
| Reverted changeset: |
| |
| "Context menu on a universal link produces a blank preview" |
| https://bugs.webkit.org/show_bug.cgi?id=200485 |
| https://trac.webkit.org/changeset/248330 |
| |
| 2019-08-06 Ryosuke Niwa <rniwa@webkit.org> |
| |
| [iPadOS] slides.google.com: tapping near cursor in a slide title focuses the speaker notes |
| https://bugs.webkit.org/show_bug.cgi?id=200216 |
| |
| Reviewed by Wenson Hsieh. |
| |
| The bug was caused by a race condition between Google slides removing inputmode="none" from the hidden |
| content editable and updating the focused region upon receiving a pointerup event, which happens after |
| the Google slides had already updated its page layout & coordinates based on new visual viewport with |
| the software keyboard's boudning rect taken into account. |
| |
| Delay bringing up the software keyboard for a inputmode change until all touches are released. |
| |
| In the future, we could consider also delaying the software keyboard to be brought in general until |
| touchend / pointerup events are dispatched but this is rather risky since that could affact random |
| other websites while Google suites is the only major site to make use of inputmode="none". |
| |
| This patch also reverts r243044, which was added for Google slides, since it's no longer needed and |
| interferes with this patch by adding another way to bring up the software keyboard. |
| |
| Note: Adjusting touchend / pointerup coordinates while the keyboard is being brought up doesn't work |
| because the page had already updated the layout by then based on new visual viewport size. |
| |
| Test: fast/forms/ios/inputmode-change-update-keyboard-after-pointerup.html |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::handleTouchEventSynchronously): Call didReleaseAllTouchPoints when all |
| touches are released. |
| (WebKit::WebPageProxy::handleTouchEventAsynchronously): Ditto. |
| (WebKit::WebPageProxy::handleTouchEvent): Ditto. |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::didReleaseAllTouchPoints): Added for non-iOS platforms. |
| (WebKit::WebPageProxy::m_pendingInputModeChange): Added. Used when inputmode is changed while |
| there is an on-going touch interaction. |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::elementDidFocus): Clear m_pendingInputModeChange when a new element is focused. |
| (WebKit::WebPageProxy::elementDidBlur): Ditto for bluring. |
| (WebKit::WebPageProxy::focusedElementDidChangeInputMode): Don't bring up the software keyboard now if |
| there are on-going touches by exiting early after setting m_pendingInputModeChange. |
| (WebKit::WebPageProxy::didReleaseAllTouchPoints): Bring up the software keyboard if inputmode |
| had changed from "none" to something else. |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::dispatchTouchEvent): Removed the code added by r243044. |
| |
| 2019-08-06 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| ASSERTION FAILED: m_observers.isEmpty() if WKPageSetPageStateClient is used |
| https://bugs.webkit.org/show_bug.cgi?id=200465 |
| |
| Reviewed by Alex Christensen. |
| |
| PageLoadState::Observer should be removed before destructing |
| WebPageProxy. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::~WebPageProxy): Call |
| setPageLoadStateObserver with nullptr to remove |
| PageLoadState::Observer. |
| |
| 2019-08-06 Chris Dumez <cdumez@apple.com> |
| |
| Add release assertions to help catch a bug in our WebProcessCache implementation |
| https://bugs.webkit.org/show_bug.cgi?id=200483 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Add release assertions to help catch a bug in our WebProcessCache implementation. We |
| have evidence (rdar://problem/53962494) that we have processes with a page which |
| starts a provisional load while the process is in the WebProcessCache. This should |
| not be possible. |
| |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::setIsInProcessCache): |
| (WebKit::WebProcessProxy::addExistingWebPage): |
| |
| 2019-08-06 Dean Jackson <dino@apple.com> |
| |
| Context menu on a universal link produces a blank preview |
| https://bugs.webkit.org/show_bug.cgi?id=200485 |
| <rdar://problem/53699620> |
| |
| Reviewed by Dean Jackson. |
| |
| If the context menu is activated on an iTunesStore URL, pass it |
| on to DataDetectors, who should know how to handle it. |
| |
| Two drive-by fixes: |
| - make it clear that early returns do not produce a value. Instead call the |
| completion handler first, then return. |
| - The new API DataDetectors case doesn't need to worry about hiding link previews |
| as DataDetectors itself will handle that. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: If the URL is an iTunesStoreURL |
| (as defined by CoreServices), let DataDetectors handle it. |
| (-[WKContentView assignLegacyDataForContextMenuInteraction]): |
| (-[WKContentView continueContextMenuInteraction:]): |
| (-[WKContentView continueContextMenuInteractionWithDataDetectors:]): New method to |
| use DataDetectors if possible. |
| |
| 2019-08-06 Chris Dumez <cdumez@apple.com> |
| |
| Avoid unnecessary ResourceRequest copy under NetworkResourceLoader::isCrossOriginPrefetch() |
| https://bugs.webkit.org/show_bug.cgi?id=200478 |
| |
| Reviewed by Youenn Fablet. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::isCrossOriginPrefetch const): |
| |
| 2019-08-06 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Unreviewed, a build fix after r248319 |
| |
| Use HAVE(DATA_PROTECTION_KEYCHAIN) instead of HAVE_DATA_PROTECTION_KEYCHAIN. |
| |
| * UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm: |
| (WebKit::LocalAuthenticator::makeCredential): |
| (WebKit::LocalAuthenticator::continueMakeCredentialAfterUserConsented): |
| (WebKit::LocalAuthenticator::continueMakeCredentialAfterAttested): |
| (WebKit::LocalAuthenticator::getAssertion): |
| (WebKit::LocalAuthenticator::continueGetAssertionAfterUserConsented): |
| |
| 2019-08-06 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Unreviewed, a build fix after r248308 |
| |
| Use kSecUseDataProtectionKeychain for iOS 13 and macOS Catalina or newer. |
| |
| * UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm: |
| (WebKit::LocalAuthenticator::makeCredential): |
| (WebKit::LocalAuthenticator::continueMakeCredentialAfterUserConsented): |
| (WebKit::LocalAuthenticator::continueMakeCredentialAfterAttested): |
| (WebKit::LocalAuthenticator::getAssertion): |
| (WebKit::LocalAuthenticator::continueGetAssertionAfterUserConsented): |
| |
| 2019-08-06 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, fix internal iOS build after r248308. |
| |
| * UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm: |
| (WebKit::LocalAuthenticator::makeCredential): |
| |
| 2019-08-06 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthN] Enable LocalAuthenticator for macOS |
| https://bugs.webkit.org/show_bug.cgi?id=182772 |
| <rdar://problem/43347920> |
| |
| Reviewed by Brent Fulgham. |
| |
| This patch enables LocalAuthenticator for macOS. The majority |
| of this patch is to tweak macOS keychain to use the modern one. |
| |
| * Configurations/WebKit.xcconfig: |
| * Platform/spi/Cocoa/DeviceIdentitySPI.h: |
| * UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm: |
| (WebKit::LocalAuthenticatorInternal::toVector): |
| (WebKit::LocalAuthenticator::makeCredential): |
| (WebKit::LocalAuthenticator::continueMakeCredentialAfterUserConsented): |
| (WebKit::LocalAuthenticator::continueMakeCredentialAfterAttested): |
| (WebKit::LocalAuthenticator::getAssertion): |
| (WebKit::LocalAuthenticator::continueGetAssertionAfterUserConsented): |
| * UIProcess/WebAuthentication/Cocoa/LocalConnection.mm: |
| (WebKit::LocalConnection::getUserConsent const): |
| (WebKit::LocalConnection::getAttestation const): |
| * UIProcess/WebAuthentication/Cocoa/LocalService.mm: |
| (WebKit::LocalService::isAvailable): |
| * UIProcess/WebAuthentication/Mock/MockLocalConnection.mm: |
| (WebKit::MockLocalConnection::getAttestation const): |
| * config.h: |
| |
| 2019-08-06 Jer Noble <jer.noble@apple.com> |
| |
| Add test for behavior introduced in r248174 |
| https://bugs.webkit.org/show_bug.cgi?id=200446 |
| |
| Reviewed by Eric Carlson. |
| |
| Add a new helper struct, FullscreenTouchSecheuristicParameters, and static getter, |
| iosParameters(), to allow the settings used by WKFullScreenViewController to be tested |
| in TestWebKitAPI. Make both of the Secheuristic classes privately exported as well. |
| |
| * UIProcess/ios/fullscreen/FullscreenTouchSecheuristic.cpp: |
| (WebKit::FullscreenTouchSecheuristic::scoreOfNextTouch): |
| (WebKit::FullscreenTouchSecheuristic::reset): |
| (WebKit::FullscreenTouchSecheuristic::distanceScore): |
| (WebKit::FullscreenTouchSecheuristic::attenuationFactor): |
| * UIProcess/ios/fullscreen/FullscreenTouchSecheuristic.h: |
| (WebKit::FullscreenTouchSecheuristic::setParameters): |
| (WebKit::FullscreenTouchSecheuristic::requiredScore const): |
| (WebKit::FullscreenTouchSecheuristic::setRampUpSpeed): |
| (WebKit::FullscreenTouchSecheuristic::setRampDownSpeed): |
| (WebKit::FullscreenTouchSecheuristic::setXWeight): |
| (WebKit::FullscreenTouchSecheuristic::setYWeight): |
| (WebKit::FullscreenTouchSecheuristic::setGamma): |
| (WebKit::FullscreenTouchSecheuristic::setGammaCutoff): |
| * UIProcess/ios/fullscreen/FullscreenTouchSecheuristicParameters.cpp: Copied from Source/WebKit/UIProcess/ios/fullscreen/FullscreenTouchSecheuristic.h. |
| (WebKit::FullscreenTouchSecheuristicParameters::iosParameters): |
| * UIProcess/ios/fullscreen/FullscreenTouchSecheuristicParameters.h: Copied from Source/WebKit/UIProcess/ios/fullscreen/FullscreenTouchSecheuristic.h. |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.mm: |
| (-[WKFullScreenViewController initWithWebView:]): |
| (-[WKFullScreenViewController _touchDetected:]): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-08-06 Claudio Saavedra <csaavedra@igalia.com> |
| |
| [GLIB] Fix documentation typo |
| |
| Unreviewed. |
| |
| * UIProcess/API/glib/WebKitWebsiteDataManager.cpp: |
| |
| 2019-08-05 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [Win][MiniBrowser][WK2] Unhandled key events should be bubbled up to the parent window |
| https://bugs.webkit.org/show_bug.cgi?id=200464 |
| |
| Reviewed by Ross Kirsling. |
| |
| * UIProcess/API/C/WKNativeEvent.h: Define WKNativeEventPtr for WIN32. |
| |
| 2019-08-05 Youenn Fablet <youenn@apple.com> |
| |
| Support RTCRtpSender.dtmf |
| https://bugs.webkit.org/show_bug.cgi?id=200431 |
| |
| Reviewed by Eric Carlson. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2019-08-05 Simon Fraser <simon.fraser@apple.com> |
| |
| iOS 13: Overflow:hidden on body prevents PDF scroll |
| https://bugs.webkit.org/show_bug.cgi?id=200435 |
| rdar://problem/53942888 |
| |
| Reviewed by Tim Horton. |
| |
| When we navigate from an overflow:hidden HTML page to a custom view (like PDF), we need |
| to make sure that the scroll view is scrollable. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _setHasCustomContentView:loadedMIMEType:]): |
| |
| 2019-08-05 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Re-introduce latch mode for subresource cookie blocking |
| https://bugs.webkit.org/show_bug.cgi?id=200395 |
| <rdar://problem/53869611> |
| |
| Reviewed by Darin Adler. |
| |
| Back when we had a relaxation of cookie blocking 24 hours after first-party user |
| interaction, we made sure cookie blocking could be turned on and off in subresource |
| redirect chains. The 24 hour window is now long gone. This patch simplifies the |
| cookie blocking so that once a subresource request is denied cookies, any |
| subsequent redirect of that request will also be denied cookies, regardless of the |
| classification status of the domains involved. I call it latch mode. |
| |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.h: |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::blockCookies): |
| (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): |
| (WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection): |
| (WebKit::NetworkDataTaskCocoa::applyCookieBlockingPolicy): Deleted. |
| |
| 2019-08-05 Youenn Fablet <youenn@apple.com> |
| |
| Disable speculative loading if cache is not to be used for the load |
| https://bugs.webkit.org/show_bug.cgi?id=199644 |
| |
| Reviewed by Alex Christensen. |
| |
| When the page is reloaded, loads are instructed to not use the cache. |
| It is therefore unneeded to do speculative revalidation. |
| Allow speculative revalidation if the cache policy is either the default HTTP policy or |
| if policy is to refresh all cache data. |
| Covered by added test. |
| |
| * NetworkProcess/cache/NetworkCache.cpp: |
| (WebKit::NetworkCache::cachePolicyValidForSpeculativeRevalidation): |
| (WebKit::NetworkCache::canRequestUseSpeculativeRevalidation): |
| |
| 2019-08-04 Konstantin Tokarev <annulen@yandex.ru> |
| |
| Remove unused lambda capture in MemoryPressureMonitor |
| https://bugs.webkit.org/show_bug.cgi?id=200420 |
| |
| Reviewed by Darin Adler. |
| |
| * UIProcess/linux/MemoryPressureMonitor.cpp: |
| (WebKit::MemoryPressureMonitor::start): |
| |
| 2019-08-03 Konstantin Tokarev <annulen@yandex.ru> |
| |
| Fix compilation with disabled WebGL |
| https://bugs.webkit.org/show_bug.cgi?id=200421 |
| |
| Reviewed by Wenson Hsieh. |
| |
| After r247452 webGLStateTracker is guarded with #if ENABLE(WEBGL) |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_textAutoSizingAdjustmentTimer): |
| |
| 2019-08-02 Keith Rollin <krollin@apple.com> |
| |
| Consistently use Obj-C boolean literals |
| https://bugs.webkit.org/show_bug.cgi?id=200405 |
| <rdar://problem/53880043> |
| |
| Reviewed by Simon Fraser, Joseph Pecoraro. |
| |
| There are places where we use equivalent but different expressions for |
| Obj-C boolean objects. For example, we use both [NSNumber |
| numberWithBool:YES] and @YES. There are places where both are used in |
| the same function, such as -[WebPreferences initialize]. The boolean |
| literal is in greater use and is more succinct, so standardize on |
| that. Also, change @(YES/NO) to @YES/NO. |
| |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::applySniffingPoliciesAndBindRequestToInferfaceIfNeeded): |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| * UIProcess/WebAuthentication/Cocoa/LocalConnection.mm: |
| (WebKit::LocalConnection::getAttestation const): |
| |
| 2019-08-02 Sihui Liu <sihui_liu@apple.com> |
| |
| API tests using permanent credentials should clear credentials left by previous tests |
| https://bugs.webkit.org/show_bug.cgi?id=199729 |
| |
| Reviewed by Alex Christensen. |
| |
| Permanent password credentials currently are shared across processes, so we don't need to clear them from |
| network process. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::clearPermanentCredentialsForProtectionSpace): Deleted. |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _clearPermanentCredentialsForProtectionSpace:]): |
| (-[WKProcessPool _clearPermanentCredentialsForProtectionSpace:completionHandler:]): Deleted. |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::clearPermanentCredentialsForProtectionSpace): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::clearPermanentCredentialsForProtectionSpace): Deleted. |
| * UIProcess/WebProcessPool.h: |
| |
| 2019-08-02 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Timelines: Develop > Start Timeline Recording doesn't work when focused on a detached inspector window |
| https://bugs.webkit.org/show_bug.cgi?id=200125 |
| <rdar://problem/53543008> |
| |
| Reviewed by Brian Burg. |
| |
| Always show the Timelines tab in Web Inspector whenever timeline recording starts/stops. |
| Notify the UIProcess whenever the timeline recording state changes. |
| |
| * WebProcess/WebPage/WebInspector.messages.in: |
| * WebProcess/WebPage/WebInspector.h: |
| * WebProcess/WebPage/WebInspector.cpp: |
| (WebKit::WebInspector::startPageProfiling): |
| (WebKit::WebInspector::stopPageProfiling): |
| (WebKit::WebInspector::timelineRecordingChanged): Added. |
| (WebKit::WebInspector::showTimelines): Deleted. |
| |
| * WebProcess/WebPage/WebInspectorUI.messages.in: |
| * WebProcess/WebPage/WebInspectorUI.h: |
| * WebProcess/WebPage/WebInspectorUI.cpp: |
| (WebKit::WebInspectorUI::showTimelines): Deleted. |
| |
| * WebProcess/WebCoreSupport/WebInspectorClient.h: |
| * WebProcess/WebCoreSupport/WebInspectorClient.cpp: |
| (WebKit::WebInspectorClient::timelineRecordingChanged): Added. |
| |
| * UIProcess/WebInspectorProxy.messages.in: |
| * UIProcess/WebInspectorProxy.h: |
| * UIProcess/WebInspectorProxy.cpp: |
| (WebKit::WebInspectorProxy::togglePageProfiling): |
| (WebKit::WebInspectorProxy::timelineRecordingChanged): Added. |
| (WebKit::WebInspectorProxy::showTimelines): Deleted. |
| |
| * UIProcess/API/C/WKInspector.cpp: |
| (WKInspectorTogglePageProfiling): |
| |
| * UIProcess/API/Cocoa/_WKInspector.h: |
| * UIProcess/API/Cocoa/_WKInspector.mm: |
| (-[_WKInspector showTimelines]): Deleted. |
| |
| * WebProcess/InjectedBundle/API/c/WKBundleInspector.cpp: |
| (WKBundleInspectorSetPageProfilingEnabled): |
| |
| 2019-08-02 Jer Noble <jer.noble@apple.com> |
| |
| [iPadOS] slides.google.com: Full Screen API warning is presented when swiping through slides |
| https://bugs.webkit.org/show_bug.cgi?id=200313 |
| <rdar://problem/53777001> |
| |
| Reviewed by Eric Carlson. |
| |
| Only run the secheuristic scoring during UIGestureRecognizerStateEnded, rather than both |
| UIGestureRecognizerStateEnded and UIGestureRecognizerStateBegan. The goal of the heuristic is |
| to detect fake on-screen keyboards by detecting gestures that look like "typing". Using only |
| UIGestureRecognizerStateEnded still allows us to do this (as typing will usually have identical |
| geometries for both Ended and Began) without generating false-positives during swipe gestures. |
| |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.mm: |
| (-[WKFullScreenViewController _touchDetected:]): |
| |
| 2019-08-02 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [macOS 10.15] Image dragged from Safari does not appear in Notes |
| https://bugs.webkit.org/show_bug.cgi?id=188490 |
| <rdar://problem/39462717> |
| |
| Reviewed by Andy Estes. |
| |
| Removes some logic that clears out the cached promised drag image in the UI process when WebKit is asked to |
| provide TIFF image data. This prevents the drop destination from asking for promised image data, if anything |
| else (e.g. the system) also asks the web view to provide the same data. Additionally, this logic didn't |
| previously guarantee that the promised image would be cleared anyways, since it is dependent on the drop target |
| actually requesting the promised image in order to perform the cleanup. |
| |
| In lieu of clearing the promised drag image when it's requested, we instead clear it out upon mainframe |
| navigation, in PageClientImpl::didCommitLoadForMainFrame. |
| |
| Test: DragAndDropTests.MultiplePromisedImageDataRequests |
| |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::clearPromisedDragImage): |
| (WebKit::WebViewImpl::pasteboardChangedOwner): |
| (WebKit::WebViewImpl::provideDataForPasteboard): |
| |
| Fix the bug by not immediately clearing out the promised drag image. |
| |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::didCommitLoadForMainFrame): |
| |
| 2019-08-02 Keith Rollin <krollin@apple.com> |
| |
| macCatalyst build fails the first attempt, requires a second build |
| https://bugs.webkit.org/show_bug.cgi?id=200242 |
| <rdar://problem/53678481> |
| |
| macCatalyst builds fail the first time with an error like: |
| |
| Code Signing Error: The file |
| "/Users/tim_cook/Build/Debug-maccatalyst/DerivedSources/WebKit2/WebContent-macCatalyst-no-sandbox.entitlements" |
| could not be opened. Verify the value of the |
| CODE_SIGN_ENTITLEMENTS build setting for target "WebContent" is |
| correct and that the file exists on disk. |
| |
| This problem is caused by the file referenced by |
| CODE_SIGN_ENTITLEMENTS changing during the build process. For |
| macCatalyst builds, we start with the iOS entitlements files and then |
| tweak them for macCatalyst. When this occurs during a clean build, |
| Xcode sees the entitlements file being generated and complains about |
| it. Restarting the build does so with the file already existing, and |
| so Xcode does not complain about it. |
| |
| The approach of generating or tweaking entitlement files may have |
| worked in the past, but the fact is that Xcode doesn't support it. |
| |
| We had a similar problem with macOS builds. The entitlements files |
| used to be generated on the fly with scripts like |
| WebKit/Scripts/process-network-sandbox-entitlements.sh. That process |
| was reworked to avoid the issue with Xcode not allowing the files to |
| be generated (see r241135). In short: |
| |
| o The various process-*-entitlements.sh scripts were consolidated into |
| a single process-entitlements file |
| o CODE_SIGN_ENTITLEMENTS, which contains the name of the entitlements |
| file to use, was de-initialized so that Xcode would not try to |
| access our generated entitlements file |
| o CODE_SIGN_INJECT_BASE_ENTITLEMENTS (which injects some base |
| entitlements) was set to NO. If it were left set to YES, Xcode would |
| create its own entitlements file and use it as if it were specified |
| in CODE_SIGN_ENTITLEMENTS |
| o WK_LIBRARY_VALIDATION_CODE_SIGN_FLAGS was updated with an |
| "--entitlements <generated_file>" option. |
| WK_LIBRARY_VALIDATION_CODE_SIGN_FLAGS was then used to initialize |
| OTHER_CODE_SIGN_FLAGS. By specifying the entitlements file this way, |
| we avoid Xcode complaining about it. |
| |
| This approach works well for macOS, and so we now also use it to |
| address the issue with macCatalyst. While we're at it, convert the |
| rest of the platforms to use the same approach and also generate their |
| entitlements from the process-entitlements script. |
| |
| The new process was validated by performing a build with the old |
| process and the new process, and then comparing the entitlements of |
| the resulting XPC services to make sure they were the same. Builds |
| were performed for all platforms, and for Engineering and Production |
| builds. |
| |
| Reviewed by Brent Fulgham. |
| |
| * Configurations/BaseXPCService.xcconfig: |
| * Configurations/Network-iOS.entitlements: Removed. |
| * Configurations/Network-macCatalyst.entitlements: Removed. |
| * Configurations/NetworkService.xcconfig: |
| * Configurations/PluginService.64.xcconfig: |
| * Configurations/PluginService.entitlements: Removed. |
| * Configurations/WebContent-iOS.entitlements: Removed. |
| * Configurations/WebContent-macCatalyst.entitlements: Removed. |
| * Configurations/WebContentService.Development.xcconfig: |
| * Configurations/WebContentService.xcconfig: |
| * Scripts/copy-webcontent-resources-to-private-headers.sh: |
| * Scripts/process-entitlements.sh: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-08-02 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Update OptionsGTK.cmake and NEWS for 2.25.4 release |
| |
| * gtk/NEWS: Add release notes for 2.25.4. |
| |
| 2019-08-02 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [SOUP] WebSockets: use SOUP_WEBSOCKET_CLOSE_NO_STATUS when closing with no status |
| https://bugs.webkit.org/show_bug.cgi?id=200338 |
| |
| Reviewed by Alex Christensen. |
| |
| * NetworkProcess/soup/WebSocketTaskSoup.cpp: |
| (WebKit::WebSocketTask::close): |
| |
| 2019-08-01 Alex Christensen <achristensen@webkit.org> |
| |
| Do not send NetworkProcessProxy::LogTestingEvent message if we are not testing |
| https://bugs.webkit.org/show_bug.cgi?id=200360 |
| |
| Reviewed by Tim Horton. |
| |
| Sending this message causes instantiation of the default WebsiteDataStore in the UIProcess, |
| which causes more memory to be used than is needed if we are browsing without the default WebsiteDataStore. |
| |
| Covered by an API test. |
| |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::logTestingEvent): |
| * NetworkProcess/NetworkSession.cpp: |
| (WebKit::NetworkSession::NetworkSession): |
| * NetworkProcess/NetworkSession.h: |
| (WebKit::NetworkSession::enableResourceLoadStatisticsLogTestingEvent const): |
| * NetworkProcess/NetworkSessionCreationParameters.cpp: |
| (WebKit::NetworkSessionCreationParameters::encode const): |
| (WebKit::NetworkSessionCreationParameters::decode): |
| * NetworkProcess/NetworkSessionCreationParameters.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| (WebKit::WebsiteDataStore::hasStatisticsTestingCallback const): |
| |
| 2019-08-01 Alex Christensen <achristensen@webkit.org> |
| |
| Move FormData zip file generation to NetworkProcess and enable it for all WebKit clients for uploading directories |
| https://bugs.webkit.org/show_bug.cgi?id=200102 |
| <rdar://problem/53275114> |
| |
| Reviewed by Darin Adler. |
| |
| * NetworkProcess/NetworkResourceLoadParameters.cpp: |
| (WebKit::NetworkResourceLoadParameters::encode const): |
| * Platform/IPC/FormDataReference.h: |
| (IPC::FormDataReference::encode const): |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb: |
| * WebProcess/InjectedBundle/API/APIInjectedBundlePageUIClient.h: |
| (API::InjectedBundle::PageUIClient::shouldGenerateFileForUpload): Deleted. |
| (API::InjectedBundle::PageUIClient::generateFileForUpload): Deleted. |
| * WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp: |
| (WebKit::InjectedBundlePageUIClient::shouldGenerateFileForUpload): Deleted. |
| (WebKit::InjectedBundlePageUIClient::generateFileForUpload): Deleted. |
| * WebProcess/InjectedBundle/InjectedBundlePageUIClient.h: |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::shouldReplaceWithGeneratedFileForUpload): Deleted. |
| (WebKit::WebChromeClient::generateReplacementFile): Deleted. |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2019-08-01 Tim Horton <timothy_horton@apple.com> |
| |
| REGRESSION: HSBC Personal Banking download/print dialog is usually positioned off screen on iPad |
| https://bugs.webkit.org/show_bug.cgi?id=200356 |
| <rdar://problem/51885199> |
| |
| Reviewed by Beth Dakin. |
| |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::desktopClassBrowsingRecommendedForRequest): |
| Add HSBC domains to the list of sites that recommend mobile mode by default. |
| |
| 2019-08-01 Chris Dumez <cdumez@apple.com> |
| |
| Crash under WebProcessProxy::didBecomeUnresponsive() |
| https://bugs.webkit.org/show_bug.cgi?id=200346 |
| <rdar://problem/53795984> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Make sure the BackgroundProcessResponsivenessTimer / ResponsivenessTimer ref their client |
| while they call mayBecomeUnresponsive() / willChangeIsResponsive() / didChangeIsResponsive() |
| / didBecomeUnresponsive() on their client, in case calling one of these ends up destroying |
| the client. |
| |
| * UIProcess/BackgroundProcessResponsivenessTimer.cpp: |
| (WebKit::BackgroundProcessResponsivenessTimer::setResponsive): |
| * UIProcess/ResponsivenessTimer.cpp: |
| (WebKit::ResponsivenessTimer::timerFired): |
| * UIProcess/ResponsivenessTimer.h: |
| * UIProcess/WebProcessProxy.h: |
| |
| 2019-08-01 Youenn Fablet <youenn@apple.com> |
| |
| UserMediaPermissionRequestManagerProxy should not use audio+video denied requests to deny audio-only or video-only requests |
| https://bugs.webkit.org/show_bug.cgi?id=200317 |
| |
| Reviewed by Eric Carlson. |
| |
| Only match audio+video denied requests with new audio+video requests. |
| That will ensure that audio can still be captured if user denied access to the camera through preferences |
| and website started with a getUserMedia({audio: true, video: true}) call. |
| Covered by added API test. |
| |
| * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: |
| (WebKit::UserMediaPermissionRequestManagerProxy::wasRequestDenied): |
| |
| 2019-08-01 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [SOUP] WebSockets: add support for extensions when using web sockets libsoup API |
| https://bugs.webkit.org/show_bug.cgi?id=199943 |
| |
| Reviewed by Alex Christensen. |
| |
| * NetworkProcess/NetworkSocketChannel.cpp: |
| (WebKit::NetworkSocketChannel::didConnect): Add extensions parameter and pass it to the IPC message. |
| * NetworkProcess/NetworkSocketChannel.h: |
| * NetworkProcess/cocoa/WebSocketTaskCocoa.mm: |
| (WebKit::WebSocketTask::didConnect): Pass empty extensions string. |
| * NetworkProcess/soup/WebSocketTaskSoup.cpp: |
| (WebKit::WebSocketTask::acceptedExtensions const): Build the accepted extensions string. |
| (WebKit::WebSocketTask::didConnect): Pass accepted extensions to NetworkSocketChannel::didConnect(). |
| * NetworkProcess/soup/WebSocketTaskSoup.h: |
| * WebProcess/Network/WebSocketChannel.cpp: |
| (WebKit::WebSocketChannel::extensions): Return the extensions string received from the network process. |
| (WebKit::WebSocketChannel::didConnect): Save the extensions string. |
| * WebProcess/Network/WebSocketChannel.h: |
| * WebProcess/Network/WebSocketChannel.messages.in: |
| |
| 2019-08-01 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [SOUP] Switch to use libsoup WebSockets API |
| https://bugs.webkit.org/show_bug.cgi?id=200162 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Remove temporary method added for old WebSockets implementation. |
| |
| * NetworkProcess/NetworkStorageSessionProvider.h: |
| |
| 2019-07-31 Dean Jackson <dino@apple.com> |
| |
| WKImagePreviewViewController not being autoreleased |
| https://bugs.webkit.org/show_bug.cgi?id=200325 |
| <rdar://problem/53788214> |
| |
| Reviewed by Wenson Hsieh. |
| |
| Wenson noticed I wasn't autoreleasing the WKImagePreviewViewController. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView continueContextMenuInteraction:]): |
| |
| 2019-07-31 Chris Dumez <cdumez@apple.com> |
| |
| REGRESSION (r247486?): Flaky API Test TestWebKitAPI.WKWebView.LocalStorageProcessSuspends |
| https://bugs.webkit.org/show_bug.cgi?id=200086 |
| <rdar://problem/53501721> |
| |
| Reviewed by Alex Christensen. |
| |
| The test would first send a ProcessWillSuspendImminently IPC to the NetworkProcess and then |
| run JS in the WebContent process, which would in turn send IPC to the NetworkProcess. The |
| test was flaky because it expected the network process to receive the IPC from the UIProcess |
| *before* the one from the WebContent process. However, there is no guarantee about ordering |
| from IPC messages coming from different connections. |
| |
| To address the flakiness, this patch introduces a new ProcessWillSuspendImminentlyForTesting |
| synchronous IPC and uses this instead. As a result, it is now guaranteed that the network |
| process processes this IPC *before* receiving any IPC from the WebContent process that is |
| the result of IPC from the UIProcess. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::processWillSuspendImminentlyForTestingSync): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _sendNetworkProcessWillSuspendImminently]): |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::sendProcessWillSuspendImminentlyForTesting): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::sendNetworkProcessWillSuspendImminentlyForTesting): |
| (WebKit::WebProcessPool::sendNetworkProcessWillSuspendImminently): Deleted. |
| * UIProcess/WebProcessPool.h: |
| |
| 2019-07-31 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS 13] Safari crashes when closing a tab with a focused element if the unified field has focus |
| https://bugs.webkit.org/show_bug.cgi?id=200291 |
| <rdar://problem/53717946> |
| |
| Reviewed by Megan Gardner. |
| |
| Makes -requestAutocorrectionContextWithCompletionHandler: robust in the case where the web page has been closed, |
| and there is no Connection object to use when waiting for a sync IPC response. |
| |
| Test: AutocorrectionTests.RequestAutocorrectionContextAfterClosingPage |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView requestAutocorrectionContextWithCompletionHandler:]): |
| |
| 2019-07-31 Chris Fleizach <cfleizach@apple.com> |
| |
| AX: com.apple.WebKit.WebContent at com.apple.WebKit: -[WKAccessibilityWebPageObject accessibilityParameterizedAttributeNames] |
| https://bugs.webkit.org/show_bug.cgi?id=200277 |
| <rdar://problem/49475009> |
| |
| Reviewed by Per Arne Vollan. |
| |
| Verify Page is available before calling into it. |
| |
| * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm: |
| (-[WKAccessibilityWebPageObject ALLOW_DEPRECATED_IMPLEMENTATIONS_END]): |
| |
| 2019-07-31 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Datalist element support for TextFieldInputType |
| https://bugs.webkit.org/show_bug.cgi?id=98934 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Add a WebDataListSuggestionsDropdown implementation for the GTK port using a popup window with a tree view list. |
| |
| * Sources.txt: |
| * SourcesGTK.txt: |
| * UIProcess/API/gtk/PageClientImpl.cpp: |
| (WebKit::PageClientImpl::createDataListSuggestionsDropdown): |
| * UIProcess/API/gtk/PageClientImpl.h: |
| * UIProcess/gtk/WebDataListSuggestionsDropdownGtk.cpp: Added. |
| (WebKit::firstTimeItemSelectedCallback): |
| (WebKit::WebDataListSuggestionsDropdownGtk::WebDataListSuggestionsDropdownGtk): |
| (WebKit::WebDataListSuggestionsDropdownGtk::~WebDataListSuggestionsDropdownGtk): |
| (WebKit::WebDataListSuggestionsDropdownGtk::treeViewRowActivatedCallback): |
| (WebKit::WebDataListSuggestionsDropdownGtk::didSelectOption): |
| (WebKit::WebDataListSuggestionsDropdownGtk::show): |
| (WebKit::WebDataListSuggestionsDropdownGtk::handleKeydownWithIdentifier): |
| (WebKit::WebDataListSuggestionsDropdownGtk::close): |
| * UIProcess/gtk/WebDataListSuggestionsDropdownGtk.h: Copied from Tools/WebKitTestRunner/gtk/UIScriptControllerGtk.h. |
| |
| 2019-07-31 Tim Horton <timothy_horton@apple.com> |
| |
| Remove WebKit2 Makefile guards for pre-Snow Leopard macOS |
| https://bugs.webkit.org/show_bug.cgi?id=200294 |
| |
| Reviewed by Dan Bernstein. |
| |
| * Makefile: |
| It seems ... unlikely ... that anyone is trying to build |
| trunk WebKit for Leopard or prior. |
| |
| 2019-07-30 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [WebKit] Add PageLoadState::Observer C API |
| https://bugs.webkit.org/show_bug.cgi?id=199848 |
| |
| Reviewed by Alex Christensen. |
| |
| There is no WebKit C API to get the timing of title changed since |
| WKPageLoaderClientV0::didReceiveTitleForFrame has been removed in |
| r235398. Cocoa and glib WebKit API exist. |
| |
| * PlatformWin.cmake: |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetPageStateClient): |
| * UIProcess/API/C/WKPage.h: Added WKPageSetPageStateClient. |
| * UIProcess/API/C/WKPageStateClient.h: Added. |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::setPageLoadStateObserver): |
| * UIProcess/WebPageProxy.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-07-30 Chris Dumez <cdumez@apple.com> |
| |
| Fix non-thread safe use of WeakPtr under sendSecItemRequest() |
| https://bugs.webkit.org/show_bug.cgi?id=200249 |
| |
| Reviewed by Alex Christensen. |
| |
| The function was calling globalNetworkProcess() from a background thread. This is not safe because |
| globalNetworkProcess() deferences a WeakPtr<NetworkProcess> internally and the NetworkProcess object |
| gets destroyed on the main thread. |
| |
| * Shared/mac/SecItemShim.cpp: |
| (WebKit::sendSecItemRequest): |
| |
| 2019-07-24 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [SOUP] Move SoupNetworkSession ownership from NetworkStorageSession to NetworkSession |
| https://bugs.webkit.org/show_bug.cgi?id=200076 |
| |
| Reviewed by Michael Catanzaro. |
| |
| NetworkStorageSession should only own the cookie jar, since it's the only thing it handles from the session. |
| |
| * NetworkProcess/Cookies/soup/WebCookieManagerSoup.cpp: |
| (WebKit::WebCookieManager::setCookiePersistentStorage): Use the network session instead of the storage session |
| to set the peristent cookie storage. |
| * NetworkProcess/CustomProtocols/soup/LegacyCustomProtocolManagerSoup.cpp: |
| (WebKit::LegacyCustomProtocolManager::registerScheme): Iterate network sessions instead of storage sessions to |
| access the SoupNetworkSession. |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::resourceLoadStatisticsUpdated): Use |
| NetworkProcess::forEachNetworkSession() to iterate network sessions. |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::lowMemoryHandler): Ditto. |
| (WebKit::NetworkProcess::forEachNetworkSession): Added to iterate network sessions intead of exposing the map |
| that is always used to iterate the sessions. |
| (WebKit::NetworkProcess::switchToNewTestingSession): Use the new NetworkStorageSession constructor API. |
| (WebKit::NetworkProcess::ensureSession): Ditto. |
| (WebKit::NetworkProcess::destroySession): Allow to destroy the default session for soup based ports. This is |
| only called right before process exit to ensure we don't leak network resources like the cookies database. |
| (WebKit::NetworkProcess::setResourceLoadStatisticsEnabled): Use NetworkProcess::forEachNetworkSession() to |
| iterate network sessions. |
| (WebKit::NetworkProcess::fetchWebsiteData): Ditto. |
| (WebKit::NetworkProcess::deleteWebsiteDataForOrigins): Ditto. |
| (WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains): Ditto. |
| (WebKit::NetworkProcess::registrableDomainsWithWebsiteData): Ditto. |
| (WebKit::NetworkProcess::setCacheModel): Ditto. |
| (WebKit::NetworkProcess::actualPrepareToSuspend): Ditto. |
| (WebKit::NetworkProcess::resume): Ditto. |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkStorageSessionProvider.h: |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::clearDiskCache): Ditto. |
| * NetworkProcess/ios/NetworkProcessIOS.mm: |
| (WebKit::NetworkProcess::clearCacheForAllOrigins): Ditto. |
| * NetworkProcess/soup/NetworkProcessMainSoup.cpp: Destroy the default session before process exists. |
| * NetworkProcess/soup/NetworkProcessSoup.cpp: |
| (WebKit::NetworkProcess::userPreferredLanguagesChanged): Iterate network sessions instead of storage sessions to |
| access the SoupNetworkSession. |
| (WebKit::NetworkProcess::platformCreateDefaultStorageSession const): Use the new NetworkStorageSession constructor API. |
| (WebKit::NetworkProcess::clearDiskCache): Use NetworkProcess::forEachNetworkSession() to iterate network sessions. |
| (WebKit::NetworkProcess::setNetworkProxySettings): Iterate network sessions instead of storage sessions to |
| access the SoupNetworkSession. |
| * NetworkProcess/soup/NetworkSessionSoup.cpp: |
| (WebKit::NetworkSessionSoup::NetworkSessionSoup): Create the SoupNetworkSession and setup cookies. |
| (WebKit::NetworkSessionSoup::soupSession const): Return the SoupSession of SoupNetworkSession. |
| (WebKit::NetworkSessionSoup::setCookiePersistentStorage): Setup a new cookie jar. |
| * NetworkProcess/soup/NetworkSessionSoup.h: |
| |
| 2019-07-30 Truitt Savell <tsavell@apple.com> |
| |
| Unreviewed, rolling out r247932. |
| |
| Broke 8 API tests across all platforms. |
| |
| Reverted changeset: |
| |
| "Fix non-thread safe use of WeakPtr under |
| sendSecItemRequest()" |
| https://bugs.webkit.org/show_bug.cgi?id=200249 |
| https://trac.webkit.org/changeset/247932 |
| |
| 2019-07-29 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| YouTube search field shows RTL text outside its border on iPadOS |
| https://bugs.webkit.org/show_bug.cgi?id=200253 |
| <rdar://problem/53680603> |
| |
| Reviewed by Beth Dakin. |
| |
| Limits code added in r238939 to respect the current keyboard's writing mode to only editable web views. This |
| behavior was only intended for Mail, and isn't generally compatible with web content. |
| |
| While the call to -setInitialDirection is correctly gated on an web view editability check, it appears that |
| other changes in iOS 13 now cause -setBaseWritingDirection:forRange: to be invoked directly from keyboards code. |
| This means that -setBaseWritingDirection:forRange: should additionally be guarded with the same check. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView setBaseWritingDirection:forRange:]): |
| |
| 2019-07-29 Sihui Liu <sihui_liu@apple.com> |
| |
| Try fixing crash at com.apple.WebKit.Networking: NetworkProcess::setSharedHTTPCookieStorage |
| https://bugs.webkit.org/show_bug.cgi?id=200189 |
| <rdar://problem/41325767> |
| |
| Reviewed by Chris Dumez. |
| |
| The crash indicates that sharedCookieStorage is accessed before being set in network process. |
| sharedCookieStorage is set during the processing of InitializeNetworkProcess message, and access to |
| sharedCookieStorage is supposed to happen after that. Therefore, it is likely some message is received and |
| handled before InitializeNetworkProcess. |
| |
| One possible explanation is WebKit APIs get called on different threads. Because of the race in checking and |
| setting m_networkProcess, some message is sent between network process gets launched (m_networkProcess is set) |
| and InitializeNetworkProcess message is sent. To mitigate this issue, we make sure m_networkProcess is set only |
| in the main runloop and only after InitializeNetworkProcess is sent. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| |
| 2019-07-29 Chris Dumez <cdumez@apple.com> |
| |
| Fix non-thread safe use of WeakPtr under sendSecItemRequest() |
| https://bugs.webkit.org/show_bug.cgi?id=200249 |
| |
| Reviewed by Alex Christensen. |
| |
| The function was calling globalNetworkProcess() from a background thread. This is not safe because |
| globalNetworkProcess() deferences a WeakPtr<NetworkProcess> internally and the NetworkProcess object |
| gets destroyed on the main thread. |
| |
| * Shared/mac/SecItemShim.cpp: |
| (WebKit::sendSecItemRequest): |
| |
| 2019-07-29 Zalan Bujtas <zalan@apple.com> |
| |
| [ContentChangeObserver] didFinishContentChangeObserving should include the type of content change. |
| https://bugs.webkit.org/show_bug.cgi?id=200247 |
| <rdar://problem/53681149> |
| |
| Reviewed by Simon Fraser. |
| |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| * WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm: |
| (WebKit::WebChromeClient::didFinishContentChangeObserving): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::didFinishContentChangeObserving): |
| |
| 2019-07-29 Youenn Fablet <youenn@apple.com> |
| |
| REGRESSION: WebSockets no longer work in Service Workers |
| https://bugs.webkit.org/show_bug.cgi?id=199906 |
| <rdar://problem/53516732> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Use WebSocketProvider so that network calls are done in the network process. |
| |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::installServiceWorker): |
| |
| 2019-07-29 Zalan Bujtas <zalan@apple.com> |
| |
| [ContentChangeObserver] ChromeClient::observedContentChange() name is misleading |
| https://bugs.webkit.org/show_bug.cgi?id=200238 |
| <rdar://problem/53677038> |
| |
| Reviewed by Simon Fraser. |
| |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| * WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm: |
| (WebKit::WebChromeClient::didFinishContentChangeObserving): |
| (WebKit::WebChromeClient::observedContentChange): Deleted. |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::didFinishContentChangeObserving): |
| (WebKit::WebPage::completePendingSyntheticClickForContentChangeObserver): Deleted. |
| |
| 2019-07-26 Ryosuke Niwa <rniwa@webkit.org> |
| |
| ShareableBitmap::createGraphicsContext() should return nullptr when CGBitmapContextCreateWithData returns nil |
| https://bugs.webkit.org/show_bug.cgi?id=200185 |
| |
| Reviewed by Simon Fraser. |
| |
| We should not be creating GraphicsContext with nil CGContextRef in ShareableBitmap::createGraphicsContext() |
| as such a GraphicsContext is only used for specific purposes. |
| |
| This patch adds an early return to ShareableBitmap::createGraphicsContext() when CGBitmapContextCreateWithData |
| returns nil CGContextRef. |
| |
| * PluginProcess/PluginControllerProxy.cpp: |
| (WebKit::PluginControllerProxy::paint): |
| * Shared/API/c/cg/WKImageCG.cpp: |
| (WKImageCreateFromCGImage): |
| * Shared/ContextMenuContextData.cpp: |
| (WebKit::ContextMenuContextData::ContextMenuContextData): |
| * Shared/RemoteLayerTree/RemoteLayerBackingStore.mm: |
| (WebKit::RemoteLayerBackingStore::display): |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::encodeImage): |
| * Shared/cg/ShareableBitmapCG.cpp: |
| (WebKit::ShareableBitmap::createGraphicsContext): |
| (WebKit::ShareableBitmap::makeCGImageCopy): |
| * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp: |
| (WebKit::imageForRect): |
| * WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp: |
| (WebKit::InjectedBundleRangeHandle::renderedImage): |
| * WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp: |
| (WebKit::InjectedBundleHitTestResult::image const): |
| * WebProcess/Plugins/Netscape/NetscapePlugin.cpp: |
| (WebKit::NetscapePlugin::snapshot): |
| * WebProcess/Plugins/PDF/PDFPlugin.mm: |
| (WebKit::PDFPlugin::snapshot): |
| * WebProcess/Plugins/PluginProxy.cpp: |
| (WebKit::PluginProxy::paint): |
| (WebKit::PluginProxy::update): |
| * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm: |
| (WebKit::convertCGImageToBitmap): |
| * WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp: |
| (WebKit::DrawingAreaCoordinatedGraphics::display): |
| * WebProcess/WebPage/WebFrame.cpp: |
| (WebKit::WebFrame::createSelectionSnapshot const): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::snapshotAtSize): |
| (WebKit::WebPage::snapshotNode): |
| (WebKit::WebPage::drawRectToImage): |
| |
| 2019-07-29 Dean Jackson <dino@apple.com> |
| |
| Contextual menu does not present when holding an embedded photo but works with link and attachments |
| https://bugs.webkit.org/show_bug.cgi?id=200239 |
| <rdar://problem/53318733> |
| |
| Reviewed by Tim Horton. |
| |
| If the user long-pressed on an image, and the client implemented the new API but did |
| not provide a configuration, we were not falling back to the default behaviour of |
| giving a menu allowing the user to copy/share/save the image. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView continueContextMenuInteraction:]): If we get through the delegates, |
| and the element is an image, return the default configuration. |
| |
| 2019-07-29 Chris Dumez <cdumez@apple.com> |
| |
| Remove unnecessary null check under WebResourceLoadStatisticsStore::hasStorageAccess() |
| https://bugs.webkit.org/show_bug.cgi?id=200229 |
| |
| Reviewed by Alex Christensen. |
| |
| Remove unnecessary null check under WebResourceLoadStatisticsStore::hasStorageAccess(). |
| There is already a null check with an early return a few lines above. |
| |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::hasStorageAccess): |
| |
| 2019-07-29 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| UI process occasionally hangs in -[UIKeyboardTaskQueue lockWhenReadyForMainThread] |
| https://bugs.webkit.org/show_bug.cgi?id=200215 |
| <rdar://problem/52976965> |
| |
| Reviewed by Tim Horton. |
| |
| To implement autocorrection on iOS, UIKit sometimes needs to request contextual information from WebKit. This is |
| handled as a sync IPC message in WebKit, since UIKit would otherwise proceed to block the main thread after |
| sending the request, preventing WebKit from handling any IPC responses in the UI process (potentially resulting |
| in deadlock if any other sync IPC messages were to arrive in the UI process during this time). |
| |
| The synchronous nature of this autocorrection request means that if any sync IPC message were to be |
| simultaneously dispatched in the opposite direction (i.e. web to UI process), we need to immediately handle the |
| incoming sync message in the UI process (otherwise, we'd end up deadlocking for 1 second until the |
| autocorrection context request hits a 1-second IPC timeout). |
| |
| One such synchronous message from the web process to the UI process is WebPageProxy::CreateNewPage, triggered as |
| a result of synchronously opening a new window. Due to Safari changes in iOS 13 (<rdar://problem/51755088>), |
| this message now calls into code which then causes UIKit to call *back into* -[WKContentView |
| requestAutocorrectionContextWithCompletionHandler:] for the newly opened web view, under the scope of the call |
| to -requestAutocorrectionContextWithCompletionHandler: in the original web view. |
| |
| This caused a crash, which was tracked in <rdar://problem/52590170>. There was an attempt to fix this in r247345 |
| by invoking the existing handler well before storing the new one; while this avoided the crash, it didn't solve |
| the root problem, which was that keyboard task queues would get into a bad state after this scenario; this would |
| manifest in a UI process hang under -[UIKeyboardTaskQueue lockWhenReadyForMainThread] during the next user |
| gesture, which is tracked by this bug (<rdar://problem/52976965>). |
| |
| As it turns out, the keyboard task queue gets into a bad state because it is architected in such a way that |
| tasks added to the queue under the scope of parent task must be finished executing before their parents; |
| otherwise, the call to -[UIKeyboardTaskExecutionContext returnExecutionToParentWithInfo:] never happens when |
| handling the child task. This has the effect of causing the keyboard task queue to end up with a |
| UIKeyboardTaskExecutionContext that can never return execution to its parent context, such that if the task |
| queue is then told to wait until any future task is finished executing, it will hang forever, waiting for these |
| stuck tasks to finish executing (which never happens, because they're all waiting to return execution to their |
| parents which are already done executing!) |
| |
| To fix this hang and avoid ever getting into this bad state, we need to invoke the autocorrection request |
| handlers in this order: |
| |
| (1) Receive outer autocorrection context request. |
| (2) Receive inner autocorrection context request. |
| (3) Invoke inner autocorrection context request completion handler. |
| (4) Invoke outer autocorrection context request completion handler. |
| |
| ...instead of swapping (3) and (4), like we do currently. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView resignFirstResponderForWebView]): |
| |
| Remove the hack added in r247345 to try and avoid reentrant autocorrection context requests; we don't need this |
| anymore, since we should now be able to handle these reentrant requests in the way UIKit expects. |
| |
| (-[WKContentView requestAutocorrectionContextWithCompletionHandler:]): |
| |
| Add an early return in the case where the request is synchronous and there's already a pending autocorrection |
| context to ensure that the completion handler for the nested request is invoked before the outer request is |
| finished. |
| |
| 2019-07-29 Simon Fraser <simon.fraser@apple.com> |
| |
| Can't scroll on yummly.co.uk recipe (scale(0) div covers the content and hit-tests) |
| https://bugs.webkit.org/show_bug.cgi?id=200263 |
| rdar://problem/53679408 |
| |
| Reviewed by Antti Koivisto. |
| |
| The content on this page had a scale(0) div overlaying an overflow:scroll element, |
| and our UI-side hit-testing code would find this scale(0) element, because apparently |
| -[UIView convertPoint:fromView:] will happily work with non-invertible matrices, and |
| -[UIView pointInside:withEvent:] just compares the point with the view bounds. |
| |
| Since the view frame takes the transform into account, we can look for an empty frame |
| to detect these non-invertible transforms. |
| |
| * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm: |
| (WebKit::collectDescendantViewsAtPoint): |
| |
| 2019-07-29 Youenn Fablet <youenn@apple.com> |
| |
| NetworkProcess clear and fetch of cache entries might move the callback aggregator more than once |
| https://bugs.webkit.org/show_bug.cgi?id=200228 |
| |
| Reviewed by Alex Christensen. |
| |
| copyRef the callback aggregator instead of moving it. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::fetchWebsiteData): |
| (WebKit::NetworkProcess::deleteWebsiteDataForOrigins): |
| |
| 2019-07-29 Chris Dumez <cdumez@apple.com> |
| |
| Possible use-after-move under NetworkConnectionToWebProcess::resourceLoadStatisticsUpdated() |
| https://bugs.webkit.org/show_bug.cgi?id=200225 |
| |
| Reviewed by Brent Fulgham. |
| |
| The code was WTFMove()-ing the method parameter inside of a loop, which means that it could |
| move it several times. Instead of copying the parameters, I opted into sending the statistics |
| only to the network session that matches this WebProcess connection. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::resourceLoadStatisticsUpdated): |
| |
| 2019-07-27 Chris Dumez <cdumez@apple.com> |
| |
| Allow more syscalls in the WebContent process' sandbox profile |
| https://bugs.webkit.org/show_bug.cgi?id=200182 |
| <rdar://problem/53594973> |
| |
| Reviewed by Geoffrey Garen. |
| |
| I reviewed all crash traces attached to the radar and found the following |
| syscalls that we not yet allowed by the WebContent process's sandbox |
| profile. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2019-07-26 Jiewen Tan <jiewen_tan@apple.com> |
| |
| NavigationSOAuthorizationSession should check the active URL of the responding page after waking up from waiting |
| https://bugs.webkit.org/show_bug.cgi?id=200150 |
| <rdar://problem/53280170> |
| |
| Reviewed by Brent Fulgham. |
| |
| NavigationSOAuthorizationSession should check the active URL of the responding page after waking up from waiting |
| as the page might have already changed the location. |
| |
| * UIProcess/Cocoa/SOAuthorization/NavigationSOAuthorizationSession.h: |
| * UIProcess/Cocoa/SOAuthorization/NavigationSOAuthorizationSession.mm: |
| (WebKit::NavigationSOAuthorizationSession::shouldStartInternal): |
| (WebKit::NavigationSOAuthorizationSession::webViewDidMoveToWindow): |
| (WebKit::NavigationSOAuthorizationSession::pageActiveURLDidChangeDuringWaiting const): |
| * UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.mm: |
| (WebKit::SubFrameSOAuthorizationSession::abortInternal): |
| |
| 2019-07-26 Chris Dumez <cdumez@apple.com> |
| |
| Crashes under XPCServiceMain() / mach_msg_trap() due to sandboxing |
| https://bugs.webkit.org/show_bug.cgi?id=200173 |
| <rdar://problem/53594973> |
| |
| Reviewed by Per Arne Vollan. |
| |
| Allow a few more syscalls as they appear to be needed by mach_msg_trap(). |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2019-07-26 Daniel Bates <dabates@apple.com> |
| |
| [iOS] REGRESSION: Keyboard dismisses and reappears when typing 2FA pin on appleid.apple.com |
| https://bugs.webkit.org/show_bug.cgi?id=200171 |
| <rdar://problem/50245251> |
| |
| Reviewed by Wenson Hsieh. |
| |
| Take out an InputViewUpdateDeferrer token (if we don't already have one) to temporarily defer |
| tearing down the input view (keyboard) before bluring the previously focused element as part |
| of switching between focused elements. This avoid a noticeable flash caused by UIKit animating |
| out and animating in the keyboard should the newly focused element require the keyboard. We |
| only take out the InputViewUpdateDeferrer until we fall off the end of _elementDidFocus: (or |
| bail early). Once we fall of the end UIKit will update input view UI. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:activityStateChanges:userObject:]): |
| |
| 2019-07-26 Chris Dumez <cdumez@apple.com> |
| |
| Avoid WebContent process SIGKILL when using kevent() |
| https://bugs.webkit.org/show_bug.cgi?id=200170 |
| <rdar://problem/51559921> |
| |
| Reviewed by Per Arne Vollan. |
| |
| Avoid WebContent process SIGKILL when using kevent() by updated its sandboxing profile. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2019-07-26 Chris Dumez <cdumez@apple.com> |
| |
| [iOS] WebPage::TouchEventSync() & WebPage::GetPositionInformation() sync IPC causes UIProcess hangs |
| https://bugs.webkit.org/show_bug.cgi?id=200138 |
| <rdar://problem/52698157> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Revert most of r247822 and use an alternative approach to address hangs. In this patch, the proposal |
| is to add a SendSyncOption::ForceDispatchWhenDestinationIsWaitingForUnboundedSyncReply flag on the |
| WebPage::TouchEventSync() & WebPage::GetPositionInformation() sendSync() calls in the UIProcess. |
| Those will cause this IPCs to get dispatched right away in the WebContent process, even if the |
| WebContent process is itself currently stuck on unbounded (i.e. potentially slow) synchronous IPC |
| (JS alerts / prompts & sync XHR). Because re-entering WebCore on sync IPC is generally unsafe, this |
| patch also updates the WebPage::getPositionInformation() & WebPage::touchEventSync() to return early |
| (i.e. cancelled) if they get called while the WebContent process is stuck on a slow sendSync. |
| |
| This approach should address the UIProcess hangs caused by the WebPage::TouchEventSync() and |
| WebPage::GetPositionInformation() sync IPC messages when the WebContent process is busy on a slow XHR |
| or a JS prompt / alert. It should be safe because we do not re-enter WebCore. The only drawback is that |
| those IPCs will be cancelled (early return with default value) when the WebContent process is busy. |
| However, I am being told that this is likely acceptable in practice. |
| |
| * Platform/IPC/Connection.cpp: |
| (IPC::Connection::SyncMessageState::processIncomingMessage): |
| (IPC::Connection::sendMessage): |
| (IPC::Connection::sendSyncMessage): |
| (IPC::Connection::dispatchMessage): |
| * Platform/IPC/Connection.h: |
| (IPC::UnboundedSynchronousIPCScope::UnboundedSynchronousIPCScope): |
| (IPC::UnboundedSynchronousIPCScope::~UnboundedSynchronousIPCScope): |
| (IPC::UnboundedSynchronousIPCScope::hasOngoingUnboundedSyncIPC): |
| * Platform/IPC/Decoder.cpp: |
| (IPC::Decoder::shouldDispatchMessageWhenWaitingForSyncReply const): |
| * Platform/IPC/Decoder.h: |
| * Platform/IPC/Encoder.cpp: |
| (IPC::Encoder::shouldDispatchMessageWhenWaitingForSyncReply const): |
| (IPC::Encoder::setShouldDispatchMessageWhenWaitingForSyncReply): |
| (IPC::Encoder::wrapForTesting): |
| * Platform/IPC/Encoder.h: |
| * Platform/IPC/MessageFlags.h: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::testProcessIncomingSyncMessagesWhenWaitingForSyncReply): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::handleTouchEventSynchronously): |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView ensurePositionInformationIsUpToDate:]): |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::loadResourceSynchronously): |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::testProcessIncomingSyncMessagesWhenWaitingForSyncReply): |
| (WebKit::WebChromeClient::runJavaScriptAlert): |
| (WebKit::WebChromeClient::runJavaScriptConfirm): |
| (WebKit::WebChromeClient::runJavaScriptPrompt): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::layerVolatilityTimerFired): |
| (WebKit::WebPage::markLayersVolatile): |
| (WebKit::WebPage::cancelMarkLayersVolatile): |
| (WebKit::WebPage::touchEventSync): |
| (WebKit::WebPage::didCompletePageTransition): |
| (WebKit::WebPage::updatePreferences): |
| (WebKit::WebPage::testProcessIncomingSyncMessagesWhenWaitingForSyncReply): |
| * WebProcess/WebPage/WebPage.h: |
| (WebKit::WebPage::sendSyncWithDelayedReply): |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::getPositionInformation): |
| |
| 2019-07-26 Zalan Bujtas <zalan@apple.com> |
| |
| Unable to tap/double tap to open files/folders in Google Drive in Safari |
| https://bugs.webkit.org/show_bug.cgi?id=200096 |
| <rdar://problem/52748552> |
| |
| Reviewed by Wenson Hsieh. |
| |
| This patch reverts to the original double-tap-for-double-click implementation (see r244775 and r246347 for more information). |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| * UIProcess/PageClient.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::creationParameters): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::doubleTapForDoubleClickDelay): Deleted. |
| (WebKit::PageClientImpl::doubleTapForDoubleClickRadius): Deleted. |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView setupInteraction]): |
| (-[WKContentView cleanupInteraction]): |
| (-[WKContentView _removeDefaultGestureRecognizers]): |
| (-[WKContentView _addDefaultGestureRecognizers]): |
| (-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]): Do not recognize the single and double gestures the same time. |
| (-[WKContentView gestureRecognizerShouldBegin:]): |
| (-[WKContentView _doubleTapRecognizedForDoubleClick:]): |
| (-[WKContentView _didStartProvisionalLoadForMainFrame]): |
| (-[WKContentView _ensureNonBlockingDoubleTapGestureRecognizer]): Deleted. |
| (-[WKContentView _doubleTapForDoubleClickDelay]): Deleted. |
| (-[WKContentView _doubleTapForDoubleClickRadius]): Deleted. |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::handleDoubleTapForDoubleClickAtPoint): |
| * WebProcess/WebPage/WebPage.cpp: |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::handleDoubleTapForDoubleClickAtPoint): |
| (WebKit::WebPage::commitPotentialTap): |
| (WebKit::WebPage::handlePotentialDoubleTapForDoubleClickAtPoint): Deleted. |
| |
| 2019-07-26 Eric Liang <ericliang@apple.com> |
| |
| AX: web process should load correct bundle path for MACCATALYST |
| https://bugs.webkit.org/show_bug.cgi?id=200122 |
| |
| Reviewed by Brent Fulgham. |
| |
| Added the path to accessibility bundle for Mac Catalyst. |
| Added sandbox profile to read accessibility settings. |
| |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::registerWithAccessibility): |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2019-07-26 Alexander Mikhaylenko <exalm7659@gmail.com> |
| |
| REGRESSION(r246496): [GTK] Tapping the web view scrolls up a bit |
| https://bugs.webkit.org/show_bug.cgi?id=200084 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| gdk_event_get_scroll_direction() returns false, but also sets direction to GDK_SCROLL_UP if |
| the direction was GDK_SCROLL_SMOOTH. Relying on zero deltas in this case is not correct, because |
| they can also be zero with GDK_SCROLL_SMOOTH. In this case, set the direction manually to avoid |
| that. |
| |
| See https://gitlab.gnome.org/GNOME/gtk/issues/2048 |
| |
| * Shared/gtk/WebEventFactory.cpp: |
| (WebKit::WebEventFactory::createWebWheelEvent): |
| |
| 2019-07-26 Loïc Yhuel <loic.yhuel@softathome.com> |
| |
| [WPE] Support disk cache dumping like GTK |
| https://bugs.webkit.org/show_bug.cgi?id=200157 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Creating or touching "dump" would create the dump.json. |
| |
| * NetworkProcess/cache/NetworkCache.cpp: |
| (WebKit::NetworkCache::Cache::Cache): |
| |
| 2019-07-26 Rob Buis <rbuis@igalia.com> |
| |
| Make storing cross-origin top-level prefetches in HTTP cache optional |
| https://bugs.webkit.org/show_bug.cgi?id=199499 |
| |
| Reviewed by Youenn Fablet. |
| |
| Currently when we navigate we check if there is a cross-origin top-level |
| prefetch we can use for the navigation. The current solution uses the |
| HTTP cache as a way to store the prefetch and to immediately use it for |
| the navigation load. However this solution fails in case the prefetch is |
| not cacheable. |
| |
| Instead of this, simulate a HTTP Cache entry to process the load and |
| afterwards try to store the navigation load into the HTTP cache, where |
| normal store decisions will be applied. |
| |
| Test: http/wpt/prefetch/link-prefetch-skip-disk-cache.html |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::retrieveCacheEntry): |
| (WebKit::NetworkResourceLoader::retrieveCacheEntryInternal): |
| * NetworkProcess/NetworkResourceLoader.h: |
| |
| 2019-07-25 Zan Dobersek <zdobersek@igalia.com> |
| |
| Unreviewed build fix in NetworkDataTaskSoup. |
| |
| * NetworkProcess/soup/NetworkDataTaskSoup.cpp: |
| (WebKit::NetworkDataTaskSoup::authenticateCallback): |
| Fix incorrect use of the dereferencing operator introduced in r247831. |
| |
| 2019-07-25 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Unreviewed, build fix after r247851 |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| Reverts an unnecessary change. |
| |
| 2019-07-25 Fujii Hironori <fujii.hironori@gmail.com> |
| |
| [GTK] Indistinguishable overloaded callback function inspectorViewDestroyed if RemoteWebInspectorProxyGtk.cpp and WebInspectorProxyGtk.cpp are in a unified build bundle |
| https://bugs.webkit.org/show_bug.cgi?id=200123 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * UIProcess/gtk/RemoteWebInspectorProxyGtk.cpp: |
| (WebKit::remoteInspectorViewDestroyed): Added. |
| (WebKit::RemoteWebInspectorProxy::platformCreateFrontendPageAndWindow): |
| (WebKit::inspectorViewDestroyed): Deleted. |
| Renamed inspectorViewDestroyed to remoteInspectorViewDestroyed. |
| |
| 2019-07-25 Jiewen Tan <jiewen_tan@apple.com> |
| |
| WebPageProxy::receivedPolicyDecision should check navigation ID before clear pendingAPIRequest |
| https://bugs.webkit.org/show_bug.cgi?id=200108 |
| <rdar://problem/53521238> |
| |
| Reviewed by Chris Dumez. |
| |
| Assuming there are two loads happening one after another. There is an issue when clients save |
| the first decisionHandler and then call WKNavigationActionPolicyCancel for it right after the |
| second decisionHandler received, -[WKWebView URL] could return a null string even though it is |
| loading the second one. |
| |
| To solve that, this patch pairs a navigationID with the pendingAPIRequestURL such that |
| WebPageProxy::receivedPolicyDecision could clear the pendingAPIRequestURL only if |
| the passed navigation ID matches the current one. |
| |
| * UIProcess/PageLoadState.cpp: |
| (WebKit::PageLoadState::reset): |
| (WebKit::PageLoadState::activeURL): |
| (WebKit::PageLoadState::estimatedProgress): |
| (WebKit::PageLoadState::pendingAPIRequestURL const): |
| (WebKit::PageLoadState::pendingAPIRequest const): |
| (WebKit::PageLoadState::setPendingAPIRequest): |
| (WebKit::PageLoadState::clearPendingAPIRequest): |
| (WebKit::PageLoadState::isLoading): |
| (WebKit::PageLoadState::setPendingAPIRequestURL): Deleted. |
| (WebKit::PageLoadState::clearPendingAPIRequestURL): Deleted. |
| * UIProcess/PageLoadState.h: |
| (WebKit::PageLoadState::setPendingAPIRequest): |
| (WebKit::PageLoadState::setPendingAPIRequestURL): Deleted. |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::launchProcessForReload): |
| (WebKit::WebPageProxy::loadRequestWithNavigationShared): |
| (WebKit::WebPageProxy::loadFile): |
| (WebKit::WebPageProxy::loadDataWithNavigationShared): |
| (WebKit::WebPageProxy::loadAlternateHTML): |
| (WebKit::WebPageProxy::loadWebArchiveData): |
| (WebKit::WebPageProxy::reload): |
| (WebKit::WebPageProxy::goToBackForwardItem): |
| (WebKit::WebPageProxy::receivedPolicyDecision): |
| (WebKit::WebPageProxy::continueNavigationInNewProcess): |
| (WebKit::WebPageProxy::didStartProvisionalLoadForFrameShared): |
| (WebKit::WebPageProxy::didSameDocumentNavigationForFrame): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| |
| 2019-07-25 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r247806. |
| https://bugs.webkit.org/show_bug.cgi?id=200141 |
| |
| It is regressing PLT (Requested by youenn on #webkit). |
| |
| Reverted changeset: |
| |
| "Disable speculative loading if cache is not to be used for |
| the load" |
| https://bugs.webkit.org/show_bug.cgi?id=199644 |
| https://trac.webkit.org/changeset/247806 |
| |
| 2019-07-25 Dean Jackson <dino@apple.com> |
| |
| WebKit/UIProcess/ios/WKContentViewInteraction.mm: error: implementing deprecated method contextMenuInteractionWillPresent |
| https://bugs.webkit.org/show_bug.cgi?id=200136 |
| <rdar://problem/53547698> |
| |
| Reviewed by Wenson Hsieh. |
| |
| Ignore deprecation warnings for these UIContextMenuInteraction delegates. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView contextMenuInteractionWillPresent:]): |
| (-[WKContentView contextMenuInteraction:willCommitWithAnimator:]): |
| (-[WKContentView contextMenuInteractionDidEnd:]): |
| |
| 2019-07-25 Dean Jackson <dino@apple.com> |
| |
| Add helper for ignoring deprecated implementation warnings |
| https://bugs.webkit.org/show_bug.cgi?id=200135 |
| |
| Reviewed by Wenson Hsieh. |
| |
| Add ALLOW_DEPRECATED_IMPLEMENTATIONS_BEGIN/END macro which |
| is IGNORE_WARNINGS_BEGIN("deprecated-implementations") |
| |
| * UIProcess/API/Cocoa/LegacyBundleForClass.mm: |
| * UIProcess/API/Cocoa/WKBrowsingContextController.mm: |
| (IGNORE_WARNINGS_BEGIN): Deleted. |
| * UIProcess/API/Cocoa/WKBrowsingContextGroup.mm: |
| (IGNORE_WARNINGS_BEGIN): Deleted. |
| * UIProcess/API/Cocoa/WKConnection.mm: |
| (IGNORE_WARNINGS_BEGIN): Deleted. |
| * UIProcess/API/Cocoa/WKPreviewElementInfo.mm: |
| * UIProcess/API/Cocoa/WKProcessGroup.mm: |
| (IGNORE_WARNINGS_BEGIN): Deleted. |
| * UIProcess/API/Cocoa/WKTypeRefWrapper.mm: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView ALLOW_DEPRECATED_IMPLEMENTATIONS_END]): |
| (-[WKWebView draggedImage:endedAt:operation:]): |
| (-[WKWebView accessibilityAttributeValue:]): |
| (-[WKWebView accessibilityAttributeValue:forParameter:]): |
| (-[WKWebView namesOfPromisedFilesDroppedAtDestination:]): |
| (-[WKWebView IGNORE_WARNINGS_END]): Deleted. |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: |
| (-[WKWebViewConfiguration ALLOW_DEPRECATED_IMPLEMENTATIONS_END]): |
| (-[WKWebViewConfiguration _setWebsiteDataStore:]): |
| (-[WKWebViewConfiguration IGNORE_WARNINGS_END]): Deleted. |
| * UIProcess/API/Cocoa/_WKWebsiteDataStore.mm: |
| * UIProcess/API/mac/WKView.mm: |
| (-[WKView ALLOW_DEPRECATED_IMPLEMENTATIONS_END]): |
| (-[WKView draggedImage:endedAt:operation:]): |
| (-[WKView accessibilityAttributeValue:]): |
| (-[WKView accessibilityAttributeValue:forParameter:]): |
| (-[WKView namesOfPromisedFilesDroppedAtDestination:]): |
| (-[WKView IGNORE_WARNINGS_END]): Deleted. |
| * UIProcess/WKImagePreviewViewController.mm: |
| (-[WKImagePreviewViewController ALLOW_DEPRECATED_IMPLEMENTATIONS_END]): |
| (-[WKImagePreviewViewController IGNORE_WARNINGS_END]): Deleted. |
| * UIProcess/ios/forms/WKAirPlayRoutePicker.mm: |
| (-[WKAirPlayRoutePicker popoverControllerDidDismissPopover:]): |
| * UIProcess/ios/forms/WKFileUploadPanel.mm: |
| (-[WKFileUploadPanel popoverControllerDidDismissPopover:]): |
| * UIProcess/ios/forms/WKFormPopover.mm: |
| (-[WKRotatingPopover popoverControllerDidDismissPopover:]): |
| * WebProcess/Plugins/PDF/PDFPlugin.mm: |
| (-[WKPDFPluginAccessibilityObject ALLOW_DEPRECATED_IMPLEMENTATIONS_END]): |
| (-[WKPDFPluginAccessibilityObject accessibilityAttributeValue:]): |
| (-[WKPDFPluginAccessibilityObject accessibilityAttributeValue:forParameter:]): |
| (-[WKPDFPluginAccessibilityObject accessibilityPerformAction:]): |
| (-[WKPDFPluginAccessibilityObject accessibilityIsAttributeSettable:]): |
| (-[WKPDFPluginAccessibilityObject accessibilitySetValue:forAttribute:]): |
| (-[WKPDFPluginAccessibilityObject IGNORE_WARNINGS_END]): Deleted. |
| * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm: |
| (-[WKAccessibilityWebPageObject ALLOW_DEPRECATED_IMPLEMENTATIONS_END]): |
| (-[WKAccessibilityWebPageObject accessibilityIsAttributeSettable:]): |
| (-[WKAccessibilityWebPageObject accessibilitySetValue:forAttribute:]): |
| (-[WKAccessibilityWebPageObject accessibilityAttributeValue:]): |
| (-[WKAccessibilityWebPageObject accessibilityAttributeValue:forParameter:]): |
| (-[WKAccessibilityWebPageObject IGNORE_WARNINGS_END]): Deleted. |
| |
| 2019-07-25 Youenn Fablet <youenn@apple.com> |
| |
| Make NetworkSession no longer RefCounted |
| https://bugs.webkit.org/show_bug.cgi?id=200020 |
| |
| This allows to have a simpler memory management model where |
| NetworkSession cannot live once removed from the network process session map. |
| This requires some additional null checks, especially in NetworkDataTask. |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * NetworkProcess/curl/NetworkSessionCurl.h: |
| * NetworkProcess/soup/NetworkSessionSoup.h: |
| * NetworkProcess/NetworkDataTask.cpp: |
| (WebKit::NetworkDataTask::NetworkDataTask): |
| * NetworkProcess/NetworkDataTask.h: |
| * NetworkProcess/NetworkDataTaskBlob.cpp: |
| (WebKit::NetworkDataTaskBlob::~NetworkDataTaskBlob): |
| (WebKit::NetworkDataTaskBlob::download): |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::lowMemoryHandler): |
| (WebKit::NetworkProcess::setSession): |
| (WebKit::NetworkProcess::destroySession): |
| (WebKit::NetworkProcess::setResourceLoadStatisticsEnabled): |
| (WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains): |
| * NetworkProcess/NetworkProcess.h: |
| (WebKit::NetworkProcess::networkSessions): |
| * NetworkProcess/NetworkSession.cpp: |
| (WebKit::NetworkSession::create): |
| * NetworkProcess/NetworkSession.h: |
| * NetworkProcess/NetworkSocketChannel.cpp: |
| (WebKit::NetworkSocketChannel::NetworkSocketChannel): |
| (WebKit::NetworkSocketChannel::~NetworkSocketChannel): |
| * NetworkProcess/NetworkSocketChannel.h: |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.h: |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::applySniffingPoliciesAndBindRequestToInferfaceIfNeeded): |
| (WebKit::computeIsAlwaysOnLoggingAllowed): |
| (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): |
| (WebKit::NetworkDataTaskCocoa::~NetworkDataTaskCocoa): |
| (WebKit::NetworkDataTaskCocoa::resume): |
| (WebKit::NetworkDataTaskCocoa::isAlwaysOnLoggingAllowed const): |
| * NetworkProcess/cocoa/NetworkSessionCocoa.h: |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (-[WKNetworkSessionDelegate initWithNetworkSession:withCredentials:]): |
| (WebKit::NetworkSessionCocoa::create): |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| * NetworkProcess/soup/NetworkDataTaskSoup.cpp: |
| (WebKit::NetworkDataTaskSoup::createRequest): |
| (WebKit::NetworkDataTaskSoup::clearRequest): |
| (WebKit::NetworkDataTaskSoup::cancel): |
| (WebKit::NetworkDataTaskSoup::authenticateCallback): |
| (WebKit::NetworkDataTaskSoup::authenticate): |
| (WebKit::NetworkDataTaskSoup::continueAuthenticate): |
| |
| 2019-07-25 Chris Dumez <cdumez@apple.com> |
| |
| Avoid some unnecessary HashMap copies |
| https://bugs.webkit.org/show_bug.cgi?id=200129 |
| |
| Reviewed by Youenn Fablet. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::didClose): |
| * UIProcess/AuxiliaryProcessProxy.cpp: |
| (WebKit::AuxiliaryProcessProxy::connect): |
| * UIProcess/Launcher/ProcessLauncher.cpp: |
| (WebKit::ProcessLauncher::ProcessLauncher): |
| * UIProcess/Launcher/ProcessLauncher.h: |
| (WebKit::ProcessLauncher::create): |
| * WebProcess/Plugins/WebPluginInfoProvider.cpp: |
| (WebKit::WebPluginInfoProvider::setPluginLoadClientPolicy): |
| |
| 2019-07-25 Truitt Savell <tsavell@apple.com> |
| |
| Unreviewed, rolling out r247821. |
| |
| Caused two crashing Layout Tests |
| |
| Reverted changeset: |
| |
| "Make storing cross-origin top-level prefetches in HTTP cache |
| optional" |
| https://bugs.webkit.org/show_bug.cgi?id=199499 |
| https://trac.webkit.org/changeset/247821 |
| |
| 2019-07-25 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, fix -Wredundant-move warning spam after r247672 |
| https://bugs.webkit.org/show_bug.cgi?id=199967 |
| <rdar://problem/53351435> |
| |
| * Platform/IPC/ArgumentCoders.cpp: |
| (IPC::decodeStringText): |
| * Platform/IPC/ArgumentCoders.h: |
| |
| 2019-07-25 Chris Dumez <cdumez@apple.com> |
| |
| Avoid UI Process hangs when the WebContent process is showing JS prompts / alerts |
| https://bugs.webkit.org/show_bug.cgi?id=200107 |
| <rdar://problem/53034592> |
| |
| Reviewed by Geoffrey Garen. |
| |
| * Platform/IPC/Connection.cpp: |
| (IPC::Connection::SyncMessageState::incrementProcessIncomingSyncMessagesWhenWaitingForSyncReplyCount): |
| (IPC::Connection::SyncMessageState::decrementProcessIncomingSyncMessagesWhenWaitingForSyncReplyCount): |
| (IPC::Connection::SyncMessageState::processIncomingMessage): |
| (IPC::Connection::sendSyncMessage): |
| * Platform/IPC/Connection.h: |
| Add support for new SendSyncOption::ProcessIncomingSyncMessagesWhenWaitingForSyncReply flag |
| to allow processing incoming sync messages while sending a particular sync IPC. This is the |
| default behavior in all processes except in the WebContent process, where we try to avoid |
| re-entering to prevent bugs. This flag allows the WebContent process to change its default |
| behavior for some specific IPCs, where we know it is safe to re-enter and where it benefits |
| performance to re-renter. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::testProcessIncomingSyncMessagesWhenWaitingForSyncReply): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::didReceiveSyncMessage): |
| (WebKit::NetworkProcessProxy::testProcessIncomingSyncMessagesWhenWaitingForSyncReply): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::testProcessIncomingSyncMessagesWhenWaitingForSyncReply): |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::testProcessIncomingSyncMessagesWhenWaitingForSyncReply): |
| * WebProcess/WebPage/WebPage.h: |
| (WebKit::WebPage::sendSyncWithDelayedReply): |
| * WebProcess/WebPage/WebPage.messages.in: |
| SendSyncOption::ProcessIncomingSyncMessagesWhenWaitingForSyncReply |
| Add testing infrastructure for SendSyncOption::ProcessIncomingSyncMessagesWhenWaitingForSyncReply |
| flag. |
| |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::runJavaScriptAlert): |
| (WebKit::WebChromeClient::runJavaScriptConfirm): |
| (WebKit::WebChromeClient::runJavaScriptPrompt): |
| Use new SendSyncOption::ProcessIncomingSyncMessagesWhenWaitingForSyncReply flag when sending |
| the synchronous IPC for JS alerts / prompt / confirm. This allows the WebProcess to process |
| incoming synchronous IPC for other processes (in particular the UIProcess) while it is blocked |
| on those synchronous IPCs. It is safe to re-enter the WebContent process on these sync IPCs |
| since they are triggered by JS and we return to JS right after. This should avoid UIProcess |
| hangs when the UIProcess is sending a sync IPC to the WebContent process, which is itself |
| stuck on the sync IPC to show a JS alert. |
| |
| 2019-07-25 Rob Buis <rbuis@igalia.com> |
| |
| Make storing cross-origin top-level prefetches in HTTP cache optional |
| https://bugs.webkit.org/show_bug.cgi?id=199499 |
| |
| Reviewed by Youenn Fablet. |
| |
| Currently when we navigate we check if there is a cross-origin top-level |
| prefetch we can use for the navigation. The current solution uses the |
| HTTP cache as a way to store the prefetch and to immediately use it for |
| the navigation load. However this solution fails in case the prefetch is |
| not cacheable. |
| |
| Instead of this, simulate a HTTP Cache entry to process the load and |
| afterwards try to store the navigation load into the HTTP cache, where |
| normal store decisions will be applied. |
| |
| Test: http/wpt/prefetch/link-prefetch-skip-disk-cache.html |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::retrieveCacheEntry): |
| (WebKit::NetworkResourceLoader::retrieveCacheEntryInternal): |
| * NetworkProcess/NetworkResourceLoader.h: |
| |
| 2019-07-25 Truitt Savell <tsavell@apple.com> |
| |
| Unreviewed, rolling out r247817. |
| |
| Broke 14 http/tests/paymentrequest/ tests. on iOS |
| |
| Reverted changeset: |
| |
| "Unable to tap/double tap to open files/folders in Google |
| Drive in Safari" |
| https://bugs.webkit.org/show_bug.cgi?id=200096 |
| https://trac.webkit.org/changeset/247817 |
| |
| 2019-07-24 Zalan Bujtas <zalan@apple.com> |
| |
| Unable to tap/double tap to open files/folders in Google Drive in Safari |
| https://bugs.webkit.org/show_bug.cgi?id=200096 |
| <rdar://problem/52748552> |
| |
| Reviewed by Wenson Hsieh. |
| |
| This patch reverts to the original double-tap-for-double-click implementation (see r244775 and r246347 for more information). |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| * UIProcess/PageClient.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::creationParameters): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::doubleTapForDoubleClickDelay): Deleted. |
| (WebKit::PageClientImpl::doubleTapForDoubleClickRadius): Deleted. |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView setupInteraction]): |
| (-[WKContentView cleanupInteraction]): |
| (-[WKContentView _removeDefaultGestureRecognizers]): |
| (-[WKContentView _addDefaultGestureRecognizers]): |
| (-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]): Do not recognize the single and double gestures the same time. |
| (-[WKContentView gestureRecognizerShouldBegin:]): |
| (-[WKContentView _doubleTapRecognizedForDoubleClick:]): |
| (-[WKContentView _didStartProvisionalLoadForMainFrame]): |
| (-[WKContentView _ensureNonBlockingDoubleTapGestureRecognizer]): Deleted. |
| (-[WKContentView _doubleTapForDoubleClickDelay]): Deleted. |
| (-[WKContentView _doubleTapForDoubleClickRadius]): Deleted. |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::handleDoubleTapForDoubleClickAtPoint): |
| * WebProcess/WebPage/WebPage.cpp: |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::handleDoubleTapForDoubleClickAtPoint): |
| (WebKit::WebPage::commitPotentialTap): |
| (WebKit::WebPage::handlePotentialDoubleTapForDoubleClickAtPoint): Deleted. |
| |
| 2019-07-24 Yusuke Suzuki <ysuzuki@apple.com> |
| |
| [bmalloc] Add IsoHeap test to ensure that IsoHeap pages are not allocating too large VA |
| https://bugs.webkit.org/show_bug.cgi?id=200103 |
| |
| Reviewed by Mark Lam. |
| |
| Move MachVMSPI.h from PAL to WTF. |
| |
| * Platform/cocoa/SharedMemoryCocoa.cpp: |
| |
| 2019-07-24 Youenn Fablet <youenn@apple.com> |
| |
| Disable speculative loading if cache is not to be used for the load |
| https://bugs.webkit.org/show_bug.cgi?id=199644 |
| |
| Reviewed by Alex Christensen. |
| |
| When the page is reloaded, loads are instructed to not use the cache. |
| It is therefore unneeded to do speculative revalidation. |
| Allow speculative revalidation if the cache policy is either the default HTTP policy or |
| if policy is to refresh all cache data. |
| Covered by added test. |
| |
| * NetworkProcess/cache/NetworkCache.cpp: |
| (WebKit::NetworkCache::cachePolicyValidForSpeculativeRevalidation): |
| (WebKit::NetworkCache::canRequestUseSpeculativeRevalidation): |
| |
| 2019-07-24 Priyanka Agarwal <pagarwal999@apple.com> |
| |
| Allow Clients to Add Fields to the AutoFillContext Dictionary |
| https://bugs.webkit.org/show_bug.cgi?id=199326 |
| rdar://problem/42816957 |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/API/Cocoa/_WKInputDelegate.h: |
| Added function declaration for function which returns additional dictionary for autofillcontext |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| Created dictionary for additional autofillcontext |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:activityStateChanges:userObject:]): |
| Populating additional dictionary for autofillcontext |
| |
| (-[WKContentView _autofillContext]): |
| Adding new dictionary to the returned autofillcontext |
| |
| 2019-07-24 Chris Dumez <cdumez@apple.com> |
| |
| Regression(r247400): Unable to log into AIB Mobile Banking App |
| https://bugs.webkit.org/show_bug.cgi?id=200094 |
| <rdar://problem/52519818> |
| |
| Reviewed by Brent Fulgham. |
| |
| In r247400, a change was made to only set the 'app has universal sandbox access' flag |
| only when issueing the sandbox extension for / actually succeeded (it usually fails |
| in practice). Previously, AIB Mobile Banking app was relying on this behavior to |
| trigger a load for file:///login which is outside their container. However, now that |
| the 'app has universal sandbox access' flag is no longer set, it trips our security |
| checks and the load gets ignored. |
| |
| To address the issue, apply only the 'app has universal sandbox access' flag fix with |
| a linked-on-after check. |
| |
| * UIProcess/Cocoa/VersionChecks.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle): |
| |
| 2019-07-24 Tim Horton <timothy_horton@apple.com> |
| |
| Module-enabled users of WKWebProcessPlugInFrame.h fail to build; duplicate declaration |
| https://bugs.webkit.org/show_bug.cgi?id=200095 |
| <rdar://problem/53512407> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.h: |
| Import <JavaScriptCore/JavaScriptCore.h> (the module header) instead of |
| <JavaScriptCore/JSContext.h> directly, otherwise we can end up getting |
| JSContext.h included twice, to the compiler's chagrin. |
| |
| 2019-07-24 Brady Eidson <beidson@apple.com> |
| |
| Crash in WebContent process with custom schemes. |
| <rdar://problem/52968793> and https://bugs.webkit.org/show_bug.cgi?id=200062 |
| |
| Reviewed by Andy Estes. |
| |
| Almost everywhere in WebURLSchemeTaskProxy where we call processNextPendingTask() we first protect the task with a ref. |
| But not in didReceiveData. |
| So lets do that. |
| |
| * WebProcess/WebPage/WebURLSchemeTaskProxy.cpp: |
| (WebKit::WebURLSchemeTaskProxy::didReceiveData): Protect this. |
| |
| 2019-07-24 Alex Christensen <achristensen@webkit.org> |
| |
| Null check CompletionHandler in WebPreviewLoaderClient::didReceivePassword |
| https://bugs.webkit.org/show_bug.cgi?id=200080 |
| <rdar://problem/37275772> |
| |
| Reviewed by Chris Dumez. |
| |
| * WebProcess/WebCoreSupport/ios/WebPreviewLoaderClient.cpp: |
| (WebKit::WebPreviewLoaderClient::didReceivePassword): |
| |
| 2019-07-24 Chris Dumez <cdumez@apple.com> |
| |
| Crash under WebKit:WTF::Detail::CallableWrapper<WebKit::ResourceLoadStatisticsMemoryStore::updateCookieBlocking(WTF::CompletionHandler<void ()>&&)::$_32::operator()()::'lambda'(), void>::call |
| https://bugs.webkit.org/show_bug.cgi?id=200071 |
| <rdar://problem/53335583> |
| |
| Reviewed by Brent Fulgham and Youenn Fablet. |
| |
| The WebResourceLoadStatisticsStore is a main thread object. In its destructor, it was dispatching |
| to the background queue to destroy the m_statisticsStore / m_persistentStorage data members, which |
| live on the background queue. It would then synchronously wait for the background queue to finish |
| destroying them. The idea was to guarantee that the ResourceLoadStatisticsMemoryStore and the |
| ResourceLoadStatisticsPersistentStorage would never outlive the WebResourceLoadStatisticsStore, |
| given that they keep a raw pointer back to the WebResourceLoadStatisticsStore (via m_store data |
| member). |
| |
| The issue is that *while* the WebResourceLoadStatisticsStore destructor is running on the main |
| thread, the background queue may be running code in ResourceLoadStatisticsMemoryStore or |
| ResourceLoadStatisticsPersistentStorage which refs the WebResourceLoadStatisticsStore, even |
| though its ref count has already reached 0. It is actually a common pattern in |
| ResourceLoadStatisticsMemoryStore to call RunLoop::main().dispatch() and ref their m_store in |
| the lambda, so that they can interact with the WebResourceLoadStatisticsStore. |
| |
| To address the issue, we now destroy m_statisticsStore / m_persistentStorage *before* the |
| WebResourceLoadStatisticsStore destructor runs. The NetworkSession destructor now calls |
| WebResourceLoadStatisticsStore::didDestroyNetworkSession() which takes care of destroying |
| m_statisticsStore / m_persistentStorage on the background queue, synchronously. The |
| WebResourceLoadStatisticsStore destructor will only run later, once all remaining references |
| to it are gone. |
| |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::~WebResourceLoadStatisticsStore): |
| (WebKit::WebResourceLoadStatisticsStore::didDestroyNetworkSession): |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h: |
| * NetworkProcess/NetworkSession.cpp: |
| (WebKit::NetworkSession::~NetworkSession): |
| |
| 2019-07-24 Youenn Fablet <youenn@apple.com> |
| |
| SYS___pthread_markcancel is sometimes used by libwebrtc |
| https://bugs.webkit.org/show_bug.cgi?id=200087 |
| <rdar://problem/53408606> |
| |
| Reviewed by Brent Fulgham. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| Whitelist this unix-call within WebProcess as libwebrtc uses it. |
| |
| 2019-07-24 Zalan Bujtas <zalan@apple.com> |
| |
| ASSERTION FAILED: settings().textAutosizingEnabled() && settings().textAutosizingUsesIdempotentMode() in WebCore::Page::recomputeTextAutoSizingInAllFrames() |
| https://bugs.webkit.org/show_bug.cgi?id=200079 |
| <rdar://problem/53474325> |
| |
| Reviewed by Wenson Hsieh. |
| |
| Do not reset idempotent values when the text autosizing is off. |
| |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetTextAutosizingUsesIdempotentMode): |
| (WKPreferencesGetTextAutosizingUsesIdempotentMode): |
| * UIProcess/API/C/WKPreferencesRef.h: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::resetIdempotentTextAutosizingIfNeeded): |
| |
| 2019-07-24 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, rolling out r247766. |
| |
| Caused an API test failure |
| |
| Reverted changeset: |
| |
| "Crash under |
| WebKit:WTF::Detail::CallableWrapper<WebKit::ResourceLoadStatisticsMemoryStore::updateCookieBlocking(WTF::CompletionHandler<void |
| ()>&&)::$_32::operator()()::'lambda'(), void>::call" |
| https://bugs.webkit.org/show_bug.cgi?id=200071 |
| https://trac.webkit.org/changeset/247766 |
| |
| 2019-07-23 Chris Dumez <cdumez@apple.com> |
| |
| Crash under WebKit:WTF::Detail::CallableWrapper<WebKit::ResourceLoadStatisticsMemoryStore::updateCookieBlocking(WTF::CompletionHandler<void ()>&&)::$_32::operator()()::'lambda'(), void>::call |
| https://bugs.webkit.org/show_bug.cgi?id=200071 |
| <rdar://problem/53335583> |
| |
| Reviewed by Brent Fulgham and Youenn Fablet. |
| |
| The WebResourceLoadStatisticsStore is a main thread object. In its destructor, it was dispatching |
| to the background queue to destroy the m_statisticsStore / m_persistentStorage data members, which |
| live on the background queue. It would then synchronously wait for the background queue to finish |
| destroying them. The idea was to guarantee that the ResourceLoadStatisticsMemoryStore and the |
| ResourceLoadStatisticsPersistentStorage would never outlive the WebResourceLoadStatisticsStore, |
| given that they keep a raw pointer back to the WebResourceLoadStatisticsStore (via m_store data |
| member). |
| |
| The issue is that *while* the WebResourceLoadStatisticsStore destructor is running on the main |
| thread, the background queue may be running code in ResourceLoadStatisticsMemoryStore or |
| ResourceLoadStatisticsPersistentStorage which refs the WebResourceLoadStatisticsStore, even |
| though its ref count has already reached 0. It is actually a common pattern in |
| ResourceLoadStatisticsMemoryStore to call RunLoop::main().dispatch() and ref their m_store in |
| the lambda, so that they can interact with the WebResourceLoadStatisticsStore. |
| |
| To address the issue, we now destroy m_statisticsStore / m_persistentStorage *before* the |
| WebResourceLoadStatisticsStore destructor runs. The NetworkSession destructor now calls |
| WebResourceLoadStatisticsStore::didDestroyNetworkSession() which takes care of destroying |
| m_statisticsStore / m_persistentStorage on the background queue, synchronously. The |
| WebResourceLoadStatisticsStore destructor will only run later, once all remaining references |
| to it are gone. |
| |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::~WebResourceLoadStatisticsStore): |
| (WebKit::WebResourceLoadStatisticsStore::didDestroyNetworkSession): |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h: |
| * NetworkProcess/NetworkSession.cpp: |
| (WebKit::NetworkSession::~NetworkSession): |
| |
| 2019-07-23 Alex Christensen <achristensen@webkit.org> |
| |
| Move javaScriptConfigurationDirectory SPI from _WKProcessPoolConfiguration to WKProcessPoolPrivate to make it runtime switchable |
| https://bugs.webkit.org/show_bug.cgi?id=200045 |
| |
| Reviewed by Mark Lam. |
| |
| This allows me to maintain the status quo in Safari. |
| |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| (API::ProcessPoolConfiguration::copy): |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _javaScriptConfigurationDirectory]): |
| (-[WKProcessPool _setJavaScriptConfigurationDirectory:]): |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: |
| (-[_WKProcessPoolConfiguration javaScriptConfigurationDirectory]): Deleted. |
| (-[_WKProcessPoolConfiguration setJavaScriptConfigurationDirectory:]): Deleted. |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::legacyWebsiteDataStoreConfiguration): |
| (WebKit::WebProcessPool::sendWebProcessDataStoreParameters): |
| * UIProcess/WebProcessPool.h: |
| |
| 2019-07-23 Russell Epstein <repstein@apple.com> |
| |
| Unreviewed, rolling out r247745. |
| |
| This broke API test |
| TestWebKitAPI.WKProcessPool.JavaScriptConfiguration as |
| indicated by EWS |
| |
| Reverted changeset: |
| |
| "Move javaScriptConfigurationDirectory SPI from |
| _WKProcessPoolConfiguration to WKProcessPoolPrivate to make it |
| runtime switchable" |
| https://bugs.webkit.org/show_bug.cgi?id=200045 |
| https://trac.webkit.org/changeset/247745 |
| |
| 2019-07-23 Chris Fleizach <cfleizach@apple.com> |
| |
| AX: CrashTracer: com.apple.WebKit.WebContent at WebKit: WebKit::WebSpeechSynthesisClient::speak |
| https://bugs.webkit.org/show_bug.cgi?id=199988 |
| |
| Reviewed by Per Arne Vollan. |
| |
| Improvements to WebSpeechSynthesis to avoid crashing and improve correctness. |
| - Reset and cancel speech jobs on page close or reload (otherwise the synthesizer keeps talking after your page is gone) |
| - Have a separate speech finish callback mechanism, use the start speaking callback when the synthesizer tells us. |
| - Move an assert on utterance state to only apply when we use the in process synthesizer. |
| |
| * UIProcess/Cocoa/WebPageProxyCocoa.mm: |
| (WebKit::WebPageProxy::didStartSpeaking): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::reload): |
| (WebKit::WebPageProxy::resetState): |
| (WebKit::WebPageProxy::resetSpeechSynthesizer): |
| (WebKit::WebPageProxy::speechSynthesisSetFinishedCallback): |
| (WebKit::WebPageProxy::speechSynthesisSpeak): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/WebCoreSupport/WebSpeechSynthesisClient.cpp: |
| (WebKit::WebSpeechSynthesisClient::speak): |
| |
| 2019-07-23 Chris Dumez <cdumez@apple.com> |
| |
| Get rid of unnecessary callback aggregators in WebResourceLoadStatisticsStore |
| https://bugs.webkit.org/show_bug.cgi?id=200042 |
| |
| Reviewed by Brent Fulgham. |
| |
| Only 1 asynchronous function is called so there is nothing to "aggregate". |
| |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::scheduleCookieBlockingUpdate): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleCookieBlockingUpdateForDomains): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleClearBlockingStateForDomains): |
| |
| 2019-07-23 Zalan Bujtas <zalan@apple.com> |
| |
| [iOS] Tapping the search field on a search results page on zillow.com shows and immediately dismisses the keyboard |
| https://bugs.webkit.org/show_bug.cgi?id=200044 |
| <rdar://problem/53103732> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * Shared/FocusedElementInformation.cpp: |
| (WebKit::FocusedElementInformation::encode const): |
| (WebKit::FocusedElementInformation::decode): |
| * Shared/FocusedElementInformation.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _zoomToFocusRect:selectionRect:insideFixed:fontSize:minimumScale:maximumScale:allowScaling:forceScroll:]): |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _elementDidBlur]): |
| (-[WKContentView _shouldAvoidScrollingWhenFocusedContentIsVisible]): |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::getFocusedElementInformation): |
| |
| 2019-07-23 Alex Christensen <achristensen@webkit.org> |
| |
| Move javaScriptConfigurationDirectory SPI from _WKProcessPoolConfiguration to WKProcessPoolPrivate to make it runtime switchable |
| https://bugs.webkit.org/show_bug.cgi?id=200045 |
| |
| Reviewed by Mark Lam. |
| |
| This allows me to maintain the status quo in Safari. |
| |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| (API::ProcessPoolConfiguration::copy): |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _javaScriptConfigurationDirectory]): |
| (-[WKProcessPool _setJavaScriptConfigurationDirectory:]): |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: |
| (-[_WKProcessPoolConfiguration javaScriptConfigurationDirectory]): Deleted. |
| (-[_WKProcessPoolConfiguration setJavaScriptConfigurationDirectory:]): Deleted. |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::legacyWebsiteDataStoreConfiguration): |
| (WebKit::WebProcessPool::sendWebProcessDataStoreParameters): |
| * UIProcess/WebProcessPool.h: |
| |
| 2019-07-24 Simon Fraser <simon.fraser@apple.com> |
| |
| [iOS WK2] A top fixed bar can flicker when scrolling with the keyboard up |
| https://bugs.webkit.org/show_bug.cgi?id=200105 |
| rdar://problem/52871975 |
| |
| Reviewed by Wenson Hsieh. |
| |
| ScrollingTreeFrameScrollingNode::layoutViewportForScrollPosition() computes a visual viewport |
| from the current scroll position and scrollableAreaSize(). This doesn't know anything about |
| the impact of keyboards on the visual viewport, so it computes a too-large visual viewport |
| when the keyboard is up, triggering incorrect manipulations of the layout viewport. This |
| leads to the top bar flashing to position 0 when it should be hidden off the top. |
| |
| Fix by feeding into the scrolling tree the height of the visual viewport which takes |
| FrameView::visualViewportOverrideRect() into account. This is stored on ScrollingStateFrameScrollingNode/ |
| ScrollingTreeFrameScrollingNode. |
| |
| * Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp: |
| (ArgumentCoder<ScrollingStateFrameScrollingNode>::encode): |
| (ArgumentCoder<ScrollingStateFrameScrollingNode>::decode): |
| |
| 2019-07-23 Alex Christensen <achristensen@webkit.org> |
| |
| Add SPI for setting media cache and key location on _WKWebsiteDataStoreConfiguration |
| https://bugs.webkit.org/show_bug.cgi?id=199972 |
| |
| Reviewed by Jer Noble. |
| |
| This is a step towards removing WebsiteDataStore::legacyDefaultDataStoreConfiguration |
| I added a unit test for the media cache location, |
| but the media key location can't reasonably be unit tested in an open source project. |
| |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _initWithConfiguration:]): |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h: |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm: |
| (-[_WKWebsiteDataStoreConfiguration mediaCacheDirectory]): |
| (-[_WKWebsiteDataStoreConfiguration setMediaCacheDirectory:]): |
| (-[_WKWebsiteDataStoreConfiguration mediaKeysStorageDirectory]): |
| (-[_WKWebsiteDataStoreConfiguration setMediaKeysStorageDirectory:]): |
| |
| 2019-07-23 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [macOS 10.15] Web process crashes when attempting to show the font panel via Font > Show Fonts |
| https://bugs.webkit.org/show_bug.cgi?id=200021 |
| <rdar://problem/53301325> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Always return false from canShowFontPanel in WebKit2. |
| |
| * WebProcess/WebCoreSupport/WebEditorClient.h: |
| |
| 2019-07-23 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Update OptionsGTK.cmake and NEWS for 2.25.3 release |
| |
| * gtk/NEWS: Add release notes for 2.25.3. |
| |
| 2019-07-23 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Emoji chooser is misplaced after scrolling |
| https://bugs.webkit.org/show_bug.cgi?id=199996 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Convert caret rectangle coordinates to root view. |
| |
| * WebProcess/WebPage/gtk/WebPageGtk.cpp: |
| (WebKit::WebPage::showEmojiPicker): |
| |
| 2019-07-22 Ross Kirsling <ross.kirsling@sony.com> |
| |
| Unreviewed non-unified build fix. |
| |
| * NetworkProcess/NetworkCORSPreflightChecker.h: |
| * NetworkProcess/NetworkLoadChecker.h: |
| * UIProcess/API/C/WKContext.cpp: |
| * UIProcess/API/C/WKPageConfigurationRef.cpp: |
| * UIProcess/Downloads/DownloadProxy.cpp: |
| * UIProcess/WebPageInjectedBundleClient.cpp: |
| * UIProcess/WebPreferences.cpp: |
| * WebProcess/Network/WebSocketChannel.cpp: |
| (WebKit::PendingMessage::PendingMessage): |
| |
| 2019-07-22 Megan Gardner <megan_gardner@apple.com> |
| |
| Remove Staging for scrolling bug |
| https://bugs.webkit.org/show_bug.cgi?id=199894 |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKUIWKTextInteractionAssistant scrollSelectionToVisible]): Deleted. |
| |
| 2019-07-22 Brent Fulgham <bfulgham@apple.com> |
| |
| Correct web audio-related crash in seed reports |
| https://bugs.webkit.org/show_bug.cgi?id=200009 |
| <rdar://problem/51565203> |
| |
| Reviewed by Per Arne Vollan. |
| |
| Revise the iOS sandbox to allow the WebContent process to communicate with |
| the 'com.apple.coremedia.audioprocessingtap.xpc' service, which is needed by |
| some types of WebAudio. |
| |
| * WebProcess/com.apple.WebKit.WebContent.sb.in: |
| |
| 2019-07-22 Dean Jackson <dino@apple.com> |
| |
| WebKit SPI fix for [ClickyOrb] Audio continues playing after dismissing a video preview in Safari |
| https://bugs.webkit.org/show_bug.cgi?id=200011 |
| <rdar://problem/53409457> |
| |
| Reviewed by Tim Horton. |
| |
| Don't check for the SPI @selector(_webView:contextMenuDidEndForElement:) |
| on the WKUIDelegate so that clients that got caught implementing the |
| SPI before moving to the real API can still clean-up state. In other words, |
| don't force a client that only implements that method to move completely |
| to the new API. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (needsDeprecatedPreviewAPI): |
| |
| 2019-07-22 Jer Noble <jer.noble@apple.com> |
| |
| REGRESSION(rUnknown): YouTube playback pauses when switching to a new tab |
| https://bugs.webkit.org/show_bug.cgi?id=199971 |
| <rdar://problem/51951218> |
| |
| Reviewed by Alex Christensen. |
| |
| When we get a message notifying us that the view has been removed from the window, we unconditionally |
| ask the fullscreen manager to exit fullscreen, which has the side effect (on iOS) of pausing the video |
| unconditionally. Only ask the fullscreen manager to exit fullscreen if there is actually a video in |
| fullscreen mode. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::viewDidLeaveWindow): |
| |
| 2019-07-22 Youenn Fablet <youenn@apple.com> |
| |
| Make sure to unref captured lambda variables given to _strictTrustEvaluate in the main thread |
| https://bugs.webkit.org/show_bug.cgi?id=199948 |
| |
| Reviewed by Alex Christensen. |
| |
| Use a weak pointer instead of a Ref for the NetworkSession. |
| Add a null check in processServerTrustEvaluation for extra safety if we decide to remove the data task NetworkSession ref. |
| Make sure to move the NetworkDataTask ref in the completion handler so that the unrefing is done in the main thread. |
| |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (processServerTrustEvaluation): |
| (-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]): |
| |
| 2019-07-22 Alex Christensen <achristensen@webkit.org> |
| |
| Don't always look for a JSC configuration file after r247685 |
| https://bugs.webkit.org/show_bug.cgi?id=199917 |
| |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| (API::ProcessPoolConfiguration::createWithWebsiteDataStoreConfiguration): |
| (API::ProcessPoolConfiguration::ProcessPoolConfiguration): |
| ProcessPoolConfiguration's javaScriptConfigurationDirectory wasn't used before r247685, |
| which made it always look for a file with 'JavaScriptCoreDebug' in its name. I had assumed |
| m_javaScriptConfigurationDirectory would default to a null string, but it was defaulting to |
| defaultJavaScriptConfigurationDirectory. Make it a null string instead. |
| |
| 2019-07-22 Simon Fraser <simon.fraser@apple.com> |
| |
| Make some constructors explicit |
| https://bugs.webkit.org/show_bug.cgi?id=199981 |
| |
| Reviewed by Daniel Bates. |
| |
| Make explicit public constructors of objects that take POD or String& arguments, |
| to reduce the changes of the compiler doing implicit conversions. |
| |
| * Platform/Module.h: |
| * WebProcess/WebPage/WebInspector.cpp: |
| (WebKit::WebInspector::openInNewTab): |
| |
| 2019-07-22 Daniel Bates <dabates@apple.com> |
| |
| [iOS] REGRESSION (r241734): Autocorrection highlight should hide when field becomes defocused |
| https://bugs.webkit.org/show_bug.cgi?id=199807 |
| <rdar://problem/52760259> |
| |
| Fix a bad merge of r247653. svn-apply was way too forgiving. The original patch touched |
| the non-existent function, -_didCommitLoadForMainFrame in WKContentViewInteraction.mm. Because |
| that didn't exist, svn-apply patched up -clearSelection. |
| |
| * UIProcess/ios/WKContentView.h: |
| * UIProcess/ios/WKContentView.mm: |
| (-[WKContentView _didCommitLoadForMainFrame]): Deleted; moved to WKContentViewInteraction.mm |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView clearSelection]): Remove code that should be in -_didCommitLoadForMainFrame. |
| (-[WKContentView _didCommitLoadForMainFrame]): Moved from WKContentView.mm |
| |
| 2019-07-22 Alex Christensen <achristensen@webkit.org> |
| |
| Add SPI to _WKWebsiteDataStoreConfiguration for configuring application cache storage location |
| https://bugs.webkit.org/show_bug.cgi?id=199954 |
| |
| Reviewed by Geoff Garen. |
| |
| This is a step towards removing WebsiteDataStore::legacyDefaultDataStoreConfiguration |
| Covered by a new API test. |
| |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _initWithConfiguration:]): |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h: |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm: |
| (-[_WKWebsiteDataStoreConfiguration applicationCacheDirectory]): |
| (-[_WKWebsiteDataStoreConfiguration setApplicationCacheDirectory:]): |
| (-[_WKWebsiteDataStoreConfiguration applicationCacheFlatFileSubdirectoryName]): |
| (-[_WKWebsiteDataStoreConfiguration setApplicationCacheFlatFileSubdirectoryName:]): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::sendWebProcessDataStoreParameters): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| (WebKit::WebsiteDataStore::applicationCacheFlatFileSubdirectoryName const): |
| |
| 2019-07-22 Alex Christensen <achristensen@webkit.org> |
| |
| Add SPI _WKProcessPoolConfiguration.javaScriptConfigurationDirectory |
| https://bugs.webkit.org/show_bug.cgi?id=199917 |
| |
| Reviewed by Sam Weinig. |
| |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: |
| (-[_WKProcessPoolConfiguration javaScriptConfigurationDirectory]): |
| (-[_WKProcessPoolConfiguration setJavaScriptConfigurationDirectory:]): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::sendWebProcessDataStoreParameters): |
| |
| 2019-07-22 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [SOUP] WebSockets: use new api to send text messages |
| https://bugs.webkit.org/show_bug.cgi?id=199936 |
| |
| Reviewed by Michael Catanzaro. |
| |
| New API allows to include null character in text messages. |
| |
| * NetworkProcess/soup/WebSocketTaskSoup.cpp: |
| (WebKit::WebSocketTask::didReceiveMessageCallback): Pass data size to String::fromUTF8(). |
| (WebKit::WebSocketTask::sendString): Use soup_websocket_connection_send_message() instead of |
| soup_websocket_connection_send_text() when available. Also use |
| StrictConversionReplacingUnpairedSurrogatesWithFFFD options when converting to UTF-8. |
| |
| 2019-07-21 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS] [WebKit2] Add limited support for -isPosition:atBoundary:inDirection: in WKContentView |
| https://bugs.webkit.org/show_bug.cgi?id=199993 |
| <rdar://problem/49523528> |
| |
| Reviewed by Beth Dakin. |
| |
| Add support for -isPosition:atBoundary:inDirection:, only in the cases where the given position is the start or |
| and position and the given granularity is UITextGranularityParagraph. |
| |
| Test: EditorStateTests.ParagraphBoundary |
| |
| * Shared/EditorState.cpp: |
| (WebKit::EditorState::PostLayoutData::encode const): |
| (WebKit::EditorState::PostLayoutData::decode): |
| * Shared/EditorState.h: |
| |
| Add a couple of bits to indicate whether the selection start or end positions are at paragraph boundaries. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView isPosition:atBoundary:inDirection:]): |
| |
| Implement this to return selectionStartIsAtParagraphBoundary or selectionEndIsAtParagraphBoundary. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::platformEditorState const): |
| |
| 2019-07-20 Chris Dumez <cdumez@apple.com> |
| |
| Speed up HashTable decoding by reserving capacity and avoiding rehashing |
| https://bugs.webkit.org/show_bug.cgi?id=199982 |
| |
| Reviewed by Saam Barati. |
| |
| Use HashMap::reserveInitialCapacity() in the HashMap IPC decoder for |
| performance. I measured a ~35% improvement when decoding a very large |
| HashMap of Strings (~160k entries) in the context of the |
| StorageManager::GetValues IPC. |
| |
| * Platform/IPC/ArgumentCoders.h: |
| * Shared/API/c/WKDictionary.cpp: |
| (WKDictionaryCreate): |
| |
| 2019-07-20 Chris Dumez <cdumez@apple.com> |
| |
| Micro-optimize HashMap & String IPC decoding |
| https://bugs.webkit.org/show_bug.cgi?id=199967 |
| |
| Reviewed by Geoffrey Garen. |
| |
| The legacy HashMap decoder (returning a boolean) was failing to WTFMove() |
| the key & value when calling HashMap::add(). The modern decoder (returning |
| an Optional) was properly using WTFMove(). Rewrite the legacy HashMap decoder |
| to call the modern one to reduce code duplication and to get this optimization. |
| |
| Also, encode HashMap::size() as a uint32_t instead of a uint64_t since |
| HashMap::size() returns an 'unsigned int' type. Finally, update the modern |
| decoder to WTFMove(hashMap) when returning. Because the function returns an |
| Optional<HashMap> and not a HashMap, I do not believe we get return value |
| optimization (RVO). |
| |
| Do similar changes to String IPC coders. |
| |
| * Platform/IPC/ArgumentCoders.cpp: |
| (IPC::decodeStringText): |
| (IPC::ArgumentCoder<String>::decode): |
| * Platform/IPC/ArgumentCoders.h: |
| |
| 2019-07-20 Alexander Mikhaylenko <exalm7659@gmail.com> |
| |
| REGRESSION(r246033/r246496): [GTK] Kinetic scrolling doesn't work |
| https://bugs.webkit.org/show_bug.cgi?id=199322 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Check ENABLE(KINETIC_SCROLLING) instead of ENABLE(ASYNC_SCROLLING) when setting wheel event phase and momentum phase. |
| |
| * Shared/WebEventConversion.cpp: |
| (WebKit::WebKit2PlatformWheelEvent::WebKit2PlatformWheelEvent): |
| |
| 2019-07-20 Zalan Bujtas <zalan@apple.com> |
| |
| [Text autosizing] Do not nuke the style on dynamicViewportSizeUpdate |
| https://bugs.webkit.org/show_bug.cgi?id=199718 |
| <rdar://problem/53344961> |
| |
| Reviewed by Simon Fraser. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_textAutoSizingAdjustmentTimer): |
| (WebKit::WebPage::close): |
| (WebKit::WebPage::didCommitLoad): |
| (WebKit::WebPage::textAutoSizingAdjustmentTimerFired): |
| (WebKit::m_shrinkToFitContentTimer): Deleted. |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::dynamicViewportSizeUpdate): |
| (WebKit::WebPage::resetIdempotentTextAutosizingIfNeeded): |
| (WebKit::WebPage::resetTextAutosizing): |
| (WebKit::WebPage::viewportConfigurationChanged): |
| |
| 2019-07-19 Youenn Fablet <youenn@apple.com> |
| |
| Remote WebInspector should enable mock capture devices in UIProcess if doing it in WebProcess |
| https://bugs.webkit.org/show_bug.cgi?id=199924 |
| <rdar://problem/50552067> |
| |
| Reviewed by Devin Rousso. |
| |
| Add IPC plumbery to pass inspector override value for mock capture devices. |
| Add an override in UserMediaPermissionRequestManagerProxy so that the value stays in sync with web inspector. |
| The override will be removed when web inspector goes away. |
| |
| * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: |
| (WebKit::UserMediaPermissionRequestManagerProxy::syncWithWebCorePrefs const): |
| * UIProcess/UserMediaPermissionRequestManagerProxy.h: |
| (WebKit::UserMediaPermissionRequestManagerProxy::setMockCaptureDevicesEnabledOverride): |
| * UIProcess/WebInspectorProxy.cpp: |
| (WebKit::WebInspectorProxy::setMockCaptureDevicesEnabled): |
| * UIProcess/WebInspectorProxy.h: |
| * UIProcess/WebInspectorProxy.messages.in: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::setMockCaptureDevicesEnabledOverride): |
| * UIProcess/WebPageProxy.h: |
| * WebProcess/WebCoreSupport/WebInspectorClient.cpp: |
| (WebKit::WebInspectorClient::setMockCaptureDevicesEnabled): |
| * WebProcess/WebCoreSupport/WebInspectorClient.h: |
| * WebProcess/WebPage/WebInspector.cpp: |
| (WebKit::WebInspector::setMockCaptureDevicesEnabled): |
| * WebProcess/WebPage/WebInspector.h: |
| |
| 2019-07-19 Tim Horton <timothy_horton@apple.com> |
| |
| Web Content process gets stuck suspended after navigating away from a system preview |
| https://bugs.webkit.org/show_bug.cgi?id=199965 |
| <rdar://problem/53109004> |
| |
| Reviewed by Dean Jackson. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _isBackground]): |
| * UIProcess/ios/WKSystemPreviewView.h: |
| * UIProcess/ios/WKSystemPreviewView.mm: |
| (-[WKSystemPreviewView web_initWithFrame:webView:mimeType:]): |
| (-[WKSystemPreviewView web_isBackground]): |
| Apply the fix from r193481 to WKSystemPreviewView as well, having it |
| become a WKApplicationStateTrackingView and plumbing that through |
| to our is-background machinery. |
| |
| We really, really should instead have WKWebView itself be the application |
| state tracking view, but that is a bigger change (and has some implications |
| for full-screen video and whatnot). |
| |
| 2019-07-19 Dean Jackson <dino@apple.com> |
| |
| Provide correct names for UIContextMenuInteraction API replacements |
| https://bugs.webkit.org/show_bug.cgi?id=199966 |
| |
| Reviewed by Tim Horton. |
| |
| We had some old incorrect names for replacements to SPI. While |
| here, I reordered and expanded the documentation for the new API. |
| |
| * UIProcess/API/Cocoa/WKUIDelegate.h: |
| * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: |
| |
| 2019-07-19 Daniel Bates <dabates@apple.com> |
| |
| [iOS] REGRESSION (r241734): Autocorrection highlight should hide when field becomes defocused |
| https://bugs.webkit.org/show_bug.cgi?id=199807 |
| <rdar://problem/52760259> |
| |
| Reviewed by Wenson Hsieh. |
| |
| Sometimes the correction highlight may not hide when defocusing an editable field. |
| This occurs only when a person pressed a key in a non-editable element beforehand. |
| We need to reset some state to force a re-computation of whether a keyboard is still |
| needed whenever an element is defocused (blurred in web paralance). |
| |
| Following r241734 both editable and non-editable key events are handled using the same |
| code path. This is accomplished by having WKContentView's -_requiresKeyboardWhenFirstResponder |
| return YES to tell UIKit it needs a keyboard even when there is no editable element focused. |
| As a result UIKit retains all the keyboard state, including keeping the correction highlight |
| visible. Prior to r241734 WKContentView's -_requiresKeyboardWhenFirstResponder would not return |
| YES when a non-editable element was focused and hence UIKit would tear down the keyboard |
| and its state, including the correction highlight. In r245154, we made keyboard instantiate |
| for a focused non-editable element lazy as a performance optimization. Although r245154 |
| kept the r241734 behavior (just made it lazy) it re-wrote the code in such a way that we |
| can utilize it as a hook to fix this bug. In particular, we now clear the bit about a |
| seen keydown in a non-editable element whenever we are defocusing an editable element |
| before we reload the input views, as part of hiding the keyboard. On the reload, UIKit |
| will call -_requiresKeyboardWhenFirstResponder, WebKit will respond with NO now that |
| a non-editable element is focused and hence UIKit will do what it did pre r241734: tear |
| down the keyboard. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _didCommitLoadForMainFrame]): Clear the bit about a seen keydown here |
| so that we don't keep the keyboard around on a new page commit. This includes the case |
| when the same page is reloaded. There is not much advantage to keeping the keyboard |
| around across reloads and not doing so will reduce our memory footprint. |
| (-[WKContentView _elementDidBlur]): Clear the same bit as well when defocusing an |
| editable element. This will cause UIKit to tear down the keyboard on reload removing |
| the correction highlight. |
| |
| 2019-07-19 Dean Jackson <dino@apple.com> |
| |
| Add a menu item to toggle between showing and hiding link previews |
| https://bugs.webkit.org/show_bug.cgi?id=199940 |
| <rdar://problem/53032288> |
| |
| Reviewed by Beth Dakin. |
| |
| Add a new _WKElementAction that toggles the display of link previews |
| in context menus, and add it to the default set of actions we provide |
| for links. |
| |
| When a UIAction is created from this new _WKElementAction type, |
| it can be identified by WKElementActionTypeToggleShowLinkPreviewsIdentifier. |
| This allows us to check a UIMenu provided by a delegate to make sure |
| that they have provided the toggle menu item. If they haven't, we add it |
| back. |
| |
| The preference for showing links is moved from kCFPreferencesAnyApplication |
| to standard user defaults, so that it can be set no matter what the |
| hosting application is. |
| |
| * UIProcess/API/Cocoa/_WKElementAction.h: New action type. |
| * UIProcess/API/Cocoa/_WKElementAction.mm: |
| (+[_WKElementAction _elementActionWithType:customTitle:assistant:]): |
| (+[_WKElementAction imageForElementActionType:]): Use eye.fill for now. |
| I'll need to check with HI to see if there is a more appropriate glyph. |
| (elementActionTypeToUIActionIdentifier): |
| (uiActionIdentifierToElementActionType): |
| |
| * UIProcess/ios/WKActionSheetAssistant.mm: Add the toggle action to |
| the default set. |
| (-[WKActionSheetAssistant defaultActionsForLinkSheet:]): |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _registerPreview]): No need to listen for CFPreferences |
| notifications any more. |
| (-[WKContentView _unregisterPreview]): |
| (menuWithShowLinkPreviewAction): New method that adds the UIAction |
| for toggling previews to a UIMenu if necessary. |
| (-[WKContentView assignLegacyDataForContextMenuInteraction]): |
| (-[WKContentView _contextMenuInteraction:configurationForMenuAtLocation:completion:]): |
| (-[WKContentView _showLinkPreviewsPreferenceChanged:]): Deleted. |
| (titleForMenu): Deleted. URL text previews will be provided separately. |
| |
| 2019-07-19 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS] Entering 2FA code on idmsa.apple.com causes unexpected scrolling |
| https://bugs.webkit.org/show_bug.cgi?id=199949 |
| <rdar://problem/49944428> |
| |
| Reviewed by Tim Horton and Megan Gardner. |
| |
| Since at least iOS 11, -[UIScrollView _adjustForAutomaticKeyboardInfo:animated:lastAdjustment:] adjusts the |
| scroll view's content offset to account for updated keyboard bottom insets. In WebKit, we call this method |
| whenever keyboard geometry changes (based on system notifications, such as UIKeyboardWillHideNotification). |
| |
| When switching between focused form fields, we hide the keyboard for the previous focused element prior to |
| showing the keyboard for the newly focused element. This means that we will actually dismiss the keyboard in the |
| process of changing the focused element, which posts keyboard geometry notifications, which causes us to scroll |
| WKScrollView. |
| |
| On iOS 12, this would be immediately followed by re-presenting the keyboard for the new focused element, which |
| causes us to adjust the scroll view back to its original position right away; this means that the scrolling that |
| happens as a result of adjusting for the keyboard insets after dismissal doesn't result in any visible change. |
| |
| However, on iOS 13, after r239441 and r244546, we now defer scrolling and zooming to reveal the focused element |
| until later; this means the scrolling that happens as a result of initially dismissing the keyboard now causes a |
| consistent jump in the scroll view's scroll position (whereas on iOS 12, this only happens rarely, and the jump |
| is also less noticeable). |
| |
| To mitigate this, we detect the case where we're moving focus from one element to another; if we're about to |
| show a keyboard for the newly focused element, then we should avoid scrolling as a result of the impending |
| "keyboard will hide" notification. |
| |
| Test: fast/forms/ios/no-scrolling-when-moving-focus-between-adjacent-fields.html |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _keyboardChangedWithInfo:adjustScrollView:]): |
| (-[WKWebView _keyboardWillHide:]): |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (shouldShowKeyboardForElement): |
| |
| Add a helper to determine whether we're focusing an element which presents a "keyboard" (i.e. a UIKit input |
| view, as opposed to modal select pickers, modal date pickers, or fields with inputmode="none", for which we |
| don't show an input view). |
| |
| (-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:activityStateChanges:userObject:]): |
| (-[WKContentView shouldIgnoreKeyboardWillHideNotification]): |
| |
| 2019-07-18 Alex Christensen <achristensen@webkit.org> |
| |
| Fix warning when importing WebKit in Swift |
| https://bugs.webkit.org/show_bug.cgi?id=199914 |
| <rdar://problem/52854930> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/API/Cocoa/NSAttributedString.h: |
| Declare NSAttributedString and update a swift name. |
| This fix was proposed by Argyrios Kyrtzidis. |
| |
| 2019-07-18 Alex Christensen <achristensen@webkit.org> |
| |
| Add and test _WKWebsiteDataStoreConfiguration.deviceIdHashSaltsStorageDirectory SPI |
| https://bugs.webkit.org/show_bug.cgi?id=199923 |
| |
| Reviewed by Youenn Fablet. |
| |
| This is a step towards us getting rid of WebsiteDataStore::legacyDefaultDataStoreConfiguration |
| |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _initWithConfiguration:]): |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h: |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm: |
| (-[_WKWebsiteDataStoreConfiguration deviceIdHashSaltsStorageDirectory]): |
| (-[_WKWebsiteDataStoreConfiguration setDeviceIdHashSaltsStorageDirectory:]): |
| |
| 2019-07-18 Alex Christensen <achristensen@webkit.org> |
| |
| Move NetworkCache ownership from NetworkProcess to NetworkSession |
| https://bugs.webkit.org/show_bug.cgi?id=199817 |
| |
| Reviewed by Geoff Garen. |
| |
| I also added SPI to set the path of the NetworkCache with an API test. |
| If this new SPI is not used, it falls back to getting the cache location from the NetworkProcess to maintain compatibility. |
| We still get options, cache size, and cache model from the NetworkProcess. Those should be migrated with new SPI later. |
| Clearing the cache and other operations now iterate the NetworkSessions instead of assuming there is only one cache. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::fetchWebsiteData): |
| (WebKit::NetworkProcess::deleteWebsiteDataForOrigins): |
| (WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains): |
| (WebKit::NetworkProcess::registrableDomainsWithWebsiteData): |
| (WebKit::NetworkProcess::setCacheModel): |
| * NetworkProcess/NetworkProcess.h: |
| (WebKit::NetworkProcess::diskCacheDirectory const): |
| (WebKit::NetworkProcess::cacheOptions const): |
| (WebKit::NetworkProcess::cache): Deleted. |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::m_shouldCaptureExtraNetworkLoadMetrics): |
| * NetworkProcess/NetworkSession.cpp: |
| (WebKit::NetworkSession::NetworkSession): |
| * NetworkProcess/NetworkSession.h: |
| (WebKit::NetworkSession::cache): |
| * NetworkProcess/NetworkSessionCreationParameters.cpp: |
| (WebKit::NetworkSessionCreationParameters::encode const): |
| (WebKit::NetworkSessionCreationParameters::decode): |
| * NetworkProcess/NetworkSessionCreationParameters.h: |
| * NetworkProcess/cache/NetworkCache.cpp: |
| (WebKit::NetworkCache::Cache::open): |
| (WebKit::NetworkCache::Cache::Cache): |
| * NetworkProcess/cache/NetworkCache.h: |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa): |
| (WebKit::NetworkProcess::clearDiskCache): |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| * NetworkProcess/curl/NetworkSessionCurl.cpp: |
| (WebKit::NetworkSessionCurl::NetworkSessionCurl): |
| * NetworkProcess/soup/NetworkSessionSoup.cpp: |
| (WebKit::NetworkSessionSoup::NetworkSessionSoup): |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _initWithConfiguration:]): |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h: |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm: |
| (-[_WKWebsiteDataStoreConfiguration networkCacheDirectory]): |
| (-[_WKWebsiteDataStoreConfiguration setNetworkCacheDirectory:]): |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::resolveDirectoriesIfNecessary): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| (WebKit::WebsiteDataStore::resolvedNetworkCacheDirectory const): |
| |
| 2019-07-18 Chris Dumez <cdumez@apple.com> |
| |
| Regression(r247486) Multiple Layout Tests in http/tests/cache/* are crashing on iOS Debug WK2 |
| https://bugs.webkit.org/show_bug.cgi?id=199892 |
| <rdar://problem/53230217> |
| |
| Reviewed by Geoffrey Garen. |
| |
| The StorageManager was unregistering itself as a WorkQueueMessageReceiver on a given IPC |
| connection too early. As a result, we would sometimes receive a 'StorageManager:DestroyStorageMap' |
| IPC in NetworkConnectionToWebProcess::didReceiveMessage() with nobody to process it, which would |
| trigger an assertion. To address the issue, we stop unregistering the StorageManager as a |
| WorkQueueMessageReceiver inside removeAllowedSessionStorageNamespaceConnection(). Instead, we |
| let the logic inside processDidCloseConnection() take care of it once the connection closes. |
| |
| * NetworkProcess/WebStorage/StorageManager.cpp: |
| (WebKit::StorageManager::removeAllowedSessionStorageNamespaceConnection): |
| (WebKit::StorageManager::processDidCloseConnection): |
| * NetworkProcess/WebStorage/StorageManager.h: |
| |
| 2019-07-18 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Crash in webkitWebViewBaseRenderHostFileDescriptor |
| https://bugs.webkit.org/show_bug.cgi?id=199402 |
| |
| Reviewed by Michael Catanzaro. |
| |
| There are two problems here: |
| |
| - We need to ensure that the checks we do in HardwareAccelerationManager to disable AC mode are the same |
| as the ones done in AcceleratedBackingStore create() methods. This is not the case for WPE renderer. |
| - Some of the places where accelerateBackingStore is used, can be called even if AC mode is disabled, so we |
| need to null-check there before using the backing store. |
| |
| * UIProcess/API/gtk/WebKitWebViewBase.cpp: |
| (webkitWebViewBaseDraw): Add an assert to ensure accelerateBackingStore is not nullptr here. |
| (webkitWebViewBaseEnterAcceleratedCompositingMode): Ditto. |
| (webkitWebViewBaseUpdateAcceleratedCompositingMode): Ditto. |
| (webkitWebViewBaseExitAcceleratedCompositingMode): Ditto. |
| (webkitWebViewBaseMakeGLContextCurrent): Ditto. |
| (webkitWebViewBaseDidRelaunchWebProcess): Null-check accelerateBackingStore before using it. |
| (webkitWebViewBasePageClosed): Ditto. |
| (webkitWebViewBaseRenderHostFileDescriptor): Ditto. |
| * UIProcess/gtk/AcceleratedBackingStore.cpp: |
| (WebKit::AcceleratedBackingStore::checkRequirements): Call AcceleratedBackingStoreWayland::checkRequirements() |
| or AcceleratedBackingStoreX11::checkRequirements() depending on the current display. |
| (WebKit::AcceleratedBackingStore::create): Return early if AC mode is disabled in HardwareAccelerationManager. |
| * UIProcess/gtk/AcceleratedBackingStore.h: |
| * UIProcess/gtk/AcceleratedBackingStoreWayland.cpp: |
| (WebKit::AcceleratedBackingStoreWayland::checkRequirements): Check requirements for hardware acceleration in Wayland. |
| (WebKit::AcceleratedBackingStoreWayland::create): Assert that requirements are present. |
| * UIProcess/gtk/AcceleratedBackingStoreWayland.h: |
| * UIProcess/gtk/AcceleratedBackingStoreX11.cpp: |
| (WebKit::AcceleratedBackingStoreX11::checkRequirements): Check requirements for hardware acceleration in X11. |
| (WebKit::AcceleratedBackingStoreX11::create): Assert that requirements are present. |
| * UIProcess/gtk/AcceleratedBackingStoreX11.h: |
| * UIProcess/gtk/HardwareAccelerationManager.cpp: |
| (WebKit::HardwareAccelerationManager::HardwareAccelerationManager): Use |
| AcceleratedBackingStore::checkRequirements() to decide whether to disable AC mode. |
| |
| 2019-07-17 Megan Gardner <megan_gardner@apple.com> |
| |
| Early Out of positionInfomation check if possible |
| https://bugs.webkit.org/show_bug.cgi?id=199885 |
| <rdar://problem/53229413> |
| |
| This is an early-out check that happens after most of the work is done. |
| Move it to happen before we make all these calls, if in the end, we will not use the information. |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView textInteractionGesture:shouldBeginAtPoint:]): |
| |
| 2019-07-17 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, add debug logging to help diagnose flaky crashes on the bots. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::didReceiveMessage): |
| |
| 2019-07-17 Tim Horton <timothy_horton@apple.com> |
| |
| [macCatalyst] Unable to interact with YouTube video while it's playing |
| https://bugs.webkit.org/show_bug.cgi?id=199893 |
| <rdar://problem/51871151> |
| |
| Reviewed by Simon Fraser. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm: |
| (-[WKRemoteView initWithFrame:contextID:]): |
| (-[WKUIRemoteView initWithFrame:pid:contextID:]): |
| Disable remote context hit-testing for WKUIRemoteView just like we |
| already do for WKRemoteView. |
| |
| 2019-07-17 Chris Dumez <cdumez@apple.com> |
| |
| Prewarm local storage in the NetworkProcess to reduce WebContent process hangs |
| https://bugs.webkit.org/show_bug.cgi?id=199879 |
| <rdar://problem/53217757> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * NetworkProcess/WebStorage/StorageManager.cpp: |
| (WebKit::StorageManager::prewarm): |
| (WebKit::StorageManager::getValues): |
| * NetworkProcess/WebStorage/StorageManager.h: |
| * NetworkProcess/WebStorage/StorageManager.messages.in: |
| * WebProcess/WebStorage/StorageAreaImpl.cpp: |
| (WebKit::StorageAreaImpl::prewarm): |
| * WebProcess/WebStorage/StorageAreaImpl.h: |
| * WebProcess/WebStorage/StorageAreaMap.cpp: |
| (WebKit::StorageAreaMap::loadValuesIfNeeded): |
| (WebKit::StorageAreaMap::prewarm): |
| * WebProcess/WebStorage/StorageAreaMap.h: |
| |
| 2019-07-19 Simon Fraser <simon.fraser@apple.com> |
| |
| [iOS WK2] Allow scrolling interaction on frames and oveflow scroll even when the main frame is rubber-banding |
| https://bugs.webkit.org/show_bug.cgi?id=199963 |
| rdar://problem/52897797 |
| |
| Reviewed by Tim Horton. |
| |
| Adopt UIKit SPI to allow for scrolling of inner UIScrollViews when the outer one is still rubber-banding. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| * UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm: |
| (WebKit::ScrollingTreeScrollingNodeDelegateIOS::commitStateAfterChildren): |
| |
| 2019-07-17 Megan Gardner <megan_gardner@apple.com> |
| |
| Set WordIsNearTap flag, was not being set at all before |
| https://bugs.webkit.org/show_bug.cgi?id=199880 |
| |
| Reviewed by Wenson Hsieh. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::selectWithGesture): |
| |
| 2019-07-17 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Provide a NSURL cateogry to tell AppSSO Kerberos URLs |
| https://bugs.webkit.org/show_bug.cgi?id=199887 |
| <rdar://problem/52323161> |
| |
| Reviewed by Brent Fulgham. |
| |
| * UIProcess/Cocoa/SOAuthorization/SOAuthorizationNSURLExtras.h: |
| * UIProcess/Cocoa/SOAuthorization/SOAuthorizationNSURLExtras.mm: |
| (+[NSURL _web_willPerformSOKerberosAuthorizationWithURL:]): |
| |
| 2019-07-17 Antoine Quint <graouts@apple.com> |
| |
| Disable Pointer Events prior to watchOS 6 |
| https://bugs.webkit.org/show_bug.cgi?id=199890 |
| <rdar://problem/53206113> |
| |
| Reviewed by Dean Jackson. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2019-07-17 Daniel Bates <dabates@apple.com> |
| |
| Typing into a cell in a Google Sheet lags behind by one character |
| https://bugs.webkit.org/show_bug.cgi?id=199587 |
| <rdar://problem/51616845> |
| |
| Reviewed by Brent Fulgham. |
| |
| Remove all timers from the holding tank on text insertion or deletion (represented as an |
| editing command). Timers that were in the holding tank never stopped ticking and will now |
| be able to execute their action. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::executeEditingCommand): |
| (WebKit::WebPage::insertTextAsync): |
| (WebKit::WebPage::setCompositionAsync): |
| (WebKit::WebPage::confirmCompositionAsync): |
| Call platformWillPerformEditingCommand(). |
| |
| * WebProcess/WebPage/WebPage.h: |
| (WebKit::WebPage::platformWillPerformEditingCommand): Added. |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::platformWillPerformEditingCommand): Remove all the timers from the holding |
| tank if we have a holding tank. |
| |
| 2019-07-17 Darin Adler <darin@apple.com> |
| |
| No need for isURLAllowed function in Frame |
| https://bugs.webkit.org/show_bug.cgi?id=120266 |
| |
| Reviewed by Alex Christensen. |
| |
| * WebProcess/Automation/WebAutomationSessionProxy.cpp: |
| (WebKit::WebAutomationSessionProxy::resolveChildFrameWithNodeHandle): |
| Use is<HTMLFrameElementBase> instead of isFrameElementBase. |
| |
| 2019-07-17 Alex Christensen <achristensen@webkit.org> |
| |
| Add a runtime-disabled dialog element skeleton |
| https://bugs.webkit.org/show_bug.cgi?id=199839 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetDialogElementEnabled): |
| (WKPreferencesGetDialogElementEnabled): |
| * UIProcess/API/C/WKPreferencesRefPrivate.h: |
| Add SPI to enable the dialog element for tests. |
| |
| 2019-07-17 Ryosuke Niwa <rniwa@webkit.org> |
| |
| [iOS] Option + Up or Down Arrow key doesn’t move cursor past paragraph boundaries in WebKit2 |
| https://bugs.webkit.org/show_bug.cgi?id=199851 |
| |
| Reviewed by Wenson Hsieh. |
| |
| The bug was caused by the difference in the way AppKit and UIKit responds to Option + Up / Down. |
| |
| On macOS, AppKit sends moveForward before sending moveToStartOfParagraph and moveBackward |
| before sending moveToEndOfParagraph. As a result, when Option + Down is pressed when we are at |
| the end of a line, we would first move to the beginning of the next line (i.e. after the line break) |
| before moving or extending selection with the paragraph boundary granurality. |
| |
| On iOS, UIKit only calls _moveToStartOfParagraph without moving forward by a character. As a result, |
| moving forward by the paragraph boundary granurality immediately stops when we're starting at the |
| end of a line when Option + Down is pressed. Option + Up case is similar. |
| |
| Fix the bug on iOS by emulating what happens on macOS. Namely, move the selection forward or backward |
| by the character granurality before moving by the paragraph boundary granurality. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _moveToStartOfParagraph:withHistory:]): |
| (-[WKContentView _moveToEndOfParagraph:withHistory:]): |
| |
| 2019-07-17 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Fix GTK and WPE debug build after r247508 |
| |
| * UIProcess/API/glib/WebKitWebResource.cpp: |
| (webkitWebResourceCreate): Remove invalid assert. |
| |
| 2019-07-17 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [WPE][GTK] UI process crash due to NULL dereference in webkitWebViewResourceLoadStarted() |
| https://bugs.webkit.org/show_bug.cgi?id=199621 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Null-check frame received in injected bundle message to ensure the frame hasn't been destroyed. |
| |
| * UIProcess/API/glib/WebKitInjectedBundleClient.cpp: |
| * UIProcess/API/glib/WebKitWebResource.cpp: |
| (webkitWebResourceCreate): Receive a reference to the frame instead of a pointer. |
| * UIProcess/API/glib/WebKitWebResourcePrivate.h: |
| * UIProcess/API/glib/WebKitWebView.cpp: |
| (webkitWebViewResourceLoadStarted): Ditto. |
| * UIProcess/API/glib/WebKitWebViewPrivate.h: |
| |
| 2019-07-17 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK][WPE] Do not assert when receiving invalid data in injected bundle messages |
| https://bugs.webkit.org/show_bug.cgi?id=199830 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Just silently ignore them to avoid UI process crashes. |
| |
| * UIProcess/API/glib/WebKitInjectedBundleClient.cpp: |
| |
| 2019-07-17 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] No web view updates after swapping web process if AC mode is forced |
| https://bugs.webkit.org/show_bug.cgi?id=199826 |
| |
| Reviewed by Michael Catanzaro. |
| |
| This is because when AC mode is forced the provisional page creates a drawing area that is always in AC |
| mode. When swapping processes, the current drawing area is destroyed (which exists AC mode) and the provisional |
| one is set. From that point the web process is in AC mode but the UI process isn't. We need to update the |
| compositing mode when swapping processes. |
| |
| * UIProcess/API/gtk/WebKitWebViewBase.cpp: |
| (webkitWebViewBaseDidExitWebProcess): |
| * UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.h: |
| |
| 2019-07-16 Antoine Quint <graouts@apple.com> |
| |
| REGRESSION: fast/events/watchos/double-tap-to-zoom* tests crashing in com.apple.WebKit: -[WKContentView(WKInteraction) _singleTapDidReset:] |
| https://bugs.webkit.org/show_bug.cgi?id=199840 |
| <rdar://problem/52856531> |
| |
| Reviewed by Wenson Hsieh. |
| |
| We need to ensure the NSNumber used for -[WKSyntheticTapGestureRecognizer lastActiveTouchIdentifier] is retained. This innocent change required |
| the use of RetainPtr<>, which required the move to an Objective-C++ file, which lead to a change in the order files are unified, which lead to |
| build errors, which leads to a much bigger patch than just the source change necessary to fix the crash. |
| |
| * SourcesCocoa.txt: |
| * UIProcess/ios/WKSyntheticTapGestureRecognizer.mm: Renamed from Source/WebKit/UIProcess/ios/WKSyntheticTapGestureRecognizer.m. |
| * UIProcess/ios/forms/WKFormPeripheralBase.h: |
| * UIProcess/ios/forms/WKFormPeripheralBase.mm: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-07-16 Brent Fulgham <bfulgham@apple.com> |
| |
| Update WebContent Process sandbox based on user seed data |
| https://bugs.webkit.org/show_bug.cgi?id=199799 |
| <rdar://problem/52903477> |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2019-07-16 Andy Estes <aestes@apple.com> |
| |
| [macCatalyst] Do not include WebKitLegacy.h in WebKit.h |
| https://bugs.webkit.org/show_bug.cgi?id=199833 |
| <rdar://problem/53036744> |
| |
| Reviewed by Tim Horton. |
| |
| * Shared/API/Cocoa/WebKit.h: |
| |
| 2019-07-16 Frederic Wang <fwang@igalia.com> |
| |
| Fix build warning because of missing super_class initializer |
| https://bugs.webkit.org/show_bug.cgi?id=199825 |
| |
| Reviewed by Jonathan Bedard. |
| |
| * UIProcess/ios/WKContentView.mm: |
| (keyCommandsPlaceholderHackForEvernote): |
| |
| 2019-07-16 Tim Horton <timothy_horton@apple.com> |
| |
| NSTextFinder holes don't scroll with the page |
| https://bugs.webkit.org/show_bug.cgi?id=199815 |
| <rdar://problem/52280514> |
| |
| Reviewed by Simon Fraser. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _usePlatformFindUI]): |
| (-[WKWebView _setUsePlatformFindUI:]): |
| (-[WKWebView _ensureTextFinderClient]): |
| Add a bit so that clients can choose whether they want our find UI, |
| which respects scrolling, or the system find UI, which works when |
| doing multi-document searches. Right now you can't have both. |
| |
| (-[WKWebView scrollFindMatchToVisible:]): |
| Implement and plumb scrollFindMatchToVisible. |
| |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::indicateFindMatch): |
| * UIProcess/WebPageProxy.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::indicateFindMatch): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| Plumb indicateFindMatch to FindController. |
| |
| * UIProcess/mac/WKTextFinderClient.h: |
| * UIProcess/mac/WKTextFinderClient.mm: |
| (-[WKTextFinderClient initWithPage:view:usePlatformFindUI:]): |
| Store whether or not we are using the platform find UI. |
| |
| (-[WKTextFinderClient findMatchesForString:relativeToMatch:findOptions:maxResults:resultCollector:]): |
| If using WebKit find UI, turn on our UI in the options passed to findString[Matches]. |
| |
| (-[WKTextFinderClient scrollFindMatchToVisible:]): |
| If using WebKit find UI, when the platform tells us to reveal a find match, indicate it. |
| |
| (-[WKTextFinderClient didFindStringMatchesWithRects:didWrapAround:]): |
| If using WebKit find UI, lie to the platform and return no rects so that it doesn't paint a yellow rectangle. |
| |
| (-[WKTextFinderClient getImageForMatchResult:completionHandler:]): |
| If using WebKit find UI, lie to the platform and return no image so that it doesn't paint a yellow rectangle. |
| |
| (-[WKTextFinderClient initWithPage:view:]): Deleted. |
| |
| * WebProcess/WebPage/FindController.cpp: |
| (WebKit::FindController::updateFindUIAfterPageScroll): |
| Make it possible to use our find UI with 'findStringMatches'; since the platform |
| find infrastrucutre depends on knowing about all matches up front, we need |
| to use 'findStringMatches' instead of 'findString', but we had never combined |
| that with our UI. Don't throw away the other matches when we indicate one, and |
| don't send DidFindString in the case we are coming from 'findStringMatches'. |
| This all needs a bit of cleanup in the future. |
| |
| (WebKit::FindController::findString): |
| Tell updateFindUIAfterPageScroll that we are 'findString' so that it uses its normal behavior. |
| |
| (WebKit::FindController::findStringMatches): |
| Tell updateFindUIAfterPageScroll that we are 'findStringMatches' so that it uses the adjusted behavior. |
| |
| (WebKit::FindController::indicateFindMatch): |
| Add 'indicateFindMatch', which both selects the match and moves the indicator there. |
| |
| * WebProcess/WebPage/FindController.h: |
| |
| 2019-07-16 Chris Dumez <cdumez@apple.com> |
| |
| Speed up StorageManager::getValues() |
| https://bugs.webkit.org/show_bug.cgi?id=199812 |
| |
| Reviewed by Alex Christensen. |
| |
| Made the following performance improvements: |
| - Made StorageManager a WorkQueueMessageReceiver again (like it was before it |
| got moved from the UIProcess to the Network process). This avoids a lot of |
| thread hopping (IPC thread -> Main thread -> StorageManagerThread -> Main Thread) |
| and a lot of isolatedCopying of the strings. |
| - Move values around when possible to avoid copying. |
| - Add fast path to StorageMap::importItems() for when the StorageMap is |
| empty when importing (15ms -> 2.5ms). |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::didReceiveMessage): |
| (WebKit::NetworkConnectionToWebProcess::didReceiveSyncMessage): |
| * NetworkProcess/WebStorage/LocalStorageDatabase.cpp: |
| (WebKit::LocalStorageDatabase::importItems): |
| * NetworkProcess/WebStorage/StorageManager.cpp: |
| (WebKit::StorageManager::addAllowedSessionStorageNamespaceConnection): |
| (WebKit::StorageManager::removeAllowedSessionStorageNamespaceConnection): |
| (WebKit::StorageManager::processDidCloseConnection): |
| (WebKit::StorageManager::createLocalStorageMap): |
| (WebKit::StorageManager::createTransientLocalStorageMap): |
| (WebKit::StorageManager::createSessionStorageMap): |
| (WebKit::StorageManager::destroyStorageMap): |
| (WebKit::StorageManager::getValues): |
| (WebKit::StorageManager::setItem): |
| (WebKit::StorageManager::setItems): |
| (WebKit::StorageManager::removeItem): |
| (WebKit::StorageManager::clear): |
| * NetworkProcess/WebStorage/StorageManager.h: |
| |
| * Platform/IPC/Connection.cpp: |
| (IPC::Connection::addWorkQueueMessageReceiver): |
| (IPC::Connection::removeWorkQueueMessageReceiver): |
| (IPC::Connection::processIncomingMessage): |
| (IPC::Connection::dispatchMessage): |
| (IPC::Connection::dispatchMessageToWorkQueueReceiver): |
| * Platform/IPC/Connection.h: |
| * WebProcess/WebStorage/StorageAreaMap.cpp: |
| (WebKit::StorageAreaMap::loadValuesIfNeeded): |
| Messages to WorkQueueMessageReceivers are normally dispatched from the IPC WorkQueue. However, there is a race if |
| a client (here StorageManager) adds itself as a WorkQueueMessageReceiver as a result of receiving an IPC message |
| on the main thread (here NetworkConnectionToWebProcess::WebPageWasAdded). |
| The message might have already been dispatched from the IPC WorkQueue to the main thread by the time the |
| client registers itself as a WorkQueueMessageReceiver. To address this, we check again for messages receivers |
| once the message arrives on the main thread. |
| |
| 2019-07-16 Zalan Bujtas <zalan@apple.com> |
| |
| [ContentChangeObserver] Cancel ongoing content observation when tap is failed/cancelled |
| https://bugs.webkit.org/show_bug.cgi?id=199828 |
| <rdar://problem/53152696> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::commitPotentialTapFailed): |
| (WebKit::WebPage::cancelPotentialTap): |
| |
| 2019-07-15 Alex Christensen <achristensen@webkit.org> |
| |
| Remove redundant WebsiteDataStoreConfiguration member |
| https://bugs.webkit.org/show_bug.cgi?id=199820 |
| |
| Reviewed by Geoffrey Garen. |
| |
| m_webStorageDirectory was only used for _WKWebsiteDataStoreConfiguration._webStorageDirectory's backing, |
| which was copied over to m_localStorageDirectory of a new object in WKWebsiteDataStore's _initWithConfiguration. |
| This is a baby step towards cleaning up this mess with no behavior change. I see no reason to rename the SPI. |
| |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm: |
| (-[_WKWebsiteDataStoreConfiguration _webStorageDirectory]): |
| (-[_WKWebsiteDataStoreConfiguration _setWebStorageDirectory:]): |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp: |
| (WebKit::WebsiteDataStoreConfiguration::copy): |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h: |
| (WebKit::WebsiteDataStoreConfiguration::webStorageDirectory const): Deleted. |
| (WebKit::WebsiteDataStoreConfiguration::setWebStorageDirectory): Deleted. |
| |
| 2019-07-15 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| Make WKURLSchemeTask thread safe |
| https://bugs.webkit.org/show_bug.cgi?id=199764 |
| |
| Unreviewed build fix for WinCairo port. |
| |
| Source\WebKit\UIProcess\socket\RemoteInspectorProtocolHandler.cpp(82): error C2039: 'request': is not a member of 'WebKit::WebURLSchemeTask' |
| |
| * UIProcess/WebURLSchemeTask.h: |
| (WebKit::WebURLSchemeTask::request const): Restored WebURLSchemeTask::request with a threading assertion. |
| |
| 2019-07-15 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r247444. |
| |
| Caused two scrolling tests to fail on iOS Simulator |
| |
| Reverted changeset: |
| |
| "Typing into a cell in a Google Sheet lags behind by one |
| character" |
| https://bugs.webkit.org/show_bug.cgi?id=199587 |
| https://trac.webkit.org/changeset/247444 |
| |
| 2019-07-15 Zalan Bujtas <zalan@apple.com> |
| |
| outlook.live.com has odd viewport with edge gap |
| https://bugs.webkit.org/show_bug.cgi?id=199822 |
| <rdar://problem/53029072> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::setViewportConfigurationViewLayoutSize): |
| (WebKit::WebPage::dynamicViewportSizeUpdate): |
| (WebKit::WebPage::resetViewportDefaultConfiguration): |
| (WebKit::WebPage::immediatelyShrinkToFitContent): |
| (WebKit::WebPage::viewLayoutSizeAdjustedForQuirks): Deleted. |
| |
| 2019-07-11 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| New York font erroneously gets synthetic bold |
| https://bugs.webkit.org/show_bug.cgi?id=199653 |
| <rdar://problem/51692592> |
| |
| Reviewed by Simon Fraser. |
| |
| Add the SPI to enable the new fonts. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetShouldAllowDesignSystemUIFonts): |
| (WKPreferencesGetShouldAllowDesignSystemUIFonts): |
| * UIProcess/API/C/WKPreferencesRefPrivate.h: |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences _shouldAllowDesignSystemUIFonts]): |
| (-[WKPreferences _setShouldAllowDesignSystemUIFonts:]): |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: |
| |
| 2019-07-15 Brady Eidson <beidson@apple.com> |
| |
| Make WKURLSchemeTask thread safe. |
| <rdar://problem/50471863> and https://bugs.webkit.org/show_bug.cgi?id=199764 |
| |
| Reviewed by Alex Christensen. |
| |
| Punt most of the WKURLSchemeTask operations back to the main thread. |
| Make accessing the NSURLRequest be thread safe with lock protection. |
| |
| * UIProcess/API/Cocoa/WKURLSchemeTask.mm: |
| (getExceptionTypeFromMainRunLoop): |
| (-[WKURLSchemeTaskImpl dealloc]): |
| (-[WKURLSchemeTaskImpl request]): |
| (-[WKURLSchemeTaskImpl _requestOnlyIfCached]): |
| (-[WKURLSchemeTaskImpl didReceiveResponse:]): |
| (-[WKURLSchemeTaskImpl didReceiveData:]): |
| (-[WKURLSchemeTaskImpl didFinish]): |
| (-[WKURLSchemeTaskImpl didFailWithError:]): |
| (-[WKURLSchemeTaskImpl _didPerformRedirection:newRequest:]): |
| |
| * UIProcess/WebURLSchemeTask.cpp: |
| (WebKit::WebURLSchemeTask::WebURLSchemeTask): |
| (WebKit::WebURLSchemeTask::~WebURLSchemeTask): |
| (WebKit::WebURLSchemeTask::didPerformRedirection): |
| (WebKit::WebURLSchemeTask::didReceiveResponse): |
| (WebKit::WebURLSchemeTask::didReceiveData): |
| (WebKit::WebURLSchemeTask::didComplete): |
| (WebKit::WebURLSchemeTask::pageDestroyed): |
| (WebKit::WebURLSchemeTask::stop): |
| (WebKit::WebURLSchemeTask::nsRequest const): |
| |
| * UIProcess/WebURLSchemeTask.h: |
| (WebKit::WebURLSchemeTask::identifier const): |
| (WebKit::WebURLSchemeTask::pageID const): |
| (WebKit::WebURLSchemeTask::process): |
| (WebKit::WebURLSchemeTask::process const): Deleted. |
| (WebKit::WebURLSchemeTask::request const): Deleted. |
| |
| 2019-07-15 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Followup to r247439 |
| https://bugs.webkit.org/show_bug.cgi?id=199788 |
| <rdar://problem/52142570> |
| |
| Reviewed by Tim Horton. |
| |
| As it turns out, sending modern async completion-handler based IPC messages while processing incoming sync |
| messages results in a debug assertion. Instead of migrating FontAtSelection to the new async IPC mechanism, |
| restore the older CallbackID-based async IPC. |
| |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/mac/WebPageProxyMac.mm: |
| (WebKit::WebPageProxy::fontAtSelection): |
| (WebKit::WebPageProxy::fontAtSelectionCallback): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/mac/WebPageMac.mm: |
| (WebKit::WebPage::fontAtSelection): |
| |
| 2019-07-15 Dean Jackson <dino@apple.com> |
| |
| [WebGL] Remove software rendering and simplify context creation on macOS |
| https://bugs.webkit.org/show_bug.cgi?id=199789 |
| |
| Reviewed by Sam Weinig. |
| |
| Remove force software WebGL setting. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetForceSoftwareWebGLRendering): Deleted. |
| (WKPreferencesGetForceSoftwareWebGLRendering): Deleted. |
| * UIProcess/API/C/WKPreferencesRefPrivate.h: |
| |
| 2019-07-15 Daniel Bates <dabates@apple.com> |
| |
| Typing into a cell in a Google Sheet lags behind by one character |
| https://bugs.webkit.org/show_bug.cgi?id=199587 |
| <rdar://problem/51616845> |
| |
| Reviewed by Brent Fulgham. |
| |
| Remove all timers from the holding tank on text insertion or deletion (represented as an |
| editing command). Timers that were in the holding tank never stopped ticking and will now |
| be able to execute their action. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::executeEditingCommand): |
| (WebKit::WebPage::insertTextAsync): |
| (WebKit::WebPage::setCompositionAsync): |
| (WebKit::WebPage::confirmCompositionAsync): |
| Call platformWillPerformEditingCommand(). |
| |
| * WebProcess/WebPage/WebPage.h: |
| (WebKit::WebPage::platformWillPerformEditingCommand): Added. |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::platformWillPerformEditingCommand): Remove all the timers from the holding |
| tank if we have a holding tank. |
| |
| 2019-07-15 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [macOS 10.15] Cannot unbold selected text when the system font is used |
| https://bugs.webkit.org/show_bug.cgi?id=199788 |
| <rdar://problem/52142570> |
| |
| Reviewed by Tim Horton. |
| |
| In macOS 10.15, +[NSFont fontWithName:size:] no longer recognizes system fonts (of name |
| ".SFNS-*") and returns nil instead. However, our existing implementation of |
| WebPageProxy::fontAtSelection works by grabbing the font name in the web process, and |
| sending it over to the UI process, where it is mapped to an NSFont. As a result, this always |
| results in a nil font in macOS 10.15, which causes us to never update NSFontManager's |
| selected font. In turn, this means that once selected text is bolded, it can't be unbolded |
| via NSFontManager, since NSFontManager thinks that the text is still not bold. |
| |
| To fix this, we simply encode and send a platform FontInfo instead of sending the font name. |
| This allows the UI process to reconstruct NSFonts from font attribute dictionaries instead, |
| and update the font manager. |
| |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::updateFontManagerIfNeeded): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/mac/WebPageProxyMac.mm: |
| (WebKit::WebPageProxy::fontAtSelection): |
| |
| Refactor this to send a FontInfo (containing a font attribute dictionary) instead of a font |
| name. |
| |
| (WebKit::WebPageProxy::fontAtSelectionCallback): Deleted. |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| Change FontAtSelection to use sendWithAsyncReply instead of sending a callback ID. This also |
| allows us to remove FontAtSelectionCallback. |
| |
| * WebProcess/WebPage/mac/WebPageMac.mm: |
| (WebKit::WebPage::fontAtSelection): |
| |
| 2019-07-15 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [iOS] SOAuthorizationSession should tell AppSSO whether the UIClient is capable of showing the extension UI |
| https://bugs.webkit.org/show_bug.cgi?id=199790 |
| <rdar://problem/52790112> |
| |
| Reviewed by Brent Fulgham. |
| |
| On iOS, WebKit relies on a SPI -[WKUIDelegatePrivate _presentingViewControllerForWebView:] to present the |
| extension UI. However, third party clients often don't implement this SPI. Therefore, WebKit will not be |
| able to present the extension UI for them. |
| |
| To be able to show the extension UI for third party WebKit clients, WebKit should unset SOAuthorization.enableEmbeddedAuthorizationViewController |
| whenever clients don't implement the above SPI such that AppSSO could show the UI in their UI process. |
| |
| * UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm: |
| (WebKit::SOAuthorizationSession::start): |
| |
| 2019-07-15 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| REGRESSION: Chase app crashes immediately after authentication |
| https://bugs.webkit.org/show_bug.cgi?id=199798 |
| <rdar://problem/53106179> |
| |
| Reviewed by Alex Christensen. |
| |
| After r247411, we sometimes try to consult `_page` from WKWebView, before WKWebView's `_page` has been set. This |
| happens under a check for -[WKWebView _isEditable], from within -[WKContentView setupInteraction], which happens |
| if the host app is not linked on the iOS 12 SDK or earlier. To mitigate this, simply add a null check in |
| -_isEditable. |
| |
| There's currently no great way to test this, since we don't have a mechanism for simulating linked-on checks. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _isEditable]): |
| |
| 2019-07-13 Andres Gonzalez <andresg_22@apple.com> |
| |
| Add accessibility support to WKDataListSuggestionsView. |
| https://bugs.webkit.org/show_bug.cgi?id=199772 |
| <rdar://problem/47095851> |
| |
| Reviewed by Chris Fleizach. |
| |
| Added accessibility announcement notifications to show, dismiss and selection change for the datalist suggestions view. |
| * UIProcess/mac/WebDataListSuggestionsDropdownMac.mm: |
| (-[WKDataListSuggestionsView notifyAccessibilityClients:]): |
| (-[WKDataListSuggestionsView moveSelectionByDirection:]): |
| (-[WKDataListSuggestionsView invalidate]): |
| (-[WKDataListSuggestionsView showSuggestionsDropdown:]): |
| |
| 2019-07-13 Zalan Bujtas <zalan@apple.com> |
| |
| Cannot bring up custom media controls at all on v.youku.com |
| https://bugs.webkit.org/show_bug.cgi?id=199699 |
| <rdar://problem/51835327> |
| |
| Reviewed by Simon Fraser. |
| |
| * WebProcess/InjectedBundle/InjectedBundleNavigationAction.cpp: |
| (WebKit::InjectedBundleNavigationAction::InjectedBundleNavigationAction): |
| * WebProcess/WebPage/Cocoa/WebPageCocoa.mm: |
| (WebKit::WebPage::performDictionaryLookupAtLocation): |
| * WebProcess/WebPage/WebFrame.cpp: |
| (WebKit::WebFrame::hitTest const): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::handleContextMenuEvent): |
| (WebKit::WebPage::characterIndexForPointAsync): |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::handleStylusSingleTapAtPoint): |
| (WebKit::textInteractionPositionInformation): |
| * WebProcess/WebPage/mac/WebPageMac.mm: |
| (WebKit::WebPage::shouldDelayWindowOrderingEvent): |
| (WebKit::WebPage::acceptsFirstMouse): |
| (WebKit::WebPage::performImmediateActionHitTestAtLocation): |
| |
| 2019-07-12 Andy Estes <aestes@apple.com> |
| |
| [Cocoa] -loadFileURL:allowingReadAccessToURL: should fully resolve file URLs |
| https://bugs.webkit.org/show_bug.cgi?id=199768 |
| <rdar://problem/52002206> |
| |
| Reviewed by Geoffrey Garen. |
| |
| -loadFileURL:allowingReadAccessToURL: used -_web_originalDataAsWTFString from WKNSURLExtras |
| to convert the file and read access NSURLs to strings, which under the hood calls |
| CFURLGetBytes(). CFURLGetBytes() gets the URL's string without considering the base URL, so |
| if the client creates a URL like this: |
| |
| NSURL *url = [NSURL fileURLWithPath:@"tmpfile.txt" relativeToURL:[NSURL fileURLWithPath:@"/tmp"]] |
| |
| ... then -_web_originalDataAsWTFString will merely return the string "tmpfile.txt". When |
| that is later converted back to a URL in WebPageProxy::loadFile(), we lose track of the base |
| component and refuse to load something that no longer looks like a file: URL. |
| |
| Fixed this by fully resolving the URLs passed to -loadFileURL:allowingReadAccessToURL: when |
| converting to strings by using -[NSURL absoluteString] instead of -_web_originalDataAsWTFString. |
| |
| * Shared/Cocoa/WKNSURLExtras.mm: |
| (-[NSURL _web_originalDataAsWTFString]): |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView loadFileURL:allowingReadAccessToURL:]): |
| |
| 2019-07-12 Megan Gardner <megan_gardner@apple.com> |
| |
| Turn off two finger gestures for editable non-scaled content |
| https://bugs.webkit.org/show_bug.cgi?id=199739 |
| <rdar://problem/52107190> |
| |
| Reviewed by Tim Horton. |
| |
| This gesture is blocking a selection gesture. Turn it off as it is not |
| even being used in editable content. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView setupInteraction]): |
| (-[WKContentView _didChangeWebViewEditability]): |
| |
| 2019-07-12 Jiewen Tan <jiewen_tan@apple.com> |
| |
| SOAuthorizationSession::presentViewController should check WebPageProxy::isClosed() |
| https://bugs.webkit.org/show_bug.cgi?id=199755 |
| <rdar://problem/52323585> |
| |
| Reviewed by Chris Dumez. |
| |
| WebPageProxy::pageClient() is not guaranteed to be non null all the time. Therefore, we should check |
| WebPageProxy::isClosed() before using it. |
| |
| * UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm: |
| (WebKit::SOAuthorizationSession::presentViewController): |
| |
| 2019-07-12 Chris Dumez <cdumez@apple.com> |
| |
| Regression(macOS Catalina): Cannot quick look html documents in Mail |
| https://bugs.webkit.org/show_bug.cgi?id=199754 |
| <rdar://problem/51304961> |
| |
| Reviewed by Geoff Garen. |
| |
| If the client asks us to load a file URL but does not provide a resource path, WebKit |
| would fallback to issuing a sandbox extension for /. This no longer works on mac OS |
| Catalina and it would thus fail to load the file. |
| |
| To address the issue, if the attempt to create a sandbox extension for / fails, we now |
| fall back to issuing one for the file's baseURL (path of containing folder). |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle): |
| |
| 2019-07-12 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| WebBackForwardListItem::setPageState should receive pageState by rvalue reference |
| https://bugs.webkit.org/show_bug.cgi?id=199535 |
| |
| Reviewed by Alex Christensen |
| |
| Coverity is complaining here about copying PageState by value in the parameter list. It's |
| sort of a false positive, in that the PageState really does need to be copied here, so this |
| is the best we can do. But pass by value and then WTFMove() is a pretty strange way to write |
| it. Passing by rvalue reference would be better. This makes the copy more clear. |
| |
| * Shared/WebBackForwardListItem.h: |
| (WebKit::WebBackForwardListItem::setPageState): |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::updateBackForwardItem): |
| |
| 2019-07-12 Youenn Fablet <youenn@apple.com> |
| |
| Add release logging for quota checks |
| https://bugs.webkit.org/show_bug.cgi?id=199697 |
| |
| Reviewed by Alex Christensen. |
| |
| Log requests made to the page and the result from the application. |
| |
| * Platform/Logging.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::requestStorageSpace): |
| |
| 2019-07-12 Youenn Fablet <youenn@apple.com> |
| |
| Remove unneeded variable in LocalStorageNamespace::getOrCreateStorageArea |
| https://bugs.webkit.org/show_bug.cgi?id=199477 |
| |
| Reviewed by Alex Christensen. |
| |
| * NetworkProcess/WebStorage/StorageManager.cpp: |
| (WebKit::StorageManager::LocalStorageNamespace::getOrCreateStorageArea): |
| |
| 2019-07-12 Pawel Stanek <p.stanek@metrological.com> |
| |
| Connection::waitForSyncReply() uses wall time clock for timeout |
| https://bugs.webkit.org/show_bug.cgi?id=198712 |
| Due to a nature of the system time (it might not be set, jump, be off |
| by a lot) it is better to use monotonically increasing time which is |
| exactly what's used in a similar place i.e. Connection::waitForMessage() |
| |
| Reviewed by Alex Christensen. |
| |
| * Platform/IPC/Connection.cpp: |
| (IPC::Connection::waitForSyncReply): |
| |
| 2019-07-12 Timothy Hatcher <timothy@apple.com> |
| |
| Drop DarkModeCSSEnabled as an experimental feature and always enable it. |
| https://bugs.webkit.org/show_bug.cgi?id=199725 |
| rdar://problem/52970972 |
| |
| Reviewed by Megan Gardner. |
| |
| * Shared/WebPreferences.yaml: Removed DarkModeCSSEnabled. |
| |
| 2019-07-11 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| New York font erroneously gets synthetic bold |
| https://bugs.webkit.org/show_bug.cgi?id=199653 |
| <rdar://problem/51692592> |
| |
| Reviewed by Simon Fraser. |
| |
| Add the SPI to enable the new fonts. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetShouldAllowDesignSystemUIFonts): |
| (WKPreferencesGetShouldAllowDesignSystemUIFonts): |
| * UIProcess/API/C/WKPreferencesRefPrivate.h: |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences _shouldAllowDesignSystemUIFonts]): |
| (-[WKPreferences _setShouldAllowDesignSystemUIFonts:]): |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: |
| |
| 2019-07-11 Chris Dumez <cdumez@apple.com> |
| |
| ASSERTION FAILED: RunLoop::isMain() under IPC::Connection::sendWithAsyncReply() |
| https://bugs.webkit.org/show_bug.cgi?id=199734 |
| <rdar://problem/52977439> |
| |
| Reviewed by Geoffrey Garen. |
| |
| It appears WKProcessTaskStateObserverDelegate's taskStateDidChange handler can get called |
| on a background thread so we need to make sure we go back to the main thread before we |
| go into WebKit and do IPC. |
| |
| * Shared/Cocoa/ProcessTaskStateObserver.mm: |
| (-[WKProcessTaskStateObserverDelegate process:taskStateDidChange:]): |
| |
| 2019-07-11 Sihui Liu <sihui_liu@apple.com> |
| |
| StorageArea should not be destructed on the main thread |
| https://bugs.webkit.org/show_bug.cgi?id=199713 |
| <rdar://problem/52911900> |
| |
| Reviewed by Alex Christensen. |
| |
| After r246079, LocalStorageNameSpace could be destructed on the main thread and it may hold the last reference |
| to StorageArea. Then we saw the crashes that StorageArea was wrongly destructed on the main thread. |
| |
| * NetworkProcess/NetworkSession.cpp: |
| (WebKit::NetworkSession::~NetworkSession): |
| * NetworkProcess/WebStorage/StorageManager.cpp: |
| (WebKit::StorageManager::waitUntilTasksFinished): |
| (WebKit::StorageManager::waitUntilWritesFinished): Deleted. |
| * NetworkProcess/WebStorage/StorageManager.h: |
| |
| 2019-07-11 Tim Horton <timothy_horton@apple.com> |
| |
| Null deref of Range under WebPage::startAutoscrollAtPosition |
| https://bugs.webkit.org/show_bug.cgi?id=199724 |
| <rdar://problem/41127089> |
| |
| Reviewed by Dean Jackson. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::startAutoscrollAtPosition): |
| Refactor this function to be early-return-y, and add one more |
| early return if the Range is null. |
| |
| 2019-07-11 Pablo Saavedra <psaavedra@igalia.com> |
| |
| [WPE][GTK] Build failure with ENABLE_ACCESSIBILITY=OFF |
| https://bugs.webkit.org/show_bug.cgi?id=199625 |
| |
| Added ENABLE(ACCESSIBILITY) and replaced HAVE(ACCESSIBILITY) |
| with ENABLE(ACCESSIBILITY) in the code. |
| |
| Additionally, the TestRunner code generator now honors the |
| Conditional IDL format. |
| |
| Reviewed by Konstantin Tokarev. |
| |
| * UIProcess/API/glib/WebKitWebViewAccessible.cpp: |
| * UIProcess/API/glib/WebKitWebViewAccessible.h: |
| * UIProcess/API/wpe/PageClientImpl.cpp: |
| * UIProcess/API/wpe/PageClientImpl.h: |
| * UIProcess/API/wpe/WPEView.cpp: |
| (WKWPE::m_backend): |
| (WKWPE::View::~View): |
| * UIProcess/API/wpe/WPEView.h: |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: |
| (WKAccessibilityRootObject): |
| (WKAccessibilityFocusedObject): |
| (WKAccessibilityEnableEnhancedAccessibility): |
| (WKAccessibilityEnhancedAccessibilityEnabled): |
| * WebProcess/WebPage/WebPage.cpp: |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/atk/WebKitWebPageAccessibilityObject.cpp: |
| * WebProcess/WebPage/atk/WebKitWebPageAccessibilityObject.h: |
| * WebProcess/WebPage/gtk/WebPageGtk.cpp: |
| (WebKit::WebPage::platformInitialize): |
| * WebProcess/WebPage/wpe/WebPageWPE.cpp: |
| (WebKit::WebPage::platformInitialize): |
| * WebProcess/wpe/WebProcessMainWPE.cpp: |
| |
| 2019-07-11 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r247314. |
| https://bugs.webkit.org/show_bug.cgi?id=199721 |
| |
| Caused performance regression. (Requested by deanj on |
| #webkit). |
| |
| Reverted changeset: |
| |
| "Disable speculative loading if cache is not to be used for |
| the load" |
| https://bugs.webkit.org/show_bug.cgi?id=199644 |
| https://trac.webkit.org/changeset/247314 |
| |
| 2019-07-11 Dean Jackson <dino@apple.com> |
| |
| CrashTracer: Regression : MobileSafari at UIKit: -[CALayerAccessibility__UIKit__QuartzCore setBounds:] |
| https://bugs.webkit.org/show_bug.cgi?id=199720 |
| <rdar://problem/51470469> |
| |
| Reviewed by Tim Horton. |
| |
| Speculative fix after confirming that this crash can occur when |
| a zero width/height view is used for a UITargetedPreview. We |
| already guarded against this in the default flow, but not in |
| the fallback path where we take a view snapshot. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (createFallbackTargetedPreview): Return early if rectangles are empty. |
| |
| 2019-07-11 Alex Christensen <achristensen@webkit.org> |
| |
| Use mobile UA on jsfiddle.net |
| https://bugs.webkit.org/show_bug.cgi?id=199687 |
| <rdar://problem/50839844> |
| |
| Reviewed by Maciej Stachowiak. |
| |
| Text selection does not work on iPads using desktop UA. |
| This isn't the best solution, but it's certainly *a* solution. |
| |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::desktopClassBrowsingRecommendedForRequest): |
| |
| 2019-07-11 Simon Fraser <simon.fraser@apple.com> |
| |
| [iOS WK2] Can't place caret or select in content that overflows a contenteditable element |
| https://bugs.webkit.org/show_bug.cgi?id=199741 |
| rdar://problem/50545233 |
| |
| Reviewed by Wenson Hsieh. |
| |
| Various code paths for editing used renderer->absoluteBoundingBoxRect(), which is the border |
| box of the element (or a set of line boxes for inline elements) converted to absolute |
| coordinates. This excludes overflow content, but contenteditable needs to be able to |
| place the caret in overflow content, and allow selection rects to be in the overflow area |
| (if the element has visible overflow). |
| |
| Try to clean this up by adding some static helpers on WebPage for accessing the relevant |
| rects, and use them in code call from visiblePositionInFocusedNodeForPoint(), and |
| code that is input to selectionClipRect. |
| |
| This changes selectionClipRect to use the padding box (excluding borders), which is a progression. |
| |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::platformEditorState const): |
| (WebKit::elementBoundsInFrame): |
| (WebKit::constrainPoint): |
| (WebKit::WebPage::rootViewBoundsForElement): |
| (WebKit::WebPage::absoluteInteractionBoundsForElement): |
| (WebKit::WebPage::rootViewInteractionBoundsForElement): |
| (WebKit::WebPage::dispatchSyntheticMouseEventsForSelectionGesture): |
| (WebKit::WebPage::getFocusedElementInformation): |
| (WebKit::innerFrameQuad): Deleted. |
| (WebKit::elementRectInRootViewCoordinates): Deleted. |
| |
| 2019-07-11 Jonathan Bedard <jbedard@apple.com> |
| |
| [iOS 13] Enable WebKit build |
| https://bugs.webkit.org/show_bug.cgi?id=199481 |
| <rdar://problem/52619048> |
| |
| Reviewed by Tim Horton. |
| |
| * Platform/spi/ios/UIKitSPI.h: Add UITextEffectsWindow.sharedTextEffectsWindowForWindowScene SPI. |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView showGlobalMenuControllerInRect:]): setTargetRect, setMenuVisible marked depreciated in iOS 13. |
| (-[WKContentView hideGlobalMenuController]): Ditto. |
| |
| 2019-07-11 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| MobileSafari may crash under -[UIKeyboardTaskExecutionContext transferExecutionToMainThreadWithTask:] |
| https://bugs.webkit.org/show_bug.cgi?id=199701 |
| <rdar://problem/52590170> |
| |
| Reviewed by Tim Horton. |
| |
| Mitigates a crash wherein we end up calling the completion handler of |
| -requestAutocorrectionContextWithCompletionHandler: within a nested call |
| to -requestAutocorrectionContextWithCompletionHandler:. In this particular |
| case, a sync `window.open` from the web process to the UI process happens |
| while the UI process is already handling a sync autocorrection context |
| request. This causes the UI process to try and immediately dispatch the |
| incoming sync message to avoid deadlock. However, Safari's logic to create |
| and set up a new web view when opening a new window makes the new view the |
| first responder, which then prompts UIKit logic to request an autocorrection |
| context for the new web view. |
| |
| To avoid the issue for now, simply use -resignFirstResponder as a cue to invoke |
| pending autocorrection context handlers in the original web view before UIKit |
| tries to request autocorrection context in the newly created view. |
| |
| I attempted to write a test for this, but realized that we only end up hitting |
| the debug assertion pointed out in <https://webkit.org/b/199680>; we should be |
| able to write a test for this in the future, if we teach Connection to handle |
| multiple outgoing sync messages. |
| |
| For the time being, I've attached a manual test case to the bug. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView resignFirstResponderForWebView]): |
| (-[WKContentView _cancelPendingAutocorrectionContextHandler]): |
| |
| Add a new helper to signify that a pending autocorrection context handler should be cancelled (invoked |
| immediately with empty data). Use this in a few places where we currently explicitly pass |
| -[WKAutocorrectionContext emptyAutocorrectionContext]. |
| |
| (-[WKContentView requestAutocorrectionContextWithCompletionHandler:]): |
| |
| 2019-07-10 Simon Fraser <simon.fraser@apple.com> |
| |
| [iOS WK2] With modal overlay and body overflow:hidden, can't access all the content |
| https://bugs.webkit.org/show_bug.cgi?id=199693 |
| rdar://problem/51930364 |
| |
| Reviewed by Tim Horton. |
| |
| A page with overflow:hidden on the root needs to be scrollable if: |
| * it's zoomed |
| * the visual viewport is smaller than the layout viewport (including visible keyboard) |
| * scrolling is required to hide MobileSafari's squishy bars |
| |
| This patch does the last two, plumbing a "visual viewport is smaller than layout viewport" |
| bit up from WebCore via the scrolling tree (that way, when it changes we automatically trigger |
| a commit), and checking for squished bars in WKWebView. |
| |
| * Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp: |
| (ArgumentCoder<ScrollingStateFrameScrollingNode>::encode): |
| (ArgumentCoder<ScrollingStateFrameScrollingNode>::decode): |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _didCommitLayerTree:]): |
| (-[WKWebView _overrideLayoutParametersWithMinimumLayoutSize:maximumUnobscuredSizeOverride:]): |
| * UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp: |
| (WebKit::RemoteScrollingCoordinatorProxy::hasScrollableMainFrame const): |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::maximumUnobscuredSize const): |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::dynamicViewportSizeUpdate): |
| (WebKit::WebPage::updateVisibleContentRects): |
| |
| 2019-07-10 Tim Horton <timothy_horton@apple.com> |
| |
| Long pressing on attachments will crash the WebContent process |
| https://bugs.webkit.org/show_bug.cgi?id=199696 |
| <rdar://problem/52920241> |
| |
| Reviewed by Dean Jackson. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::linkIndicatorPositionInformation): |
| (WebKit::elementPositionInformation): |
| (WebKit::selectionPositionInformation): |
| (WebKit::WebPage::positionInformation): |
| Instead of one-off creating a node snapshot for <attachment>, just |
| use TextIndicator. This way, we get an estimated background color, |
| paint at the right resolution, etc. |
| |
| Also, hitNode was often null where we were previously calling |
| shareableBitmapSnapshotForNode, because it depends on the element |
| having click event handlers. selectionPositionInformation() re-hit-tests |
| more permissively to find the <attachment>, so moving this code |
| inside that function ensures that we don't try to snapshot a null node. |
| |
| 2019-07-10 Dean Jackson <dino@apple.com> |
| |
| Safari’s context menu actions are missing options |
| https://bugs.webkit.org/show_bug.cgi?id=199694 |
| <rdar://problem/52726822> |
| |
| Reviewed by Tim Horton. |
| |
| One of the most embarrassing errors I've ever made. I was returning |
| early when something existed, instead of when it didn't exist. |
| (*cough* tests *cough*) |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| |
| 2019-07-10 Jon Lee <jonlee@apple.com> |
| |
| Opt trello.com to mobile UA |
| https://bugs.webkit.org/show_bug.cgi?id=199686 |
| rdar://problem/51708119 |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::desktopClassBrowsingRecommendedForRequest): Currently the desktop version |
| of the site prevents users from tapping cards to edit them. Opt trello into the mobile |
| UA for now. |
| |
| 2019-07-10 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Selection handles "Lollipops" can become gray and stay gray |
| https://bugs.webkit.org/show_bug.cgi?id=198852 |
| <rdar://problem/51736130> |
| |
| Reviewed by Wenson Hsieh. |
| |
| Tell the text interaction assistant to update the selection UI when the tint color changes. |
| We do this by way of deactivating and activating selection. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView tintColorDidChange]): |
| |
| 2019-07-10 Dean Jackson <dino@apple.com> |
| |
| Share or Copy image from context menu does not share the correct data |
| https://bugs.webkit.org/show_bug.cgi?id=199681 |
| <rdar://problem/50538771> |
| |
| Reviewed by Tim Horton. |
| |
| The UIContextMenuInteraction calls didEndInteraction before executing the |
| actions of a selected menu item. This means we were assuming the interaction |
| had finished before performing the action triggered in the interaction, ending |
| up in the state where we had forgotten which element we were working with. |
| |
| Rather than ask for UIKit to change, I'm just starting the interaction again |
| as the action is run. Thankfully we already had the location of the interaction. |
| There is a small risk that the page has changed in the meantime, but I'm not |
| sure what to do about that. |
| |
| While here, I moved a method only used by us into _WKElementActionInternal, |
| and changed the location stored by _WKActivatedElementInfo from a CGPoint |
| to an WebCore::IntPoint (since it doesn't escape WebKit). |
| |
| * UIProcess/API/Cocoa/_WKActivatedElementInfo.mm: Use a WebCore::IntPoint rather than a CGPoint. |
| (-[_WKActivatedElementInfo _initWithType:URL:imageURL:location:title:ID:rect:image:]): |
| (-[_WKActivatedElementInfo _initWithType:URL:imageURL:location:title:ID:rect:image:userInfo:]): |
| (-[_WKActivatedElementInfo _interactionLocation]): |
| * UIProcess/API/Cocoa/_WKActivatedElementInfoInternal.h: |
| |
| * UIProcess/API/Cocoa/_WKElementAction.h: Move uiActionForElementInfo to Internal. |
| * UIProcess/API/Cocoa/_WKElementActionInternal.h: |
| |
| * UIProcess/API/Cocoa/_WKElementAction.mm: When executing the handlers, restart the interaction |
| using the location in _WKActivatedElementInfo. |
| (+[_WKElementAction _elementActionWithType:customTitle:assistant:]): |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: Explicitly start and stop interactions at |
| the appropriate points in the UIContextMenu flow. This isn't really needed since we're |
| doing it in the handlers, but it will be correct if the UIKit delegate order changes. |
| (-[WKContentView continueContextMenuInteraction:]): |
| (-[WKContentView contextMenuInteractionDidEnd:]): |
| |
| 2019-07-10 Chris Dumez <cdumez@apple.com> |
| |
| Crash under IPC::Connection::waitForMessage() |
| https://bugs.webkit.org/show_bug.cgi?id=199680 |
| <rdar://problem/52500561> |
| |
| Reviewed by Tim Horton. |
| |
| IPC::Connection::waitForMessage() is crashing due to a null defererence of |
| m_waitingForMessage. Since m_waitingForMessage is only ever set to null in |
| waitForMessage(), this seems to imply we've re-entered waitForMessage(). |
| This is in theory possible since the loop inside waitForMessage() calls |
| SyncMessageState::singleton().dispatchMessages() on every iteration to |
| process incoming synchronous IPC messages. In theory, one of these sync |
| IPC messages could run code which ends up calling waitForAndDispatchImmediately() |
| (and thus waitForMessage()). |
| |
| We had a debug assertion to try and catch re-entrancy with a comment stating |
| "We don't support having multiple clients waiting for messages." but we |
| would not see those in release and we would crash with a null dereference |
| instead. |
| |
| To address the crashes in release, return early in case of re-entrancy |
| (we would still hit an assertion in debug). |
| |
| * Platform/IPC/Connection.cpp: |
| (IPC::Connection::Connection): |
| (IPC::Connection::waitForMessage): |
| * Platform/IPC/Connection.h: |
| |
| 2019-07-10 Tim Horton <timothy_horton@apple.com> |
| |
| Context menus are not presented for WKWebViews that don't have UIDelegates |
| https://bugs.webkit.org/show_bug.cgi?id=199678 |
| |
| Reviewed by Dean Jackson. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView continueContextMenuInteraction:]): |
| Remove this unnecessary early-return if we don't have a UIDelegate. |
| We have a default behavior that we totally want to happen. |
| Also, rename completion() to continueWithContextMenuConfiguration() |
| to reduce confusion between completion() and completionBlock() in |
| this method. |
| |
| 2019-07-10 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r247223. |
| https://bugs.webkit.org/show_bug.cgi?id=199679 |
| |
| Caused perf regression. (Requested by deanj on #webkit). |
| |
| Reverted changeset: |
| |
| "[iPadOS] Viewport pops while loading sohu.com, xinhuanet.com, |
| and various other websites" |
| https://bugs.webkit.org/show_bug.cgi?id=199575 |
| https://trac.webkit.org/changeset/247223 |
| |
| 2019-07-10 Youenn Fablet <youenn@apple.com> |
| |
| Disable speculative loading if cache is not to be used for the load |
| https://bugs.webkit.org/show_bug.cgi?id=199644 |
| |
| Reviewed by Chris Dumez. |
| |
| When the page is reloaded, loads are instructed to not use the cache. |
| It is therefore unneeded to do speculative revalidation. |
| Allow speculative revalidation if the cache policy is either the default HTTP policy or |
| if policy is to refresh all cache data. |
| Covered by added test. |
| |
| * NetworkProcess/cache/NetworkCache.cpp: |
| (WebKit::NetworkCache::cachePolicyValidForSpeculativeRevalidation): |
| (WebKit::NetworkCache::canRequestUseSpeculativeRevalidation): |
| |
| 2019-07-10 Alex Christensen <achristensen@webkit.org> |
| |
| Fix build after Foundation changes UIEdgeInsets definition |
| https://bugs.webkit.org/show_bug.cgi?id=199660 |
| <rdar://problem/52390453> |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: |
| * UIProcess/Cocoa/WKWebViewContentProvider.h: |
| |
| 2019-07-10 Antti Koivisto <antti@apple.com> |
| |
| Remove TouchActionData |
| https://bugs.webkit.org/show_bug.cgi?id=199668 |
| |
| Reviewed by Simon Fraser. |
| |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<EventTrackingRegions>::encode): |
| (IPC::ArgumentCoder<EventTrackingRegions>::decode): |
| (IPC::ArgumentCoder<TouchActionData>::encode): Deleted. |
| (IPC::ArgumentCoder<TouchActionData>::decode): Deleted. |
| |
| 2019-07-09 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [WPE][GTK] GUniqueOutPtr::release should return a raw pointer |
| https://bugs.webkit.org/show_bug.cgi?id=199579 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * NetworkProcess/glib/WebKitCachedResolver.cpp: |
| (webkitCachedResolverLookupByNameAsync): |
| (webkitCachedResolverLookupByNameWithFlagsAsync): |
| * UIProcess/API/glib/WebKitFaviconDatabase.cpp: |
| (processPendingIconsForPageURL): |
| (webkit_favicon_database_get_favicon): |
| * UIProcess/API/glib/WebKitUserContentFilterStore.cpp: |
| (webkit_user_content_filter_store_save_from_file): |
| |
| 2019-07-09 Tim Horton <timothy_horton@apple.com> |
| |
| Fixed elements appear in the middle of full page screenshots taken when scrolled |
| https://bugs.webkit.org/show_bug.cgi?id=199649 |
| <rdar://problem/52476226> |
| |
| Reviewed by Simon Fraser. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::computePagesForPrintingAndDrawToPDF): |
| Temporarily expand the layout viewport to the size of the snapshotting page, |
| so that fixed elements sit against the bounds of the page instead of |
| wherever you're currently scrolled to. |
| |
| 2019-07-09 Simon Fraser <simon.fraser@apple.com> |
| |
| [iOS WK2] Use Optional<> for two data members of WKWebView |
| https://bugs.webkit.org/show_bug.cgi?id=199637 |
| |
| Reviewed by Tim Horton. |
| |
| Use Optional<CGSize> to replace _overridesViewLayoutSize/_viewLayoutSizeOverride |
| and _overridesMaximumUnobscuredSize/_maximumUnobscuredSizeOverride. |
| |
| No behavior change. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView activeViewLayoutSize:]): |
| (-[WKWebView _frameOrBoundsChanged]): |
| (activeMaximumUnobscuredSize): |
| (-[WKWebView _minimumLayoutSizeOverride]): |
| (-[WKWebView _setViewLayoutSizeOverride:]): |
| (-[WKWebView _maximumUnobscuredSizeOverride]): |
| (-[WKWebView _setMaximumUnobscuredSizeOverride:]): |
| (-[WKWebView _beginAnimatedResizeWithUpdates:]): |
| (-[WKWebView _clearOverrideLayoutParameters]): |
| |
| 2019-07-09 Chris Dumez <cdumez@apple.com> |
| |
| Fix integer type encoding / decoding in WKRemoteObjectCoder |
| https://bugs.webkit.org/show_bug.cgi?id=199643 |
| <rdar://problem/52732342> |
| |
| Reviewed by Anders Carlsson. |
| |
| As per [1], q / Q match to long long / unsigned long long, not long / unsigned long. |
| |
| [1] https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtTypeEncodings.html#//apple_ref/doc/uid/TP40008048-CH100 |
| |
| * Shared/API/Cocoa/WKRemoteObjectCoder.mm: |
| (encodeInvocationArguments): |
| (decodeInvocationArguments): |
| |
| 2019-07-09 Chris Dumez <cdumez@apple.com> |
| |
| Cleanup uses of NetworkProcess::m_sessionByConnection |
| https://bugs.webkit.org/show_bug.cgi?id=199586 |
| |
| Reviewed by Alex Christensen. |
| |
| Avoid double HashMap lookups and call add() instead of ensure() when appropriate. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::networkSessionByConnection const): |
| (WebKit::NetworkProcess::webPageWasAdded): |
| (WebKit::NetworkProcess::webProcessWasDisconnected): |
| |
| 2019-07-09 Saagar Jha <saagarjha@apple.com> |
| |
| WKObject's minimum object alignment needs to be larger |
| https://bugs.webkit.org/show_bug.cgi?id=199523 |
| |
| Reviewed by Alex Christensen. |
| |
| WKObject's wrapped objects are currently constructed at addresses aligned to 8-byte boundaries, but some |
| classes have more stringent requirements. By querying std::aligned_storage for the alignment of an object |
| larger than anything we can construct, we should be able to satisfy alignment for any of WebKit's types. |
| |
| * Shared/Cocoa/APIObject.mm: Use std::aligned_storage in conjunction with alignof to determine |
| minimumObjectAlignment, instead of hardcoding 8. |
| |
| 2019-07-09 Megan Gardner <megan_gardner@apple.com> |
| |
| Don't strip out spaces for personalized Autocorrections |
| https://bugs.webkit.org/show_bug.cgi?id=199476 |
| <rdar://problem/50782015> |
| |
| Reviewed by Dean Jackson. |
| |
| When inserting 'autocorrections' that are really predictive |
| text suggestions based on personal data, we would remove the space |
| before the suggestion, resulting in incorrect input. |
| To fix, do not remove a space when the autocorrected text and the text it is |
| replacing do not have any length. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::applyAutocorrectionInternal): |
| |
| 2019-07-09 Truitt Savell <tsavell@apple.com> |
| |
| Unreviewed, rolling out r247230. |
| |
| Caused storage/domstorage/localstorage/private-browsing- |
| affects-storage.html to crash with an assertion. |
| |
| Reverted changeset: |
| |
| "Cleanup uses of NetworkProcess::m_sessionByConnection" |
| https://bugs.webkit.org/show_bug.cgi?id=199586 |
| https://trac.webkit.org/changeset/247230 |
| |
| 2019-07-09 Youenn Fablet <youenn@apple.com> |
| |
| XHR CORS requests logged twice in the server |
| https://bugs.webkit.org/show_bug.cgi?id=199492 |
| <rdar://problem/52757558> |
| |
| Reviewed by Chris Dumez. |
| |
| Disable speculative loading for XHR and fetch. |
| These speculative requests might have specific headers that are no longer relevant |
| when reloading the page. This might then confuse servers. |
| |
| * NetworkProcess/cache/NetworkCache.cpp: |
| (WebKit::NetworkCache::makeStoreDecision): |
| (WebKit::NetworkCache::canRequestUseSpeculativeRevalidation): |
| (WebKit::NetworkCache::Cache::retrieve): |
| |
| 2019-07-09 Chris Dumez <cdumez@apple.com> |
| |
| Fix validation of method signature in decodeInvocation() |
| https://bugs.webkit.org/show_bug.cgi?id=199629 |
| <rdar://problem/52731659> |
| |
| Reviewed by Dan Bernstein. |
| |
| The decoder was mistakenly assigning remoteMethodSignature to localMethodSignature |
| before comparing remoteMethodSignature and localMethodSignature, thus making the |
| check useless. |
| |
| * Shared/API/Cocoa/WKRemoteObjectCoder.mm: |
| (decodeInvocation): |
| |
| 2019-07-09 Youenn Fablet <youenn@apple.com> |
| |
| Revert conditional WebPageProxy check to grant universal file read sandbox upon correct sandbox creation |
| https://bugs.webkit.org/show_bug.cgi?id=199622 |
| <rdar://problem/52357508> |
| |
| Reviewed by Alex Christensen. |
| |
| On iOS, the sandbox extension to '/' will usually fail, thus the universal file read sandbox is not granted. |
| This makes WebPageProxy cancel some file:// loads to the application own container. |
| As a short term fix, go back to previous behavior. |
| Covered by testing broken app identified in rdar://problem/52357508. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle): |
| |
| 2019-07-09 Sihui Liu <sihui_liu@apple.com> |
| |
| Only allow fetching and removing session credentials from WebsiteDataStore |
| https://bugs.webkit.org/show_bug.cgi?id=199385 |
| <rdar://problem/52622080> |
| |
| Reviewed by Alex Christensen. |
| |
| Stop sending an extra message to network process for fetching or removing persistent credentials. |
| |
| Also introduce a new SPI for clearing persistent credentials created in test. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::clearPermanentCredentialsForProtectionSpace): |
| (WebKit::NetworkProcess::fetchWebsiteData): |
| (WebKit::NetworkProcess::deleteWebsiteData): |
| (WebKit::NetworkProcess::deleteWebsiteDataForOrigins): |
| (WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains): |
| (WebKit::NetworkProcess::originsWithPersistentCredentials): Deleted. |
| (WebKit::NetworkProcess::removeCredentialsWithOrigins): Deleted. |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::originsWithPersistentCredentials): Deleted. |
| (WebKit::NetworkProcess::removeCredentialsWithOrigins): Deleted. |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _clearPermanentCredentialsForProtectionSpace:completionHandler:]): |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::clearPermanentCredentialsForProtectionSpace): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::fetchDataAndApply): |
| (WebKit::computeWebProcessAccessTypeForDataRemoval): |
| (WebKit::WebsiteDataStore::removeData): |
| |
| 2019-07-09 Antoine Quint <graouts@apple.com> |
| |
| [Pointer Events] Scroll indicators should not show for scrollable content with touch-action: none |
| https://bugs.webkit.org/show_bug.cgi?id=199618 |
| |
| Reviewed by Simon Fraser. |
| |
| Even though we correctly didn't scroll when "touch-action: none" was specified on an element, we would only apply |
| scrolling constraints after the panning gesture was recognized and the backing UIScrollView would show its scroll |
| indicators. While this is correct when only "pan-x" or "pan-y" is specified, we should not show the scroll indicators |
| at all for "touch-action: none" since no scrolling should happen. |
| |
| To do this, we add a new method to the WKTouchActionGestureRecognizerDelegate protocol to indicate whether a given |
| gesture recognizer may pan content in the WKWebView. If the gesture recognizer is the top-level scroll view or one |
| created within the page to back "overflow: scroll" content or an iframe, we correctly make that gesture recognizer |
| fail to recognize if neither "pan-x" nor "pan-y" is specified for this touch identifier. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView gestureRecognizerMayPanWebView:]): |
| * UIProcess/ios/WKTouchActionGestureRecognizer.h: |
| * UIProcess/ios/WKTouchActionGestureRecognizer.mm: |
| (-[WKTouchActionGestureRecognizer canPreventGestureRecognizer:]): |
| |
| 2019-07-09 Chris Dumez <cdumez@apple.com> |
| |
| Validate reply block signature in [WKRemoteObjectRegistry _invokeMethod] |
| https://bugs.webkit.org/show_bug.cgi?id=199584 |
| <rdar://problem/46268249> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Validate reply block signature in [WKRemoteObjectRegistry _invokeMethod] for robustness. |
| |
| * Shared/API/Cocoa/_WKRemoteObjectRegistry.mm: |
| (validateReplyBlockSignature): |
| (-[_WKRemoteObjectRegistry _invokeMethod:]): |
| |
| 2019-07-09 Alex Christensen <achristensen@webkit.org> |
| |
| UserData::decode should return false when decoding an unrecognized type |
| https://bugs.webkit.org/show_bug.cgi?id=199598 |
| <rdar://52735138> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * Shared/UserData.cpp: |
| (WebKit::UserData::decode): |
| |
| 2019-07-08 Chris Dumez <cdumez@apple.com> |
| |
| Speculative fix for crashes under LocalStorageDatabaseTracker::databasePath() |
| https://bugs.webkit.org/show_bug.cgi?id=199599 |
| <rdar://problem/31169686> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Speculative fix for crashes under LocalStorageDatabaseTracker::databasePath(): |
| - Add new localStorageDirectory() getter to LocalStorageDatabaseTracker which |
| calls isolatedCopy() on m_localStorageDirectory before returning it. |
| Use it everywhere instead of m_localStorageDirectory since it is not safe |
| to use the same String from various threads like it was done. |
| - Move localStorageDirectory when constructing the LocalStorageDatabaseTracker |
| instead of copying it. |
| - Make sure that LocalStorageDatabaseTracker and StorageManager are both |
| constructed and destroyed on the main thread. |
| |
| * NetworkProcess/NetworkSession.cpp: |
| (WebKit::NetworkSession::NetworkSession): |
| * NetworkProcess/NetworkSession.h: |
| * NetworkProcess/WebStorage/LocalStorageDatabaseTracker.cpp: |
| (WebKit::LocalStorageDatabaseTracker::create): |
| (WebKit::LocalStorageDatabaseTracker::LocalStorageDatabaseTracker): |
| (WebKit::LocalStorageDatabaseTracker::localStorageDirectory const): |
| (WebKit::LocalStorageDatabaseTracker::~LocalStorageDatabaseTracker): |
| (WebKit::LocalStorageDatabaseTracker::deleteAllDatabases): |
| (WebKit::LocalStorageDatabaseTracker::origins const): |
| (WebKit::LocalStorageDatabaseTracker::databasePath const): |
| * NetworkProcess/WebStorage/LocalStorageDatabaseTracker.h: |
| * NetworkProcess/WebStorage/StorageManager.cpp: |
| (WebKit::StorageManager::create): |
| (WebKit::StorageManager::StorageManager): |
| (WebKit::StorageManager::~StorageManager): |
| * NetworkProcess/WebStorage/StorageManager.h: |
| * NetworkProcess/WebStorage/ios/LocalStorageDatabaseTrackerIOS.mm: |
| (WebKit::LocalStorageDatabaseTracker::platformMaybeExcludeFromBackup const): |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| * NetworkProcess/curl/NetworkSessionCurl.cpp: |
| (WebKit::NetworkSessionCurl::NetworkSessionCurl): |
| * NetworkProcess/soup/NetworkSessionSoup.cpp: |
| (WebKit::NetworkSessionSoup::NetworkSessionSoup): |
| |
| 2019-07-08 Chris Dumez <cdumez@apple.com> |
| |
| Use WeakHashSet for WebUserContentControllerProxy::m_processes |
| https://bugs.webkit.org/show_bug.cgi?id=199591 |
| <rdar://problem/52798721> |
| |
| Reviewed by Youenn Fablet. |
| |
| Use WeakHashSet for WebUserContentControllerProxy::m_processses for safety. In theory, a WebProcessProxy could |
| stay in the map if we failed to call WebProcessProxy::shutDown() before destroying it. |
| |
| * UIProcess/UserContent/WebUserContentControllerProxy.cpp: |
| (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::addNetworkProcess): |
| (WebKit::WebUserContentControllerProxy::removeNetworkProcess): |
| |
| 2019-07-08 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Support select all in non-editable element |
| https://bugs.webkit.org/show_bug.cgi?id=199257 |
| <rdar://problem/52553667> |
| |
| Reviewed by Wenson Hsieh. |
| |
| Unless we are populating the callout bar always advertise that WebKit can perform Select All |
| when building with USE(UIKIT_KEYBOARD_ADDITIONS). This way you can press Command + A to select |
| all text even in a non-editable element just like you can on Mac. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView canPerformActionForWebView:withSender:]): |
| |
| 2019-07-08 Chris Dumez <cdumez@apple.com> |
| |
| Cleanup uses of NetworkProcess::m_sessionByConnection |
| https://bugs.webkit.org/show_bug.cgi?id=199586 |
| |
| Reviewed by Alex Christensen. |
| |
| Avoid double HashMap lookups and call add() instead of ensure() when appropriate. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::networkSessionByConnection const): |
| (WebKit::NetworkProcess::webPageWasAdded): |
| (WebKit::NetworkProcess::webProcessWasDisconnected): |
| |
| 2019-07-08 Tim Horton <timothy_horton@apple.com> |
| |
| WKWebView fails to render when another view uses CoreImage filters |
| https://bugs.webkit.org/show_bug.cgi?id=199488 |
| <rdar://problem/52695825> |
| |
| Reviewed by Dean Jackson. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::layerHostingModeDidChange): |
| Update m_layerHostingMode when it changes, even if we can't message |
| the Web Content process. This ensures that the next time we launch |
| a Web Content process, WebPageCreationParameters will have the correct |
| layer hosting mode, and is the usual pattern for such things. |
| |
| 2019-07-08 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iPadOS] Viewport pops while loading sohu.com, xinhuanet.com, and various other websites |
| https://bugs.webkit.org/show_bug.cgi?id=199575 |
| <rdar://problem/51842220> |
| |
| Reviewed by Simon Fraser. |
| |
| Currently, the shrink-to-fit-content heuristic added to scale desktop sites fit within the viewport on iPadOS |
| only runs during two intervals: after document load, and after page load. On very script-heavy websites, this |
| may cause a visible jump, as rendering may commence well before the document is finished parsing. |
| |
| To mitigate this, we move the first opportunity for the shrink-to-fit heuristic from after document, to right |
| after the page transition has completed (before we unfreeze the layer tree). |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDidFinishDocumentLoad): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::didCompletePageTransition): |
| (WebKit::WebPage::didFinishDocumentLoad): Deleted. |
| |
| Remove this didFinishDocumentLoad hook, which was only used to schedule the shrink-to-fit timer. |
| |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::immediatelyShrinkToFitContent): |
| |
| m_mainFrame might be null after page transition completes, so we need to ensure immediatelyShrinkToFitContent is |
| robust in this scenario. |
| |
| 2019-07-08 Chris Dumez <cdumez@apple.com> |
| |
| Add threading assertion to WTF::CompletionHandler |
| https://bugs.webkit.org/show_bug.cgi?id=199516 |
| |
| Reviewed by Alex Christensen. |
| |
| Update some MessagePort-related code to use WTF::Function instead of WTF::CompletionHandler |
| since the callback is always called on the main thread, even when it was created on a |
| worker thread. Ideally, this code would be refactored so that the callback gets called on |
| the worker thread directly. |
| |
| * UIProcess/UIMessagePortChannelProvider.cpp: |
| (WebKit::UIMessagePortChannelProvider::checkRemotePortForActivity): |
| * UIProcess/UIMessagePortChannelProvider.h: |
| * WebProcess/WebCoreSupport/WebMessagePortChannelProvider.cpp: |
| (WebKit::WebMessagePortChannelProvider::checkRemotePortForActivity): |
| * WebProcess/WebCoreSupport/WebMessagePortChannelProvider.h: |
| |
| 2019-07-08 Antoine Quint <graouts@apple.com> |
| |
| [Pointer Events] "touch-action: none" does not prevent double-tap-to-zoom |
| https://bugs.webkit.org/show_bug.cgi?id=199571 |
| <rdar://problem/51715002> |
| |
| Reviewed by Wenson Hsieh. |
| |
| We add a new WKTouchActionGestureRecognizerDelegate method to check whether a gesture recognizer may lead to |
| zooming the page as a result of double-tapping, which can be caused by two different gesture recognizers |
| managed by WKContentViewInteraction. If that delegate method returns true and we have "touch-action: none" |
| set for this touch, we cause those gesture recognizers to fail and prevent double-tap-to-zoom behavior. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView gestureRecognizerMayDoubleTapToZoomWebView:]): |
| * UIProcess/ios/WKTouchActionGestureRecognizer.h: |
| * UIProcess/ios/WKTouchActionGestureRecognizer.mm: |
| (-[WKTouchActionGestureRecognizer canPreventGestureRecognizer:]): |
| |
| 2019-07-08 Per Arne Vollan <pvollan@apple.com> |
| |
| [iOS] WebContent processes should not globally allow mach lookup to the AX server. |
| https://bugs.webkit.org/show_bug.cgi?id=199386 |
| <rdar://problem/52487468> |
| |
| Reviewed by Chris Fleizach. |
| |
| Instead, a mach extension for this service should be issued to the WebContent process. This has already been implemented. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2019-07-08 Claudio Saavedra <csaavedra@igalia.com> |
| |
| REGRESSION(r246671): [WPE][GTK] Crash in NetworkProcess since the DNS cache landed |
| https://bugs.webkit.org/show_bug.cgi?id=199572 |
| |
| Reviewed by Michael Catanzaro. |
| |
| The GError coming from the wrapped resolver shouldn't be freed, |
| but passed onto the caller. |
| |
| * NetworkProcess/glib/WebKitCachedResolver.cpp: |
| (webkitCachedResolverLookupByNameAsync): |
| (webkitCachedResolverLookupByNameWithFlagsAsync): |
| |
| 2019-07-07 Antoine Quint <graouts@apple.com> |
| |
| [Pointer Events] touch-action should affect the behavior of pinch-to-zoom to show tabs in Safari |
| https://bugs.webkit.org/show_bug.cgi?id=199560 |
| <rdar://problem/52742265> |
| |
| Reviewed by Dean Jackson. |
| |
| There are other UIPinchGestureRecognizer objects that may lead to pinch-to-zoom behavior, for instance pinching |
| out to show open tabs in Safari on iOS. We add a new WKUIDelegatePrivate method that will allow Safari to indicate |
| that a UIPinchGestureRecognizer considered for prevention would lead to pinch-to-zoom behavior. |
| |
| * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView gestureRecognizerMayPinchToZoomWebView:]): |
| |
| 2019-07-08 Antoine Quint <graouts@apple.com> |
| |
| [Pointer Events] Enable only on the most recent version of the supported iOS family |
| https://bugs.webkit.org/show_bug.cgi?id=199562 |
| <rdar://problem/52766511> |
| |
| Reviewed by Dean Jackson. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView cancelPointersForGestureRecognizer:]): |
| (-[WKContentView activeTouchIdentifierForGestureRecognizer:]): |
| (-[WKContentView touchActionActiveTouches]): |
| * UIProcess/ios/WKSyntheticTapGestureRecognizer.m: |
| (-[WKSyntheticTapGestureRecognizer touchesEnded:withEvent:]): |
| * UIProcess/ios/WKTouchActionGestureRecognizer.h: |
| * UIProcess/ios/WKTouchActionGestureRecognizer.mm: |
| (-[WKTouchActionGestureRecognizer canPreventGestureRecognizer:]): |
| |
| 2019-07-08 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [GTK] ViewGestureController constructor leaves m_direction uninitialized |
| https://bugs.webkit.org/show_bug.cgi?id=199532 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| This is harmless because it should never be read until after it's initialized, but still not |
| robust. Fix it by assuming Back as the default value until the first swipe begins. |
| |
| * UIProcess/ViewGestureController.h: |
| |
| 2019-07-07 Zalan Bujtas <zalan@apple.com> |
| |
| [ContentChangeObserver] Difficult to control videos on iqiyi.com as the actions are mouse hover |
| https://bugs.webkit.org/show_bug.cgi?id=199542 |
| <rdar://problem/51886813> |
| |
| Reviewed by Simon Fraser. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::handleSyntheticClick): |
| |
| 2019-07-06 Antoine Quint <graouts@apple.com> |
| |
| [Pointer Events] Use a gesture recognizer to prevent pinch-to-zoom behavior |
| https://bugs.webkit.org/show_bug.cgi?id=199543 |
| |
| Reviewed by Dean Jackson. |
| |
| We used to set the "enabled" property on the main UIScrollView's UIPinchGestureRecognizer to disable pinch-to-zoom |
| behavior based on the "touch-action" CSS property. This was sub-optimal since this gesture recognizer can be publicly |
| accessible by third-party developers, but also because it set state instead of a run-time solution. |
| |
| We now introduce a new WKTouchActionGestureRecognizer dedicated to preventing clearly identified gesture recognizers |
| from being recognized to disable some built-in behavior. As a new touch starts, we record the computed touch-action |
| property for the given touch identifier on the WKTouchActionGestureRecognizer, then WKTouchActionGestureRecognizer |
| determines, by implementing -[canPreventGestureRecognizer:], whether the possibly-prevented gesture recognizer |
| is known to lead to a pinch-to-zoom behavior and whether it contains a touch that should prevent it. |
| |
| To support the WKTouchActionGestureRecognizer, WKContentViewInteraction implements the new WKTouchActionGestureRecognizerDelegate |
| protocol to indicate whether the possibly-prevented gesture recognizer is the main UIScrollView's UIPinchGestureRecognizer. |
| |
| No new test since this changes the implementation of existing behavior. |
| |
| * SourcesCocoa.txt: |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView setupInteraction]): |
| (-[WKContentView cleanupInteraction]): |
| (-[WKContentView _removeDefaultGestureRecognizers]): |
| (-[WKContentView _addDefaultGestureRecognizers]): |
| (-[WKContentView _handleTouchActionsForTouchEvent:]): |
| (-[WKContentView gestureRecognizerMayPinchToZoomWebView:]): |
| (-[WKContentView touchActionActiveTouches]): |
| * UIProcess/ios/WKTouchActionGestureRecognizer.h: Added. |
| * UIProcess/ios/WKTouchActionGestureRecognizer.mm: Added. |
| (-[WKTouchActionGestureRecognizer initWithTouchActionDelegate:]): |
| (-[WKTouchActionGestureRecognizer setTouchActions:forTouchIdentifier:]): |
| (-[WKTouchActionGestureRecognizer clearTouchActionsForTouchIdentifier:]): |
| (-[WKTouchActionGestureRecognizer touchesBegan:withEvent:]): |
| (-[WKTouchActionGestureRecognizer touchesMoved:withEvent:]): |
| (-[WKTouchActionGestureRecognizer touchesEnded:withEvent:]): |
| (-[WKTouchActionGestureRecognizer touchesCancelled:withEvent:]): |
| (-[WKTouchActionGestureRecognizer _updateState]): |
| (-[WKTouchActionGestureRecognizer canBePreventedByGestureRecognizer:]): |
| (-[WKTouchActionGestureRecognizer canPreventGestureRecognizer:]): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-07-06 Chris Fleizach <cfleizach@apple.com> |
| |
| AX: CrashTracer: com.apple.WebKit.WebContent at WebKit: WebKit::WebSpeechSynthesisClient::speak |
| https://bugs.webkit.org/show_bug.cgi?id=199435 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Ensure we don't access null observers in speech callbacks. |
| |
| * WebProcess/WebCoreSupport/WebSpeechSynthesisClient.cpp: |
| (WebKit::WebSpeechSynthesisClient::voiceList): |
| (WebKit::WebSpeechSynthesisClient::speak): |
| (WebKit::WebSpeechSynthesisClient::pause): |
| (WebKit::WebSpeechSynthesisClient::resume): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::speakingErrorOccurred): |
| (WebKit::WebPage::boundaryEventOccurred): |
| (WebKit::WebPage::voicesDidChange): |
| |
| 2019-07-05 Chris Dumez <cdumez@apple.com> |
| |
| Fix thread safety bug in WebResourceLoadStatisticsTelemetry::calculateAndSubmit() |
| https://bugs.webkit.org/show_bug.cgi?id=199536 |
| |
| Reviewed by Youenn Fablet. |
| |
| The resourceLoadStatisticsStore is an object that is created / used / destroyed on the background |
| queue. It is therefore not safe to create a WeakPtr for it and use that WeakPtr on the main thread. |
| |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsTelemetry.cpp: |
| (WebKit::WebResourceLoadStatisticsTelemetry::calculateAndSubmit): |
| |
| 2019-07-05 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, fix -Wswitch warning |
| |
| We don't support HTTPCookieAcceptPolicy::ExclusivelyFromMainDocumentDomain. |
| |
| Fun fact, soup's OnlyFromMainDocumentDomain functions the same as Apple's |
| ExclusivelyFromMainDocumentDomain. These should be renamed.... |
| |
| * NetworkProcess/Cookies/soup/WebCookieManagerSoup.cpp: |
| (WebKit::WebCookieManager::platformSetHTTPCookieAcceptPolicy): |
| |
| 2019-07-05 Dean Jackson <dino@apple.com> |
| |
| [iOS] Context Menu - Add to Reading List does nothing |
| https://bugs.webkit.org/show_bug.cgi?id=199504 |
| <rdar://problem/52554137> |
| |
| Reviewed by Anders Carlsson. |
| |
| We were holding weak references to the _WKElementAction in |
| the handler provided to UIAction. By the time the handler was |
| called, the object had been deallocated. |
| |
| * UIProcess/API/Cocoa/_WKElementAction.mm: |
| (-[_WKElementAction uiActionForElementInfo:]): Use strong references in handler. |
| |
| 2019-07-05 Ryosuke Niwa <rniwa@webkit.org> |
| |
| [iOS] Crash in WebKit::WebPage::positionInformation via Range::startPosition |
| https://bugs.webkit.org/show_bug.cgi?id=199503 |
| |
| Reviewed by Wenson Hsieh. |
| |
| The crash was caused because focusedElementPositionInformation asssumes Editor::compositionRange is not null |
| whenever Editor::hasComposition returns true, which is not necessary the case when Editor::m_compositionNode |
| contains no text (data is of length 0). |
| |
| Fixed the crash by adding an early return for when Editor::compositionRange returns nullptr. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::focusedElementPositionInformation): |
| |
| 2019-07-05 Zalan Bujtas <zalan@apple.com> |
| |
| [ContentChangeObserver] REGRESSION (r247015): facebook photo/video upload button is unresponsive to user interaction. |
| https://bugs.webkit.org/show_bug.cgi?id=199502 |
| <rdar://problem/52547473> |
| |
| Reviewed by Simon Fraser. |
| |
| Apparently it's a common practice to put transparent elements over visible click targets (button like divs) and use the invisible |
| elements to catch the user input (e.g. Facebook's Photo/Video button). |
| This patch modifies the original "do not trigger click on invisible targets" heuristic to a more restrictive "do not trigger |
| click if the click target was previously hidden and became visible through touch start". |
| If this still breaks some use cases, we could turn it into YouTube quirk. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::handleSyntheticClick): |
| |
| 2019-07-05 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r247123. |
| |
| Caused TestWebKitAPI.Challenge.BasicProposedCredential to |
| fail. |
| |
| Reverted changeset: |
| |
| "Only allow fetching and removing session credentials from |
| WebsiteDataStore" |
| https://bugs.webkit.org/show_bug.cgi?id=199385 |
| https://trac.webkit.org/changeset/247123 |
| |
| 2019-07-05 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Click events on outer page are not being dispatched correctly after touch-zooming within an iframe |
| https://bugs.webkit.org/show_bug.cgi?id=185001 |
| <rdar://problem/40569615> |
| |
| Reviewed by Simon Fraser. |
| |
| Mitigations introduced in r227759 prevent a touch inside a document of origin A to result in a click event being |
| dispatched on an element inside a document of origin B. It accomplishes this by keeping track of the security |
| origin of the last touch via m_potentialTapSecurityOrigin on WebPage. However, there exists a corner case in |
| which m_potentialTapSecurityOrigin, set after touching a document in a subframe, may persist even after the user |
| has finished interacting, causing taps in subsequent documents to not result in synthetic click events due to |
| mismatched potential tap origins. |
| |
| This may happen if the first user gesture happens inside an element in a subframe with touch event handlers, but |
| no click event handler (and the touch is additionally not over some clickable element). In this case, |
| m_potentialTapNode is set to null in WebPage::potentialTapAtPosition, and when we consult it in |
| WebPage::commitPotentialTap, we just end up calling commitPotentialTapFailed(); and return early. This means |
| that m_potentialTapNode, m_potentialTapLocation, and (importantly) m_potentialTapSecurityOrigin are not reset. |
| This causes subsequent taps in the top-level document to never dispatch click events, if the security origin |
| does not match with that of the subframe. |
| |
| To fix this, we add a new async IPC message from the UI process to the web process to ensure that our current |
| security origin is reset before attempting to handle a tap. |
| |
| Test: http/tests/events/touch/ios/click-after-handling-touch-in-cross-origin-frame.https.html |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::resetPotentialTapSecurityOrigin): |
| |
| Reset any stale potential tap security origin if needed. |
| |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _webTouchEventsRecognized:]): |
| |
| Send the new IPC message when starting a touch. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::resetPotentialTapSecurityOrigin): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2019-07-05 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Touching media controls sometimes shows software keyboard |
| https://bugs.webkit.org/show_bug.cgi?id=199490 |
| <rdar://problem/52076270> |
| |
| Reviewed by Eric Carlson. |
| |
| In r243044, we added a compatibility hack for Google Slides (and other G-suite properties) to allow the on- |
| screen keyboard to show up after a prevented touch event in the case where an element was already focused, even |
| if the touch event handler doesn't explicitly refocus the element. However, this means that if a regular text |
| field (or other form control) has been programmatically focused, then interacting with any other element that |
| prevents default on touchstart will cause us to show the keyboard for that focused element. |
| |
| To mitigate this, only fall down this refocusing codepath in the case where the focused element is a hidden |
| editable element (in the style of many Google productivity web apps). For non-hidden editable elements that are |
| already focused, this refocusing logic is not necessary, since the user should be able to interact with the |
| control to show the keyboard anyways; for hidden editable areas, this compatibility hack is actually needed, |
| since there is typically no other way for a user to focus these elements and show an on-screen keyboard. |
| |
| Tests: fast/events/touch/ios/show-keyboard-after-preventing-touchstart.html |
| fast/events/touch/ios/do-not-show-keyboard-after-preventing-touchstart.html |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::dispatchTouchEvent): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::isTransparentOrFullyClipped const): |
| |
| Renamed from enclosingLayerIsTransparentOrFullyClipped, and pulled out into a private helper method. |
| |
| (WebKit::WebPage::platformEditorState const): |
| (WebKit::WebPage::requestEvasionRectsAboveSelection): |
| (WebKit::WebPage::getFocusedElementInformation): |
| (WebKit::enclosingLayerIsTransparentOrFullyClipped): Deleted. |
| |
| 2019-07-04 Chris Dumez <cdumez@apple.com> |
| |
| Simplify logic that handles registering WebProcessProxy objects with their WebsiteDataStore |
| https://bugs.webkit.org/show_bug.cgi?id=199412 |
| <rdar://problem/51899751> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Simplify logic that handles registering WebProcessProxy objects with their WebsiteDataStore to make |
| it more maintainable and less error-prone (avoid bugs like <rdar://problem/51899751>). |
| |
| The following changes were made: |
| 1. The WebProcess now registers / unregisters itself directly with its WebsiteDataStore when needed, |
| instead of having the WebPageProxy/ProvisionalPageProxy be in charge of calling the right |
| WebProcessLifetimeTracker / WebProcessLifetimeObserver abstractions. |
| 2. The WebProcessLifetimeTracker / WebProcessLifetimeObserver abstractions were dropped. The |
| WebsiteDataStore was the only observer. |
| 3. The WebProcessProxy is now registered with its WebsiteDataStore as soon as it has a page (provisional |
| or not) instead of waiting until the process has finished launching. This simplifies the logic a |
| lot and waiting until the process has launched is not needed by the WebsiteDataStore. |
| |
| |
| * Sources.txt: |
| * UIProcess/ProvisionalPageProxy.cpp: |
| (WebKit::ProvisionalPageProxy::ProvisionalPageProxy): |
| (WebKit::ProvisionalPageProxy::~ProvisionalPageProxy): |
| * UIProcess/ProvisionalPageProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::m_resetRecentCrashCountTimer): |
| (WebKit::WebPageProxy::finishAttachingToWebProcess): |
| (WebKit::WebPageProxy::close): |
| (WebKit::WebPageProxy::processDidTerminate): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebProcessCache.cpp: |
| (WebKit::WebProcessCache::CachedProcess::CachedProcess): |
| * UIProcess/WebProcessLifetimeObserver.cpp: Removed. |
| * UIProcess/WebProcessLifetimeObserver.h: Removed. |
| * UIProcess/WebProcessLifetimeTracker.cpp: Removed. |
| * UIProcess/WebProcessLifetimeTracker.h: Removed. |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::setWebsiteDataStore): |
| (WebKit::WebProcessProxy::updateRegistrationWithDataStore): |
| (WebKit::WebProcessProxy::addProvisionalPageProxy): |
| (WebKit::WebProcessProxy::removeProvisionalPageProxy): |
| (WebKit::WebProcessProxy::connectionWillOpen): |
| (WebKit::WebProcessProxy::processWillShutDown): |
| (WebKit::WebProcessProxy::addExistingWebPage): |
| (WebKit::WebProcessProxy::removeWebPage): |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::registerProcess): |
| (WebKit::WebsiteDataStore::unregisterProcess): |
| |
| (WebKit::WebsiteDataStore::processPoolForCookieStorageOperations): |
| Drop change that was added in r246097 to work around the fact that WebProcessProxy objects |
| were only registering themselves with their data store after their process had finished |
| launching. |
| |
| (WebKit::WebsiteDataStore::fetchDataAndApply): |
| (WebKit::WebsiteDataStore::removeData): |
| (WebKit::WebsiteDataStore::processPools const): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| (WebKit::WebsiteDataStore::processes const): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-07-04 Zalan Bujtas <zalan@apple.com> |
| |
| [ContentChangeObserver] Limit mouseOut dispatching after synthetic click to YouTube.com |
| https://bugs.webkit.org/show_bug.cgi?id=199497 |
| <rdar://problem/52361019> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::completeSyntheticClick): |
| |
| 2019-07-03 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Crash in WebDragClient::startDrag because GraphicsContext is nullptr |
| https://bugs.webkit.org/show_bug.cgi?id=199491 |
| |
| Reviewed by Wenson Hsieh. |
| |
| Added a nullptr check. |
| |
| Unfortunately no new tests since we don't have a reproducible test case. |
| |
| * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm: |
| (WebKit::convertImageToBitmap): |
| |
| 2019-07-03 Tim Horton <timothy_horton@apple.com> |
| |
| Data Detectors are not working for context menus in clients that use the legacy preview API |
| https://bugs.webkit.org/show_bug.cgi?id=199486 |
| <rdar://problem/52117322> |
| |
| Reviewed by Dean Jackson. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView assignLegacyDataForContextMenuInteraction]): |
| The Data Detectors code in the legacy preview path is guarded by a |
| #define that did not survive upstreaming. Remove it. |
| |
| 2019-07-03 Chris Dumez <cdumez@apple.com> |
| |
| StorageManager::suspend() sometimes fails to call its completion handler |
| https://bugs.webkit.org/show_bug.cgi?id=199482 |
| |
| Reviewed by Youenn Fablet. |
| |
| Make sure the completion handler gets called in the early return cases. |
| |
| * NetworkProcess/WebStorage/StorageManager.cpp: |
| (WebKit::StorageManager::suspend): |
| |
| 2019-07-03 Youenn Fablet <youenn@apple.com> |
| |
| Make CacheStorage::Engine directory listing operations in a background thread |
| https://bugs.webkit.org/show_bug.cgi?id=199470 |
| |
| Reviewed by Chris Dumez. |
| |
| Use the io work queue to get the list of directories. |
| Then go back to main thread and trigger clear/fetch operation as currently done. |
| |
| * NetworkProcess/cache/CacheStorageEngine.cpp: |
| (WebKit::CacheStorage::ReadOriginsTaskCounter::create): |
| (WebKit::CacheStorage::ReadOriginsTaskCounter::ReadOriginsTaskCounter): |
| (WebKit::CacheStorage::Engine::getDirectories): |
| (WebKit::CacheStorage::Engine::fetchEntries): |
| (WebKit::CacheStorage::Engine::fetchDirectoryEntries): |
| (WebKit::CacheStorage::Engine::clearCachesForOriginFromDisk): |
| (WebKit::CacheStorage::Engine::clearCachesForOriginFromDirectories): |
| * NetworkProcess/cache/CacheStorageEngine.h: |
| |
| 2019-07-03 Sihui Liu <sihui_liu@apple.com> |
| |
| Only allow fetching and removing session credentials from WebsiteDataStore |
| https://bugs.webkit.org/show_bug.cgi?id=199385 |
| |
| Reviewed by Alex Christensen. |
| |
| Stop sending an extra message to network process for fetching or removing persistent credentials. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::fetchWebsiteData): |
| (WebKit::NetworkProcess::deleteWebsiteData): |
| (WebKit::NetworkProcess::deleteWebsiteDataForOrigins): |
| (WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains): |
| (WebKit::NetworkProcess::originsWithPersistentCredentials): Deleted. |
| (WebKit::NetworkProcess::removeCredentialsWithOrigins): Deleted. |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::originsWithPersistentCredentials): Deleted. |
| (WebKit::NetworkProcess::removeCredentialsWithOrigins): Deleted. |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::fetchDataAndApply): |
| (WebKit::computeWebProcessAccessTypeForDataRemoval): |
| (WebKit::WebsiteDataStore::removeData): |
| |
| 2019-07-03 Tim Horton <timothy_horton@apple.com> |
| |
| UI process exception when dragging an <attachment> with no content type |
| https://bugs.webkit.org/show_bug.cgi?id=199480 |
| <rdar://problem/44351353> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/API/Cocoa/APIAttachmentCocoa.mm: |
| (API::Attachment::mimeType const): |
| (API::Attachment::utiType const): |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::startDrag): |
| Make null or empty contentType fail the drag, instead of crashing. |
| |
| 2019-07-03 Chris Dumez <cdumez@apple.com> |
| |
| Clarify threading model for WebResourceLoadStatisticsStore::dumpResourceLoadStatistics() |
| https://bugs.webkit.org/show_bug.cgi?id=199468 |
| |
| Reviewed by Youenn Fablet. |
| |
| Our convention is that the WebResourceLoadStatisticsStore is always created, used and |
| destroyed on the main thread, while the ResourceLoadStatisticsStore is always created, |
| used and destroyed on the background queue. |
| |
| r245517 broke this convention by introducing a tryDumpResourceLoadStatistics() method |
| to WebResourceLoadStatisticsStore which gets called on the background queue. This patch |
| fixes this since this has been a huge source of thread-safety bugs in the past. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: |
| (WebKit::ResourceLoadStatisticsDatabaseStore::dumpResourceLoadStatistics): |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h: |
| * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ResourceLoadStatisticsMemoryStore::dumpResourceLoadStatistics): |
| * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h: |
| * NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp: |
| (WebKit::ResourceLoadStatisticsStore::removeDataRecords): |
| * NetworkProcess/Classifier/ResourceLoadStatisticsStore.h: |
| (WebKit::ResourceLoadStatisticsStore::dataRecordsBeingRemoved const): |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::dumpResourceLoadStatistics): |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h: |
| |
| 2019-07-03 Jonathan Bedard <jbedard@apple.com> |
| |
| [Catalina] Enable WebKit build |
| https://bugs.webkit.org/show_bug.cgi?id=199209 |
| |
| Reviewed by Darin Adler. |
| |
| * UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.h: AppSSO is SPI. |
| * WebKit2Prefix.h: SecTask.h declares SecTaskGetCodeSignStatus(...) unavailable |
| on Mac, exclude this header. |
| |
| 2019-07-03 Daniel Bates <dabates@apple.com> |
| |
| REGRESSION (r246817): fast/events/ios/key-events-comprehensive/key-events-{control, control-shift}.html are failing |
| https://bugs.webkit.org/show_bug.cgi?id=199465 |
| <rdar://problem/52613496> |
| |
| Reviewed by Wenson Hsieh. |
| |
| Don't advertise that WebKit can perform cursor movements when there isn't some kind of selection. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView canPerformAction:withSender:]): |
| |
| 2019-07-03 Chris Dumez <cdumez@apple.com> |
| |
| Fix a couple of thread safety issues in ResourceLoadStatisticsStore |
| https://bugs.webkit.org/show_bug.cgi?id=199463 |
| |
| Reviewed by Alex Christensen. |
| |
| The ResourceLoadStatisticsStore object is constructed / used / destroyed on a background queue. |
| It is therefore not safe to use a WeakPtr to the ResourceLoadStatisticsStore on the main thread. |
| |
| The safe pattern is to have the ResourceLoadStatisticsStore capture a Ref<> of its m_store before |
| dispatching to the main thread and use this store on the main thread instead of weakThis->m_store. |
| ResourceLoadStatisticsStore's m_store is constructed / used / destroyed on the main thread. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp: |
| (WebKit::ResourceLoadStatisticsStore::removeDataRecords): |
| (WebKit::ResourceLoadStatisticsStore::processStatisticsAndDataRecords): |
| |
| 2019-07-03 Youenn Fablet <youenn@apple.com> |
| |
| Isolate CacheStorage::Engine path when hopping to a background thread |
| https://bugs.webkit.org/show_bug.cgi?id=199461 |
| |
| Reviewed by Chris Dumez. |
| |
| * NetworkProcess/cache/CacheStorageEngine.cpp: |
| (WebKit::CacheStorage::Engine::initialize): |
| |
| 2019-07-03 Jer Noble <jer.noble@apple.com> |
| |
| Unreviewed, rolling out r246053. |
| |
| This changeset caused media playback to break when the hosting app was backgrounded. |
| |
| * UIProcess/ApplicationStateTracker.mm: |
| * UIProcess/ios/ProcessAssertionIOS.mm: |
| (-[WKProcessAssertionBackgroundTaskManager init]): |
| (-[WKProcessAssertionBackgroundTaskManager _scheduleReleaseTask]): |
| (-[WKProcessAssertionBackgroundTaskManager _cancelPendingReleaseTask]): |
| (-[WKProcessAssertionBackgroundTaskManager _updateBackgroundTask]): |
| (-[WKProcessAssertionBackgroundTaskManager _releaseBackgroundTask]): |
| |
| 2019-07-03 Alex Christensen <achristensen@webkit.org> |
| |
| Use smarter pointers in WKDownloadProgress |
| https://bugs.webkit.org/show_bug.cgi?id=199456 |
| <rdar://problem/51392926> |
| |
| Reviewed by Chris Dumez. |
| |
| There's still a problem related to our use of raw pointers. Let's just not use raw pointers. |
| |
| * NetworkProcess/Downloads/Download.h: |
| * NetworkProcess/Downloads/cocoa/DownloadCocoa.mm: |
| (WebKit::Download::publishProgress): |
| * NetworkProcess/Downloads/cocoa/WKDownloadProgress.h: |
| * NetworkProcess/Downloads/cocoa/WKDownloadProgress.mm: |
| (-[WKDownloadProgress performCancel]): |
| (-[WKDownloadProgress initWithDownloadTask:download:URL:sandboxExtension:]): |
| (-[WKDownloadProgress progressCancelled]): Deleted. |
| |
| 2019-07-03 Sam Weinig <weinig@apple.com> |
| |
| Adopt simple structured bindings in more places |
| https://bugs.webkit.org/show_bug.cgi?id=199247 |
| |
| Reviewed by Alex Christensen. |
| |
| Replaces simple uses of std::tie() with structured bindings. Does not touch |
| uses of std::tie() that are not initial declarations, use std::ignore or in |
| case where the binding is captured by a lambda, as structured bindings don't |
| work for those cases yet. |
| |
| * NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp: |
| (WebKit::NetworkCache::printSpeculativeLoadingDiagnosticMessageCounts): |
| * NetworkProcess/cache/PrefetchCache.cpp: |
| (WebKit::PrefetchCache::clearExpiredEntries): |
| * Platform/IPC/MessageReceiverMap.cpp: |
| (IPC::MessageReceiverMap::removeMessageReceiver): |
| * UIProcess/Cocoa/PlaybackSessionManagerProxy.mm: |
| (WebKit::PlaybackSessionManagerProxy::invalidate): |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.mm: |
| (WebKit::VideoFullscreenManagerProxy::invalidate): |
| (WebKit::VideoFullscreenManagerProxy::requestHideAndExitFullscreen): |
| (WebKit::VideoFullscreenManagerProxy::hasMode const): |
| (WebKit::VideoFullscreenManagerProxy::mayAutomaticallyShowVideoPictureInPicture const): |
| (WebKit::VideoFullscreenManagerProxy::isPlayingVideoInEnhancedFullscreen const): |
| (WebKit::VideoFullscreenManagerProxy::applicationDidBecomeActive): |
| (WebKit::VideoFullscreenManagerProxy::setupFullscreenWithID): |
| (WebKit::VideoFullscreenManagerProxy::didCleanupFullscreen): |
| * UIProcess/ios/SmartMagnificationController.mm: |
| (WebKit::SmartMagnificationController::zoomFactorForTargetRect): |
| (WebKit::SmartMagnificationController::didCollectGeometryForSmartMagnificationGesture): |
| (WebKit::SmartMagnificationController::magnify): |
| * WebProcess/Plugins/PDF/PDFPlugin.mm: |
| (WebKit:: const): |
| * WebProcess/WebPage/Cocoa/WebPageCocoa.mm: |
| (WebKit::WebPage::performDictionaryLookupAtLocation): |
| (WebKit::WebPage::performDictionaryLookupForSelection): |
| * WebProcess/cocoa/PlaybackSessionManager.mm: |
| (WebKit::PlaybackSessionManager::~PlaybackSessionManager): |
| (WebKit::PlaybackSessionManager::removeContext): |
| * WebProcess/cocoa/VideoFullscreenManager.mm: |
| (WebKit::VideoFullscreenManager::~VideoFullscreenManager): |
| (WebKit::VideoFullscreenManager::removeContext): |
| (WebKit::VideoFullscreenManager::enterVideoFullscreenForVideoElement): |
| (WebKit::VideoFullscreenManager::requestVideoContentLayer): |
| (WebKit::VideoFullscreenManager::didSetupFullscreen): |
| (WebKit::VideoFullscreenManager::willExitFullscreen): |
| (WebKit::VideoFullscreenManager::didEnterFullscreen): |
| (WebKit::VideoFullscreenManager::didCleanupFullscreen): |
| (WebKit::VideoFullscreenManager::setVideoLayerFrameFenced): |
| |
| 2019-07-03 Zalan Bujtas <zalan@apple.com> |
| |
| [ContentChangeObserver] REGRESSION (r244356): Drop down menus collapse without user input - Ebay.com |
| https://bugs.webkit.org/show_bug.cgi?id=199457 |
| <rdar://problem/52386563> |
| |
| Reviewed by Simon Fraser. |
| |
| There's a fixed, 32ms window for observing content changes after the tap is committed. r244356 introduced the fast-click behavior on form elements by omitting this fixed window and |
| dispatch the synthetic click on the target node. |
| This patch preserves the fast-click behavior, but now we stay at hover if the mouseMove event triggers a synchronous actionable visiblity change (as opposed to always proceed with click). |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::handleSyntheticClick): |
| |
| 2019-07-03 Patrick Griffis <pgriffis@igalia.com> |
| |
| [GTK][WPE] Remove Flatpak sandbox |
| https://bugs.webkit.org/show_bug.cgi?id=199416 |
| |
| Reviewed by Michael Catanzaro. |
| |
| The flatpak-spawn based sandbox was only a proof of concept and |
| lacks flexibility for our needs so we ended up using it with very |
| permissive permissions and it still imposed limitations that our main |
| bubblewrap sandbox didn't have. |
| |
| So in order to get as many applications using the sandbox as possible we |
| will just remove this for now and focus on bubblewrap. At some point |
| it may be possible to improve flatpak-spawn to fit our needs. |
| |
| * SourcesGTK.txt: |
| * SourcesWPE.txt: |
| * UIProcess/Launcher/glib/FlatpakLauncher.cpp: Removed. |
| * UIProcess/Launcher/glib/FlatpakLauncher.h: Removed. |
| * UIProcess/Launcher/glib/ProcessLauncherGLib.cpp: |
| (WebKit::ProcessLauncher::launchProcess): |
| |
| 2019-07-03 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r246616. |
| |
| Caused http/tests/inspector/network/har/har-page.html to fail |
| on Catalina. |
| |
| Reverted changeset: |
| |
| "Web Inspector: Network: replace CFNetwork SPI with new API |
| where able" |
| https://bugs.webkit.org/show_bug.cgi?id=198762 |
| https://trac.webkit.org/changeset/246616 |
| |
| 2019-07-03 Chris Dumez <cdumez@apple.com> |
| |
| Crash under WTF::RefCounted<WebKit::TaskCounter>::deref() |
| https://bugs.webkit.org/show_bug.cgi?id=199453 |
| <rdar://problem/51991477> |
| |
| Reviewed by Youenn Fablet. |
| |
| The crash was caused by StorageManager::suspend() getting called on the main thread but calling |
| its completion handler on a background queue. The completion handler was capturing a TaskCounter |
| object which is RefCounted (not ThreadSafeRefCounted). |
| |
| Address the issue by making sure StorageManager::suspend() calls its completion handler on the |
| main thread. Also get rid of TaskCounter and use a WTF::CallbackAggregator instead. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::actualPrepareToSuspend): |
| (WebKit::TaskCounter::TaskCounter): Deleted. |
| (WebKit::TaskCounter::~TaskCounter): Deleted. |
| * NetworkProcess/WebStorage/StorageManager.cpp: |
| (WebKit::StorageManager::suspend): |
| |
| 2019-07-03 Youenn Fablet <youenn@apple.com> |
| |
| Make sure to cross-thread copy in StorageManager when hopping back to the main thread |
| https://bugs.webkit.org/show_bug.cgi?id=199423 |
| |
| Reviewed by Chris Dumez. |
| |
| Make sure to isolate copy some strings that may not be isolated in case of ephemeral sessions. |
| Small refactoring to use crossThreadCopy instead of doing vector copy ourselves. |
| |
| * NetworkProcess/WebStorage/LocalStorageDatabaseTracker.h: |
| (WebKit::LocalStorageDatabaseTracker::OriginDetails::isolatedCopy const): |
| * NetworkProcess/WebStorage/StorageManager.cpp: |
| (WebKit::StorageManager::deleteSessionStorageEntriesForOrigins): |
| (WebKit::StorageManager::getLocalStorageOrigins): |
| (WebKit::StorageManager::getLocalStorageOriginDetails): |
| (WebKit::StorageManager::deleteLocalStorageEntriesForOrigins): |
| |
| 2019-07-02 Joonghun Park <jh718.park@samsung.com> |
| |
| Unreviewed. Fix build break introduced in r247058. |
| |
| * UIProcess/API/gtk/WebKitRemoteInspectorProtocolHandler.cpp: |
| |
| 2019-07-02 Youenn Fablet <youenn@apple.com> |
| |
| StorageManager does not need to be a WorkQueueMessageReceiver anymore |
| https://bugs.webkit.org/show_bug.cgi?id=199421 |
| |
| Reviewed by Chris Dumez. |
| |
| * NetworkProcess/WebStorage/StorageManager.h: |
| |
| 2019-07-02 Chris Dumez <cdumez@apple.com> |
| |
| ThreadSafeRefCounted<DestructionThread::Main> is not safe to use in the UIProcess |
| https://bugs.webkit.org/show_bug.cgi?id=199420 |
| <rdar://problem/52289717> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Update IPC::Connection and DeviceIdHashSaltStorage to use DestructionThread::MainRunLoop |
| instead of DestructionThread::Main, since both classes are used in the UIProcess. |
| |
| Using DestructionThread::Main is not safe in the UIProcess because its implementation relies |
| on isMainThread() / callOnMainThread(). Those get confused about which thread is the main |
| thread when an application uses both WK1 and WK2. |
| |
| * Platform/IPC/Connection.h: |
| * UIProcess/DeviceIdHashSaltStorage.h: |
| |
| 2019-07-02 Patrick Griffis <pgriffis@igalia.com> |
| |
| [GTK][WPE] Explicitly blacklist problematic directories for sandbox |
| https://bugs.webkit.org/show_bug.cgi?id=199367 |
| |
| Reviewed by Michael Catanzaro. |
| |
| There are some directories that simply do not make sense to bind into the sandbox |
| and will only cause issues such as `/proc` so lets just block them. |
| |
| * UIProcess/API/glib/WebKitWebContext.cpp: |
| (path_is_not_blacklisted): |
| (webkit_web_context_add_path_to_sandbox): |
| |
| 2019-07-02 Tim Horton <timothy_horton@apple.com> |
| |
| REGRESSION (r243240): Unable to swipe back in Safari |
| https://bugs.webkit.org/show_bug.cgi?id=199394 |
| <rdar://problem/51137447> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _processDidExit]): |
| r243240 started nilling out the ViewGestureController, but we don't actually |
| expect that; the only time WKWebView's ViewGestureController goes away |
| is if the client turns off the gestures... and so nothing ever puts it back. |
| Instead, just always disconnect, don't nil it out. |
| |
| 2019-07-02 Chris Dumez <cdumez@apple.com> |
| |
| Protect NetworkProcess::m_networkSessions against corruption |
| https://bugs.webkit.org/show_bug.cgi?id=199418 |
| <rdar://problem/50614019> |
| |
| Reviewed by Youenn Fablet. |
| |
| I believe the most likely reason for the crash at <rdar://problem/50614019> is that NetworkProcess::m_networkSessions |
| is getting corrupted and is returning us a bad pointer. |
| |
| To harden our code, I added debug assertions to make sure that this HashMap is only used on the main thread and |
| to make sure that the sessionID used as key is always valid. I have also added if checks to avoid crashing in |
| release whenever possible. |
| |
| Note that we came to a similar conclusion for NetworkProcess::m_swServers when investigating rdar://problem/51859081, |
| so the two radars are potentially related. Both HashMaps are owned by the NetworkProcess and use a SessionID |
| as key. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::cookiesForDOM): |
| (WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM): |
| (WebKit::NetworkConnectionToWebProcess::logUserInteraction): |
| (WebKit::NetworkConnectionToWebProcess::logWebSocketLoading): |
| (WebKit::NetworkConnectionToWebProcess::logSubresourceLoading): |
| (WebKit::NetworkConnectionToWebProcess::logSubresourceRedirect): |
| (WebKit::NetworkConnectionToWebProcess::hasStorageAccess): |
| (WebKit::NetworkConnectionToWebProcess::requestStorageAccess): |
| (WebKit::NetworkConnectionToWebProcess::requestStorageAccessUnderOpener): |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::networkSession const): |
| (WebKit::NetworkProcess::setSession): |
| (WebKit::NetworkProcess::destroySession): |
| (WebKit::NetworkProcess::addKeptAliveLoad): |
| (WebKit::NetworkProcess::removeKeptAliveLoad): |
| (WebKit::NetworkProcess::webProcessWasDisconnected): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::retrieveCacheEntry): |
| (WebKit::NetworkResourceLoader::didFinishWithRedirectResponse): |
| (WebKit::NetworkResourceLoader::tryStoreAsCacheEntry): |
| (WebKit::NetworkResourceLoader::shouldLogCookieInformation): |
| * NetworkProcess/ios/NetworkConnectionToWebProcessIOS.mm: |
| (WebKit::NetworkConnectionToWebProcess::paymentCoordinatorBoundInterfaceIdentifier): |
| (WebKit::NetworkConnectionToWebProcess::paymentCoordinatorCTDataConnectionServiceType): |
| (WebKit::NetworkConnectionToWebProcess::paymentCoordinatorSourceApplicationBundleIdentifier): |
| (WebKit::NetworkConnectionToWebProcess::paymentCoordinatorSourceApplicationSecondaryIdentifier): |
| |
| 2019-07-02 Chris Dumez <cdumez@apple.com> |
| |
| VisitedLinkStore does not need to subclass WebProcessLifetimeObserver |
| https://bugs.webkit.org/show_bug.cgi?id=199407 |
| |
| Reviewed by Sam Weinig. |
| |
| VisitedLinkStore does not need to subclass WebProcessLifetimeObserver, it overrides |
| only 2 of WebProcessLifetimeObserver's functions and the implementation of those |
| overrides is empty. It also does not use WebProcessLifetimeObserver::processes() |
| since the VisitedLinkStore maintains its own list of processes. |
| |
| * UIProcess/API/mac/WKView.mm: |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| * UIProcess/VisitedLinkStore.cpp: |
| * UIProcess/VisitedLinkStore.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::m_resetRecentCrashCountTimer): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| |
| 2019-07-02 Chris Dumez <cdumez@apple.com> |
| |
| Null dereference under StorageManager::destroySessionStorageNamespace() |
| https://bugs.webkit.org/show_bug.cgi?id=199388 |
| <rdar://problem/52030641> |
| |
| Reviewed by Youenn Fablet. |
| |
| * NetworkProcess/WebStorage/StorageManager.cpp: |
| (WebKit::StorageManager::createSessionStorageNamespace): |
| Call HashMap::ensure() instead of contains() + set() to avoid double hash lookup. |
| |
| (WebKit::StorageManager::destroySessionStorageNamespace): |
| Add null check to address top crasher, similarly to what was done in r246552. |
| I am keeping the debug assertion since this is not supposed to happen. |
| |
| 2019-07-02 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Cannot tab cycle through credit card fields on antonsvpatisserie.com checkout page |
| https://bugs.webkit.org/show_bug.cgi?id=196053 |
| <rdar://problem/49093034> |
| |
| Reviewed by Wenson Hsieh. |
| |
| Allow iframes to be keyboard focusable when pressing the Tab key on the keyboard. This |
| also allow the that the focus controller to search their content document for other |
| editable elements. This makes iOS match the behavior on Mac. |
| |
| Although iframes can be focused by pressing the Tab key we maintain the current UI |
| restriction on iOS of not allowing iframes themselves to be focusable via the next and |
| previous accessory bar buttons. We do this because it's unclear what value supporting |
| such focusing brings, but it's clear that doing so makes tab cycling more confusing |
| since the default focus appearance for an iframe is indistinguishable from its non- |
| focused appearance. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::isAssistableElement): Do not consider an iframe as assistable. |
| |
| 2019-07-02 Alexander Mikhaylenko <exalm7659@gmail.com> |
| |
| [GTK] Support cancelling touchscreen back/forward gesture |
| https://bugs.webkit.org/show_bug.cgi?id=199401 |
| |
| Reviewed by Michael Catanzaro. |
| |
| It should be possible to cancel the gesture when performing it on |
| touchscreen, for example, by moving pen too far from the screen. |
| Handle this case properly. |
| |
| Only DragGesture in GestureController needs to handle this, |
| SwipeGesture simply won't emit the relevant event in this case. |
| |
| * UIProcess/API/gtk/WebKitWebViewBase.cpp: |
| * UIProcess/ViewGestureController.h: |
| * UIProcess/gtk/GestureController.cpp: |
| (WebKit::GestureController::DragGesture::cancelDrag): |
| (WebKit::GestureController::DragGesture::cancel): |
| (WebKit::GestureController::DragGesture::DragGesture): |
| * UIProcess/gtk/GestureController.h: |
| * UIProcess/gtk/ViewGestureControllerGtk.cpp: |
| (WebKit::ViewGestureController::platformTeardown): |
| (WebKit::ViewGestureController::cancelSwipe): |
| |
| 2019-07-02 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Debug: "Reset Web Inspector" should also clear the saved window size and attachment side |
| https://bugs.webkit.org/show_bug.cgi?id=198956 |
| |
| Reviewed by Matt Baker. |
| |
| * UIProcess/WebPreferences.h: |
| * UIProcess/WebPreferences.cpp: |
| (WebKit::WebPreferences::deleteKey): Added. |
| * UIProcess/gtk/WebPreferencesGtk.cpp: |
| (WebKit::WebPreferences::platformDeleteKey): Added. |
| * UIProcess/mac/WebPreferencesMac.mm: |
| (WebKit::WebPreferences::platformDeleteKey): Added. |
| * UIProcess/wpe/WebPreferencesWPE.cpp: |
| (WebKit::WebPreferences::platformDeleteKey): Added. |
| * UIProcess/win/WebPreferencesWin.cpp: |
| (WebKit::WebPreferences::platformDeleteKey): Added. |
| * Shared/WebPreferencesStore.h: |
| * Shared/WebPreferencesStore.cpp: |
| (WebKit::WebPreferencesStore::deleteKey): Added. |
| |
| * UIProcess/WebInspectorProxy.messages.in: |
| * UIProcess/WebInspectorProxy.h: |
| * UIProcess/WebInspectorProxy.cpp: |
| (WebKit::WebInspectorProxy::resetWindowState): Added. |
| (WebKit::WebInspectorProxy::platformResetWindowState): Added. |
| * UIProcess/gtk/WebInspectorProxyGtk.cpp: |
| (WebKit::WebInspectorProxy::platformResetWindowState): Added. |
| * UIProcess/mac/WebInspectorProxyMac.mm: |
| (WebKit::WebInspectorProxy::platformResetWindowState): Added. |
| * UIProcess/wpe/WebInspectorProxyWPE.cpp: |
| (WebKit::WebInspectorProxy::platformResetWindowState): Added. |
| * UIProcess/win/WebInspectorProxyWin.cpp: |
| (WebKit::WebInspectorProxy::platformResetWindowState): Added. |
| * WebProcess/WebPage/WebInspectorUI.h: |
| * WebProcess/WebPage/WebInspectorUI.cpp: |
| (WebKit::WebInspectorUI::resetWindowState): Added. |
| |
| * UIProcess/RemoteWebInspectorProxy.messages.in: |
| * UIProcess/RemoteWebInspectorProxy.h: |
| * UIProcess/RemoteWebInspectorProxy.cpp: |
| (WebKit::RemoteWebInspectorProxy::resetWindowState): Added. |
| (WebKit::RemoteWebInspectorProxy::platformResetWindowState): Added. |
| * UIProcess/gtk/RemoteWebInspectorProxyGtk.cpp: |
| (WebKit::RemoteWebInspectorProxy::platformResetWindowState): Added. |
| * UIProcess/mac/RemoteWebInspectorProxyMac.mm: |
| (WebKit::RemoteWebInspectorProxy::platformResetWindowState): Added. |
| * UIProcess/win/RemoteWebInspectorProxyWin.cpp: |
| (WebKit::RemoteWebInspectorProxy::platformResetWindowState): Added. |
| * WebProcess/WebPage/RemoteWebInspectorUI.h: |
| * WebProcess/WebPage/RemoteWebInspectorUI.cpp: |
| (WebKit::RemoteWebInspectorUI::resetWindowState): Added. |
| |
| 2019-07-01 Chris Dumez <cdumez@apple.com> |
| |
| Remove virtual functions on WebProcessLifetimeObserver that are unused after r245540 |
| https://bugs.webkit.org/show_bug.cgi?id=199383 |
| |
| Reviewed by Alex Christensen. |
| |
| * UIProcess/WebProcessLifetimeObserver.h: |
| (WebKit::WebProcessLifetimeObserver::webProcessDidCloseConnection): |
| * UIProcess/WebProcessLifetimeTracker.cpp: |
| (WebKit::WebProcessLifetimeTracker::addObserver): |
| (WebKit::WebProcessLifetimeTracker::pageWasInvalidated): |
| |
| 2019-07-01 Chris Dumez <cdumez@apple.com> |
| |
| StorageManager::SessionStorageNamespace::allowedConnections() should not copy the HashSet |
| https://bugs.webkit.org/show_bug.cgi?id=199379 |
| |
| Reviewed by Alex Christensen. |
| |
| This was pretty inefficient. |
| |
| * NetworkProcess/WebStorage/StorageManager.cpp: |
| (WebKit::StorageManager::SessionStorageNamespace::allowedConnections const): |
| |
| 2019-07-01 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS] REGRESSION (r246757): Unable to select non-editable text in subframes |
| https://bugs.webkit.org/show_bug.cgi?id=199366 |
| <rdar://problem/52460509> |
| |
| Reviewed by Tim Horton. |
| |
| r246757 removed logic in selectionPositionInformation responsible for setting the focused frame when handling a |
| position information request. As the FIXME formerly in InteractionInformationRequest.h alluded to, text |
| selection gestures on iOS were dependent on this behavior when selecting text in subframes, since text selection |
| helpers in WebPageIOS.mm assume that the focused frame already contains the selection being set. |
| |
| Rather than calling setFocusedFrame when requesting position information, we can fix this by making |
| WebPage::selectWithGesture and WebPage::selectTextWithGranularityAtPoint both set the focused frame if needed |
| before extending or moving text selections. |
| |
| Covered by layout tests that began to fail after r246757: |
| - editing/selection/ios/selection-handles-in-iframe.html |
| - editing/selection/ios/selection-handle-clamping-in-iframe.html |
| |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::selectWithGesture): |
| |
| Only call the new helper method, setFocusedFrameBeforeSelectingTextAtLocation, at the start of the gesture. |
| |
| (WebKit::WebPage::setFocusedFrameBeforeSelectingTextAtLocation): |
| (WebKit::WebPage::selectTextWithGranularityAtPoint): |
| |
| 2019-07-01 Alex Christensen <achristensen@webkit.org> |
| |
| Add new decidePolicyForNavigationAction SPI with preferences and userInfo |
| https://bugs.webkit.org/show_bug.cgi?id=199371 |
| <rdar://problem/52352905> |
| |
| Reviewed by Tim Horton. |
| |
| Also deprecate some older SPI so we may someday clean up this mess. |
| |
| * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: |
| * UIProcess/Cocoa/NavigationState.h: |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::setNavigationDelegate): |
| (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): |
| (WebKit::NavigationState::NavigationClient::shouldBypassContentModeSafeguards const): |
| |
| 2019-07-01 Alex Christensen <achristensen@webkit.org> |
| |
| Deprecate but still call _webView:showCustomSheetForElement: after transition to UIContextMenuInteraction |
| https://bugs.webkit.org/show_bug.cgi?id=199296 |
| <rdar://problem/51041960> |
| |
| Reviewed by Darin Adler. |
| |
| * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _showAttachmentSheet]): |
| (-[WKContentView actionSheetAssistant:showCustomSheetForElement:]): |
| (-[WKContentView continueContextMenuInteraction:]): |
| |
| 2019-07-01 Alex Christensen <achristensen@webkit.org> |
| |
| Add main thread assertions in sendWithAsyncReply code |
| https://bugs.webkit.org/show_bug.cgi?id=199324 |
| |
| Reviewed by Sam Weinig. |
| |
| sendWithAsyncReply can only be used on the main thread because |
| the CompletionHandler will be called on the main thread, and if it's |
| called from a background thread, then HashMap corruption will likely happen. |
| Add assertions to alert developers that they should only call sendWithAsyncReply |
| from the main thread. |
| |
| This is responding to good feedback from r237294 |
| |
| * Platform/IPC/Connection.cpp: |
| (IPC::asyncReplyHandlerMap): |
| (IPC::nextAsyncReplyHandlerID): |
| (IPC::addAsyncReplyHandler): |
| (IPC::clearAsyncReplyHandlers): |
| (IPC::CompletionHandler<void): |
| |
| 2019-07-01 Eric Carlson <eric.carlson@apple.com> |
| |
| [iOS] Exiting from fullscreen scrolls to top of page |
| https://bugs.webkit.org/show_bug.cgi?id=199338 |
| <rdar://problem/51273017> |
| |
| Reviewed by Jer Noble. |
| |
| * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm: |
| (-[WKFullScreenWindowController _completedExitFullScreen]): Restore scroll position. |
| Hide window after restoring scroll position. |
| (-[WKFullScreenWindowController _exitFullscreenImmediately]): Drive-by fix: remove code |
| already also done in _completedExitFullScreen. |
| |
| 2019-07-01 Zalan Bujtas <zalan@apple.com> |
| |
| Tapping on the bottom part of youtube video behaves as if controls were visible |
| https://bugs.webkit.org/show_bug.cgi?id=199349 |
| <rdar://problem/51955744> |
| |
| Reviewed by Simon Fraser. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::handleTouchEvent): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::handleSyntheticClick): |
| (WebKit::WebPage::completePendingSyntheticClickForContentChangeObserver): |
| (WebKit::WebPage::completeSyntheticClick): |
| (WebKit::WebPage::potentialTapAtPosition): |
| |
| 2019-07-01 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| iOS: REGRESSION(async scroll): Caret doesn't scroll when scrolling textarea |
| https://bugs.webkit.org/show_bug.cgi?id=198217 |
| <rdar://problem/51097296> |
| |
| Reviewed by Simon Fraser. |
| |
| In iOS 12, when scrolling a text selection in an fast-scrolling container, editor state updates are scheduled |
| under AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll after the end of the scrolling gesture, |
| when the scrolling layer action is ScrollingLayerPositionAction::Set. This is no longer the case in iOS 13, |
| because we now bail in ScrollingTreeScrollingNode::wasScrolledByDelegatedScrolling after scroll deceleration |
| finishes since the scroll position didn't end up changing. Additionally, we no longer use |
| ScrollingLayerPositionAction::Set in the case where scrolling finished decelerating, since |
| ScrollingTreeScrollingNodeDelegateIOS::scrollViewDidScroll no longer uses to value of inUserInteraction to |
| determine whether to Set or Sync scrolling layer positions. |
| |
| To restore iOS 12 behavior, ensure that we send a scrolling tree update using ScrollingLayerPositionAction::Set |
| after scrolling ends. |
| |
| * UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm: |
| (WebKit::ScrollingTreeScrollingNodeDelegateIOS::scrollViewDidScroll): |
| |
| 2019-07-01 Per Arne Vollan <pvollan@apple.com> |
| |
| Perform less work when a pre-warmed WebProcess is suspended or resumed. |
| https://bugs.webkit.org/show_bug.cgi?id=199195 |
| |
| Reviewed by Darin Adler. |
| |
| Return early from WebProcess::actualPrepareToSuspend and WebProcess::processDidResume |
| if this is a pre-warmed process. This is a confirmed improvement in page load time. |
| |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::actualPrepareToSuspend): |
| (WebKit::WebProcess::cancelPrepareToSuspend): |
| (WebKit::WebProcess::processDidResume): |
| |
| 2019-07-01 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| WebSockets: add support for sending blob messages when using web sockets platform APIs |
| https://bugs.webkit.org/show_bug.cgi?id=199189 |
| |
| Reviewed by Youenn Fablet. |
| |
| Add helper private class BlobLoader that uses FileReaderLoader to load the blobs. Since blob loads are |
| asynchronous, the messages are queued using another helper internal class PendingMessage. |
| |
| * WebProcess/Network/WebSocketChannel.cpp: |
| (WebKit::WebSocketChannel::increaseBufferedAmount): Increase the buffered amount checking we don't overlofw. |
| (WebKit::WebSocketChannel::decreaseBufferedAmount): Decrease the buffered amount. |
| (WebKit::WebSocketChannel::sendMessage): Helper class to send message to the network process and decrease the |
| buffered amount when done. |
| (WebKit::WebSocketChannel::send): Queue the message in pending queue if there are pending messages in the queue |
| for text and binary messages. For blobs, always queue the message unless it's an empty blob that we can handle |
| as empty binary data directly. |
| (WebKit::PendingMessage::PendingMessage): Helper class to queue message requests. |
| (WebKit::PendingMessage::type const): Type of message: Text, Binary, Blob. |
| (WebKit::PendingMessage::textMessage const): The text message. |
| (WebKit::PendingMessage::binaryData const): The binary data. |
| (WebKit::PendingMessage::blobLoader const): The blob loader. |
| (WebKit::WebSocketChannel::fail): Notify the client about the error to ensure onclose is emitted. |
| (WebKit::WebSocketChannel::disconnect): Clear the pending messages queue. |
| * WebProcess/Network/WebSocketChannel.h: |
| |
| 2019-07-01 Miguel Gomez <magomez@igalia.com> |
| |
| [WPE][GTK] Content disappearing when using CSS transforms |
| https://bugs.webkit.org/show_bug.cgi?id=181757 |
| |
| Reviewed by Žan Doberšek. |
| |
| Set the appropriate AnimatedBackingStoreClient to the TextureMapperLayers when required. |
| |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: |
| (WebKit::CoordinatedGraphicsScene::updateSceneState): |
| |
| 2019-06-30 Antti Koivisto <antti@apple.com> |
| |
| Use separate variables for moving and stationary scrolling relationships in RemoteLayerTreeNode |
| https://bugs.webkit.org/show_bug.cgi?id=199348 |
| |
| Reviewed by Darin Adler. |
| |
| A layer can have only one acting scroll parent. Not using a vector for that case makes the code clearer. |
| |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeNode.h: |
| (WebKit::RemoteLayerTreeNode::actingScrollContainerID const): |
| (WebKit::RemoteLayerTreeNode::stationaryScrollContainerIDs const): |
| |
| Separate fields for the acting container and stationary containers. |
| |
| (WebKit::RemoteLayerTreeNode::setActingScrollContainerID): |
| (WebKit::RemoteLayerTreeNode::setStationaryScrollContainerIDs): |
| (WebKit::RemoteLayerTreeNode::relatedScrollContainerIDs const): Deleted. |
| (WebKit::RemoteLayerTreeNode::relatedScrollContainerPositioningBehavior const): Deleted. |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm: |
| (WebKit::RemoteLayerTreeNode::setRelatedScrollContainerBehaviorAndIDs): Deleted. |
| * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm: |
| (WebKit::isScrolledBy): |
| (WebKit::findActingScrollParent): |
| * UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm: |
| (WebKit::RemoteScrollingCoordinatorProxy::establishLayerTreeScrollingRelations): |
| |
| 2019-06-30 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [Win] Multiline mode of tooltip control does word-wrapping very slowly |
| https://bugs.webkit.org/show_bug.cgi?id=198989 |
| |
| Reviewed by Ross Kirsling. |
| |
| * UIProcess/win/WebView.cpp: |
| (WebKit::truncatedString): Added. |
| (WebKit::WebView::setToolTip): Use truncatedString. |
| |
| 2019-06-30 Basuke Suzuki <Basuke.Suzuki@sony.com> |
| |
| Pass WebProcess information to platformInitializeWebProcess(). |
| https://bugs.webkit.org/show_bug.cgi?id=199345 |
| |
| Reviewed by Darin Adler. |
| |
| Add const reference to WebProcessProxy for first argument of |
| WebProcessPool::platformInitializeWebProcess(). |
| |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::initializeNewWebProcess): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/glib/WebProcessPoolGLib.cpp: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): |
| * UIProcess/win/WebProcessPoolWin.cpp: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): |
| |
| 2019-06-28 Brent Fulgham <bfulgham@apple.com> |
| |
| Revise WebContent sandbox based on seed feedback |
| https://bugs.webkit.org/show_bug.cgi?id=199339 |
| <rdar://problem/49609201> |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| Unblock syscall needed by CoreText. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2019-06-28 Tim Horton <timothy_horton@apple.com> |
| |
| iOS WebKit2 find-in-page indicator doesn't move with 'overflow: scroll' |
| https://bugs.webkit.org/show_bug.cgi?id=175032 |
| <rdar://problem/29346482> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * WebProcess/WebPage/FindController.cpp: |
| (WebKit::FindController::drawRect): |
| (WebKit::FindController::didScrollAffectingFindIndicatorPosition): |
| Adopt the macOS code that notices that the find highlight doesn't match |
| its original position, but instead of hiding the highlight like we do on macOS, |
| update it. We do this asynchronously to avoid mutating the layer tree |
| in the middle of painting, which is not /truly/ unsafe, but definitely |
| non-ideal and causes fun flashes. |
| |
| * WebProcess/WebPage/FindController.h: |
| * WebProcess/WebPage/ios/FindControllerIOS.mm: |
| (WebKit::FindController::updateFindIndicator): |
| Store m_findIndicatorRect when updating the indicator, just like we do on macOS. |
| |
| 2019-06-28 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed build fix attempt after r246928. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _closeAllMediaPresentations]): |
| |
| 2019-06-28 Youenn Fablet <youenn@apple.com> |
| |
| Protect NetworkProcess::m_swServers from bad session IDs |
| https://bugs.webkit.org/show_bug.cgi?id=199298 |
| <rdar://problem/51859081> |
| |
| Reviewed by Chris Dumez. |
| |
| Protect NetworkProcess from receiving bad session IDs in service worker code path by checking for session ID validity whenever interacting with the map. |
| One of the check is done in WebProcess in which case, if the session ID is bad, the SW connection to NetworkProcess will not be made. |
| For bad session IDs, this will in that case trigger timing out of service worker operations. |
| |
| For get/clear data, exit early in case of bad session ID. |
| |
| Made some refactoring to remove swOriginStoreForSession method. |
| In the one call site where it is used, the store should already be created so we reuse existingSWOriginStoreForSession. |
| |
| Added a bunch of additional ASSERTs. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::destroySession): |
| (WebKit::NetworkProcess::fetchWebsiteData): |
| (WebKit::NetworkProcess::deleteWebsiteData): |
| (WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains): |
| (WebKit::NetworkProcess::registrableDomainsWithWebsiteData): |
| (WebKit::NetworkProcess::actualPrepareToSuspend): |
| (WebKit::NetworkProcess::swServerForSession): |
| (WebKit::NetworkProcess::existingSWOriginStoreForSession const): |
| (WebKit::NetworkProcess::registerSWServerConnection): |
| * NetworkProcess/NetworkProcess.h: |
| * WebProcess/Network/NetworkProcessConnection.cpp: |
| (WebKit::NetworkProcessConnection::initializeSWClientConnection): |
| * WebProcess/Storage/WebSWClientConnection.cpp: |
| (WebKit::WebSWClientConnection::WebSWClientConnection): |
| (WebKit::WebSWClientConnection::initializeConnectionIfNeeded): |
| (WebKit::WebSWClientConnection::ensureConnectionAndSend): |
| |
| 2019-06-28 Timothy Hatcher <timothy@apple.com> |
| |
| Rename effectiveAppearanceIsInactive and useInactiveAppearance to better match UIUserInterfaceLevel. |
| https://bugs.webkit.org/show_bug.cgi?id=199336 |
| rdar://problem/52348938 |
| |
| Reviewed by Tim Horton. |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _effectiveUserInterfaceLevelIsElevated]): |
| (-[WKWebView _effectiveAppearanceIsInactive]): Deleted. |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::effectiveUserInterfaceLevelIsElevated): |
| (WebKit::WebViewImpl::effectiveAppearanceIsInactive): Deleted. |
| * UIProcess/PageClient.h: |
| (WebKit::PageClient::effectiveUserInterfaceLevelIsElevated const): |
| (WebKit::PageClient::effectiveAppearanceIsInactive const): Deleted. |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::creationParameters): |
| (WebKit::WebPageProxy::useElevatedUserInterfaceLevel const): |
| (WebKit::WebPageProxy::effectiveAppearanceDidChange): |
| (WebKit::WebPageProxy::useInactiveAppearance const): Deleted. |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::effectiveUserInterfaceLevelIsElevated const): |
| (WebKit::PageClientImpl::effectiveAppearanceIsInactive const): Deleted. |
| * UIProcess/mac/PageClientImplMac.h: |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::effectiveUserInterfaceLevelIsElevated const): |
| (WebKit::PageClientImpl::effectiveAppearanceIsInactive const): Deleted. |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: |
| (WKBundlePageSetUseDarkAppearance): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_shrinkToFitContentTimer): |
| (WebKit::WebPage::effectiveAppearanceDidChange): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2019-06-28 Jer Noble <jer.noble@apple.com> |
| |
| Unreviewed maccatalyst build fix; add ENABLE(FULLSCREEN) checks around calls to fullScreenManager(). |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _closeAllMediaPresentations]): |
| |
| 2019-06-28 Tim Horton <timothy_horton@apple.com> |
| |
| macCatalyst: Selected range sometimes wrong after autocorrection |
| https://bugs.webkit.org/show_bug.cgi?id=199299 |
| <rdar://problem/49717224> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/Cocoa/TextCheckingController.h: |
| * UIProcess/Cocoa/TextCheckingController.mm: |
| (WebKit::TextCheckingController::replaceRelativeToSelection): |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView replaceSelectionOffset:length:withAnnotatedString:relativeReplacementRange:]): |
| Plumb the whole relative replacement range through to the Web Content process. |
| |
| * WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.h: |
| * WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.messages.in: |
| * WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm: |
| (WebKit::TextCheckingControllerProxy::replaceRelativeToSelection): |
| Only replace the text of the substring that changed (the replacement range), |
| and fix up the selection offset math (it was really just wrong before). |
| |
| 2019-06-28 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Need a way for SPI clients to know when to avoid resizing to accommodate for the input view bounds |
| https://bugs.webkit.org/show_bug.cgi?id=199331 |
| <rdar://problem/52116170> |
| |
| Reviewed by Tim Horton. |
| |
| Expose new SPI, such that clients may check whether to avoid resizing the web view when changing input view |
| bounds. In particular, resizing the web view in this case causes toolbar menus in Microsoft Word online to |
| dismiss immediately after opening them, due to resize events fired as a result of the input view dismissing. |
| |
| * Shared/FocusedElementInformation.cpp: |
| (WebKit::FocusedElementInformation::encode const): |
| (WebKit::FocusedElementInformation::decode): |
| * Shared/FocusedElementInformation.h: |
| |
| Add a new flag to FocusedElementInformation to indicate whether we should avoid resizing the web view when an |
| input view is presented. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _shouldAvoidResizingWhenInputViewBoundsChange]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _elementDidBlur]): |
| |
| Reset the value of the flag. |
| |
| (-[WKContentView _shouldAvoidResizingWhenInputViewBoundsChange]): |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::getFocusedElementInformation): |
| |
| 2019-06-28 Jer Noble <jer.noble@apple.com> |
| |
| Add new -[WKWebView _closeAllMediaPresentations] SPI |
| https://bugs.webkit.org/show_bug.cgi?id=199294 |
| <rdar://problem/51965958> |
| |
| Reviewed by Alex Christensen. |
| |
| Add a new SPI that will close all out-of-window media presentations, including |
| picture-in-picture, video fullscreen, and element fullscreen. |
| |
| Drive-by fixes: |
| |
| + -[WKApplicationStateTrackingView didMoveToWindow] incorrectly assumes that a WKWebView will |
| never be moved frome one window to another, and asserts. |
| |
| + -[WKFullScreenWindowController close] doesn't fire the correct 'webkitfullscreenchange' event |
| when called in the middle of animating into fullscreen. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _closeAllMediaPresentations]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.h: |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.mm: |
| (WebKit::VideoFullscreenManagerProxy::forEachSession): |
| * UIProcess/ios/WKApplicationStateTrackingView.mm: |
| (-[WKApplicationStateTrackingView didMoveToWindow]): |
| * UIProcess/mac/WKFullScreenWindowController.h: |
| * UIProcess/mac/WKFullScreenWindowController.mm: |
| (-[WKFullScreenWindowController exitFullScreenImmediately]): |
| (-[WKFullScreenWindowController close]): |
| |
| 2019-06-28 Antti Koivisto <antti@apple.com> |
| |
| [iOS Scrolling] Propagate scrolls to non-nested UIScrollViews |
| https://bugs.webkit.org/show_bug.cgi?id=199222 |
| |
| Reviewed by Simon Fraser. |
| |
| We may generate scrolling hierarchies where the scrolling ancestor of a layer is not |
| an ancestor in the layer tree. We handle this in most situations but there is still |
| a problem where a scroller fails to propage scroll to the ancestor when it reaches |
| the edge. |
| |
| This patch hooks up a new SPI that allows us to tell UIKit about non-ancestor scrolling |
| relations and solve this problem. |
| |
| * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.h: |
| * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm: |
| (WebKit::findActingScrollParent): |
| * UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.h: |
| * UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm: |
| (-[WKScrollingNodeScrollViewDelegate _actingParentScrollViewForScrollView:]): |
| |
| Hook into UIKit SPI. |
| |
| (WebKit::ScrollingTreeScrollingNodeDelegateIOS::findActingScrollParent): |
| |
| 2019-06-28 Konstantin Tokarev <annulen@yandex.ru> |
| |
| Remove traces of ENABLE_ICONDATABASE remaining after its removal in 219733 |
| https://bugs.webkit.org/show_bug.cgi?id=199317 |
| |
| Reviewed by Michael Catanzaro. |
| |
| While IconDatabase and all code using it was removed, |
| ENABLE_ICONDATABASE still exists as build option and C++ macro. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * PlatformGTK.cmake: Remove reference to unused urlIcon.png file. |
| |
| 2019-06-28 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| -[WKContentView _selectionClipRects] returns a bogus value in -reloadInputViews when focusing an element |
| https://bugs.webkit.org/show_bug.cgi?id=199310 |
| <rdar://problem/52292137> |
| |
| Reviewed by Megan Gardner. |
| |
| When reloading input views under -_elementDidFocus:, -_selectionClipRect returns the value of the previously |
| focused element; this is because _selectionClipRect depends on EditorState's post layout data, which is only |
| guaranteed to arrive during the next remote layer tree commit after the element is focused. |
| |
| However, some clients need to inspect this value under the call to -reloadInputViews when an element is focused; |
| to make this work, simply check whether we are currently waiting for post-layout EditorState data to arrive |
| following element focus; if so, return the FocusedElementInformation's elementRect, which represents the initial |
| state of the focused element. Otherwise, use the EditorState's post layout data, which is guaranteed to be more |
| up-to-date than the FocusedElementInformation's element rect. |
| |
| Test: KeyboardInputTests.SelectionClipRectsWhenPresentingInputView |
| |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::waitingForPostLayoutEditorStateUpdateAfterFocusingElement const): |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _selectionClipRect]): |
| |
| 2019-06-28 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [SOUP] WebSockets: runtime critical warning when closing the connection in some cases |
| https://bugs.webkit.org/show_bug.cgi?id=199265 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Ensure the connection is still open before calling soup_websocket_connection_close(). |
| |
| * NetworkProcess/soup/WebSocketTaskSoup.cpp: |
| (WebKit::WebSocketTask::close): |
| |
| 2019-06-27 Zan Dobersek <zdobersek@igalia.com> |
| |
| Unreviewed WPE build fix. |
| |
| * SourcesWPE.txt: Add WebSocketTaskSoup.cpp to the build. |
| |
| 2019-06-27 Dean Jackson <dino@apple.com> |
| |
| Provide overrides for UIKit's suggested actions in UIContextMenuInteraction |
| https://bugs.webkit.org/show_bug.cgi?id=199301 |
| <rdar://problem/52297380> |
| |
| Reviewed by Tim Horton. |
| |
| We were previously wrapping the actionMenuProvider with our own block |
| in order to ensure the correct suggestedActions were passed to the provider. |
| UIKit added API for us to override the actions separately. |
| |
| Unfortunately we can't quite yet get rid of our access into the |
| UIContextMenuConfiguration, because we still need to override the preview |
| handler in the case where the user does not want link previews. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView continueContextMenuInteraction:]): |
| (-[WKContentView _contextMenuInteraction:overrideSuggestedActionsForConfiguration:]): |
| Implement the new delegate SPI to provide our own actions. |
| |
| 2019-06-27 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Select all with existing range selection replaces range instead of selecting all text |
| https://bugs.webkit.org/show_bug.cgi?id=197950 |
| <rdar://problem/50245131> |
| |
| Reviewed by Wenson Hsieh. |
| |
| Following <rdar://problem/47333786>, UIKit now asks WebKit whether it can handle Command + A as |
| "select all" instead of just demanding that we handle it. So, WebKit needs to be able to correctly |
| tell UIKit in advance whether it can handle it. Currenlty WebKit tells UIKit it cannot handle a |
| "select all" whenever there is an existing range selection. So, UIKit does not tell WebKit to |
| perform the "select all". Moreover, since UIKit has no other means to handle this key command |
| itself it tells WebKit the key command was not handled. So, WebKit tells the keyboard to insert |
| the "a". Instead, WebKit should tell UIKit it can handle a "select all" even when this is an |
| existing range selection. However we need to keep the current logic just for when UIKit is |
| asking us with respect to populating the callout menu to not regress platform behavior. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView canPerformActionForWebView:withSender:]): Do what we do now if we are called |
| when populating the callout menu and action is Select All. Otherwise, return YES for the Select All |
| action if we have a non-empty selection. |
| |
| 2019-06-27 Andy Estes <aestes@apple.com> |
| |
| [iOS] Stop using cached UITargetedPreviews from previous interactions when starting a new context menu interaction |
| https://bugs.webkit.org/show_bug.cgi?id=199285 |
| <rdar://problem/52074916> |
| |
| Reviewed by Tim Horton. |
| |
| WKContentView was caching the UITargetedPreview created in |
| -contextMenuInteraction:previewForHighlightingMenuWithConfiguration: for later reuse by |
| -contextMenuInteraction:previewForDismissingMenuWithConfiguration:. The cached value was |
| then cleared in -contextMenuInteractionDidEnd:. |
| |
| This was wrong, because -contextMenuInteractionDidEnd: can be called before |
| -contextMenuInteraction:previewForDismissingMenuWithConfiguration:, so we would clear the |
| cache then create and cache a new UITargetedPreview during dismissal. Then when a new |
| context menu interaction started, we'd reuse the targeted preview created for the previous |
| dismissal (which has the wrong geometry). |
| |
| Stop assuming an ordering between |
| -contextMenuInteraction:previewForDismissingMenuWithConfiguration: and |
| -contextMenuInteractionDidEnd:. Instead, always create and cache a new UITargetedPreview in |
| -contextMenuInteraction:previewForHighlightingMenuWithConfiguration:, then reuse it and |
| clear the cache in -contextMenuInteraction:previewForDismissingMenuWithConfiguration:. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _createTargetedPreviewIfPossible]): |
| (-[WKContentView contextMenuInteraction:previewForDismissingMenuWithConfiguration:]): |
| (-[WKContentView contextMenuInteractionDidEnd:]): |
| |
| 2019-06-27 Sihui Liu <sihui_liu@apple.com> |
| |
| Regression(r246526): StorageManager thread hangs |
| https://bugs.webkit.org/show_bug.cgi?id=199278 |
| <rdar://problem/52202948> |
| |
| Reviewed by Geoffrey Garen. |
| |
| r246526 adds a lock m_localStorageNamespacesMutex to protect m_localStorageNamespaces, because |
| m_localStorageNamespaces is destroyed at main thread while accesses to m_localStorageNamespaces happen in the |
| background thread. |
| After r246526, getOrCreateLocalStorageNamespace acquires lock m_localStorageNamespacesMutex when |
| m_localStorageNamespacesMutex is already acquired in cloneSessionStorageNamespace, so the StorageManager thread |
| hangs. |
| To solve this issue, we can remove the lock in getOrCreateLocalStorageNamespace, or we can remove the |
| m_localStorageNamespacesMutex. waitUntilWritesFinished() before ~StorageManager() already guarantees nothing |
| will be running in the background thread, so it is unlikely we the access to m_localStorageNamespaces in the |
| background thread would collide with the destruction of m_localStorageNamespaces. Also, we don't need |
| didDestroyStorageArea as LocalStorageNamespace can hold the last reference of StorageArea after r245881. |
| |
| * NetworkProcess/WebStorage/StorageManager.cpp: |
| (WebKit::StorageManager::StorageArea::StorageArea): |
| (WebKit::StorageManager::StorageArea::~StorageArea): |
| (WebKit::StorageManager::LocalStorageNamespace::LocalStorageNamespace): |
| (WebKit::StorageManager::cloneSessionStorageNamespace): |
| (WebKit::StorageManager::getLocalStorageOrigins): |
| (WebKit::StorageManager::deleteLocalStorageEntriesForOrigin): |
| (WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince): |
| (WebKit::StorageManager::deleteLocalStorageEntriesForOrigins): |
| (WebKit::StorageManager::getOrCreateLocalStorageNamespace): |
| (WebKit::StorageManager::LocalStorageNamespace::didDestroyStorageArea): Deleted. |
| * NetworkProcess/WebStorage/StorageManager.h: |
| |
| 2019-06-27 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| WebSockets: avoid data copies when queuing tasks in WebSocketChannel |
| https://bugs.webkit.org/show_bug.cgi?id=199262 |
| |
| Reviewed by Alex Christensen. |
| |
| For IPC message handler arguments we can receive rvalue references instead of const references. |
| |
| * WebProcess/Network/WebSocketChannel.cpp: |
| (WebKit::WebSocketChannel::didConnect): |
| (WebKit::WebSocketChannel::didReceiveText): |
| (WebKit::WebSocketChannel::didReceiveBinaryData): |
| (WebKit::WebSocketChannel::didClose): |
| (WebKit::WebSocketChannel::didReceiveMessageError): |
| * WebProcess/Network/WebSocketChannel.h: |
| |
| 2019-06-27 Youenn Fablet <youenn@apple.com> |
| |
| Fix build after revision 246877 |
| https://bugs.webkit.org/show_bug.cgi?id=199276 |
| |
| Unreviewed. |
| |
| Pass protocol parameter to NetworkSocketChannel. |
| |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (-[WKNetworkSessionDelegate URLSession:webSocketTask:didOpenWithProtocol:]): |
| * NetworkProcess/cocoa/WebSocketTaskCocoa.h: |
| * NetworkProcess/cocoa/WebSocketTaskCocoa.mm: |
| (WebKit::WebSocketTask::didConnect): |
| |
| 2019-06-27 Beth Dakin <bdakin@apple.com> |
| |
| Upstream use of MACCATALYST |
| https://bugs.webkit.org/show_bug.cgi?id=199245 |
| rdar://problem/51687723 |
| |
| Reviewed by Tim Horton. |
| |
| * Configurations/Base.xcconfig: |
| * Configurations/FeatureDefines.xcconfig: |
| * Configurations/Network-iOSMac.entitlements: Removed. |
| * Configurations/Network-macCatalyst.entitlements: Copied from Source/WebKit/Configurations/Network-iOSMac.entitlements. |
| * Configurations/NetworkService.xcconfig: |
| * Configurations/SDKVariant.xcconfig: |
| * Configurations/WebContent-iOSMac.entitlements: Removed. |
| * Configurations/WebContent-macCatalyst.entitlements: Copied from Source/WebKit/Configurations/WebContent-iOSMac.entitlements. |
| * Configurations/WebContentService.xcconfig: |
| * Configurations/WebKit.xcconfig: |
| * NetworkProcess/ios/NetworkProcessIOS.mm: |
| * NetworkProcess/mac/NetworkProcessMac.mm: |
| (WebKit::NetworkProcess::initializeProcess): |
| (WebKit::NetworkProcess::initializeProcessName): |
| * Platform/mac/LayerHostingContext.mm: |
| (WebKit::LayerHostingContext::createForExternalHostingProcess): |
| * Platform/spi/ios/ManagedConfigurationSPI.h: |
| * Platform/spi/ios/UIKitSPI.h: |
| * Shared/WebPreferencesDefaultValues.cpp: |
| (WebKit::defaultCustomPasteboardDataEnabled): |
| * Shared/ios/AuxiliaryProcessIOS.mm: |
| (WebKit::AuxiliaryProcess::initializeSandbox): |
| * Shared/ios/InteractionInformationAtPosition.h: |
| * Shared/ios/InteractionInformationAtPosition.mm: |
| (WebKit::InteractionInformationAtPosition::encode const): |
| (WebKit::InteractionInformationAtPosition::decode): |
| * Shared/mac/AuxiliaryProcessMac.mm: |
| (WebKit::enableSandboxStyleFileQuarantine): |
| * Shared/mac/CodeSigning.mm: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _webViewPrintFormatter]): |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm: |
| (WebKit::RemoteLayerTreeHost::updateLayerTree): |
| * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm: |
| (-[WKRemoteView initWithFrame:contextID:]): |
| * UIProcess/_WKWebViewPrintFormatter.mm: |
| * UIProcess/_WKWebViewPrintFormatterInternal.h: |
| * UIProcess/ios/WKActionSheetAssistant.mm: |
| (-[WKActionSheetAssistant _elementActionForDDAction:]): |
| * UIProcess/ios/WKContentView.mm: |
| (-[WKContentView _commonInitializationWithProcessPool:configuration:]): |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView setupInteraction]): |
| (-[WKContentView cleanupInteraction]): |
| (-[WKContentView _removeDefaultGestureRecognizers]): |
| (-[WKContentView _addDefaultGestureRecognizers]): |
| (-[WKContentView _showTapHighlight]): |
| (-[WKContentView gestureRecognizer:canBePreventedByGestureRecognizer:]): |
| (-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]): |
| (-[WKContentView canPerformActionForWebView:withSender:]): |
| (-[WKContentView _defineForWebView:]): |
| (-[WKContentView setSelectedTextRange:]): |
| (-[WKContentView closestPositionToPoint:]): |
| (-[WKContentView _showShareSheet:inRect:completionHandler:]): |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::desktopClassBrowsingSupported): |
| (WebKit::desktopClassBrowsingRecommended): |
| * UIProcess/ios/forms/WKFileUploadPanel.mm: |
| (-[WKFileUploadPanel _showDocumentPickerMenu]): |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm: |
| * WebProcess/WebPage/Cocoa/WebPageCocoa.mm: |
| (WebKit::WebPage::dictionaryPopupInfoForRange): |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::platformEditorState const): |
| (WebKit::WebPage::selectWithGesture): |
| (WebKit::selectionPositionInformation): |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::initializeSandbox): |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2019-06-27 Saam Barati <sbarati@apple.com> |
| |
| Make WEBGPU enabled only on Mojave and later. |
| |
| Rubber-stamped by Myles C. Maxfield. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2019-06-27 Adrian Perez de Castro <aperez@igalia.com> |
| |
| [GTK][WPE] Fix build non-unified builds after r246856 |
| https://bugs.webkit.org/show_bug.cgi?id=199263 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * UIProcess/API/C/WKMessageListener.cpp: Added missing inclusion of WKAPICast.h and usage of WebKit namespace. |
| |
| 2019-06-27 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [SOUP] WebSockets: handle TLS certificate and errors |
| https://bugs.webkit.org/show_bug.cgi?id=199223 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Connect to accept-certificate signal on the WebSocket message connection to decide what to do in case of TLS errors. |
| |
| * NetworkProcess/soup/NetworkSessionSoup.cpp: |
| (WebKit::webSocketAcceptCertificateCallback): |
| (WebKit::webSocketMessageNetworkEventCallback): |
| (WebKit::NetworkSessionSoup::createWebSocketTask): |
| |
| 2019-06-27 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [SOUP] Use libsoup WebSockets API |
| https://bugs.webkit.org/show_bug.cgi?id=199151 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Use the new WebSockets code path that depends on platform specific WebSockets implementation using the libsoup |
| API. This is an initial implementation manually tested using the layout tests, which most of them fail due to |
| missing console messages, missing features in the new code path or differences in the platform |
| implementation. It will be disabled by default until it's feature complete compared to the internal WebKit |
| implementation. |
| |
| * NetworkProcess/NetworkSocketChannel.cpp: |
| (WebKit::NetworkSocketChannel::NetworkSocketChannel): Null check m_socket before using it, because |
| createWebSocketTask() can return nullptr; |
| (WebKit::NetworkSocketChannel::didConnect): Receive the protocol accepted by the server. |
| (WebKit::NetworkSocketChannel::didReceiveMessageError): Something failed in the server side. |
| * NetworkProcess/NetworkSocketChannel.h: |
| * NetworkProcess/WebSocketTask.h: |
| * NetworkProcess/soup/NetworkSessionSoup.cpp: |
| (WebKit::NetworkSessionSoup::createWebSocketTask): Create a WebSocketTask. |
| * NetworkProcess/soup/NetworkSessionSoup.h: |
| * NetworkProcess/soup/WebSocketTaskSoup.cpp: Added. |
| (WebKit::WebSocketTask::WebSocketTask): |
| (WebKit::WebSocketTask::~WebSocketTask): |
| (WebKit::WebSocketTask::didConnect): |
| (WebKit::WebSocketTask::didReceiveMessageCallback): |
| (WebKit::WebSocketTask::didReceiveErrorCallback): |
| (WebKit::WebSocketTask::didFail): |
| (WebKit::WebSocketTask::didCloseCallback): |
| (WebKit::WebSocketTask::didClose): |
| (WebKit::WebSocketTask::sendString): |
| (WebKit::WebSocketTask::sendData): |
| (WebKit::WebSocketTask::close): |
| (WebKit::WebSocketTask::cancel): |
| (WebKit::WebSocketTask::resume): |
| * NetworkProcess/soup/WebSocketTaskSoup.h: Copied from Source/WebKit/NetworkProcess/WebSocketTask.h. |
| * SourcesGTK.txt: |
| * WebProcess/Network/WebSocketChannel.cpp: |
| (WebKit::WebSocketChannel::subprotocol): Return the protocol accepted by the server. |
| (WebKit::WebSocketChannel::didConnect): Set the protocol accepted by the server. |
| (WebKit::WebSocketChannel::didReceiveMessageError): It's now an IPC message handler and receives the reason as parameter. |
| (WebKit::WebSocketChannel::networkProcessCrashed): Pass empty reason. |
| * WebProcess/Network/WebSocketChannel.h: |
| * WebProcess/Network/WebSocketChannel.messages.in: |
| |
| 2019-06-21 Konstantin Tokarev <annulen@yandex.ru> |
| |
| [cmake] Switch to built-in handling of C++ standard instead of hardcoding -std=c++17 |
| https://bugs.webkit.org/show_bug.cgi?id=199108 |
| |
| Reviewed by Don Olmstead. |
| |
| Rationale: |
| |
| 1. It provides an abstraction over exact flags of particular compilers - |
| we just specify required version of C++ standard |
| 2. External libraries (like Qt used in WPEQt) may require particular C++ |
| standard or even particular C++ features to be availabe (e.g. Qt |
| requires INTERFACE_COMPILE_FEATURES cxx_decltype, which causes cmake |
| to add -std=gnu++11 unless proper CXX_STANDARD is defined) |
| |
| * PlatformWPE.cmake: Use project-level default for CXX_STANDARD |
| property. |
| |
| 2019-06-26 Jiewen Tan <jiewen_tan@apple.com> |
| |
| SubFrameSOAuthorizationSession should preserve the referrer header when fall back to web path |
| https://bugs.webkit.org/show_bug.cgi?id=199232 |
| <rdar://problem/51718328> |
| |
| Reviewed by Youenn Fablet. |
| |
| The fall back to web path mechanism in SubFrameSOAuthorizationSession doesn't actually resume |
| the previous navigation. Instead it starts a new one. The current implementation doesn't carry |
| any information from the previous navigation. It is problematic when it comes to http referrer |
| as the server might use that to determine what kind of responses to send back. Therefore, we |
| add that information now. |
| |
| To accomplish the above, the patch teaches WebFrameProxy::loadURL to carry referrer information |
| when it is available. Then SubFrameSOAuthorizationSession can reuses the referrer from the |
| original request. |
| |
| * UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.mm: |
| (WebKit::SubFrameSOAuthorizationSession::fallBackToWebPathInternal): |
| * UIProcess/WebFrameProxy.cpp: |
| (WebKit::WebFrameProxy::loadURL): |
| * UIProcess/WebFrameProxy.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::loadURLInFrame): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2019-06-26 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| testRunner.setAlwaysAcceptCookies should wait for cookie accept policy to be set |
| https://bugs.webkit.org/show_bug.cgi?id=199230 |
| <rdar://problem/52217933> |
| |
| Unreviewed build fix for WinCairo WK2 since r246856. |
| |
| * PlatformWin.cmake: Added WKMessageListener.h to WebKit_PUBLIC_FRAMEWORK_HEADERS. |
| |
| 2019-06-26 Dean Jackson <dino@apple.com> |
| |
| Add type to UIImage symbol mapping for _WKElementAction |
| https://bugs.webkit.org/show_bug.cgi?id=199255 |
| |
| Reviewed by Sam Weinig. |
| |
| Moving some code in from WebKitAdditions now |
| that the API is public. |
| |
| * UIProcess/API/Cocoa/_WKElementAction.mm: |
| (+[_WKElementAction imageForElementActionType:]): |
| (elementActionTypeToUIActionIdentifier): |
| (uiActionIdentifierToElementActionType): |
| |
| 2019-06-26 Dean Jackson <dino@apple.com> |
| |
| Expose UIAction identifiers for _WKElementActions |
| https://bugs.webkit.org/show_bug.cgi?id=199246 |
| <rdar://problem/52218950> |
| |
| Reviewed by Tim Horton. |
| |
| In order for clients to create a contextual menu, they are given |
| a set of suggested UIActions, created from _WKElementActions. |
| By associating identifiers (strings) with the UIActions, clients |
| can inspect the suggestions and make a decision on whether or |
| not to include them in the final menu. |
| |
| * UIProcess/API/Cocoa/_WKElementAction.h: Typedef UIActionIdentifier, |
| add a method to create a UIAction from an _WKElementAction, and a |
| helper to map between identifiers and types. |
| |
| * UIProcess/API/Cocoa/_WKElementAction.mm: |
| (elementActionTypeToUIActionIdentifier): Helper to convert between the two types. |
| (uiActionIdentifierToElementActionType): The inverse of above. |
| (+[_WKElementAction elementActionTypeForUIActionIdentifier:]): A client given |
| a UIAction object can use this helper method to see what _WKElementActionType it |
| corresponds to. |
| (-[_WKElementAction uiActionForElementInfo:]): Used by WKContentViewInteraction to |
| create a UIAction from this _WKElementAction. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (uiActionForLegacyPreviewAction): Renamed to make it clear this is a legacy approach. |
| (menuFromLegacyPreviewOrDefaultActions): Split these functions to separate the legacy |
| and non-legacy approach. |
| (-[WKContentView assignLegacyDataForContextMenuInteraction]): |
| (-[WKContentView continueContextMenuInteraction:]): |
| (uiActionForPreviewAction): Deleted. |
| (menuFromPreviewOrDefaults): Deleted. |
| |
| 2019-06-26 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iPadOS] Fix another crash in -[UIPreviewTarget initWithContainer:center:transform:] when generating a fallback targeted preview |
| https://bugs.webkit.org/show_bug.cgi?id=199243 |
| <rdar://problem/51554509> |
| |
| Reviewed by Tim Horton. |
| |
| Additionally make createFallbackTargetedPreview robust in the case where the content view is unparented, and |
| rename _ensureTargetedPreview to _createTargetedPreviewIfPossible, to reflect the fact that it may now return |
| nil. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (createTargetedPreview): |
| (createFallbackTargetedPreview): |
| (-[WKContentView _createTargetedPreviewIfPossible]): |
| (-[WKContentView contextMenuInteraction:previewForHighlightingMenuWithConfiguration:]): |
| (-[WKContentView contextMenuInteraction:previewForDismissingMenuWithConfiguration:]): |
| (-[WKContentView _ensureTargetedPreview]): Deleted. |
| |
| 2019-06-26 Alex Christensen <achristensen@webkit.org> |
| |
| testRunner.setAlwaysAcceptCookies should wait for cookie accept policy to be set |
| https://bugs.webkit.org/show_bug.cgi?id=199230 |
| <rdar://51757107> |
| |
| Reviewed by Andy Estes. |
| |
| This patch adds an optional callback to WKCookieManagerSetHTTPCookieAcceptPolicy which is luckily only used for testing. |
| It also adds listener-based asynchronous versions of didReceiveSynchronousMessageFromInjectedBundle. |
| WebKitTestRunner uses these new abilities to wait for the cookie accept policy to be set in the network process while the web process is hung. |
| This removes the race condition that was causing some flakiness in tests that use testRunner.setAlwaysAcceptCookies |
| |
| * Shared/API/APIObject.h: |
| * Shared/API/c/WKBase.h: |
| * Sources.txt: |
| * UIProcess/API/APIInjectedBundleClient.h: |
| (API::InjectedBundleClient::didReceiveSynchronousMessageFromInjectedBundle): |
| * UIProcess/API/APIMessageListener.h: Copied from Source/WebKit/UIProcess/API/APIInjectedBundleClient.h. |
| (API::MessageListener::create): |
| (API::MessageListener::sendReply): |
| (API::MessageListener::MessageListener): |
| * UIProcess/API/C/WKAPICast.h: |
| * UIProcess/API/C/WKContextInjectedBundleClient.h: |
| * UIProcess/API/C/WKCookieManager.cpp: |
| (WKCookieManagerSetHTTPCookieAcceptPolicy): |
| * UIProcess/API/C/WKCookieManager.h: |
| * UIProcess/API/C/WKMessageListener.cpp: Copied from Source/WebKit/UIProcess/API/APIInjectedBundleClient.h. |
| (WKMessageListenerGetTypeID): |
| (WKMessageListenerSendReply): |
| * UIProcess/API/C/WKMessageListener.h: Copied from Source/WebKit/UIProcess/API/APIInjectedBundleClient.h. |
| * UIProcess/API/C/WKPageInjectedBundleClient.h: |
| * UIProcess/WebContextInjectedBundleClient.cpp: |
| (WebKit::WebContextInjectedBundleClient::didReceiveSynchronousMessageFromInjectedBundle): |
| * UIProcess/WebContextInjectedBundleClient.h: |
| * UIProcess/WebPageInjectedBundleClient.cpp: |
| (WebKit::WebPageInjectedBundleClient::didReceiveSynchronousMessageFromInjectedBundle): |
| * UIProcess/WebPageInjectedBundleClient.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::handleSynchronousMessage): |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::injectedBundleClient): Deleted. |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::handleSynchronousMessage): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-06-26 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iPadOS] eddm.usps.com scrolls horizontally due to explicit width set in viewport meta tag |
| https://bugs.webkit.org/show_bug.cgi?id=199219 |
| <rdar://problem/50425765> |
| |
| Reviewed by Tim Horton. |
| |
| Currently, the heuristic to determine whether the page should be shrunk to fit the content width after loading |
| works by checking whether the page's content is wider than the layout width we've provided for the page. |
| However, in the case where an explicit width larger than the true view width is specified by the page's meta |
| viewport, we'll end up believing that the page's content is not wider than the layout width, which is dictated |
| by the fixed meta viewport width. Instead, we can shrink the page down in this scenario by comparing the content |
| width against the scaled size of the view when computing the amount of horizontal overflow. |
| |
| Test: fast/viewport/ios/shrink-to-fit-content-large-constant-width.html |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::immediatelyShrinkToFitContent): |
| |
| 2019-06-26 Zalan Bujtas <zalan@apple.com> |
| |
| [ContentChangeObserver] Dispatch synthetic mouse event asynchronously in completePendingSyntheticClickForContentChangeObserver |
| https://bugs.webkit.org/show_bug.cgi?id=199220 |
| <rdar://problem/51787961> |
| |
| Reviewed by Simon Fraser. |
| |
| WebPage::completePendingSyntheticClickForContentChangeObserver should not dispatch mouse events synchronously. |
| Mouse events, through style updates could destroy the element that initiated this change. |
| WebPage::handleSyntheticClick() already implements this pattern. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::completePendingSyntheticClickForContentChangeObserver): |
| |
| 2019-06-25 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Implement a new SPI to inform clients about AppSSO |
| https://bugs.webkit.org/show_bug.cgi?id=199085 |
| <rdar://problem/50028246> |
| |
| Reviewed by Geoffrey Garen. |
| |
| This patch implements a new SPI to inform clients about incoming AppSSO interceptions during |
| navigations. Therefore, clients can make an informed decision about whether this is the right |
| moment to do the interception as interceptions often show native UI. Also, the SPI is designed |
| to pass along a human readable name for the extension such that clients can do whatever they |
| want to inform users about what's going on. |
| |
| Here is the new SPI: |
| - (void)_webView:(WKWebView *)webView decidePolicyForSOAuthorizationLoadWithCurrentPolicy:(_WKSOAuthorizationLoadPolicy)policy forExtension:(NSString *)extension completionHandler:(void (^)(_WKSOAuthorizationLoadPolicy policy))completionHandler; |
| |
| * UIProcess/API/APINavigationClient.h: |
| (API::NavigationClient::decidePolicyForSOAuthorizationLoad): |
| * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: |
| * UIProcess/Cocoa/NavigationState.h: |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::setNavigationDelegate): |
| (WebKit::soAuthorizationLoadPolicy): |
| (WebKit::wkSOAuthorizationLoadPolicy): |
| (WebKit::NavigationState::NavigationClient::decidePolicyForSOAuthorizationLoad): |
| * UIProcess/Cocoa/SOAuthorization/SOAuthorizationLoadPolicy.h: Added. |
| * UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm: |
| (WebKit::SOAuthorizationSession::start): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::decidePolicyForSOAuthorizationLoad): |
| * UIProcess/WebPageProxy.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-06-25 Simon Fraser <simon.fraser@apple.com> |
| |
| [iOS WK2 Debug] scrollingcoordinator/scrolling-tree/scroller-with-negative-z-child.html asserts |
| https://bugs.webkit.org/show_bug.cgi?id=199218 |
| |
| Reviewed by Zalan Bujtas. |
| |
| Followup to r246766; don't assert in the UI process if a ScrollingTreeOverflowScrollProxyNode |
| doesn't have a related overflow node; this is currently expected behavior with negative z-order |
| children of a scroller. |
| |
| * UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm: |
| (WebKit::RemoteScrollingCoordinatorProxy::establishLayerTreeScrollingRelations): |
| |
| 2019-06-25 Daniel Bates <dabates@apple.com> |
| |
| Non-editable text selections should be modifiable with hardware keyboard |
| https://bugs.webkit.org/show_bug.cgi?id=199204 |
| <rdar://problem/51651496> |
| |
| Reviewed by Wenson Hsieh. |
| |
| UIKit changes are need for this to work, including <rdar://problem/48322899>. |
| Note that without these changes, -canPerformAction is never called for _move* |
| selectors. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView canPerformAction:withSender:]): |
| |
| 2019-06-25 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Should not process key events in non-editable elements using IME |
| https://bugs.webkit.org/show_bug.cgi?id=199122 |
| <rdar://problem/52006654> |
| |
| Reviewed by Brent Fulgham. |
| |
| Use the non-Input Method code path (the one we use for US keyboard input) for all key events |
| targeting a non-editable element. Such key events will never require Input Method support |
| (i.e. show candidate suggestions). Moreover, this behavior matches the behavior on Mac. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView handleKeyWebEvent:withCompletionHandler:]): |
| |
| 2019-06-25 Alex Christensen <achristensen@webkit.org> |
| |
| Make HTTPCookieAcceptPolicy an enum class |
| https://bugs.webkit.org/show_bug.cgi?id=199081 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Doing so reveals some interesting bugs in the C API that are also fixed: |
| WKPreferencesGetIncrementalRenderingSuppressionTimeout was using its toAPI function to convert a double to a double because HTTPCookieAcceptPolicy used to be an unsigned integer. |
| toAPI(WebCore::MouseButton) was also using the toAPI(HTTPCookieAcceptPolicy) because HTTPCookieAcceptPolicy used to be an unsigned integer. |
| Yikes! Type safety is our friend. |
| |
| * NetworkProcess/Cookies/WebCookieManager.messages.in: |
| * NetworkProcess/Cookies/mac/WebCookieManagerMac.mm: |
| (WebKit::toCFHTTPCookieStorageAcceptPolicy): |
| (WebKit::WebCookieManager::platformSetHTTPCookieAcceptPolicy): |
| (WebKit::WebCookieManager::platformGetHTTPCookieAcceptPolicy): |
| * Shared/API/c/WKSharedAPICast.h: |
| (WebKit::toAPI): |
| * Shared/HTTPCookieAcceptPolicy.h: |
| (): Deleted. |
| * UIProcess/API/C/WKAPICast.h: |
| (WebKit::toHTTPCookieAcceptPolicy): |
| (WebKit::toAPI): |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesGetIncrementalRenderingSuppressionTimeout): |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (toHTTPCookieAcceptPolicy): |
| * UIProcess/WebCookieManagerProxy.cpp: |
| (WebKit::WebCookieManagerProxy::didGetHTTPCookieAcceptPolicy): |
| * UIProcess/WebCookieManagerProxy.h: |
| * UIProcess/WebCookieManagerProxy.messages.in: |
| |
| 2019-06-25 Tim Horton <timothy_horton@apple.com> |
| |
| Wrong title for Data Detectors tap action menu |
| https://bugs.webkit.org/show_bug.cgi?id=199198 |
| <rdar://problem/51957842> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/ios/WKActionSheetAssistant.mm: |
| (-[WKActionSheetAssistant showDataDetectorsSheet]): |
| Always pass the results array through to DataDetectors; they need it |
| to figure out the title too! |
| |
| 2019-06-25 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS] Occasional crash under -[UIPreviewTarget initWithContainer:center:transform:] when generating a drag preview |
| https://bugs.webkit.org/show_bug.cgi?id=199192 |
| <rdar://problem/51554509> |
| |
| Reviewed by Tim Horton. |
| |
| Tweak our preview generation code (for both the context menu and dragging) to be robust in the case where the |
| content view's unscaled view is nil; this may happen in the case after the web content process is terminated |
| and -cleanupInteraction is called, but before -setupInteraction is subsequently called. |
| |
| Additionally, make our logic for creating targeted previews robust in the case where the view is removed from |
| the view hierarchy right before the platform asks for a targeted preview. |
| |
| Test: DragAndDropTests.WebProcessTerminationDuringDrag |
| DragAndDropTests.WebViewRemovedFromViewHierarchyDuringDrag |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView containerViewForTargetedPreviews]): |
| (-[WKContentView _deliverDelayedDropPreviewIfPossible:]): |
| (-[WKContentView dragInteraction:previewForLiftingItem:session:]): |
| (-[WKContentView _ensureTargetedPreview]): |
| |
| 2019-06-25 Youenn Fablet <youenn@apple.com> |
| |
| Close sockets with too high file descriptor |
| https://bugs.webkit.org/show_bug.cgi?id=199116 |
| |
| Reviewed by Eric Carlson. |
| |
| Log the case of failing to open a socket. |
| |
| * NetworkProcess/webrtc/NetworkRTCProvider.cpp: |
| (WebKit::NetworkRTCProvider::createSocket): |
| |
| 2019-06-25 Tim Horton <timothy_horton@apple.com> |
| |
| When Caps Lock is enabled on the Smart Keyboard, can't scroll with space or arrow keys |
| https://bugs.webkit.org/show_bug.cgi?id=199187 |
| <rdar://problem/51521709> |
| |
| Reviewed by Anders Carlsson. |
| |
| * UIProcess/ios/WKKeyboardScrollingAnimator.mm: |
| (-[WKKeyboardScrollingAnimator keyboardScrollForEvent:]): |
| When deciding whether a key event should start a scroll, ignore all |
| modifiers other than the ones we actually care about (including Caps Lock). |
| |
| 2019-06-25 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Fully rename WebKitGTK+ -> WebKitGTK everywhere |
| https://bugs.webkit.org/show_bug.cgi?id=199159 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * UIProcess/API/glib/APIWebsiteDataStoreGLib.cpp: |
| |
| 2019-06-24 Brady Eidson <beidson@apple.com> |
| |
| Null deref in WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad. |
| <rdar://problem/51535942> and https://bugs.webkit.org/show_bug.cgi?id=199123 |
| |
| Reviewed by Andy Estes. |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad): Properly detect this null DocumentLoader |
| and try to learn more about the state of things. |
| |
| 2019-06-24 Chris Dumez <cdumez@apple.com> |
| |
| Pages using Google's anti-flicker optimization may take ~5 seconds to do initial paint |
| https://bugs.webkit.org/show_bug.cgi?id=199173 |
| <rdar://problem/45968770> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Add experimental feature for the quirk. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2019-06-24 John Wilander <wilander@apple.com> |
| |
| Remove IsITPFirstPartyWebsiteDataRemovalEnabled as runtime check |
| https://bugs.webkit.org/show_bug.cgi?id=199164 |
| <rdar://problem/52061147> |
| |
| Reviewed by Brent Fulgham. |
| |
| We've had this toggle as a safety thing since mid-March. No need for it any longer. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ResourceLoadStatisticsMemoryStore::shouldRemoveAllButCookiesFor const): |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * Shared/WebPreferences.yaml: |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeNetworkProcess): |
| |
| 2019-06-24 Daniel Bates <dabates@apple.com> |
| |
| m_focusedElement != &element in WebPage::elementDidBlur() sometimes |
| https://bugs.webkit.org/show_bug.cgi?id=198928 |
| <rdar://problem/51814327> |
| |
| Reviewed by Brent Fulgham. |
| |
| This can happen when the focused editable element is inside a nested frame and a person |
| taps outside that frame. For reasons that seem lost to time, WebKit2 on iOS would mutate |
| the focused frame whenever computing selection positioning information (say, for a tap). |
| This "quirk" was added in r163476, but that code has go through multiple iterations and |
| is no longer comparable to the current code. Yet, the original mutation of the focused |
| frame remained. As a result the UI process and Web process go out of sync with respect |
| to what each thinks is the focused element and this visually manifest itself in at least |
| two ways: |
| |
| 1. A non-sensical DOM focus event would be dispatched at the frame tapped, but |
| we would keep the focused element focused. |
| |
| 2. Because we would keep the focused element focused in (1), even though its frame |
| is not focused, the keyboard would be active (software keyboard on screen or candidate bar |
| on screen if a hardware keyboard is attached), but appear unresponsive: any keys pressed |
| would not cause text to be typed into the editable field. |
| |
| Because of (1) it was possible for m_focusedElement != &element in WebPage::elementDidBlur(). |
| When this happens the UI process would never receive an ElementDidBlur message and hence would |
| not clear out the focused element state and hide the keyboard. |
| |
| We neither do this frame focus mutation in Legacy WebKit on iOS nor Mac. Let's remove this quirk. |
| If it turns out that it causes a compatibility issue then we will be in a better position to |
| understand its purpose and consider bringing this quirk back, if needed. |
| |
| * Shared/ios/InteractionInformationRequest.cpp: |
| (WebKit::InteractionInformationRequest::encode const): |
| (WebKit::InteractionInformationRequest::decode): |
| (WebKit::InteractionInformationRequest::isValidForRequest): |
| (WebKit::InteractionInformationRequest::isApproximatelyValidForRequest): |
| * Shared/ios/InteractionInformationRequest.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _requestActivatedElementAtPosition:completionBlock:]): |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _webTouchEventsRecognized:]): |
| Remove the readOnly field. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::selectionPositionInformation): Remove code to mutate the focused frame. |
| |
| 2019-06-24 Per Arne Vollan <pvollan@apple.com> |
| |
| [Cocoa] Avoid creating a PlatformMediaSessionManager when the WebProcess is suspended or resumed |
| https://bugs.webkit.org/show_bug.cgi?id=199160 |
| |
| Reviewed by Brent Fulgham. |
| |
| When the WebProcess suspends or resumes, the PlatformMediaSessionManager is notified about this. |
| Avoid creating a new PlatformMediaSessionManager if it does not already exist. |
| |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::actualPrepareToSuspend): |
| (WebKit::WebProcess::cancelPrepareToSuspend): |
| (WebKit::WebProcess::processDidResume): |
| |
| 2019-06-24 Adrian Perez de Castro <aperez@igalia.com> |
| |
| [WPE][GTK] Fixes for compilation with unified builds disabled |
| https://bugs.webkit.org/show_bug.cgi?id=199155 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * NetworkProcess/glib/DNSCache.cpp: Add missing inclusion of wtf/glib/RunLoopSourcePriority.h |
| * NetworkProcess/glib/DNSCache.h: Add missing forward declaration for GInetAddress |
| |
| 2019-06-24 Alexander Mikhaylenko <exalm7659@gmail.com> |
| |
| [GTK] Navigation gesture should use dark fallback bg color on dark themes |
| https://bugs.webkit.org/show_bug.cgi?id=199104 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Use theme_base_color instead of white background for swipe gesture fallback if no snapshot is found and |
| the page did not specify a color. This allows it to use dark colors for dark themes. If the color was |
| not found, still fall back to white. |
| |
| * UIProcess/gtk/ViewGestureControllerGtk.cpp: |
| (WebKit::ViewGestureController::beginSwipeGesture): |
| |
| 2019-06-23 Dan Bernstein <mitz@apple.com> |
| |
| Platform font class gets needlessly initialized in the Networking process |
| https://bugs.webkit.org/show_bug.cgi?id=199140 |
| |
| Reviewed by Tim Horton. |
| |
| * NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in: Revert a change that was made in |
| r246702, which is not needed anymore. |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb: Ditto. |
| |
| * Shared/Cocoa/ArgumentCodersCocoa.mm: |
| (IPC::platformColorClass): Added getter that uses NSClassFromString, thereby avoiding |
| initializing the class. |
| (IPC::platformFontClass): Ditto. |
| (IPC::typeFromObject): Changed to use the above getters instead of +class. |
| |
| 2019-06-23 Simon Fraser <simon.fraser@apple.com> |
| |
| [Async overflow scroll] Clipped composited layers inside overflow scroll jitter and get incorrectly clipped |
| https://bugs.webkit.org/show_bug.cgi?id=199133 |
| rdar://problem/43614439 |
| |
| Reviewed by Antti Koivisto. |
| |
| LayoutConstraints -> AbsolutePositionConstraints rename. |
| |
| * Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp: |
| (ArgumentCoder<ScrollingStatePositionedNode>::decode): |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<AbsolutePositionConstraints>::encode): |
| (IPC::ArgumentCoder<AbsolutePositionConstraints>::decode): |
| (IPC::ArgumentCoder<LayoutConstraints>::encode): Deleted. |
| (IPC::ArgumentCoder<LayoutConstraints>::decode): Deleted. |
| * Shared/WebCoreArgumentCoders.h: |
| * Shared/WebRenderLayer.cpp: |
| (WebKit::WebRenderLayer::WebRenderLayer): |
| * UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm: |
| (WebKit::RemoteScrollingCoordinatorProxy::establishLayerTreeScrollingRelations): ScrollingTreeOverflowScrollProxyNode |
| have overflow scroll relations now too. |
| |
| 2019-06-23 Simon Fraser <simon.fraser@apple.com> |
| |
| Add OverflowScrollProxyNodes to the scrolling tree |
| https://bugs.webkit.org/show_bug.cgi?id=199132 |
| |
| Reviewed by Antti Koivisto. |
| |
| Add ScrollingStateOverflowScrollProxyNode and ScrollingTreeOverflowScrollProxyNode. These |
| nodes represent clip and scroll position for an overflow:scroll in the containing block chain, |
| but not the paint ancestor chain of a layer. They will be used to correctly manipulate clip |
| rects for composited layers in non-stacking-context scrollers, and in a future patch will |
| replace the functionality of "Moves" positioned nodes. |
| |
| An OverflowScrollProxyNode has the ScrollingNodeID of the scrolling node that it relates to, |
| and we use the existing "related overflow nodes" to create the back references in the scrolling tree. |
| |
| These nodes are not instantiated yet; a future patch will hook them up. |
| |
| * Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp: |
| (ArgumentCoder<ScrollingStateOverflowScrollProxyNode>::encode): |
| (ArgumentCoder<ScrollingStateOverflowScrollProxyNode>::decode): |
| (WebKit::encodeNodeAndDescendants): |
| (WebKit::RemoteScrollingCoordinatorTransaction::decode): |
| (WebKit::dump): |
| * UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp: |
| (WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers): |
| * UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp: |
| (WebKit::RemoteScrollingTree::createScrollingTreeNode): |
| * UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm: |
| (WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers): |
| * UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm: |
| (WebKit::ScrollingTreeScrollingNodeDelegateIOS::repositionScrollingLayers): |
| |
| 2019-06-21 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Unreviewed, a build fix after r246701 |
| |
| * Shared/LoadParameters.h: |
| Add a default value for shouldOpenExternalURLsPolicy. |
| |
| 2019-06-21 Brent Fulgham <bfulgham@apple.com> |
| |
| Adjust sandboxes based on seed feedback |
| https://bugs.webkit.org/show_bug.cgi?id=199119 |
| <rdar://problem/50164879> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Update our sandboxes to address test failures and bugs encountered during initial iOS 13 and |
| macOS Catalina testing. |
| |
| * 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: |
| |
| 2019-06-21 Jiewen Tan <jiewen_tan@apple.com> |
| |
| WebPageProxy::loadData should accept ShouldOpenExternalURLsPolicy |
| https://bugs.webkit.org/show_bug.cgi?id=199114 |
| <rdar://problem/51671674> |
| |
| Reviewed by Youenn Fablet. |
| |
| This patch teaches WebPageProxy::loadData to accept ShouldOpenExternalURLsPolicy policy, |
| and then utilize it in RedirectSOAuthorizationSession. Therefore, the response loaded after |
| successful interceptions will be able to propagate the same policy from the last navigation |
| as it were continuous loading. |
| |
| Besides the above, this patch also fixes some minor issues. |
| |
| * Shared/LoadParameters.h: |
| * UIProcess/Cocoa/SOAuthorization/NavigationSOAuthorizationSession.mm: |
| (WebKit::NavigationSOAuthorizationSession::shouldStartInternal): |
| (WebKit::NavigationSOAuthorizationSession::webViewDidMoveToWindow): |
| * UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.h: |
| * UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.mm: |
| (WebKit::PopUpSOAuthorizationSession::completeInternal): |
| * UIProcess/Cocoa/SOAuthorization/RedirectSOAuthorizationSession.h: |
| * UIProcess/Cocoa/SOAuthorization/RedirectSOAuthorizationSession.mm: |
| (WebKit::shouldOpenExternalURLsPolicy): |
| (WebKit::RedirectSOAuthorizationSession::completeInternal): |
| * UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.h: |
| * UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm: |
| (WebKit::SOAuthorizationSession::complete): |
| * UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.h: |
| * UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.mm: |
| (WebKit::SubFrameSOAuthorizationSession::fallBackToWebPathInternal): |
| (WebKit::SubFrameSOAuthorizationSession::completeInternal): |
| (WebKit::SubFrameSOAuthorizationSession::loadDataToFrame): |
| (WebKit::SubFrameSOAuthorizationSession::postDidCancelMessageToParent): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::loadRequestWithNavigationShared): |
| (WebKit::WebPageProxy::loadFile): |
| (WebKit::WebPageProxy::loadData): |
| (WebKit::WebPageProxy::loadDataWithNavigationShared): |
| * UIProcess/WebPageProxy.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::loadDataImpl): |
| (WebKit::WebPage::loadData): |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2019-06-21 Tim Horton <timothy_horton@apple.com> |
| |
| WebKit context menu highlights include extra padding |
| https://bugs.webkit.org/show_bug.cgi?id=199080 |
| <rdar://problem/51140126> |
| |
| Reviewed by Dean Jackson. |
| |
| * Shared/ios/InteractionInformationRequest.cpp: |
| (WebKit::InteractionInformationRequest::encode const): |
| (WebKit::InteractionInformationRequest::decode): |
| (WebKit::InteractionInformationRequest::isValidForRequest): |
| (WebKit::InteractionInformationRequest::isApproximatelyValidForRequest): |
| * Shared/ios/InteractionInformationRequest.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView gestureRecognizerShouldBegin:]): |
| (-[WKContentView positionInformationForActionSheetAssistant:]): |
| (-[WKContentView updatePositionInformationForActionSheetAssistant:]): |
| (-[WKContentView _contextMenuInteraction:configurationForMenuAtLocation:completion:]): |
| (-[WKContentView _interactionShouldBeginFromPreviewItemController:forPosition:]): |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::linkIndicatorPositionInformation): |
| Disable the margin going forward, but leave it if we're using the legacy |
| API, because there is no way to add margin at the platform level with |
| the legacy API. |
| |
| In the future we should always have no margin in our indicator, and just |
| apply it in whatever consumes the indicator, so that there is no |
| disagreement between clients about the size of the margin. |
| |
| 2019-06-21 Youenn Fablet <youenn@apple.com> |
| |
| WebPageProxy should use the right path for sandbox extension |
| https://bugs.webkit.org/show_bug.cgi?id=198902 |
| <rdar://problem/50772810> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Store the sandbox path, if any, in UIProcess for each page in its PageLoadState. |
| This allows proper sandbox handling for reload after crash and process swap cases. |
| Store the sandbox path, if any, in the b/w list so that the sandbox path can be properly computed |
| during b/f navigation works. |
| |
| Add SPI for test purposes to check what is the current sandbox path. |
| |
| * Shared/WebBackForwardListItem.h: |
| (WebKit::WebBackForwardListItem::resourceDirectoryURL const): |
| (WebKit::WebBackForwardListItem::setResourceDirectoryURL): |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _resourceDirectoryURL]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/PageLoadState.cpp: |
| (WebKit::PageLoadState::resourceDirectoryURL const): |
| (WebKit::PageLoadState::setPendingAPIRequestURL): |
| * UIProcess/PageLoadState.h: |
| (WebKit::PageLoadState::setPendingAPIRequestURL): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle): |
| (WebKit::WebPageProxy::loadRequestWithNavigationShared): |
| (WebKit::WebPageProxy::loadFile): |
| (WebKit::WebPageProxy::reload): |
| (WebKit::WebPageProxy::backForwardAddItem): |
| (WebKit::WebPageProxy::backForwardGoToItemShared): |
| (WebKit::WebPageProxy::currentResourceDirectoryURL const): |
| * UIProcess/WebPageProxy.h: |
| |
| 2019-06-21 Antoine Quint <graouts@apple.com> |
| |
| [iOS] Compatibility mouse events aren't prevented by calling preventDefault() on pointerdown |
| https://bugs.webkit.org/show_bug.cgi?id=198124 |
| <rdar://problem/50410863> |
| |
| Reviewed by Dean Jackson. |
| |
| Ensure we wait until completion of a tap before removing the pointer ID and the preventDefault() state along with it. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _singleTapDidReset:]): |
| (-[WKContentView _commitPotentialTapFailed]): |
| (-[WKContentView _didCompleteSyntheticClick]): |
| (-[WKContentView _singleTapRecognized:]): |
| |
| 2019-06-21 Keith Rollin <krollin@apple.com> |
| |
| Address reference to UIColor.groupTableViewBackgroundColor in WKPasswordView.mm |
| https://bugs.webkit.org/show_bug.cgi?id=199111 |
| <rdar://problem/51992107> |
| |
| Reviewed by Timothy Hatcher. |
| |
| WKPasswordView.mm is used on iOS-family devices. However, it doesn't |
| build on tvOS or watchOS when "treat deprecation warnings as errors" |
| is enabled. This build failure is due to a reference to |
| UIColor.groupTableViewBackgroundColor in a branch of non-dark-mode |
| code. Address this by surrounding the reference with |
| ALLOW_DEPRECATED_DECLARATIONS_* macros. |
| |
| Attempting to address the build failure by unconditionally enabling |
| the dark-mode code works for tvOS, but fails for watchOS due to lack |
| of dark-mode support on that platform. |
| |
| * UIProcess/ios/WKPasswordView.mm: |
| (-[WKPasswordView showInScrollView:]): |
| |
| 2019-06-21 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [WPE][GTK] Bump minimum versions of GLib, GTK, libsoup, ATK, GStreamer, and Cairo |
| https://bugs.webkit.org/show_bug.cgi?id=199094 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * NetworkProcess/soup/NetworkDataTaskSoup.cpp: |
| (WebKit::NetworkDataTaskSoup::createRequest): |
| (WebKit::NetworkDataTaskSoup::writeDownloadCallback): |
| (WebKit::NetworkDataTaskSoup::writeDownload): |
| (WebKit::NetworkDataTaskSoup::startingCallback): |
| (WebKit::NetworkDataTaskSoup::requestStartedCallback): Deleted. |
| * Shared/gtk/WebEventFactory.cpp: |
| (WebKit::buttonForEvent): |
| (WebKit::WebEventFactory::createWebMouseEvent): |
| (WebKit::WebEventFactory::createWebWheelEvent): |
| (WebKit::WebEventFactory::createWebKeyboardEvent): |
| (WebKit::WebEventFactory::createWebTouchEvent): |
| * UIProcess/API/gtk/PageClientImpl.cpp: |
| (WebKit::PageClientImpl::doneWithTouchEvent): |
| * UIProcess/API/gtk/WebKitWebViewBase.cpp: |
| (ClickCounter::currentClickCountForGdkButtonEvent): |
| (webkitWebViewBaseRealize): |
| (webkitWebViewBaseHandleMouseEvent): |
| (webkitWebViewBaseGetTouchPointsForEvent): |
| (webkitWebViewBaseTouchEvent): |
| (webkitWebViewBaseGestureController): |
| (webkitWebViewBaseEvent): |
| (deviceScaleFactorChanged): |
| (webkitWebViewBaseCreateWebPage): |
| (webkitWebViewBaseTakeViewSnapshot): |
| * UIProcess/API/gtk/WebKitWebViewBasePrivate.h: |
| * UIProcess/API/gtk/WebKitWebViewDialog.cpp: |
| (webkitWebViewDialogDraw): |
| (webkitWebViewDialogConstructed): |
| (webkit_web_view_dialog_class_init): |
| * UIProcess/API/gtk/WebKitWebViewGtk.cpp: |
| (fileChooserDialogResponseCallback): |
| (webkitWebViewRunFileChooser): |
| * UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp: |
| (WebKit::doMouseEvent): |
| (WebKit::doMotionEvent): |
| (WebKit::doKeyStrokeEvent): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/gtk/AcceleratedBackingStoreWayland.cpp: |
| (WebKit::AcceleratedBackingStoreWayland::~AcceleratedBackingStoreWayland): |
| (WebKit::AcceleratedBackingStoreWayland::tryEnsureGLContext): |
| (WebKit::AcceleratedBackingStoreWayland::makeContextCurrent): |
| (WebKit::AcceleratedBackingStoreWayland::paint): |
| * UIProcess/gtk/AcceleratedBackingStoreWayland.h: |
| * UIProcess/gtk/DragAndDropHandler.cpp: |
| (WebKit::DragAndDropHandler::startDrag): |
| (WebKit::DragAndDropHandler::fillDragData): |
| (WebKit::DragAndDropHandler::finishDrag): |
| * UIProcess/gtk/DragAndDropHandler.h: |
| * UIProcess/gtk/GestureController.cpp: |
| (WebKit::GestureController::handleEvent): |
| * UIProcess/gtk/GestureController.h: |
| * UIProcess/gtk/InputMethodFilter.cpp: |
| (WebKit::InputMethodFilter::filterKeyEvent): |
| (WebKit::InputMethodFilter::logHandleKeyboardEventForTesting): |
| (WebKit::InputMethodFilter::logHandleKeyboardEventWithCompositionResultsForTesting): |
| * UIProcess/gtk/ViewGestureControllerGtk.cpp: |
| (WebKit::isEventStop): |
| (WebKit::createScrollEvent): |
| * UIProcess/gtk/WebContextMenuProxyGtk.cpp: |
| (WebKit::WebContextMenuProxyGtk::append): |
| (WebKit::WebContextMenuProxyGtk::WebContextMenuProxyGtk): |
| (WebKit::WebContextMenuProxyGtk::~WebContextMenuProxyGtk): |
| * UIProcess/gtk/WebKitInspectorWindow.cpp: |
| (webkit_inspector_window_init): |
| (webkitInspectorWindowSetSubtitle): |
| * UIProcess/gtk/WebPageProxyGtk.cpp: |
| (WebKit::WebPageProxy::getCenterForZoomGesture): |
| * UIProcess/gtk/WebPopupMenuProxyGtk.cpp: |
| (WebKit::WebPopupMenuProxyGtk::showPopupMenu): |
| (WebKit::WebPopupMenuProxyGtk::hidePopupMenu): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/gtk/WebPageGtk.cpp: |
| (WebKit::WebPage::getCenterForZoomGesture): |
| |
| 2019-06-20 Patrick Griffis <pgriffis@igalia.com> and Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK][WPE] Implement a basic DNS cache |
| https://bugs.webkit.org/show_bug.cgi?id=196094 |
| |
| Reviewed by Michael Catanzaro. |
| |
| This adds a simple cache to all DNS operations in the network process. |
| |
| * NetworkProcess/glib/DNSCache.cpp: Added. |
| (WebKit::DNSCache::DNSCache): |
| (WebKit::DNSCache::mapForType): |
| (WebKit::DNSCache::lookup): |
| (WebKit::DNSCache::update): |
| (WebKit::DNSCache::removeExpiredResponsesInMap): |
| (WebKit::DNSCache::pruneResponsesInMap): |
| (WebKit::DNSCache::removeExpiredResponsesFired): |
| (WebKit::DNSCache::clear): |
| * NetworkProcess/glib/DNSCache.h: Added. |
| * NetworkProcess/glib/WebKitCachedResolver.cpp: Added. |
| (addressListVectorToGList): |
| (addressListGListToVector): |
| (webkitCachedResolverLookupByName): |
| (webkitCachedResolverLookupByNameAsync): |
| (webkitCachedResolverLookupByNameFinish): |
| (dnsCacheType): |
| (webkitCachedResolverLookupByNameWithFlags): |
| (webkitCachedResolverLookupByNameWithFlagsAsync): |
| (webkitCachedResolverLookupByNameWithFlagsFinish): |
| (webkitCachedResolverLookupByAddress): |
| (webkitCachedResolverLookupByAddressAsync): |
| (webkitCachedResolverLookupByAddressFinish): |
| (webkitCachedResolverLookupRecords): |
| (webkitCachedResolverLookupRecordsAsync): |
| (webkitCachedResolverLookupRecordsFinish): |
| (webkitCachedResolverReload): |
| (webkit_cached_resolver_class_init): |
| (webkitCachedResolverNew): |
| * NetworkProcess/glib/WebKitCachedResolver.h: Added. |
| * NetworkProcess/soup/NetworkProcessSoup.cpp: |
| (WebKit::NetworkProcess::platformInitializeNetworkProcess): |
| * PlatformGTK.cmake: |
| * PlatformWPE.cmake: |
| * SourcesGTK.txt: |
| * SourcesWPE.txt: |
| |
| 2019-06-20 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Stop pretending WebCore::Widget can have a platform widget |
| https://bugs.webkit.org/show_bug.cgi?id=199066 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Rename PlatformWidget as PlatformViewWidget to avoid conflict with PlatformWidget defined in WebCore. |
| |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/win/WebPageProxyWin.cpp: |
| (WebKit::WebPageProxy::viewWidget): |
| |
| 2019-06-20 Megan Gardner <megan_gardner@apple.com> |
| |
| Remove change that was causing hangs |
| https://bugs.webkit.org/show_bug.cgi?id=199055 |
| <rdar://problem/51820516> |
| |
| Reviewed by Darin Adler. |
| |
| This fix can sometimes cause deadlocks in the UIProcess. |
| We have a different fix that will go into UIKit <rdar://problem/51927701>. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _selectionChanged]): |
| |
| 2019-06-20 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Evernote crashes when creating a note |
| https://bugs.webkit.org/show_bug.cgi?id=199083 |
| <rdar://problem/51759247> |
| |
| Reviewed by Brent Fulgham. |
| |
| Add a hack just for Evernote linked before iOS 13 that dynamically adds a placeholder -[WKContentView keyCommands] |
| method (it just calls super). Evernote swizzles the IPI -[WKContentView keyCommands], but this |
| method may not always be present in the WebKit binary following r240514. So, Evernote may end |
| up swizzling -[UIResponder keyCommands], but their implementation doesn't account for this |
| scenario and they end up crashing because they call an unrecognized selector. |
| |
| * UIProcess/Cocoa/VersionChecks.h: Add version check. |
| * UIProcess/ios/WKContentView.mm: |
| (keyCommandsPlaceholderHackForEvernote): Added. |
| (-[WKContentView _commonInitializationWithProcessPool:configuration:]): Install the hack. |
| |
| 2019-06-20 Brady Eidson <beidson@apple.com> |
| |
| WebURLSchemeHandlerProxy::loadSynchronously crash with sync request. |
| <rdar://problem/51862206> and https://bugs.webkit.org/show_bug.cgi?id=199063 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Don't use a DataReference for the sync reply type. |
| |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/WebURLSchemeHandler.h: |
| |
| * UIProcess/WebURLSchemeTask.cpp: |
| (WebKit::WebURLSchemeTask::didComplete): |
| * UIProcess/WebURLSchemeTask.h: |
| |
| * WebProcess/WebPage/WebURLSchemeHandlerProxy.cpp: |
| (WebKit::WebURLSchemeHandlerProxy::loadSynchronously): |
| |
| 2019-06-20 Alex Christensen <achristensen@webkit.org> |
| |
| Add unit test for UIContextMenuConfiguration API |
| https://bugs.webkit.org/show_bug.cgi?id=199043 |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/API/APIPageConfiguration.cpp: |
| (API::PageConfiguration::copy const): |
| * UIProcess/API/APIPageConfiguration.h: |
| (API::PageConfiguration::clickInteractionDriverForTesting const): |
| (API::PageConfiguration::setClickInteractionDriverForTesting): |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: |
| (-[WKWebViewConfiguration _setClickInteractionDriverForTesting:]): |
| (-[WKWebViewConfiguration _clickInteractionDriverForTesting]): |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _registerPreview]): |
| |
| 2019-06-20 Alexander Mikhaylenko <exalm7659@gmail.com> |
| |
| [GTK] Enable navigation swipe layout tests |
| https://bugs.webkit.org/show_bug.cgi?id=198995 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Implement API for enabling and controlling swipes from WebKitTestRunner. |
| |
| Implement beginSimulatedSwipeInDirectionForTesting() and completeSimulatedSwipeInDirectionForTesting() |
| in ViewGestureController for controlling the test swipes. Add functions in WebKitWebViewBase for calling |
| them. |
| |
| Simulate the gesture by generating two scroll events: one to begin the gesture and one to complete it. |
| |
| Since there's no reliable way to set source device type of the generated events to touchpad, don't check |
| source device type for simulated swipes. |
| |
| * UIProcess/API/C/gtk/WKView.cpp: |
| (WKViewSetEnableBackForwardNavigationGesture): Added. |
| (WKViewBeginBackSwipeForTesting): Added. |
| (WKViewCompleteBackSwipeForTesting): Added. |
| * UIProcess/API/C/gtk/WKViewPrivate.h: |
| * UIProcess/API/gtk/WebKitWebViewBase.cpp: |
| (webkitWebViewBaseBeginBackSwipeForTesting): Added. |
| (webkitWebViewBaseCompleteBackSwipeForTesting): Added. |
| * UIProcess/API/gtk/WebKitWebViewBasePrivate.h: |
| * UIProcess/ViewGestureController.h: |
| * UIProcess/gtk/ViewGestureControllerGtk.cpp: |
| (WebKit::ViewGestureController::PendingSwipeTracker::scrollEventCanInfluenceSwipe): |
| Skip source device type check for simulated swipes. Also, remove an incorrect FIXME. |
| (WebKit::createScrollEvent): Added. |
| (WebKit::ViewGestureController::beginSimulatedSwipeInDirectionForTesting): Implemented. |
| (WebKit::ViewGestureController::completeSimulatedSwipeInDirectionForTesting): Implemented. |
| |
| 2019-06-20 Charlie Turner <cturner@igalia.com> |
| |
| [GTK] Make startup pause available in DEVELOPER_MODE rather than DEBUG. |
| https://bugs.webkit.org/show_bug.cgi?id=199069 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * WebProcess/gtk/WebProcessMainGtk.cpp: Allow developers to pause |
| the web process in DEVELOPER_MODE rather than only DEBUG, matching |
| the WPE behaviour and also the purpose of DEVELOPER_MODE. |
| |
| 2019-06-20 Alexander Mikhaylenko <exalm7659@gmail.com> |
| |
| [GTK] The Previous/Next gesture should handle RTL |
| https://bugs.webkit.org/show_bug.cgi?id=198707 |
| |
| Reviewed by Michael Catanzaro. |
| |
| The gesture uses PageClientImpl::userInterfaceLayoutDirection() to determine the text |
| direction. Implement that method, then adjust drawing so that the pages move from/to |
| the left instead of right side for RTL locales. |
| |
| * UIProcess/API/gtk/PageClientImpl.cpp: |
| (WebKit::): Implemented. |
| * UIProcess/API/gtk/PageClientImpl.h: |
| * UIProcess/gtk/ViewGestureControllerGtk.cpp: |
| (WebKit::ViewGestureController::draw): |
| |
| 2019-06-20 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Remove support for GTK2 plugins |
| https://bugs.webkit.org/show_bug.cgi?id=199065 |
| |
| Reviewed by Sergio Villar Senin. |
| |
| * PlatformGTK.cmake: |
| * Shared/Plugins/Netscape/NetscapePluginModule.cpp: |
| (WebKit::moduleMixesGtkSymbols): |
| * Shared/Plugins/Netscape/unix/NetscapePluginModuleUnix.cpp: |
| (WebKit::NetscapePluginModule::getPluginInfo): |
| * Shared/Plugins/PluginModuleInfo.h: |
| * Shared/gtk/WebEventFactory.cpp: |
| (WebKit::isGdkKeyCodeFromKeyPad): |
| (WebKit::buttonForEvent): |
| (WebKit::WebEventFactory::createWebMouseEvent): |
| (WebKit::WebEventFactory::createWebWheelEvent): |
| (WebKit::WebEventFactory::createWebKeyboardEvent): |
| (WebKit::WebEventFactory::createWebTouchEvent): |
| * SourcesGTK.txt: |
| * UIProcess/API/gtk/WebKitWebViewBase.cpp: |
| * UIProcess/Launcher/glib/ProcessLauncherGLib.cpp: |
| (WebKit::ProcessLauncher::launchProcess): |
| * UIProcess/Plugins/PluginProcessProxy.h: |
| * UIProcess/Plugins/gtk/PluginInfoCache.cpp: |
| (WebKit::PluginInfoCache::getPluginInfo): |
| (WebKit::PluginInfoCache::updatePluginInfo): |
| * UIProcess/Plugins/unix/PluginInfoStoreUnix.cpp: |
| (WebKit::PluginInfoStore::getPluginInfo): |
| * UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp: |
| (WebKit::PluginProcessProxy::platformGetLaunchOptionsWithAttributes): |
| (WebKit::PluginProcessProxy::scanPlugin): |
| * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp: |
| |
| 2019-06-19 Dean Jackson <dino@apple.com> |
| |
| No menu pop-up when long pressing on a link in Firefox app |
| https://bugs.webkit.org/show_bug.cgi?id=199045 |
| <rdar://problem/51422407> |
| |
| Reviewed by Tim Horton. |
| |
| Add a version check for linking on-or-after iOS 13. When |
| that isn't true, we don't use UIContextMenuInteraction |
| and instead fall back on the legacy UIPreviewItem API. |
| |
| * UIProcess/Cocoa/VersionChecks.h: Add FirstThatHasUIContextMenuInteraction. |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _shouldUseContextMenus]): New method to decide if we should |
| use context menus or preview items. |
| (-[WKContentView setupInteraction]): Make the decision at runtime rather than |
| compile time. |
| (-[WKContentView _contentsOfUserInterfaceItem:]): Ditto. |
| (-[WKContentView _registerPreview]): Ditto. |
| (-[WKContentView _unregisterPreview]): Ditto. |
| |
| 2019-06-19 Andy Estes <aestes@apple.com> |
| |
| [iOS] Fall back to taking a UIView snapshohot for UITargetedPreviews if InteractionInformationAtPosition does not have an image |
| https://bugs.webkit.org/show_bug.cgi?id=199038 |
| <rdar://problem/50555810> |
| |
| Reviewed by Tim Horton. |
| |
| In -contextMenuInteraction:previewForHighlightingMenuWithConfiguration: and friend, we |
| should always return a non-nil UITargetedPreview. When we do return nil, UIKit uses the web |
| view itself as the snapshot view, creating an unsightly animation. |
| |
| For cases where we fail to create a UITargetedPreview from the information in |
| InteractionInformationAtPosition, this patch falls back to creating a UITargetedPreview with |
| a snapshot view obtained from |
| -[UIView resizableSnapshotViewFromRect:afterScreenUpdates:withCapInsets:]. |
| |
| Also renamed -targetedPreview to -_ensureTargetedPreview and cached the UITargetedPreview |
| for reuse in -contextMenuInteraction:previewForDismissingMenuWithConfiguration:. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (createFallbackTargetedPreview): |
| (-[WKContentView _ensureTargetedPreview]): |
| (-[WKContentView contextMenuInteraction:previewForHighlightingMenuWithConfiguration:]): |
| (-[WKContentView contextMenuInteraction:previewForDismissingMenuWithConfiguration:]): |
| (-[WKContentView contextMenuInteractionDidEnd:]): |
| (-[WKContentView _targetedPreview]): Renamed to _ensureTargetedPreview. |
| |
| 2019-06-19 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Network: replace CFNetwork SPI with new API where able |
| https://bugs.webkit.org/show_bug.cgi?id=198762 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (-[WKNetworkSessionDelegate URLSession:task:didFinishCollectingMetrics:]): |
| |
| 2019-06-19 Alex Christensen <achristensen@webkit.org> |
| |
| DownloadMonitor::measuredThroughputRate should approach zero with no throughput |
| https://bugs.webkit.org/show_bug.cgi?id=198981 |
| <rdar://problem/51456914> |
| |
| Reviewed by Geoffrey Garen. |
| |
| When the timer fires to approximate the download rate, add a new timestamp with 0 bytes received since the last time we received bytes. |
| Then, if there's only one timestamp, assume the throughput rate is 0 instead of infinite. |
| This will prevent false positives estimating large download rates based on old data when the throughput drops to 0. |
| |
| * NetworkProcess/Downloads/DownloadMonitor.cpp: |
| (WebKit::DownloadMonitor::measuredThroughputRate const): |
| (WebKit::DownloadMonitor::timerFired): |
| |
| 2019-06-19 Sihui Liu <sihui_liu@apple.com> |
| |
| Remove unused originsWithCredentials from WebsiteData |
| https://bugs.webkit.org/show_bug.cgi?id=199020 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * Shared/WebsiteData/WebsiteData.cpp: |
| (WebKit::WebsiteData::encode const): |
| (WebKit::WebsiteData::decode): |
| * Shared/WebsiteData/WebsiteData.h: |
| |
| 2019-06-19 Sihui Liu <sihui_liu@apple.com> |
| |
| Crash at com.apple.WebKit: WebKit::WebsiteDataStore::processPools const |
| https://bugs.webkit.org/show_bug.cgi?id=198935 |
| <rdar://problem/51549308> |
| |
| Reviewed by Geoffrey Garen. |
| |
| When WebProcessProxy is in WebProcessCache or is pre-warmed, it does not hold a strong reference of |
| WebProcessPool. In this case, we should not store the raw pointer of WebProcessPool and perform websiteDataStore |
| operations with it. |
| This patch should fix the crash at dereferencing null pointer of WebProcessPool in |
| WebsiteDataStore::processPools, but it is unclear why websiteDataStore comes to observe cached or prewarmed web |
| process that should not have web page. The release log may help us find the cause. |
| |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::processPoolIfExists const): |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::processPools const): |
| |
| 2019-06-19 Alex Christensen <achristensen@webkit.org> |
| |
| Add a unit test for client certificate authentication |
| https://bugs.webkit.org/show_bug.cgi?id=197800 |
| |
| Reviewed by Youenn Fablet. |
| |
| * Shared/cf/ArgumentCodersCF.cpp: |
| Move SPI declarations to SecuritySPI.h. |
| |
| 2019-06-19 Alex Christensen <achristensen@webkit.org> |
| |
| Update preview API deprecation message. |
| https://bugs.webkit.org/show_bug.cgi?id=198974 |
| |
| * UIProcess/API/Cocoa/WKUIDelegate.h: |
| |
| 2019-06-19 Adrian Perez de Castro <aperez@igalia.com> |
| |
| [GTK] Fix compilation errors for the GTK2 plugin process |
| https://bugs.webkit.org/show_bug.cgi?id=199000 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * Shared/gtk/WebEventFactory.cpp: Use the GdkEvent union fields |
| when directly accessing event struct fields. |
| (WebKit::buttonForEvent): |
| (WebKit::WebEventFactory::createWebMouseEvent): |
| (WebKit::WebEventFactory::createWebKeyboardEvent): |
| |
| 2019-06-19 Adrian Perez de Castro <aperez@igalia.com> |
| |
| [WPE][GTK] Fix build with unified sources disabled |
| https://bugs.webkit.org/show_bug.cgi?id=198752 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * NetworkProcess/NetworkHTTPSUpgradeChecker.cpp: |
| (WebKit::NetworkHTTPSUpgradeChecker::NetworkHTTPSUpgradeChecker): Qualify SQLiteDatabase |
| with its namespace. |
| * UIProcess/WebFrameProxy.h: Replace forward declaration of WebPageProxy with inclusion |
| of WebPageProxy.h to avoid build error due to usage of undefined class. Moved DataCallback |
| definition from WebPageProxy.h to avoid code using the type before its declaration. |
| * UIProcess/WebPageProxy.h: Remove definition of DataCallback. |
| * UIProcess/wpe/WebInspectorProxyWPE.cpp: Add missing forward declaration of |
| WebCore::FloatRect. |
| (WebKit::WebInspectorProxy::platformSetSheetRect): Qualify FloatRect with its namespace. |
| * WebProcess/Automation/WebAutomationSessionProxy.cpp: Qualify all occurrences of |
| PageIdentifier with its namespace. |
| (WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction): |
| (WebKit::WebAutomationSessionProxy::resolveChildFrameWithOrdinal): |
| (WebKit::WebAutomationSessionProxy::resolveChildFrameWithNodeHandle): |
| (WebKit::WebAutomationSessionProxy::resolveChildFrameWithName): |
| (WebKit::WebAutomationSessionProxy::resolveParentFrame): |
| (WebKit::WebAutomationSessionProxy::focusFrame): |
| (WebKit::WebAutomationSessionProxy::computeElementLayout): |
| (WebKit::WebAutomationSessionProxy::selectOptionElement): |
| (WebKit::WebAutomationSessionProxy::takeScreenshot): |
| (WebKit::WebAutomationSessionProxy::getCookiesForFrame): |
| (WebKit::WebAutomationSessionProxy::deleteCookie): |
| * WebProcess/Cache/WebCacheStorageConnection.cpp: Ditto. |
| (WebKit::WebCacheStorageConnection::open): |
| (WebKit::WebCacheStorageConnection::remove): |
| (WebKit::WebCacheStorageConnection::retrieveCaches): |
| (WebKit::WebCacheStorageConnection::retrieveRecords): |
| (WebKit::WebCacheStorageConnection::batchDeleteOperation): |
| (WebKit::WebCacheStorageConnection::batchPutOperation): |
| * WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp: Add missing inclusion of WebPage.h |
| * WebProcess/WebPage/gtk/WebPageGtk.cpp: Add missing inclusion of gtk/gtk.h |
| * WebProcess/WebPage/wpe/WebPageWPE.cpp: Add missing inclusion of WebPageProxy.h |
| |
| 2019-06-19 Alexander Mikhaylenko <exalm7659@gmail.com> |
| |
| [GTK] Page blinks after navigation swipe if it triggered PSON |
| https://bugs.webkit.org/show_bug.cgi?id=198996 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Disconnect and then reconnect ViewGestureController during process swap |
| instead of destroying and re-creating it. |
| |
| * UIProcess/API/gtk/PageClientImpl.cpp: |
| (WebKit::PageClientImpl::PageClientImpl::processWillSwap): Added. |
| (WebKit::PageClientImpl::PageClientImpl::processDidExit): Implemented. |
| * UIProcess/API/gtk/PageClientImpl.h: |
| * UIProcess/API/gtk/WebKitWebViewBase.cpp: |
| (webkitWebViewBaseWillSwapWebProcess): Added. |
| Disconnect ViewGestureController if it exists. |
| (webkitWebViewBaseDidExitWebProcess): Added. |
| Destroy ViewGestureController. |
| (webkitWebViewBaseDidRelaunchWebProcess): |
| Reconnect the ViewGestureController if it exists. |
| * UIProcess/API/gtk/WebKitWebViewBasePrivate.h: |
| |
| 2019-06-19 Takashi Komori <Takashi.Komori@sony.com> |
| |
| [Curl] CurlRequestScheduler doesn't terminate worker thread in a certain situation. |
| https://bugs.webkit.org/show_bug.cgi?id=198993 |
| |
| Cancel CurlRequest before invalidation to remove tasks from CurlRequestScheduler certainly in ~NetworkDataTaskCurl. |
| |
| Reviewed by Fujii Hironori. |
| |
| * NetworkProcess/curl/NetworkDataTaskCurl.cpp: |
| (WebKit::NetworkDataTaskCurl::~NetworkDataTaskCurl): |
| |
| 2019-06-19 Zan Dobersek <zdobersek@igalia.com> |
| |
| [Nicosia] Invalidate SceneIntegration in LayerTreeHost::invalidate() |
| https://bugs.webkit.org/show_bug.cgi?id=198992 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp: |
| (WebKit::LayerTreeHost::invalidate): Invalidate the |
| Nicosia::SceneIntegration object. This should properly disassociate |
| the now-invalited LayerTreeHost (a SceneIntegration client) from the |
| SceneIntegration object that can still be shared with platform layers |
| originating from this LayerTreeHost. |
| |
| 2019-06-18 Dean Jackson <dino@apple.com> |
| |
| UIContextMenuInteraction implementation for WKContentView |
| https://bugs.webkit.org/show_bug.cgi?id=198986 |
| <rdar://problem/51875189> |
| |
| Reviewed by Andy Estes. |
| |
| Implement UIContextMenuInteraction and its delegate as a |
| replacement for UIPreviewItemController in iOS 13. |
| |
| In order to preserve existing behaviour as much as possible, |
| we check for the implementation of new WebKit API to configure |
| the menu. If that is not present, we attempt to convert |
| the results of the existing WebKit WKPreviewAction delegates |
| into something that works with UIContextMenus. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView setupInteraction]): |
| (-[WKContentView _contentsOfUserInterfaceItem:]): |
| (-[WKContentView _registerPreview]): |
| (-[WKContentView _unregisterPreview]): |
| (-[WKContentView _showLinkPreviewsPreferenceChanged:]): |
| (needsDeprecatedPreviewAPI): |
| (uiActionForPreviewAction): |
| (menuFromPreviewOrDefaults): |
| (titleForMenu): |
| (-[WKContentView assignLegacyDataForContextMenuInteraction]): |
| (-[WKContentView contextMenuInteraction:configurationForMenuAtLocation:]): |
| (-[WKContentView _contextMenuInteraction:configurationForMenuAtLocation:completion:]): |
| (-[WKContentView continueContextMenuInteraction:]): |
| (uiImageForImage): |
| (createTargetedPreview): |
| (-[WKContentView _targetedPreview]): |
| (-[WKContentView contextMenuInteraction:previewForHighlightingMenuWithConfiguration:]): |
| (-[WKContentView contextMenuInteractionWillPresent:]): |
| (-[WKContentView contextMenuInteraction:previewForDismissingMenuWithConfiguration:]): |
| (-[WKContentView contextMenuInteraction:willCommitWithAnimator:]): |
| (-[WKContentView contextMenuInteractionDidEnd:]): |
| (-[WKContentView shouldUsePreviewForLongPress]): Deleted. |
| |
| 2019-06-18 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r246575. |
| |
| Breaks internal builds. |
| |
| Reverted changeset: |
| |
| "Update WebKit API to separately retrieve actions and use |
| context menus" |
| https://bugs.webkit.org/show_bug.cgi?id=198974 |
| https://trac.webkit.org/changeset/246575 |
| |
| 2019-06-18 Alex Christensen <achristensen@webkit.org> |
| |
| Update WebKit API to separately retrieve actions and use context menus |
| https://bugs.webkit.org/show_bug.cgi?id=198974 |
| <rdar://problem/50735687> |
| |
| Reviewed by Tim Horton. |
| |
| Update API and SPI, and add infrastructure for asynchronously requesting interaction information. |
| |
| * UIProcess/API/Cocoa/WKUIDelegate.h: |
| * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: |
| |
| 2019-06-18 Daniel Bates <dabates@apple.com> |
| |
| REGRESSION (r240757): Cannot dismiss the keyboard on http://apple.com/apple-tv-plus |
| https://bugs.webkit.org/show_bug.cgi?id=198922 |
| <rdar://problem/50300056> |
| |
| Reviewed by Wenson Hsieh. |
| |
| Actually dismiss the keyboard as intended in r240757. Do not wait for the round-trip |
| to the WebProcess to run through the -elementDidBlur steps in the UIProcess and hide |
| the keyboard when a person explicitly dismisses the keyboard via the Done button (iPhone) |
| or hide keyboard button (iPad). |
| |
| Note that r240757 revealed another bug in this code, <https://bugs.webkit.org/show_bug.cgi?id=198928>. |
| I am unclear of the implications of that bug, but it is clear for this bug that it |
| never makes sense to round-trip to the WebProcess when the keyboard is dismissed by |
| a user gesture. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView endEditingAndUpdateFocusAppearanceWithReason:]): Invoke -_elementDidBlur |
| to blur the element in the UIProcess and hide the keyboard. |
| (-[WKContentView _elementDidBlur]): Prevent duplicate invocations of -didEndFormControlInteraction |
| and setIsShowingInputViewForFocusedElement messages by only doing these actions when |
| editablity changes. This covers the case where -_elementDidBlur may be invoked a second |
| time (the reply in the round-trip). In that case we don't need to do these actions. |
| |
| 2019-06-18 Alex Christensen <achristensen@webkit.org> |
| |
| NetworkSession::networkStorageSession can return null |
| https://bugs.webkit.org/show_bug.cgi?id=198947 |
| <rdar://problem/51394449> |
| |
| Reviewed by Youenn Fablet. |
| |
| We are seeing evidence of crashes from the map owning NetworkSessions and the map owning NetworkStorageSessions becoming out of sync |
| because NetworkSession is refcounted but NetworkStorageSession is not. I started the complete fix in https://bugs.webkit.org/show_bug.cgi?id=194926 |
| but for now let's add less risky null checks to prevent fallout. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp: |
| (WebKit::ResourceLoadStatisticsStore::updateClientSideCookiesAgeCap): |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::hasStorageAccessForFrame): |
| (WebKit::WebResourceLoadStatisticsStore::callHasStorageAccessForFrameHandler): |
| (WebKit::WebResourceLoadStatisticsStore::grantStorageAccess): |
| (WebKit::WebResourceLoadStatisticsStore::removeAllStorageAccess): |
| (WebKit::WebResourceLoadStatisticsStore::setCacheMaxAgeCap): |
| (WebKit::WebResourceLoadStatisticsStore::callUpdatePrevalentDomainsToBlockCookiesForHandler): |
| (WebKit::WebResourceLoadStatisticsStore::removePrevalentDomains): |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| * NetworkProcess/NetworkSession.cpp: |
| (WebKit::NetworkSession::networkStorageSession const): |
| * NetworkProcess/NetworkSession.h: |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::applyCookieBlockingPolicy): |
| (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): |
| (WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection): |
| (WebKit::NetworkDataTaskCocoa::tryPasswordBasedAuthentication): |
| |
| 2019-06-18 Brady Eidson <beidson@apple.com> |
| |
| Handle NSProgress calling our cancellation handler on background threads (and calling it more than once). |
| <rdar://problem/51392926> and https://bugs.webkit.org/show_bug.cgi?id=198945 |
| |
| Reviewed by Alex Christensen. |
| |
| If you have a download in progress and quickly tap the button to cancel it multiple times, then: |
| - NSProgress calls our cancellation handler on a non-main thread, which we can't handle. |
| - They do it more than once, which is also bad. |
| - They might even do it multiple times concurrently (on different background dispatch queues) |
| |
| Let's work around these. |
| |
| * NetworkProcess/Downloads/Download.cpp: |
| (WebKit::Download::cancel): Double check we're on the main thread, and handle being called twice. |
| |
| * NetworkProcess/Downloads/cocoa/WKDownloadProgress.mm: |
| (-[WKDownloadProgress performCancel]): Actually cancel the WebKit::Download if we still have one. |
| (-[WKDownloadProgress progressCancelled]): Called when NSProgress calls the cancellation handler, no matter |
| which thread it does it on. By leveraging std::call_once we handle multiple calls as well as being called |
| concurrently from different threads. call_once punts the *actual* cancel operation off to the main thread. |
| (-[WKDownloadProgress initWithDownloadTask:download:URL:sandboxExtension:]): The cancellation handler is |
| now simply calling 'progressCancelled' on self, assuming the weak pointer for self is still valid. |
| |
| 2019-06-18 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Pressing key while holding Command should not insert character |
| https://bugs.webkit.org/show_bug.cgi?id=198925 |
| <rdar://problem/51778811> |
| |
| Reviewed by Brent Fulgham. |
| |
| Do not insert a character for an unhandled key command that has a Command modifier. |
| For example, pressing Command + Shift + v, which is an unhandled key command (at the |
| time of writing) should not insert v. This matches iOS and Mac platform conventions. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _interpretKeyEvent:isCharEvent:]): |
| |
| 2019-06-18 John Wilander <wilander@apple.com> |
| |
| Change log channel name from ResourceLoadStatisticsDebug to ITPDebug and remove unnecessary #if !RELEASE_LOG_DISABLED |
| https://bugs.webkit.org/show_bug.cgi?id=198970 |
| <rdar://problem/51855836> |
| |
| Reviewed by Brent Fulgham. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: |
| (WebKit::ResourceLoadStatisticsDatabaseStore::requestStorageAccess): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::requestStorageAccessUnderOpener): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::ensurePrevalentResourcesForDebugMode): |
| (WebKit::ResourceLoadStatisticsDatabaseStore::updateCookieBlocking): |
| * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ResourceLoadStatisticsMemoryStore::requestStorageAccess): |
| (WebKit::ResourceLoadStatisticsMemoryStore::requestStorageAccessUnderOpener): |
| (WebKit::ResourceLoadStatisticsMemoryStore::ensurePrevalentResourcesForDebugMode): |
| (WebKit::ResourceLoadStatisticsMemoryStore::updateCookieBlocking): |
| * NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp: |
| (WebKit::domainsToString): |
| (WebKit::ResourceLoadStatisticsStore::removeDataRecords): |
| (WebKit::ResourceLoadStatisticsStore::setResourceLoadStatisticsDebugMode): |
| (WebKit::ResourceLoadStatisticsStore::debugLogDomainsInBatches): |
| * Platform/Logging.h: |
| |
| 2019-06-18 Youenn Fablet <youenn@apple.com> |
| |
| StorageManager::removeAllowedSessionStorageNamespaceConnection should make sure its storageNamespaceID is valid |
| https://bugs.webkit.org/show_bug.cgi?id=198966 |
| rdar://problem/51352080 |
| |
| Reviewed by Alex Christensen. |
| |
| Make sure the namespace ID is a key of the map before using the value. |
| The namespace ID is coming straight from IPC so should not be trusted. |
| Also, namespace IDs are added/removed based on web pages being created/deleted. |
| Namespace IDs are supposed to be scoped by session IDs. |
| Using page IDs for namespace IDs works as long as the page does not change of session ID during its lifetime, which is not guaranteed. |
| |
| * NetworkProcess/WebStorage/StorageManager.cpp: |
| (WebKit::StorageManager::removeAllowedSessionStorageNamespaceConnection): |
| |
| 2019-06-18 David Quesada <david_quesada@apple.com> |
| |
| Network process crash in SandboxExtension::consume() via Download::publishProgress |
| https://bugs.webkit.org/show_bug.cgi?id=198968 |
| rdar://problem/51732997 |
| |
| Reviewed by Alex Christensen. |
| |
| Add an early return if the network process fails to resolve a sandbox extension handle for publishing |
| progress on a download. Creating the NSProgress doesn't do much since the progress reporting service |
| won't honor the attempt to publish progress on a URL the process does not have access to, and nothing |
| else in the Network process makes any use of the progress. |
| |
| * NetworkProcess/Downloads/cocoa/DownloadCocoa.mm: |
| (WebKit::Download::publishProgress): |
| |
| 2019-06-18 Adrian Perez de Castro <aperez@igalia.com> |
| |
| Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.25.1 release |
| |
| * wpe/NEWS: Add release notes for 2.25.1 |
| |
| 2019-06-18 Tim Horton <timothy_horton@apple.com> |
| |
| Expose DataDetectors context generation on WKContentViewInteraction |
| https://bugs.webkit.org/show_bug.cgi?id=198950 |
| <rdar://problem/51116021> |
| |
| Reviewed by Andy Estes. |
| |
| * UIProcess/ios/WKActionSheetAssistant.h: |
| * UIProcess/ios/WKActionSheetAssistant.mm: |
| (-[WKActionSheetAssistant currentPositionInformation]): |
| (-[WKActionSheetAssistant showDataDetectorsSheet]): |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView dataDetectionContextForPositionInformation:]): |
| (-[WKContentView dataDetectionContextForActionSheetAssistant:]): |
| For use by other clients, add -dataDetectionContextForPositionInformation: |
| and make -dataDetectionContextForActionSheetAssistant: use it. |
| Also, pull the code to augment the context with surrounding text out of |
| from WKActionSheetAssistant. |
| |
| 2019-06-18 Adrian Perez de Castro <aperez@igalia.com> |
| |
| [WPE] Fix building the documentation |
| |
| Unreviewed. |
| |
| * UIProcess/API/wpe/docs/wpe-docs.sgml: Fix typo "2.62" -> "2.26" |
| |
| 2019-06-18 Truitt Savell <tsavell@apple.com> |
| |
| Unreviewed, rolling out r246531. |
| |
| Broke internal builds. |
| |
| Reverted changeset: |
| |
| "Expose DataDetectors context generation on |
| WKContentViewInteraction" |
| https://bugs.webkit.org/show_bug.cgi?id=198950 |
| https://trac.webkit.org/changeset/246531 |
| |
| 2019-06-18 Simon Fraser <simon.fraser@apple.com> |
| |
| Convert macOS to scroll by changing layer boundsOrigin |
| https://bugs.webkit.org/show_bug.cgi?id=198917 |
| |
| Reviewed by Antti Koivisto. |
| |
| Remove unreached and confusing code. |
| |
| * UIProcess/RemoteLayerTree/ios/ScrollingTreeFrameScrollingNodeRemoteIOS.mm: |
| (WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::repositionScrollingLayers): |
| |
| 2019-06-18 Dean Jackson <dino@apple.com> |
| |
| Attachment elements are missing context menu previews |
| https://bugs.webkit.org/show_bug.cgi?id=198946 |
| |
| Reviewed by Tim Horton. |
| |
| When requesting position information on an <attachment> element, |
| we were not providing a snapshot image. |
| |
| * WebProcess/WebPage/WebPage.h: New common method to take a snapshot. |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::shareableBitmapSnapshotForNode): New helper. |
| (WebKit::WebPage::positionInformation): If the element is an attachment, |
| then ask for a snapshot. |
| |
| 2019-06-17 Tim Horton <timothy_horton@apple.com> |
| |
| Expose DataDetectors context generation on WKContentViewInteraction |
| https://bugs.webkit.org/show_bug.cgi?id=198950 |
| <rdar://problem/51116021> |
| |
| Reviewed by Andy Estes. |
| |
| * UIProcess/ios/WKActionSheetAssistant.h: |
| * UIProcess/ios/WKActionSheetAssistant.mm: |
| (-[WKActionSheetAssistant currentPositionInformation]): |
| (-[WKActionSheetAssistant showDataDetectorsSheet]): |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView dataDetectionContextForPositionInformation:]): |
| (-[WKContentView dataDetectionContextForActionSheetAssistant:]): |
| For use by other clients, add -dataDetectionContextForPositionInformation: |
| and make -dataDetectionContextForActionSheetAssistant: use it. |
| Also, pull the code to augment the context with surrounding text out of |
| from WKActionSheetAssistant. |
| |
| 2019-06-17 Sihui Liu <sihui_liu@apple.com> |
| |
| -[WKWebsiteDataStore removeDataOfTypes:modifiedSince:completionHandler:] doesn't delete _WKWebsiteDataTypeCredentials |
| https://bugs.webkit.org/show_bug.cgi?id=198854 |
| <rdar://problem/51386058> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Clear persistent credentials in deleteWebsiteData of network process. |
| |
| Also, merge originsWithPersistentCredentials and removeCredentialsWithOrigins into fetchWebsiteData and |
| deleteWebsiteData, and move credentials handling to WebCore. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::fetchWebsiteData): |
| (WebKit::NetworkProcess::deleteWebsiteData): |
| (WebKit::NetworkProcess::deleteWebsiteDataForOrigins): |
| (WebKit::NetworkProcess::originsWithPersistentCredentials): Deleted. |
| (WebKit::NetworkProcess::removeCredentialsWithOrigins): Deleted. |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::originsWithPersistentCredentials): Deleted. |
| (WebKit::NetworkProcess::removeCredentialsWithOrigins): Deleted. |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::fetchDataAndApply): |
| (WebKit::computeWebProcessAccessTypeForDataRemoval): |
| (WebKit::WebsiteDataStore::removeData): |
| |
| 2019-06-17 Tim Horton <timothy_horton@apple.com> |
| |
| Fix the build with case-sensitive includes |
| <rdar://problem/51828273> |
| |
| * UIProcess/API/Cocoa/WKContentRuleListStore.mm: |
| FileSystem, not Filesystem. |
| |
| 2019-06-17 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Unreviewed, build fix after r246514 |
| |
| * UIProcess/Cocoa/SOAuthorization/SOAuthorizationNSURLExtras.h: |
| * UIProcess/Cocoa/SOAuthorization/SOAuthorizationNSURLExtras.mm: |
| (+[NSURL _web_canPerformAuthorizationWithURL:]): |
| Expose the above method as a SPI for Safari. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-06-17 Alex Christensen <achristensen@webkit.org> |
| |
| Protect StorageManager::m_localStorageNamespaces with a Lock |
| https://bugs.webkit.org/show_bug.cgi?id=198939 |
| <rdar://problem/51784225> |
| |
| Reviewed by Geoff Garen. |
| |
| StorageManager::LocalStorageNamespace::didDestroyStorageArea is called from StorageArea::~StorageArea which is called on the main thread. |
| All other access of m_localStorageNamespaces is from the non-main thread. Sometimes this causes hash table corruption, so wait for a mutex |
| before accessing this member variable. |
| |
| * NetworkProcess/WebStorage/StorageManager.cpp: |
| (WebKit::StorageManager::LocalStorageNamespace::didDestroyStorageArea): |
| (WebKit::StorageManager::cloneSessionStorageNamespace): |
| (WebKit::StorageManager::getLocalStorageOrigins): |
| (WebKit::StorageManager::deleteLocalStorageEntriesForOrigin): |
| (WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince): |
| (WebKit::StorageManager::deleteLocalStorageEntriesForOrigins): |
| (WebKit::StorageManager::getOrCreateLocalStorageNamespace): |
| * NetworkProcess/WebStorage/StorageManager.h: |
| |
| 2019-06-17 Alex Christensen <achristensen@webkit.org> |
| |
| Add null check in WebFrameLoaderClient::assignIdentifierToInitialRequest |
| https://bugs.webkit.org/show_bug.cgi?id=198926 |
| <rdar://problem/50079713> |
| |
| Reviewed by Brady Eidson. |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::assignIdentifierToInitialRequest): |
| WebKitLegacy's version already checks null for the corresponding call. |
| |
| 2019-06-17 Alex Christensen <achristensen@webkit.org> |
| |
| Fix internal build after r246514 |
| https://bugs.webkit.org/show_bug.cgi?id=198874 |
| |
| * UIProcess/API/APINavigationAction.h: |
| A problematic reference to APINavigationActionAdditions.h was left. |
| Its contents had been sprinkled into the correct places, though. |
| |
| 2019-06-17 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Move SOAuthorization from WebKitAdditions to WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=198874 |
| <rdar://problem/47573431> |
| |
| Reviewed by Brent Fulgham. |
| |
| This patch basically moves everything from existing WebKitAdditions to WebKit. |
| It also replaces the LoadOptimizer nonsense with the actual SOAuthorization API. |
| |
| * Configurations/WebKit.xcconfig: |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| * PluginProcess/mac/PluginProcessMac.mm: |
| (WebKit::PluginProcess::platformInitializePluginProcess): |
| * SourcesCocoa.txt: |
| * UIProcess/API/APINavigationAction.h: |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::trySOAuthorization): |
| (WebKit::tryInterceptNavigation): |
| (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): |
| (WebKit::tryOptimizingLoad): Deleted. |
| * UIProcess/Cocoa/SOAuthorization/NavigationSOAuthorizationSession.h: Added. |
| (WebKit::NavigationSOAuthorizationSession::callback): |
| * UIProcess/Cocoa/SOAuthorization/NavigationSOAuthorizationSession.mm: Copied from Tools/TestWebKitAPI/Tests/WebKitCocoa/TestLoadOptimizer.mm. |
| (WebKit::NavigationSOAuthorizationSession::NavigationSOAuthorizationSession): |
| (WebKit::NavigationSOAuthorizationSession::~NavigationSOAuthorizationSession): |
| (WebKit::NavigationSOAuthorizationSession::shouldStartInternal): |
| (WebKit::NavigationSOAuthorizationSession::webViewDidMoveToWindow): |
| * UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.h: Added. |
| * UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.mm: Added. |
| (-[WKSOSecretDelegate initWithSession:]): |
| (-[WKSOSecretDelegate webViewDidClose:]): |
| (-[WKSOSecretDelegate webView:decidePolicyForNavigationAction:decisionHandler:]): |
| (-[WKSOSecretDelegate webView:didFinishNavigation:]): |
| (WebKit::PopUpSOAuthorizationSession::PopUpSOAuthorizationSession): |
| (WebKit::PopUpSOAuthorizationSession::~PopUpSOAuthorizationSession): |
| (WebKit::PopUpSOAuthorizationSession::shouldStartInternal): |
| (WebKit::PopUpSOAuthorizationSession::fallBackToWebPathInternal): |
| (WebKit::PopUpSOAuthorizationSession::abortInternal): |
| (WebKit::PopUpSOAuthorizationSession::completeInternal): |
| (WebKit::PopUpSOAuthorizationSession::close): |
| (WebKit::PopUpSOAuthorizationSession::initSecretWebView): |
| * UIProcess/Cocoa/SOAuthorization/RedirectSOAuthorizationSession.h: Copied from Tools/TestWebKitAPI/Tests/WebKitCocoa/TestLoadOptimizer.mm. |
| * UIProcess/Cocoa/SOAuthorization/RedirectSOAuthorizationSession.mm: Added. |
| (WebKit::RedirectSOAuthorizationSession::RedirectSOAuthorizationSession): |
| (WebKit::RedirectSOAuthorizationSession::fallBackToWebPathInternal): |
| (WebKit::RedirectSOAuthorizationSession::abortInternal): |
| (WebKit::RedirectSOAuthorizationSession::completeInternal): |
| (WebKit::RedirectSOAuthorizationSession::beforeStart): |
| * UIProcess/Cocoa/SOAuthorization/SOAuthorizationCoordinator.h: Copied from Tools/TestWebKitAPI/Tests/WebKitCocoa/TestLoadOptimizer.mm. |
| * UIProcess/Cocoa/SOAuthorization/SOAuthorizationCoordinator.mm: Added. |
| (WebKit::SOAuthorizationCoordinator::SOAuthorizationCoordinator): |
| (WebKit::SOAuthorizationCoordinator::canAuthorize const): |
| (WebKit::SOAuthorizationCoordinator::tryAuthorize): |
| * UIProcess/Cocoa/SOAuthorization/SOAuthorizationNSURLExtras.h: Copied from Tools/TestWebKitAPI/Tests/WebKitCocoa/TestLoadOptimizer.mm. |
| * UIProcess/Cocoa/SOAuthorization/SOAuthorizationNSURLExtras.mm: Copied from Tools/TestWebKitAPI/Tests/WebKitCocoa/TestLoadOptimizer.mm. |
| (+[NSURL _web_canPerformAuthorizationWithURL:]): |
| * UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.h: Added. |
| (WebKit::SOAuthorizationSession::page const): |
| (WebKit::SOAuthorizationSession::state const): |
| (WebKit::SOAuthorizationSession::setState): |
| (WebKit::SOAuthorizationSession::navigationAction): |
| * UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm: Added. |
| (WebKit::SOAuthorizationSession::SOAuthorizationSession): |
| (WebKit::SOAuthorizationSession::~SOAuthorizationSession): |
| (WebKit::SOAuthorizationSession::releaseNavigationAction): |
| (WebKit::SOAuthorizationSession::becomeCompleted): |
| (WebKit::SOAuthorizationSession::shouldStart): |
| (WebKit::SOAuthorizationSession::start): |
| (WebKit::SOAuthorizationSession::fallBackToWebPath): |
| (WebKit::SOAuthorizationSession::abort): |
| (WebKit::SOAuthorizationSession::complete): |
| (WebKit::SOAuthorizationSession::presentViewController): |
| (WebKit::SOAuthorizationSession::dismissViewController): |
| * UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.h: Copied from Tools/TestWebKitAPI/Tests/WebKitCocoa/TestLoadOptimizer.mm. |
| * UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.mm: Added. |
| (WebKit::SubFrameSOAuthorizationSession::SubFrameSOAuthorizationSession): |
| (WebKit::SubFrameSOAuthorizationSession::fallBackToWebPathInternal): |
| (WebKit::SubFrameSOAuthorizationSession::abortInternal): |
| (WebKit::SubFrameSOAuthorizationSession::completeInternal): |
| (WebKit::SubFrameSOAuthorizationSession::beforeStart): |
| (WebKit::SubFrameSOAuthorizationSession::loadDataToFrame): |
| (WebKit::SubFrameSOAuthorizationSession::postDidCancelMessageToParent): |
| * UIProcess/Cocoa/SOAuthorization/WKSOAuthorizationDelegate.h: Renamed from Tools/TestWebKitAPI/Tests/WebKitCocoa/TestLoadOptimizer.mm. |
| * UIProcess/Cocoa/SOAuthorization/WKSOAuthorizationDelegate.mm: Added. |
| (-[WKSOAuthorizationDelegate authorization:presentViewController:withCompletion:]): |
| (-[WKSOAuthorizationDelegate authorizationDidNotHandle:]): |
| (-[WKSOAuthorizationDelegate authorizationDidCancel:]): |
| (-[WKSOAuthorizationDelegate authorizationDidComplete:]): |
| (-[WKSOAuthorizationDelegate authorization:didCompleteWithHTTPAuthorizationHeaders:]): |
| (-[WKSOAuthorizationDelegate authorization:didCompleteWithHTTPResponse:httpBody:]): |
| (-[WKSOAuthorizationDelegate authorization:didCompleteWithError:]): |
| (-[WKSOAuthorizationDelegate setSession:]): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::trySOAuthorization): |
| (WebKit::WebPageProxy::createNewPage): |
| (WebKit::tryOptimizingLoad): Deleted. |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::setShouldSuppressSOAuthorizationInAllNavigationPolicyDecision): |
| (WebKit::WebPageProxy::setShouldSuppressSOAuthorizationInNextNavigationPolicyDecision): |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::WebsiteDataStore): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| (WebKit::WebsiteDataStore::soAuthorizationCoordinator): |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::platformInitializeProcess): |
| |
| 2019-06-17 Tim Horton <timothy_horton@apple.com> |
| |
| Fix the build. |
| |
| * UIProcess/Gamepad/ios/UIGamepadProviderIOS.mm: |
| (WebKit::UIGamepadProvider::platformWebPageProxyForGamepadInput): |
| * UIProcess/_WKTouchEventGenerator.mm: |
| (-[_WKTouchEventGenerator _sendHIDEvent:]): |
| (-[_WKTouchEventGenerator _sendMarkerHIDEventWithCompletionBlock:]): |
| |
| 2019-06-17 Dan Bernstein <mitz@apple.com> |
| |
| REGRESSION (r242686): Paths in XPC services’ LC_DYLD_ENVIRONMENT are incorrect in built products directory |
| https://bugs.webkit.org/show_bug.cgi?id=198904 |
| |
| Reviewed by Alex Christensen. |
| |
| After r242686, in local builds, the XPC service executables run from their location at the |
| top of the built products directory, rather than inside the framework. |
| |
| * Configurations/BaseXPCService.xcconfig: Updated the load commands that set |
| DYLD_FRAMEWORK_PATH and DYLD_LIBRARY_PATH for the new location in the built products |
| directory. Also removed WK_XPC_SERVICE_INSERT_LIBRARIES_DIR that had been unused. |
| |
| * WebKit.xcodeproj/project.pbxproj: Made the creation of symbolic links inside the |
| framework’s XPCServices directory predicated on whether this is an install build, rather |
| than on the build configuration, for consistency with the condition used in the .xcconfig. |
| |
| 2019-06-17 Brent Fulgham <bfulgham@apple.com> |
| |
| Ensure ITP state is relayed to Network Process on restart |
| https://bugs.webkit.org/show_bug.cgi?id=198797 |
| <rdar://problem/51646944> |
| |
| Reviewed by Youenn Fablet. |
| |
| Now that the ITP state is maintained in the Network Process, we have to make sure that we update |
| that process with current ITP state if the Network Process crashes and is relaunched. This wasn't a |
| problem in earlier releases because we tracked all ITP state in the UIProcess. |
| |
| This patch does the following: |
| 1. Add a new method to WKWebsiteDataStore to allow us to trigger statistics processing, which has the |
| side effect of syncing ITP state persistently so that it will be available after bouncing the process. |
| 2. Adds a new test that sets a tracking domain, bounces the process, and confirms the state is still |
| consistent. |
| |
| Tested by TestWebKitAPI. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp: |
| (WebKit::ResourceLoadStatisticsStore::processStatisticsAndDataRecords): |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _clearPrevalentDomain:completionHandler:]): |
| (-[WKWebsiteDataStore _processStatisticsAndDataRecords:]): |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| (WebKit::WebProcessPool::setResourceLoadStatisticsEnabled): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::setResourceLoadStatisticsEnabled): |
| |
| 2019-06-17 Ludovico de Nittis <ludovico.denittis@collabora.com> |
| |
| [GTK] Stop accessing GdkEvent fields when possible |
| https://bugs.webkit.org/show_bug.cgi?id=198829 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Direct access to GdkEvent structs is no longer possible in GTK 4. |
| |
| * Shared/gtk/WebEventFactory.cpp: |
| (WebKit::buttonForEvent): |
| (WebKit::WebEventFactory::createWebMouseEvent): |
| (WebKit::WebEventFactory::createWebWheelEvent): |
| (WebKit::WebEventFactory::createWebKeyboardEvent): |
| (WebKit::WebEventFactory::createWebTouchEvent): |
| * UIProcess/API/gtk/WebKitEmojiChooser.cpp: |
| * UIProcess/API/gtk/WebKitScriptDialogImpl.cpp: |
| (webkitScriptDialogImplKeyPressEvent): |
| * UIProcess/API/gtk/WebKitWebViewBase.cpp: |
| (ClickCounter::currentClickCountForGdkButtonEvent): |
| (webkitWebViewBaseKeyPressEvent): |
| (webkitWebViewBaseHandleMouseEvent): |
| (webkitWebViewBaseCrossingNotifyEvent): |
| (webkitWebViewBaseGetTouchPointsForEvent): |
| (webkitWebViewBaseTouchEvent): |
| (webkitWebViewBaseEvent): |
| * UIProcess/gtk/GestureController.cpp: |
| (WebKit::GestureController::handleEvent): |
| * UIProcess/gtk/InputMethodFilter.cpp: |
| (WebKit::InputMethodFilter::filterKeyEvent): |
| (WebKit::InputMethodFilter::logHandleKeyboardEventForTesting): |
| (WebKit::InputMethodFilter::logHandleKeyboardEventWithCompositionResultsForTesting): |
| * UIProcess/gtk/KeyBindingTranslator.cpp: |
| (WebKit::KeyBindingTranslator::commandsForKeyEvent): |
| * UIProcess/gtk/ViewGestureControllerGtk.cpp: |
| (WebKit::isEventStop): |
| (WebKit::ViewGestureController::PendingSwipeTracker::scrollEventCanInfluenceSwipe): |
| (WebKit::ViewGestureController::PendingSwipeTracker::scrollEventGetScrollingDeltas): |
| (WebKit::ViewGestureController::SwipeProgressTracker::handleEvent): |
| * UIProcess/gtk/WebPopupMenuProxyGtk.cpp: |
| (WebKit::WebPopupMenuProxyGtk::treeViewButtonReleaseEventCallback): |
| (WebKit::WebPopupMenuProxyGtk::keyPressEventCallback): |
| |
| 2019-06-17 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Update OptionsGTK.cmake and NEWS for 2.25.2 release |
| |
| * gtk/NEWS: Add release notes for 2.25.2. |
| |
| 2019-06-17 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed, rolling out r246467. |
| |
| It broke scrolling with mouse wheel |
| |
| Reverted changeset: |
| |
| "[GTK] Stop accessing GdkEvent fields when possible" |
| https://bugs.webkit.org/show_bug.cgi?id=198829 |
| https://trac.webkit.org/changeset/246467 |
| |
| 2019-06-16 Darin Adler <darin@apple.com> |
| |
| Rename AtomicString to AtomString |
| https://bugs.webkit.org/show_bug.cgi?id=195276 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * many files: Let do-webcore-rename do the renaming. |
| |
| 2019-06-16 Simon Fraser <simon.fraser@apple.com> |
| |
| Implement ScrollableArea::scrollOffset() |
| https://bugs.webkit.org/show_bug.cgi?id=198895 |
| |
| Reviewed by Antti Koivisto. |
| |
| * UIProcess/win/WebPopupMenuProxyWin.cpp: |
| (WebKit::PopupMenuWin::scrollPosition const): |
| (WebKit::WebPopupMenuProxyWin::onKeyDown): Just use m_scrollOffset. |
| (WebKit::WebPopupMenuProxyWin::scrollSize const): Deleted. |
| * UIProcess/win/WebPopupMenuProxyWin.h: Remove the one-axis scrollOffset() |
| * WebProcess/Plugins/PDF/PDFPlugin.h: |
| * WebProcess/Plugins/PDF/PDFPlugin.mm: |
| (WebKit::PDFPlugin::scrollSize const): Deleted. |
| (WebKit::PDFPlugin::scrollOffset const): Deleted. |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm: |
| (WebKit::RemoteLayerTreeDrawingArea::updateScrolledExposedRect): |
| |
| 2019-06-15 Youenn Fablet <youenn@apple.com> |
| |
| WebProcessPool::clearWebProcessHasUploads cannot assume its given processIdentifier is valid |
| https://bugs.webkit.org/show_bug.cgi?id=198865 |
| |
| Unreviewed. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::clearWebProcessHasUploads): |
| Remove wrong debug assertion in case of WebProcessProxy destruction. |
| |
| 2019-06-15 Ludovico de Nittis <ludovico.denittis@collabora.com> |
| |
| [GTK] Stop accessing GdkEvent fields when possible |
| https://bugs.webkit.org/show_bug.cgi?id=198829 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Direct access to GdkEvent structs is no longer possible in GTK 4. |
| |
| * Shared/gtk/WebEventFactory.cpp: |
| (WebKit::buttonForEvent): |
| (WebKit::WebEventFactory::createWebMouseEvent): |
| (WebKit::WebEventFactory::createWebWheelEvent): |
| (WebKit::WebEventFactory::createWebKeyboardEvent): |
| (WebKit::WebEventFactory::createWebTouchEvent): |
| * UIProcess/API/gtk/WebKitEmojiChooser.cpp: |
| * UIProcess/API/gtk/WebKitScriptDialogImpl.cpp: |
| (webkitScriptDialogImplKeyPressEvent): |
| * UIProcess/API/gtk/WebKitWebViewBase.cpp: |
| (ClickCounter::currentClickCountForGdkButtonEvent): |
| (webkitWebViewBaseKeyPressEvent): |
| (webkitWebViewBaseHandleMouseEvent): |
| (webkitWebViewBaseCrossingNotifyEvent): |
| (webkitWebViewBaseGetTouchPointsForEvent): |
| (webkitWebViewBaseTouchEvent): |
| (webkitWebViewBaseEvent): |
| * UIProcess/gtk/GestureController.cpp: |
| (WebKit::GestureController::handleEvent): |
| * UIProcess/gtk/InputMethodFilter.cpp: |
| (WebKit::InputMethodFilter::filterKeyEvent): |
| (WebKit::InputMethodFilter::logHandleKeyboardEventForTesting): |
| (WebKit::InputMethodFilter::logHandleKeyboardEventWithCompositionResultsForTesting): |
| * UIProcess/gtk/KeyBindingTranslator.cpp: |
| (WebKit::KeyBindingTranslator::commandsForKeyEvent): |
| * UIProcess/gtk/ViewGestureControllerGtk.cpp: |
| (WebKit::isEventStop): |
| (WebKit::ViewGestureController::PendingSwipeTracker::scrollEventCanInfluenceSwipe): |
| (WebKit::ViewGestureController::PendingSwipeTracker::scrollEventGetScrollingDeltas): |
| (WebKit::ViewGestureController::SwipeProgressTracker::handleEvent): |
| * UIProcess/gtk/WebPopupMenuProxyGtk.cpp: |
| (WebKit::WebPopupMenuProxyGtk::treeViewButtonReleaseEventCallback): |
| (WebKit::WebPopupMenuProxyGtk::keyPressEventCallback): |
| |
| 2019-06-15 Rob Buis <rbuis@igalia.com> |
| |
| Store prefetch redirects in the prefetch cache |
| https://bugs.webkit.org/show_bug.cgi?id=197371 |
| |
| Reviewed by Youenn Fablet. |
| |
| Store prefetch redirects in the prefetch cache and use them when |
| navigating. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::retrieveCacheEntry): |
| (WebKit::NetworkResourceLoader::willSendRedirectedRequest): |
| (WebKit::NetworkResourceLoader::didFinishWithRedirectResponse): |
| * NetworkProcess/NetworkResourceLoader.h: |
| * NetworkProcess/cache/PrefetchCache.cpp: |
| (WebKit::PrefetchCache::Entry::Entry): |
| (WebKit::PrefetchCache::storeRedirect): |
| * NetworkProcess/cache/PrefetchCache.h: |
| |
| 2019-06-14 Devin Rousso <drousso@apple.com> |
| |
| waitForNavigationToComplete may be called before WebPageProxy knows it's loading |
| https://bugs.webkit.org/show_bug.cgi?id=198741 |
| <rdar://problem/31164316> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| There's a potential race in `WebAutomationSession::waitForNavigationToCompleteOnPage` when |
| querying for the `WebPageProxy`'s loading state (via `PageLoadingState::isLoading`), in that |
| a pending load may be committed _after_ the `WebAutomationSession` checks it's value. This |
| makes the automation session think that it isn't loading, so it will continue running |
| commands, which can lead to a JavaScript error ("Callback was not called before the unload |
| event") as any injected scripts will be cleared by the impending navigation, leaving the |
| script evaluation callbacks "dangling". |
| |
| Expose more information from `PageLoadState` about whether it thinks there _may_ be a |
| navigation currently happening, which the `WebAutomationSession` can use to delay commands. |
| |
| In the best case, no navigations are "missed". |
| |
| In the worst case, the automation session will wait `pageLoadTimeout` before continuing. |
| |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::waitForNavigationToCompleteOnPage): |
| |
| * UIProcess/PageLoadState.h: |
| * UIProcess/PageLoadState.cpp: |
| (WebKit::PageLoadState::hasUncommittedLoad const): Added. |
| |
| 2019-06-14 Youenn Fablet <youenn@apple.com> |
| |
| WebProcessPool::clearWebProcessHasUploads cannot assume its given processIdentifier is valid |
| https://bugs.webkit.org/show_bug.cgi?id=198865 |
| <rdar://problem/51618878> |
| |
| Reviewed by Brady Eidson. |
| |
| NetworkProcess currently instructs UIProcess whether a given WebProcess is doing upload. |
| There is no guarantee though that the WebProcessProxy is still there when the IPC is arriving at UIProcess. |
| Instead, let WebProcess handles its upload state and notify WebProcessPool about its state. |
| Make sure WebProcessProxy unregisters itself in case of crash. |
| In case of NetworkProcess crash, WebProcesses will see all their uploads fail |
| and will notify automatically UIProcess to update their state. |
| |
| Since the processID given to WebProcessPool is coming from IPC, we cannot not trust it. |
| Add early return in case of not finding a WebProcessProxy for WebProcessPool clear/set methods. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkResourceLoadMap.cpp: |
| (WebKit::NetworkResourceLoadMap::add): |
| (WebKit::NetworkResourceLoadMap::take): |
| * NetworkProcess/NetworkResourceLoadMap.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::setWebProcessHasUploads): |
| (WebKit::WebProcessPool::clearWebProcessHasUploads): |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::~WebProcessProxy): |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess): |
| (WebKit::WebLoaderStrategy::remove): |
| (WebKit::WebLoaderStrategy::tryLoadingSynchronouslyUsingURLSchemeHandler): |
| * WebProcess/Network/WebLoaderStrategy.h: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::ensureNetworkProcessConnection): |
| |
| 2019-06-14 Youenn Fablet <youenn@apple.com> |
| |
| WebResourceLoadStatisticsStore should not use its network session if invalidated |
| https://bugs.webkit.org/show_bug.cgi?id=198814 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Tell WebResourceLoadStatisticsStore that its network session is invalidated. |
| WebResourceLoadStatisticsStore will then clear its reference to the network session. |
| |
| * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ResourceLoadStatisticsMemoryStore::updateCookieBlocking): |
| Added for test purposes to trigger further cookie processing. |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::invalidateAndCancel): |
| * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h: |
| * NetworkProcess/NetworkSession.cpp: |
| (WebKit::NetworkSession::invalidateAndCancel): |
| |
| 2019-06-14 Joseph Pecoraro <pecoraro@apple.com> |
| |
| [Cocoa] NSFileWrapper associated with _WKAttachment |
| https://bugs.webkit.org/show_bug.cgi?id=198871 |
| <rdar://problem/51760625> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/API/Cocoa/_WKAttachment.mm: |
| (-[_WKAttachment dealloc]): |
| Ensure we destruct the API::Object associated with this so RetainPtrs can release. |
| |
| 2019-06-14 Tim Horton <timothy_horton@apple.com> |
| |
| WebKit's NSAttributedString.h is not included in the WebKit.h umbrella header |
| https://bugs.webkit.org/show_bug.cgi?id=198869 |
| <rdar://problem/51754437> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * Shared/API/Cocoa/WebKit.h: |
| Make the new API available to modularized clients and folks who just import WebKit.h |
| |
| 2019-06-14 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Disable AppSSO for web processes and plugin processes |
| https://bugs.webkit.org/show_bug.cgi?id=198843 |
| <rdar://problem/51642920> |
| |
| Reviewed by Sam Weinig. |
| |
| This patch moves the disabling of AppSSO from AuxiliaryProcess to PluginProcess |
| and WebProcess such that NetworkingProcess will not be affected. |
| |
| * PluginProcess/mac/PluginProcessMac.mm: |
| (WebKit::PluginProcess::platformInitializePluginProcess): |
| * Shared/ios/AuxiliaryProcessIOS.mm: |
| (WebKit::AuxiliaryProcess::platformInitialize): |
| * Shared/mac/AuxiliaryProcessMac.mm: |
| (WebKit::AuxiliaryProcess::platformInitialize): |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::platformInitializeProcess): |
| |
| 2019-06-14 Megan Gardner <megan_gardner@apple.com> |
| |
| Move Synthetic Editing Commands to behind an experimental feature flag |
| https://bugs.webkit.org/show_bug.cgi?id=198842 |
| <rdar://problem/50594700> |
| |
| Reviewed by Simon Fraser. |
| |
| Add a feature flag to gate synthetic editing commands. |
| |
| * Shared/WebPreferences.yaml: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::getFocusedElementInformation): |
| |
| 2019-06-13 Megan Gardner <megan_gardner@apple.com> |
| |
| Fix selection hang in Mail |
| https://bugs.webkit.org/show_bug.cgi?id=198845 |
| <rdar://problem/51388180> |
| |
| Reviewed by Tim Horton. |
| |
| SelectionDidChange requires a selectionWillChange in order to keep things in line. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _selectionChanged]): |
| |
| 2019-06-13 Tim Horton <timothy_horton@apple.com> |
| |
| No content shows up for WKWebView while locked even with _canShowWhileLocked is YES |
| https://bugs.webkit.org/show_bug.cgi?id=198819 |
| <rdar://problem/51636240> |
| |
| Reviewed by Simon Fraser. |
| |
| * UIProcess/Cocoa/WebPageProxyCocoa.mm: |
| (WebKit::WebPageProxy::didCreateContextForVisibilityPropagation): |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::contextIDForVisibilityPropagation const): |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/WebProcessProxy.h: |
| (WebKit::WebProcessProxy::contextIDForVisibilityPropagation): Deleted. |
| * UIProcess/WebProcessProxy.messages.in: |
| * UIProcess/ios/WKContentView.mm: |
| (-[WKContentView _setupVisibilityPropagationView]): |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::didCreateContextForVisibilityPropagation): Deleted. |
| * UIProcess/ios/WebProcessProxyIOS.mm: |
| (WebKit::WebProcessProxy::didCreateContextForVisibilityPropagation): Deleted. |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_shrinkToFitContentTimer): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebProcess.h: |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::platformInitializeWebProcess): |
| Move the creation of the visibility propagation context to WebPage instead of WebProcess, |
| because canShowWhileLocked is per-page, not per-process. |
| |
| Also, pass canShowWhileLocked into the context creation function for the visibility |
| propagation context, not just RemoteLayerTree contexts. |
| |
| 2019-06-13 Antoine Quint <graouts@apple.com> |
| |
| "display: contents" Content click does not trigger |
| https://bugs.webkit.org/show_bug.cgi?id=198559 |
| <rdar://problem/51488524> |
| |
| Reviewed by Antti Koivisto. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::commitPotentialTap): |
| |
| 2019-06-13 Takashi Komori <Takashi.Komori@sony.com> |
| |
| [curl] Remove member objects of CurlRequest not to share by different threads. |
| https://bugs.webkit.org/show_bug.cgi?id=198747 |
| |
| Reviewed by Fujii Hironori. |
| |
| * NetworkProcess/curl/NetworkDataTaskCurl.cpp: |
| (WebKit::NetworkDataTaskCurl::curlDidReceiveResponse): |
| (WebKit::NetworkDataTaskCurl::curlDidComplete): |
| (WebKit::NetworkDataTaskCurl::curlDidFailWithError): |
| * NetworkProcess/curl/NetworkDataTaskCurl.h: |
| |
| 2019-06-13 Zan Dobersek <zdobersek@igalia.com> |
| |
| [Nicosia] Add SceneIntegration |
| https://bugs.webkit.org/show_bug.cgi?id=198791 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Have the LayerTreeHost own the SceneIntegration object that's to be |
| associated with layers used inside the LayerTreeHost's scene. The |
| class now also inherits the SceneIntegration::Client interface, with the |
| requestUpdate() method scheduling a scene update in ThreadedCompositor. |
| |
| CompositingCoordinator now retrieves the SceneIntegration object from |
| the LayerTreeHost instance and manages association to that object for |
| layers under the coordinator's control. |
| |
| ThreadedCompositor class gets a new public updateScene() method that |
| schedules an update, enabling the SceneIntegration class to invoke |
| scene updates. |
| |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: |
| (WebKit::ThreadedCompositor::updateScene): |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h: |
| * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp: |
| (WebKit::CompositingCoordinator::createGraphicsLayer): |
| (WebKit::CompositingCoordinator::detachLayer): |
| (WebKit::CompositingCoordinator::attachLayer): |
| * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h: |
| * WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp: |
| (WebKit::LayerTreeHost::LayerTreeHost): |
| (WebKit::LayerTreeHost::sceneIntegration): |
| (WebKit::LayerTreeHost::requestUpdate): |
| * WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h: |
| |
| 2019-06-13 Ludovico de Nittis <ludovico.denittis@collabora.com> |
| |
| [GTK] gdk_display_get_device_manager and gdk_screen_get_width/height are deprecated |
| https://bugs.webkit.org/show_bug.cgi?id=198822 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| GdkSeat and GdkRectangle should be used, respectively. |
| |
| * UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp: |
| (WebKit::doMouseEvent): |
| (WebKit::doMotionEvent): |
| (WebKit::doKeyStrokeEvent): |
| |
| 2019-06-12 Antoine Quint <graouts@apple.com> |
| |
| Show the web page URL when sharing an AR model |
| https://bugs.webkit.org/show_bug.cgi?id=198812 |
| <rdar://problem/48689498> |
| |
| Reviewed by Dean Jackson. |
| |
| * UIProcess/Cocoa/DownloadClient.mm: |
| (WebKit::DownloadClient::didStart): |
| * UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: |
| (-[_WKPreviewControllerDataSource initWithMIMEType:originatingPageURL:]): |
| (-[_WKPreviewControllerDataSource previewController:previewItemAtIndex:]): |
| (WebKit::SystemPreviewController::start): |
| (-[_WKPreviewControllerDataSource initWithMIMEType:]): Deleted. |
| * UIProcess/SystemPreviewController.h: |
| |
| 2019-06-12 Antti Koivisto <antti@apple.com> |
| |
| Try to fix iOS build. |
| |
| * NetworkProcess/Downloads/DownloadMap.cpp: |
| |
| 2019-06-12 Youenn Fablet <youenn@apple.com> |
| |
| Use NSURLSession for WebSocket |
| https://bugs.webkit.org/show_bug.cgi?id=198568 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Implement socket channel provider on WebProcess level by sending IPC to NetworkProcess. |
| On NetworkProcess side, use NSURLSession API to implement the WebSocket functionality. |
| This is a partial implementation: |
| - inspector integration is not working. |
| - some error cases are not well handled or are not producing the same error messages. |
| - some features are not implemented (extensions, subprotocols, handshake authentication challenge, cookie handling...). |
| |
| * CMakeLists.txt: |
| * DerivedSources-input.xcfilelist: |
| * DerivedSources-output.xcfilelist: |
| * DerivedSources.make: |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::didReceiveMessage): |
| (WebKit::NetworkConnectionToWebProcess::createSocketChannel): |
| (WebKit::NetworkConnectionToWebProcess::removeSocketChannel): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkSession.cpp: |
| (WebKit::NetworkSession::createWebSocketTask): |
| * NetworkProcess/NetworkSession.h: |
| (WebKit::NetworkSession::removeWebSocketTask): |
| (WebKit::NetworkSession::addWebSocketTask): |
| * NetworkProcess/NetworkSocketChannel.cpp: Added. |
| (WebKit::NetworkSocketChannel::create): |
| (WebKit::NetworkSocketChannel::NetworkSocketChannel): |
| (WebKit::NetworkSocketChannel::~NetworkSocketChannel): |
| (WebKit::NetworkSocketChannel::sendString): |
| (WebKit::NetworkSocketChannel::sendData): |
| (WebKit::NetworkSocketChannel::finishClosingIfPossible): |
| (WebKit::NetworkSocketChannel::close): |
| (WebKit::NetworkSocketChannel::didConnect): |
| (WebKit::NetworkSocketChannel::didReceiveText): |
| (WebKit::NetworkSocketChannel::didReceiveBinaryData): |
| (WebKit::NetworkSocketChannel::didClose): |
| (WebKit::NetworkSocketChannel::messageSenderConnection const): |
| * NetworkProcess/NetworkSocketChannel.h: Added. |
| * NetworkProcess/NetworkSocketChannel.messages.in: Added. |
| * NetworkProcess/NetworkSocketStream.messages.in: |
| * NetworkProcess/WebSocketTask.h: Added. |
| (WebKit::WebSocketTask::sendString): |
| (WebKit::WebSocketTask::sendData): |
| (WebKit::WebSocketTask::close): |
| (WebKit::WebSocketTask::cancel): |
| (WebKit::WebSocketTask::resume): |
| * NetworkProcess/cocoa/NetworkSessionCocoa.h: |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (-[WKNetworkSessionDelegate existingWebSocketTask:]): |
| (-[WKNetworkSessionDelegate URLSession:webSocketTask:didOpenWithProtocol:]): |
| (-[WKNetworkSessionDelegate URLSession:webSocketTask:didCloseWithCode:reason:]): |
| (WebKit::NetworkSessionCocoa::continueDidReceiveChallenge): |
| (WebKit::NetworkSessionCocoa::createWebSocketTask): |
| (WebKit::NetworkSessionCocoa::addWebSocketTask): |
| (WebKit::NetworkSessionCocoa::removeWebSocketTask): |
| (WebKit::NetworkSessionCocoa::webSocketDataTaskForIdentifier): |
| * NetworkProcess/cocoa/WebSocketTaskCocoa.h: Added. |
| * NetworkProcess/cocoa/WebSocketTaskCocoa.mm: Added. |
| (WebKit::WebSocketTask::WebSocketTask): |
| (WebKit::WebSocketTask::~WebSocketTask): |
| (WebKit::WebSocketTask::readNextMessage): |
| (WebKit::WebSocketTask::cancel): |
| (WebKit::WebSocketTask::resume): |
| (WebKit::WebSocketTask::didConnect): |
| (WebKit::WebSocketTask::didClose): |
| (WebKit::WebSocketTask::sendString): |
| (WebKit::WebSocketTask::sendData): |
| (WebKit::WebSocketTask::close): |
| (WebKit::WebSocketTask::identifier const): |
| * Shared/WebPreferences.yaml: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/Network/NetworkProcessConnection.cpp: |
| (WebKit::NetworkProcessConnection::didReceiveMessage): |
| * WebProcess/Network/WebSocketChannel.cpp: Added. |
| (WebKit::WebSocketChannel::create): |
| (WebKit::WebSocketChannel::WebSocketChannel): |
| (WebKit::WebSocketChannel::~WebSocketChannel): |
| (WebKit::WebSocketChannel::messageSenderConnection const): |
| (WebKit::WebSocketChannel::messageSenderDestinationID const): |
| (WebKit::WebSocketChannel::subprotocol): |
| (WebKit::WebSocketChannel::extensions): |
| (WebKit::WebSocketChannel::connect): |
| (WebKit::WebSocketChannel::send): |
| (WebKit::WebSocketChannel::bufferedAmount const): |
| (WebKit::WebSocketChannel::close): |
| (WebKit::WebSocketChannel::fail): |
| (WebKit::WebSocketChannel::disconnect): |
| (WebKit::WebSocketChannel::didConnect): |
| (WebKit::WebSocketChannel::didReceiveText): |
| (WebKit::WebSocketChannel::didReceiveBinaryData): |
| (WebKit::WebSocketChannel::didClose): |
| (WebKit::WebSocketChannel::didFail): |
| (WebKit::WebSocketChannel::networkProcessCrashed): |
| * WebProcess/Network/WebSocketChannel.h: Added. |
| * WebProcess/Network/WebSocketChannel.messages.in: Added. |
| * WebProcess/Network/WebSocketChannelManager.cpp: Added. |
| (WebKit::WebSocketChannelManager::createWebSocketChannel): |
| (WebKit::WebSocketChannelManager::networkProcessCrashed): |
| (WebKit::WebSocketChannelManager::didReceiveMessage): |
| * WebProcess/Network/WebSocketChannelManager.h: Added. |
| * WebProcess/Network/WebSocketProvider.cpp: |
| (WebKit::WebSocketProvider::createWebSocketChannel): |
| * WebProcess/Network/WebSocketProvider.h: |
| * WebProcess/Network/WebSocketStream.cpp: |
| * WebProcess/Network/WebSocketStream.messages.in: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::networkProcessConnectionClosed): |
| * WebProcess/WebProcess.h: |
| (WebKit::WebProcess::webSocketChannelManager): |
| |
| 2019-06-12 Sihui Liu <sihui_liu@apple.com> |
| |
| Add assertions to help debug crash at WebKit::HistoryEntryDataEncoder::operator<< |
| https://bugs.webkit.org/show_bug.cgi?id=198766 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * Shared/SessionState.h: |
| (WebKit::FrameState::~FrameState): |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageCopySessionState): |
| * UIProcess/mac/LegacySessionStateCoding.cpp: |
| (WebKit::HistoryEntryDataEncoder::encodeFixedLengthData): |
| (WebKit::encodeFrameStateNode): |
| |
| 2019-06-12 Ludovico de Nittis <ludovico.denittis@collabora.com> |
| |
| [GTK] GTK_STOCK_* types have been deprecated since GTK 3.10 |
| https://bugs.webkit.org/show_bug.cgi?id=198787 |
| |
| Reviewed by Michael Catanzaro. |
| |
| We completely remove the gtkStockIDFromContextMenuAction function in order to get rid of the stock items. |
| This function was used only in "createActionIfNeeded" where now we pass a nullptr as a stock_id variable. |
| |
| * Shared/glib/WebContextMenuItemGlib.cpp: |
| (WebKit::gtkStockIDFromContextMenuAction): |
| |
| 2019-06-12 Brent Fulgham <bfulgham@apple.com> |
| |
| Unreviewed fix after rr246360. |
| |
| The current code accidentally calls the completion handler twice. |
| |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _setPrevalentDomain:completionHandler:]): |
| |
| 2019-06-12 Jiewen Tan <jiewen_tan@apple.com> |
| |
| REGRESSION (r245043) [Mac WK2 Debug] ASSERTION FAILED: m_services.isEmpty() && transports.size() <= maxTransportNumber seen with two http/wpt/webauthn/public-key-credential-* tests |
| https://bugs.webkit.org/show_bug.cgi?id=197917 |
| <rdar://problem/51524958> |
| |
| Reviewed by Brent Fulgham. |
| |
| This is a race condition that when a new request comes in the middle between the previous one finishes and the clearStateAsync is queued in the main thread. |
| Therefore, when the new request starts discovery, it will still see previous request's state. |
| |
| To fix this issue, clearState() will be called unconditionally for every request. And a guard is added to clearState() to prevent double clearance. |
| |
| * UIProcess/WebAuthentication/AuthenticatorManager.cpp: |
| (WebKit::AuthenticatorManager::makeCredential): |
| (WebKit::AuthenticatorManager::getAssertion): |
| (WebKit::AuthenticatorManager::clearState): |
| |
| 2019-06-12 Brent Fulgham <bfulgham@apple.com> |
| |
| Add mechanism and test case to check if ITP is active |
| https://bugs.webkit.org/show_bug.cgi?id=198694 |
| <rdar://problem/51557704> |
| |
| Reviewed by Youenn Fablet. |
| |
| Add a new private SPI call on the WebsiteDataStore object that allows test code |
| to mark a domain as prevalent, and check the prevalance of a resource. This |
| is then used to build a test to confirm ITP is active and working. |
| |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _setPrevalentDomain:completionHandler:]): |
| (-[WKWebsiteDataStore _getIsPrevalentDomain:completionHandler:]): |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| |
| 2019-06-12 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Many layout tests are failing on iPad simulator due to unexpected viewport dimensions |
| https://bugs.webkit.org/show_bug.cgi?id=198789 |
| <rdar://problem/51595519> |
| |
| Reviewed by Simon Fraser. |
| |
| Prevent the shrink-to-fit-content timer from activating on layout tests that use the testing viewport |
| configuration. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::immediatelyShrinkToFitContent): |
| |
| 2019-06-12 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [WPE][GTK] Deprecate WebSQL APIs |
| https://bugs.webkit.org/show_bug.cgi?id=195011 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * UIProcess/API/glib/WebKitSettings.cpp: |
| (webkit_settings_class_init): |
| * UIProcess/API/glib/WebKitWebContext.cpp: |
| (webkitWebContextConstructed): |
| * UIProcess/API/glib/WebKitWebsiteDataManager.cpp: |
| (webkitWebsiteDataManagerGetProperty): |
| (webkit_website_data_manager_class_init): |
| * UIProcess/API/gtk/WebKitWebsiteData.h: |
| * UIProcess/API/gtk/WebKitWebsiteDataManager.h: |
| * UIProcess/API/wpe/WebKitWebsiteData.h: |
| * UIProcess/API/wpe/WebKitWebsiteDataManager.h: |
| |
| 2019-06-12 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [WPE][GTK] Enable hyperlink auditing |
| https://bugs.webkit.org/show_bug.cgi?id=197845 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * UIProcess/API/glib/WebKitSettings.cpp: |
| (webkit_settings_class_init): |
| |
| 2019-06-12 Ludovico de Nittis <ludovico.denittis@collabora.com> |
| |
| [GTK] gtk_misc_set_alignment is deprecated since GTK 3.14 |
| https://bugs.webkit.org/show_bug.cgi?id=198785 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Replace the deprecated gtk_misc_set_alignment with halign and valign. |
| |
| * UIProcess/API/gtk/WebKitAuthenticationDialog.cpp: |
| (createLabelWithLineWrap): |
| |
| 2019-06-11 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS] Idempotent text autosizing needs to react properly to viewport changes |
| https://bugs.webkit.org/show_bug.cgi?id=198736 |
| <rdar://problem/50591911> |
| |
| Reviewed by Zalan Bujtas. |
| |
| If idempotent text autosizing is enabled, respond to viewport initial scale changes by forcing a style recalc, |
| since the amount by which idempotent text autosizing boosts font sizes depends on the Page's initial scale. |
| |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::resetIdempotentTextAutosizingIfNeeded): |
| (WebKit::WebPage::viewportConfigurationChanged): |
| |
| 2019-06-11 Zalan Bujtas <zalan@apple.com> |
| |
| LayoutTests/fast/events/touch/ios/double-tap-for-double-click* test cases are failing |
| https://bugs.webkit.org/show_bug.cgi?id=198764 |
| <rdar://problem/51035459> |
| |
| Reviewed by Wenson Hsieh. |
| |
| This patch replaces the existing, _doubleTapGestureRecognizerForDoubleClick based double click handling with a WebProcess based implementation using |
| the potentialTapAtPosition/commitPotentialTap infrastructure. |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| * UIProcess/PageClient.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::creationParameters): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::doubleTapForDoubleClickDelay): |
| (WebKit::PageClientImpl::doubleTapForDoubleClickRadius): |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _ensureNonBlockingDoubleTapGestureRecognizer]): |
| (-[WKContentView setupInteraction]): |
| (-[WKContentView cleanupInteraction]): |
| (-[WKContentView _removeDefaultGestureRecognizers]): |
| (-[WKContentView _addDefaultGestureRecognizers]): |
| (-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]): |
| (-[WKContentView gestureRecognizerShouldBegin:]): |
| (-[WKContentView _didStartProvisionalLoadForMainFrame]): |
| (-[WKContentView _doubleTapForDoubleClickDelay]): |
| (-[WKContentView _doubleTapForDoubleClickRadius]): |
| (-[WKContentView _doubleTapRecognizedForDoubleClick:]): Deleted. |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::handleDoubleTapForDoubleClickAtPoint): Deleted. |
| * WebProcess/WebPage/WebPage.cpp: |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::handlePotentialDoubleTapForDoubleClickAtPoint): |
| (WebKit::WebPage::commitPotentialTap): |
| (WebKit::WebPage::handleDoubleTapForDoubleClickAtPoint): Deleted. |
| |
| 2019-06-11 Andy Estes <aestes@apple.com> |
| |
| [Apple Pay] ASSERTION FAILED: m_state == State::Activating under WebPaymentCoordinatorProxy::showPaymentUI |
| https://bugs.webkit.org/show_bug.cgi?id=198776 |
| <rdar://problem/49123795> |
| |
| Reviewed by Brian Weinstein. |
| |
| It's possible that an active session is aborted before the completion handler passed to |
| platformShowPaymentUI() has executed. When that happens, m_state will be Idle even though we |
| assert that it is Activating. Fix this by returning early in the platformShowPaymentUI() |
| completion handler when m_state is Idle. |
| |
| It's not possible to write a layout test for this because MockPaymentCoordinator handles |
| showing payment UI directly in the web process, so this code is not executed in layout |
| tests. The assertion can be reproduced manually by loading |
| https://w3c-test.org/payment-request/payment-is-showing.https.html and clicking the button. |
| |
| * Shared/ApplePay/WebPaymentCoordinatorProxy.cpp: |
| (WebKit::WebPaymentCoordinatorProxy::showPaymentUI): |
| |
| 2019-06-11 Patrick Griffis <pgriffis@igalia.com> |
| |
| [GTK] Fix a11y support in bubblewrap sandbox |
| https://bugs.webkit.org/show_bug.cgi?id=198777 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * UIProcess/Launcher/glib/BubblewrapLauncher.cpp: |
| (WebKit::bindA11y): |
| |
| 2019-06-11 Timothy Hatcher <timothy@apple.com> |
| |
| Flash when tapping compose button after switching to/from dark mode without restarting Mail. |
| https://bugs.webkit.org/show_bug.cgi?id=198769 |
| rdar://problem/51370037 |
| |
| Reviewed by Tim Horton. |
| |
| Accessing a dynamic color outside a normal UIView choke point without setting |
| UITraitCollection.currentTraitCollection first can cause undefined results. |
| Use LocalCurrentTraitCollection inside scrollViewBackgroundColor when accessing |
| the dynamic system UIColors. Also use systemBackgroundColor instead of white. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (scrollViewBackgroundColor): |
| |
| 2019-06-11 Megan Gardner <megan_gardner@apple.com> |
| |
| Integrate scrollbar gestures for iOS |
| https://bugs.webkit.org/show_bug.cgi?id=198767 |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (_WKGestureRecognizerIsBuiltInScrollViewGestureRecognizer): |
| (-[WKContentView gestureRecognizer:canPreventGestureRecognizer:]): |
| |
| 2019-06-11 Timothy Hatcher <timothy@apple.com> |
| |
| Scrollbar can show as white on white in dark mode on iOS. |
| https://bugs.webkit.org/show_bug.cgi?id=198772 |
| rdar://problem/51516743 |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _updateScrollViewBackground]): Use UIScrollViewIndicatorStyleBlack instead |
| of UIScrollViewIndicatorStyleDefault to prevent getting a white scrollbar in dark mode. |
| |
| 2019-06-11 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed build warning fixes |
| |
| Silence -Wunused-variable warning |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::clearWebProcessIsPlayingAudibleMedia): |
| |
| 2019-06-11 Simon Fraser <simon.fraser@apple.com> |
| |
| Fix non-internal builds after r246327. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| |
| 2019-06-10 Simon Fraser <simon.fraser@apple.com> |
| |
| Add logging for UI-side compositing hit-testing |
| https://bugs.webkit.org/show_bug.cgi?id=198739 |
| |
| Reviewed by Antti Koivisto. |
| |
| Make it easier to debug UI-side compositing hit-testing issues with a UIHitTesting log |
| channel, which logs information about the UIView hierarchy, which views are found by |
| hit-testing, and what touch-actions apply. |
| |
| This log channel can be set by passing the argument '-WebKit2Logging "UIHitTesting"' when |
| launching a debug iOS MobileSafari instance. |
| |
| * Platform/Logging.h: |
| * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm: |
| (-[UIView _web_findDescendantViewAtPoint:withEvent:]): |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView hitTest:withEvent:]): |
| (-[WKContentView _handleTouchActionsForTouchEvent:]): |
| |
| 2019-06-11 Antti Koivisto <antti@apple.com> |
| |
| REGRESSION (iOS): Can't scroll litter-robot.com checkout form's dropdown menus |
| https://bugs.webkit.org/show_bug.cgi?id=198753 |
| <rdar://problem/51355686> |
| |
| Reviewed by Simon Fraser. |
| |
| If an element with 'overflow:scroll' also had 'visibility:hidden' or 'pointer-events:none' it would |
| capture touches and prevent scrolling of any overlapped scrollers. |
| |
| * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm: |
| (WebKit::collectDescendantViewsAtPoint): |
| |
| Filter out views with 'isUserInteractionEnabled == NO' (set for hidden and pointer-events:none layers). |
| This prevents it being considered as the first view hit when determining scrolling relationships. |
| |
| (-[UIView _web_findDescendantViewAtPoint:withEvent:]): |
| |
| No need to skip here anymore. |
| |
| 2019-06-11 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Quotes are always inserted as smart quotes on stackblitz.com, causing compilation errors |
| https://bugs.webkit.org/show_bug.cgi?id=198735 |
| <rdar://problem/51557159> |
| |
| Reviewed by Megan Gardner. |
| |
| Add a flag in FocusedElementInformation to indicate whether spellchecking is allowed in the focused element. |
| If spellchecking is not allowed, then disable smart quotes and dashes, which matches behavior on macOS. |
| |
| * Shared/FocusedElementInformation.cpp: |
| (WebKit::FocusedElementInformation::encode const): |
| (WebKit::FocusedElementInformation::decode): |
| * Shared/FocusedElementInformation.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView textInputTraits]): |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::getFocusedElementInformation): |
| |
| 2019-06-11 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Remove option REDIRECTED_XCOMPOSITE_WINDOW |
| https://bugs.webkit.org/show_bug.cgi?id=198748 |
| |
| Reviewed by Žan Doberšek. |
| |
| It's unused and untested, we kept that code path only because the redirected window caused performance issues in |
| some drivers in embedded devices. Nowadays there are much better solutions for those cases like using WPE port |
| or GTK port under wayland instead of X11. |
| |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: |
| (WebKit::ThreadedCompositor::create): Remove the ShouldDoFrameSync parameter since it always receives Yes. |
| (WebKit::ThreadedCompositor::ThreadedCompositor): Ditto. |
| (WebKit::ThreadedCompositor::createGLContext): Remove the code to handle the case of ShouldDoFrameSync being No, |
| since it's always Yes. |
| (WebKit::ThreadedCompositor::setNativeSurfaceHandleForCompositing): Deleted. |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h: |
| * UIProcess/API/gtk/WebKitWebViewBase.cpp: |
| (webkitWebViewBaseRealize): Remove the code for !USE(REDIRECTED_XCOMPOSITE_WINDOW). |
| (webkitWebViewBaseUnrealize): Ditto. |
| (webkitWebViewBaseDraw): acceleratedBackingStore member can't be nullptr now. |
| (webkitWebViewBaseEnterAcceleratedCompositingMode): Ditto. |
| (webkitWebViewBaseUpdateAcceleratedCompositingMode): Ditto. |
| (webkitWebViewBaseExitAcceleratedCompositingMode): Ditto. |
| (webkitWebViewBaseMakeGLContextCurrent): Ditto. |
| (webkitWebViewBaseDidRelaunchWebProcess): Remove the code for !USE(REDIRECTED_XCOMPOSITE_WINDOW). |
| (webkitWebViewBasePageClosed): Ditto. |
| (webkitWebViewBaseRenderHostFileDescriptor): acceleratedBackingStore member can't be nullptr now. |
| * UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp: |
| (WebKit::DrawingAreaProxyCoordinatedGraphics::didUpdateBackingStoreState): Remove the code for !USE(REDIRECTED_XCOMPOSITE_WINDOW). |
| (WebKit::DrawingAreaProxyCoordinatedGraphics::setNativeSurfaceHandleForCompositing): Deleted. |
| (WebKit::DrawingAreaProxyCoordinatedGraphics::destroyNativeSurfaceHandleForCompositing): Deleted. |
| * UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.h: |
| * UIProcess/gtk/AcceleratedBackingStore.cpp: |
| (WebKit::AcceleratedBackingStore::create): Add an assert to ensure we create an AcceleratedBackingStore. |
| * UIProcess/gtk/AcceleratedBackingStoreX11.cpp: |
| * UIProcess/gtk/AcceleratedBackingStoreX11.h: |
| * UIProcess/gtk/HardwareAccelerationManager.cpp: |
| (WebKit::HardwareAccelerationManager::HardwareAccelerationManager): Remove the code for !USE(REDIRECTED_XCOMPOSITE_WINDOW). |
| * WebProcess/WebPage/AcceleratedSurface.cpp: |
| (WebKit::AcceleratedSurface::create): Add an assert to ensure we create an AcceleratedSurface. |
| * WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp: |
| (WebKit::DrawingAreaCoordinatedGraphics::enterAcceleratedCompositingMode): Remove the code for !USE(REDIRECTED_XCOMPOSITE_WINDOW). |
| (WebKit::DrawingAreaCoordinatedGraphics::setNativeSurfaceHandleForCompositing): Deleted. |
| (WebKit::DrawingAreaCoordinatedGraphics::destroyNativeSurfaceHandleForCompositing): Deleted. |
| * WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.h: |
| * WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp: |
| (WebKit::LayerTreeHost::LayerTreeHost): m_surface can't be nullptr now. |
| (WebKit::LayerTreeHost::sizeDidChange): Ditto. |
| (WebKit::LayerTreeHost::deviceOrPageScaleFactorChanged): Ditto. |
| (WebKit::LayerTreeHost::nativeSurfaceHandleForCompositing): Ditto. |
| (WebKit::LayerTreeHost::didDestroyGLContext): Ditto. |
| (WebKit::LayerTreeHost::willRenderFrame): Ditto. |
| (WebKit::LayerTreeHost::didRenderFrame): Ditto. |
| (WebKit::LayerTreeHost::setNativeSurfaceHandleForCompositing): Deleted. |
| * WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h: |
| * WebProcess/WebPage/DrawingArea.h: |
| * WebProcess/WebPage/DrawingArea.messages.in: |
| * WebProcess/WebPage/WebPage.h: |
| (WebKit::WebPage::nativeWindowHandle): Deleted. |
| * WebProcess/WebPage/gtk/AcceleratedSurfaceX11.cpp: |
| * WebProcess/WebPage/gtk/AcceleratedSurfaceX11.h: |
| |
| 2019-06-11 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [WPE][GTK] bubblewrap sandbox should grant access to web extensions directory |
| https://bugs.webkit.org/show_bug.cgi?id=198734 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * UIProcess/API/glib/WebKitWebContext.cpp: |
| (webkit_web_context_set_web_extensions_directory): |
| |
| 2019-06-10 Andy Estes <aestes@apple.com> |
| |
| [iOS] Use PDFKit SPI for taking snapshots when the hosting app is not entitled for global capture |
| https://bugs.webkit.org/show_bug.cgi?id=198731 |
| <rdar://problem/46215174> |
| |
| Reviewed by Tim Horton. |
| |
| PDFHostViewController renders PDF contents in a view service, and apps are unable to |
| snapshot views rendered out-of-process without an entitlement. |
| |
| When an app is missing this entitlement and calls WKWebView's |
| takeSnapshotWithConfiguration: API when a PDF is displayed, fall back to calling |
| PDFHostViewController's snapshotting SPI. |
| |
| Testing is blocked by <https://webkit.org/b/175204>. |
| |
| * Platform/spi/ios/PDFKitSPI.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]): |
| * UIProcess/Cocoa/WKWebViewContentProvider.h: |
| * UIProcess/ios/WKPDFView.mm: |
| (+[WKPDFView web_requiresCustomSnapshotting]): |
| (-[WKPDFView web_snapshotRectInContentViewCoordinates:snapshotWidth:completionHandler:]): |
| * UIProcess/ios/WKSystemPreviewView.mm: |
| (+[WKSystemPreviewView web_requiresCustomSnapshotting]): |
| |
| 2019-06-10 Sam Weinig <weinig@apple.com> |
| |
| Remove Dashboard support |
| https://bugs.webkit.org/show_bug.cgi?id=198615 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * WebProcess/InjectedBundle/API/c/WKBundle.cpp: |
| (WKBundleSetUseDashboardCompatibilityMode): Deleted. |
| * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::setUseDashboardCompatibilityMode): Deleted. |
| * WebProcess/InjectedBundle/InjectedBundle.h: |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::annotatedRegionsChanged): Deleted. |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| |
| 2019-06-10 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS] fast/xsl tests are flaky when run after certain viewport shrink-to-fit tests |
| https://bugs.webkit.org/show_bug.cgi?id=198699 |
| <rdar://problem/50501718> |
| |
| Reviewed by Simon Fraser. |
| |
| Lift logic that sets the "IsKnownToLayOutWiderThanViewport" flag out of resetViewportDefaultConfiguration, and |
| into didCommitLoad instead (along with other logic for resetting viewport arguments). The previous method, |
| resetViewportDefaultConfiguration, was being triggered very frequently undo didReceiveMobileDocType, causing the |
| shrink-to-fit heuristic to sometimes take no effect. The original intention here was simply to reset the flag |
| upon page load. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::didCommitLoad): |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::resetViewportDefaultConfiguration): |
| |
| 2019-06-10 Timothy Hatcher <timothy@apple.com> |
| |
| Integrate dark mode support for iOS. |
| https://bugs.webkit.org/show_bug.cgi?id=198687 |
| rdar://problem/51545643 |
| |
| Reviewed by Tim Horton. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _effectiveAppearanceIsDark]): |
| (-[WKWebView _effectiveAppearanceIsInactive]): |
| (-[WKWebView _dynamicUserInterfaceTraitDidChange]): |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::effectiveAppearanceIsDark const): |
| (WebKit::PageClientImpl::effectiveAppearanceIsInactive const): |
| * UIProcess/ios/WKPasswordView.mm: |
| (-[WKPasswordView showInScrollView:]): |
| (configureScrollView): Deleted. |
| |
| 2019-06-10 Sihui Liu <sihui_liu@apple.com> |
| |
| [WKHTTPCookieStore getAllCookies:] may return duplicate cookies |
| https://bugs.webkit.org/show_bug.cgi?id=198635 |
| <rdar://problem/46010232> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| When there is no process pool, we store cookies set in memory with HashSet m_pendingCookies of WebsiteDataStore. |
| |
| HashSet does not contain duplicate Cookies that are completely identical, but it may contain Cookies that have |
| all the other properties identical other than value. This is not correct because Cookies with same name, domain |
| and path should be treated as the same cookie. When a cookie is set via API, we should either insert the |
| cookie into m_pendingCookies if the cookie does not exist, or update the cookie value if it already exists. |
| |
| Note that we still use HashSet with CookieHash for m_pendingCookies because in cookie deletion, we only delete |
| cookie when there is a complete match. If some cookie from m_pendingCookies has all other properties the same as |
| the cookie specified in the deletion function, but the value is different, it will not be removed. |
| |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::addPendingCookie): |
| |
| 2019-06-10 Philippe Normand <pnormand@igalia.com> |
| |
| [WPE][Qt] Port to new wpe_fdo_egl_exported_image API |
| https://bugs.webkit.org/show_bug.cgi?id=198713 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * UIProcess/API/wpe/qt/WPEQtViewBackend.cpp: |
| (WPEQtViewBackend::WPEQtViewBackend): |
| (WPEQtViewBackend::texture): |
| (WPEQtViewBackend::displayImage): |
| * UIProcess/API/wpe/qt/WPEQtViewBackend.h: |
| |
| 2019-06-09 Brent Fulgham <bfulgham@apple.com> |
| |
| [iOS] ResourceLoadStatistics state is not properly relayed to the NetworkProcess |
| https://bugs.webkit.org/show_bug.cgi?id=198692 |
| <rdar://problem/51538088> |
| |
| Reviewed by Maciej Stachowiak. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::setResourceLoadStatisticsEnabled): Message the NetworkProcess |
| on state change. |
| |
| 2019-06-08 Dean Jackson <dino@apple.com> |
| |
| Drag starting state can get stuck even though the drag has ended |
| https://bugs.webkit.org/show_bug.cgi?id=198696 |
| <rdar://problem/51556045> |
| |
| Reviewed by Wenson Hsieh. |
| |
| In iOS 13, we're seeing cases of the DragSession not |
| correctly ending, and thus leaving m_isStartingDrag in |
| an incorrect state. Temporarily force this to be reset |
| in ::dragEnded while investigating |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: Add some more release logging |
| while here. |
| (-[WKContentView dragInteraction:willAnimateLiftWithAnimator:session:]): |
| (-[WKContentView dragInteraction:item:willAnimateCancelWithAnimator:]): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::dragEnded): |
| |
| 2019-06-08 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS] The default application name for user agent when requesting desktop content is still "Mobile/15E148" |
| https://bugs.webkit.org/show_bug.cgi?id=198693 |
| <rdar://problem/51555371> |
| |
| Reviewed by Tim Horton. |
| |
| Fixes the bug by introducing an applicationNameForDesktopUserAgent member to WebPageProxy. This |
| applicationNameForDesktopUserAgent is set alongside the regular applicationNameForUserAgent; however, in the |
| case where it is being set via WKWebViewConfiguration, use WKWebViewConfiguration's |
| _applicationNameForDesktopUserAgent instead. See below for more details. |
| |
| Tested by adding to the existing API test PreferredContentMode.ApplicationNameForDesktopUserAgent. |
| |
| * UIProcess/API/APIWebsitePolicies.cpp: |
| (API::WebsitePolicies::copy const): |
| * UIProcess/API/APIWebsitePolicies.h: |
| |
| Drive-by fix: rename applicationNameForUserAgentWithModernCompatibility to applicationNameForDesktopUserAgent in |
| a few places. |
| |
| * UIProcess/API/Cocoa/WKBrowsingContextController.mm: |
| (-[WKBrowsingContextController setApplicationNameForUserAgent:]): |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| (-[WKWebView _setApplicationNameForUserAgent:]): |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: |
| |
| Change _applicationNameForUserAgent into an Optional<RetainPtr<NSString>>. A value of WTF::nullopt allows us to |
| know that the default application name should be used (which is different when requesting desktop content). |
| |
| (-[WKWebViewConfiguration encodeWithCoder:]): |
| (-[WKWebViewConfiguration initWithCoder:]): |
| (-[WKWebViewConfiguration copyWithZone:]): |
| (-[WKWebViewConfiguration _applicationNameForDesktopUserAgent]): |
| |
| Add _applicationNameForDesktopUserAgent to the web view configuration. This behaves like |
| applicationNameForUserAgent, with one exception: in the case where the default applicationNameForUserAgent is |
| used (i.e. the client has not specified any application name), default to `nil` as the application name for user |
| agent, rather than "Mobile/15E148". |
| |
| (-[WKWebViewConfiguration applicationNameForUserAgent]): |
| (-[WKWebViewConfiguration setApplicationNameForUserAgent:]): |
| * UIProcess/API/Cocoa/WKWebViewConfigurationInternal.h: |
| * UIProcess/API/Cocoa/WKWebpagePreferences.mm: |
| (-[WKWebpagePreferences _applicationNameForUserAgentWithModernCompatibility]): |
| (-[WKWebpagePreferences _setApplicationNameForUserAgentWithModernCompatibility:]): |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::setApplicationNameForDesktopUserAgent): |
| (WebKit::WebPageProxy::applicationNameForDesktopUserAgent const): |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::effectiveContentModeAfterAdjustingPolicies): |
| |
| 2019-06-08 Andy Estes <aestes@apple.com> |
| |
| [Apple Pay] If we have a bound interface identifier, set it on new PKPaymentRequests |
| https://bugs.webkit.org/show_bug.cgi?id=198690 |
| <rdar://problem/48041803> |
| |
| Reviewed by Tim Horton. |
| |
| * NetworkProcess/cocoa/NetworkSessionCocoa.h: |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::NetworkSessionCocoa::boundInterfaceIdentifier const): Implemented a public getter |
| for m_boundInterfaceIdentifier. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/ios/NetworkConnectionToWebProcessIOS.mm: |
| (WebKit::NetworkConnectionToWebProcess::paymentCoordinatorBoundInterfaceIdentifier): |
| Implemented an override for paymentCoordinatorBoundInterfaceIdentifier. |
| |
| * Shared/ApplePay/WebPaymentCoordinatorProxy.h: Declared |
| paymentCoordinatorBoundInterfaceIdentifier for clients to override. |
| |
| * Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm: |
| (WebKit::WebPaymentCoordinatorProxy::platformPaymentRequest): If the client has a non-empty |
| bound interface identifier, set it on the new PKPaymentRequest. |
| |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/Cocoa/WebPageProxyCocoa.mm: |
| (WebKit::WebPageProxy::paymentCoordinatorBoundInterfaceIdentifier): Implemented an override |
| for paymentCoordinatorBoundInterfaceIdentifier. |
| |
| 2019-06-07 Antti Koivisto <antti@apple.com> |
| |
| REGRESSION (r245006): Setting scrollview.scrollEnabled clobbers any scrollEnabled set by a client |
| https://bugs.webkit.org/show_bug.cgi?id=198656 |
| <rdar://problem/51494585> |
| |
| Reviewed by Tim Horton. |
| |
| Allow client to disable scrolling and zooming. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _didCommitLayerTree:]): |
| * UIProcess/ios/WKScrollView.h: |
| * UIProcess/ios/WKScrollView.mm: |
| (-[WKScrollView initWithFrame:]): |
| (-[WKScrollView setScrollEnabled:]): |
| (-[WKScrollView _setScrollEnabledInternal:]): |
| (-[WKScrollView _updateScrollability]): |
| (-[WKScrollView setZoomEnabled:]): |
| (-[WKScrollView _setZoomEnabledInternal:]): |
| (-[WKScrollView _updateZoomability]): |
| |
| 2019-06-07 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Allow clients to vend custom -inputView and -inputAccessoryView by overriding WKWebView methods |
| https://bugs.webkit.org/show_bug.cgi?id=198631 |
| <rdar://problem/51505431> |
| |
| Reviewed by Tim Horton. |
| |
| Allow WKWebView API clients to override WKContentView's default input view and/or input accessory view by |
| subclassing WKWebView and implementing -inputView or -inputAccessoryView. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView inputAccessoryView]): |
| (-[WKWebView inputView]): |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView inputView]): |
| (-[WKContentView inputViewForWebView]): |
| (-[WKContentView inputAccessoryView]): |
| (-[WKContentView inputAccessoryViewForWebView]): |
| |
| 2019-06-07 Tim Horton <timothy_horton@apple.com> |
| |
| Disable focus rings on WKContentView for PLATFORM(IOSMAC) |
| https://bugs.webkit.org/show_bug.cgi?id=198685 |
| |
| Reviewed by Simon Fraser. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/ios/WKContentView.mm: |
| (-[WKContentView _commonInitializationWithProcessPool:configuration:]): |
| |
| 2019-06-07 Megan Gardner <megan_gardner@apple.com> |
| |
| Extend quirks to emulate bold/italic/underline in hidden editable areas |
| https://bugs.webkit.org/show_bug.cgi?id=198681 |
| |
| Reviewed by Wenson Hsieh. |
| |
| * Shared/FocusedElementInformation.cpp: |
| (WebKit::FocusedElementInformation::encode const): |
| (WebKit::FocusedElementInformation::decode): |
| * Shared/FocusedElementInformation.h: |
| * Shared/SyntheticEditingCommandType.h: |
| * UIProcess/ios/WKContentView.mm: |
| (-[WKContentView undoManager]): |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (shouldSynthezieKeyEvents): |
| (-[WKContentView toggleBoldfaceForWebView:]): |
| (-[WKContentView toggleItalicsForWebView:]): |
| (-[WKContentView toggleUnderlineForWebView:]): |
| (-[WKContentView _elementDidBlur]): |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::generateSyntheticEditingCommand): |
| (WebKit::WebPage::getFocusedElementInformation): |
| |
| 2019-06-05 Alex Christensen <achristensen@webkit.org> |
| |
| Introduce new SPI for context menus on iOS |
| https://bugs.webkit.org/show_bug.cgi?id=198590 |
| |
| Reviewed by Tim Horton. |
| |
| Also introduce WKContextMenuElementInfo which is API. |
| This is part of <rdar://problem/51003503> |
| |
| * Shared/API/APIObject.h: |
| * Shared/API/Cocoa/WebKit.h: |
| * Shared/Cocoa/APIObject.mm: |
| (API::Object::newObject): |
| * Sources.txt: |
| * SourcesCocoa.txt: |
| * UIProcess/API/APIContextMenuElementInfo.cpp: Added. |
| (API::ContextMenuElementInfo::ContextMenuElementInfo): |
| * UIProcess/API/APIContextMenuElementInfo.h: Added. |
| * UIProcess/API/Cocoa/WKContextMenuElementInfo.h: Added. |
| * UIProcess/API/Cocoa/WKContextMenuElementInfo.mm: Added. |
| (-[WKContextMenuElementInfo linkURL]): |
| (-[WKContextMenuElementInfo _apiObject]): |
| (-[WKContextMenuElementInfo _activatedElementInfo]): |
| * UIProcess/API/Cocoa/WKContextMenuElementInfoInternal.h: Added. |
| * UIProcess/API/Cocoa/WKContextMenuElementInfoPrivate.h: Added. |
| * UIProcess/API/Cocoa/WKPreviewElementInfo.h: |
| * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: |
| * UIProcess/API/Cocoa/_WKActivatedElementInfo.h: |
| * UIProcess/API/Cocoa/_WKActivatedElementInfo.mm: |
| (-[_WKActivatedElementInfo _initWithInteractionInformationAtPosition:]): |
| (-[_WKActivatedElementInfo isAnimatedImage]): |
| * UIProcess/ios/WKActionSheetAssistant.h: |
| * UIProcess/ios/WKActionSheetAssistant.mm: |
| (-[WKActionSheetAssistant defaultActionsForLinkSheet:]): |
| (-[WKActionSheetAssistant defaultActionsForImageSheet:]): |
| * UIProcess/ios/WKContentView.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-06-07 Antoine Quint <graouts@apple.com> |
| |
| Restrict fast clicks everywhere to desktop content mode |
| https://bugs.webkit.org/show_bug.cgi?id=198610 |
| <rdar://problem/50114230> |
| |
| Reviewed by Dean Jackson. |
| |
| We now set a new allowsFastClicksEverywhere property on the WebPageProxy when the content mode changes, set to true |
| when we're in desktop browsing mode. We now check on this property to opt into the fast clicks everywhere behavior. |
| |
| This patch had been reverted once because it yielded some regressions in existing tests, notably under |
| fast/events/touch/ios/content-observation. This updated patch addresses this by ensuring the gesture recognizers |
| used for double-tap-to-zoom are disabled in -[WKContentViewInteraction _didStartProvisionalLoadForMainFrame] |
| to ensure that two tests dispatching a tap at the same location don't yield the recognition of a double-tap |
| rathern than the recognition of two single taps. |
| |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::allowsFastClicksEverywhere const): |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _handleSmartMagnificationInformationForPotentialTap:renderRect:fitEntireRect:viewportMinimumScale:viewportMaximumScale:]): |
| (_didStartProvisionalLoadForMainFrame): |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::effectiveContentModeAfterAdjustingPolicies): |
| |
| 2019-06-07 Brent Fulgham <bfulgham@apple.com> |
| |
| [iOS] Update sandboxes to address iokit-get-property errors |
| https://bugs.webkit.org/show_bug.cgi?id=198494 |
| <rdar://problem/51322072> and <rdar://problem/50602737> |
| |
| Reviewed by Per Arne Vollan. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2019-06-07 Andy Estes <aestes@apple.com> |
| |
| process-swap-on-navigation error when loading blocked website on iOS 12.2 only. |
| https://bugs.webkit.org/show_bug.cgi?id=196930 |
| <rdar://problem/47819301> |
| |
| Reviewed by Chris Dumez. |
| |
| The ContentFilterDidBlockLoadForFrame message needs to be handled by ProvisionalPageProxy in |
| order to look up the blocked frame in the correct WebProcessProxy. |
| |
| * UIProcess/Cocoa/WebPageProxyCocoa.mm: |
| (WebKit::WebPageProxy::contentFilterDidBlockLoadForFrame): |
| (WebKit::WebPageProxy::contentFilterDidBlockLoadForFrameShared): |
| * UIProcess/ProvisionalPageProxy.cpp: |
| (WebKit::ProvisionalPageProxy::contentFilterDidBlockLoadForFrame): |
| (WebKit::ProvisionalPageProxy::didReceiveMessage): |
| * UIProcess/ProvisionalPageProxy.h: |
| * UIProcess/WebPageProxy.h: |
| |
| 2019-06-07 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Fix api used to release wpe_fdo_egl_exported_image in GTK |
| |
| We are using the old deprecated API in AcceleratedBackingStoreWayland::displayBuffer(). |
| |
| * UIProcess/gtk/AcceleratedBackingStoreWayland.cpp: |
| (WebKit::AcceleratedBackingStoreWayland::displayBuffer): |
| |
| 2019-06-06 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| REGRESSION(r243094): [GTK][WPE] Stale content after restoring the web view session |
| https://bugs.webkit.org/show_bug.cgi?id=198561 |
| |
| Reviewed by Chris Dumez. |
| |
| This is another regression of delaying the web process launch until the first load. If the session is restored |
| before anything has been loaded, which is the normal way, the RestoreSession message is just ignored and the |
| state is sent to the WebPage on creation via creation parameters. The WebPage considers that restoring a session |
| from creation parameters only happens when re-launching a process after a crash or in case of process swap. In |
| those cases, the history item is not marked as restored from session. We need to ensure the session is restored |
| in the web process from the IPC message handler, by launching the initial process before the session is |
| restored. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::restoreFromSessionState): |
| |
| 2019-06-06 Youenn Fablet <youenn@apple.com> |
| |
| Use an enumeration in UserMediaPermissionRequestManagerProxy::getUserMediaPermissionInfo callback |
| https://bugs.webkit.org/show_bug.cgi?id=198548 |
| |
| Reviewed by Eric Carlson. |
| |
| Move from an Optional<bool> to an enum having three values to ease readability. |
| |
| * UIProcess/UserMediaPermissionCheckProxy.cpp: |
| (WebKit::UserMediaPermissionCheckProxy::setUserMediaAccessInfo): |
| (WebKit::UserMediaPermissionCheckProxy::complete): |
| * UIProcess/UserMediaPermissionCheckProxy.h: |
| (WebKit::UserMediaPermissionCheckProxy::invalidate): |
| * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: |
| (WebKit::UserMediaPermissionRequestManagerProxy::captureDevicesChanged): |
| (WebKit::UserMediaPermissionRequestManagerProxy::startProcessingUserMediaPermissionRequest): |
| (WebKit::UserMediaPermissionRequestManagerProxy::getUserMediaPermissionInfo): |
| (WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame): |
| * UIProcess/UserMediaPermissionRequestManagerProxy.h: |
| |
| 2019-06-06 Youenn Fablet <youenn@apple.com> |
| |
| Allow WebKitTestRunner to terminate network process after it finishes service worker file operations |
| https://bugs.webkit.org/show_bug.cgi?id=198584 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Add IPC binding to new internal API. |
| |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.messages.in: |
| * WebProcess/Storage/WebSWClientConnection.cpp: |
| (WebKit::WebSWClientConnection::storeRegistrationsOnDiskForTesting): |
| * WebProcess/Storage/WebSWClientConnection.h: |
| |
| 2019-06-06 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r246165. |
| https://bugs.webkit.org/show_bug.cgi?id=198636 |
| |
| Causing test failures in 7 content-observation tests. |
| (Requested by ShawnRoberts on #webkit). |
| |
| Reverted changeset: |
| |
| "Restrict fast clicks everywhere to desktop content mode" |
| https://bugs.webkit.org/show_bug.cgi?id=198610 |
| https://trac.webkit.org/changeset/246165 |
| |
| 2019-06-06 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r246123. |
| https://bugs.webkit.org/show_bug.cgi?id=198634 |
| |
| Causes test failures (Requested by ShawnRoberts on #webkit). |
| |
| Reverted changeset: |
| |
| "[iOS] Update sandboxes to address iokit-get-property errors" |
| https://bugs.webkit.org/show_bug.cgi?id=198494 |
| https://trac.webkit.org/changeset/246123 |
| |
| 2019-06-06 Geoffrey Garen <ggaren@apple.com> |
| |
| Crash using WKHTTPCookieStore when you use WKWebView and UIWebView in the same app |
| https://bugs.webkit.org/show_bug.cgi?id=198622 |
| |
| Reviewed by Chris Dumez. |
| |
| Today in a WWDC lab, I saw some crash reports from an app that mixed |
| WKWebView and UIWebView. The proximate cause of the crash is that |
| WKHTTPCookieStore queues a callOnMainThread function, and then |
| UIWebView dequeues it on the WebThread. |
| |
| No test because this crash depends on mixing WKWebView and UIWebView and |
| getting (un)lucky on the timing. |
| |
| * UIProcess/API/APIHTTPCookieStore.cpp: |
| (API::HTTPCookieStore::cookies): |
| (API::HTTPCookieStore::setCookies): |
| (API::HTTPCookieStore::deleteCookie): Avoid using callOnMainThread |
| becuase it is prohibited in the UI process. |
| |
| 2019-06-06 Antoine Quint <graouts@apple.com> |
| |
| Remove duplicated websiteDataStoreParameters code from WebsitePoliciesData::applyToDocumentLoader() |
| https://bugs.webkit.org/show_bug.cgi?id=198608 |
| |
| Reviewed by Wenson Hsieh. |
| |
| Due to a rebasing error, r244218 re-introduced code that was removed in r244197. This patch removes this code for good. |
| |
| * Shared/WebsitePoliciesData.cpp: |
| (WebKit::WebsitePoliciesData::applyToDocumentLoader): |
| |
| 2019-06-06 Antoine Quint <graouts@apple.com> |
| |
| Restrict fast clicks everywhere to desktop content mode |
| https://bugs.webkit.org/show_bug.cgi?id=198610 |
| <rdar://problem/50114230> |
| |
| Reviewed by Dean Jackson. |
| |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::allowsFastClicksEverywhere const): |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _handleSmartMagnificationInformationForPotentialTap:renderRect:fitEntireRect:viewportMinimumScale:viewportMaximumScale:]): |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::effectiveContentModeAfterAdjustingPolicies): |
| |
| 2019-06-06 Sihui Liu <sihui_liu@apple.com> |
| |
| NetworkHTTPSUpgradeChecker should construct and destruct database on the background thread |
| https://bugs.webkit.org/show_bug.cgi?id=198496 |
| |
| Reviewed by Chris Dumez. |
| |
| * NetworkProcess/NetworkHTTPSUpgradeChecker.cpp: |
| (WebKit::NetworkHTTPSUpgradeChecker::NetworkHTTPSUpgradeChecker): |
| (WebKit::NetworkHTTPSUpgradeChecker::~NetworkHTTPSUpgradeChecker): |
| * NetworkProcess/NetworkHTTPSUpgradeChecker.h: |
| |
| 2019-06-06 Truitt Savell <tsavell@apple.com> |
| |
| Unreviewed, rolling out r246137. |
| |
| Broke internal builds. |
| |
| Reverted changeset: |
| |
| "Introduce new SPI for context menus on iOS" |
| https://bugs.webkit.org/show_bug.cgi?id=198590 |
| https://trac.webkit.org/changeset/246137 |
| |
| 2019-06-06 Antti Koivisto <antti@apple.com> |
| |
| Position fixed is buggy with overflow:auto scrolling inside iframes |
| https://bugs.webkit.org/show_bug.cgi?id=154399 |
| <rdar://problem/24742251> |
| |
| Reviewed by Frederic Wang and Simon Fraser. |
| |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm: |
| (WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree): |
| |
| Remove viewportChangedViaDelegatedScrolling call as we were just relying on its side effect of (partially) applying |
| the scrolling tree. Instead call the new applyScrollingTreeLayerPositionsAfterCommit() unconditionally. |
| It only does work if there are local deltas to apply. |
| |
| Local deltas will potentially need to be applied in non-fixed cases too and it is hard to reason about the conditions. |
| |
| * UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp: |
| (WebKit::RemoteScrollingCoordinatorProxy::applyScrollingTreeLayerPositionsAfterCommit): |
| (WebKit::RemoteScrollingCoordinatorProxy::applyScrollingTreeLayerPositions): Deleted. |
| * UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h: |
| |
| 2019-06-06 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [WPE][GTK] Clean up use of initiatingPageID in implementation of webkit_uri_scheme_request_get_web_view() |
| https://bugs.webkit.org/show_bug.cgi?id=198564 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Note that we have to use RefPtr rather than Ref here because the priv struct has to remain |
| default-constructible. |
| |
| * UIProcess/API/glib/WebKitURISchemeRequest.cpp: |
| (webkitURISchemeRequestCreate): |
| (webkit_uri_scheme_request_get_web_view): |
| |
| 2019-06-06 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK][WPE] Enable PSON |
| https://bugs.webkit.org/show_bug.cgi?id=194979 |
| |
| Reviewed by Žan Doberšek. |
| |
| * Shared/WebPreferencesDefaultValues.h: |
| |
| 2019-06-05 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| [Cocoa] REGRESSION(r244182): Inspector thinks CA commits can be nested |
| https://bugs.webkit.org/show_bug.cgi?id=198497 |
| |
| Reviewed by Simon Fraser. |
| |
| Call InspectorController::willComposite() from the CA preCommit handler |
| similar to the call to InspectorController::didComposite() in the CA |
| postCommit handler. Ensure these calls will be once for nested commits. |
| |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm: |
| (WebKit::RemoteLayerTreeDrawingArea::addCommitHandlers): |
| (WebKit::RemoteLayerTreeDrawingArea::flushLayers): |
| * WebProcess/WebPage/WebPage.h: |
| (WebKit::WebPage::firstFlushAfterCommit const): |
| (WebKit::WebPage::setFirstFlushAfterCommit): |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h: |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: |
| (WebKit::TiledCoreAnimationDrawingArea::addCommitHandlers): |
| (WebKit::TiledCoreAnimationDrawingArea::flushLayers): |
| |
| 2019-06-05 Alex Christensen <achristensen@webkit.org> |
| |
| Introduce new SPI for context menus on iOS |
| https://bugs.webkit.org/show_bug.cgi?id=198590 |
| |
| Reviewed by Tim Horton. |
| |
| Also introduce WKContextMenuElementInfo which is API. |
| This is part of <rdar://problem/51003503> |
| |
| * Shared/API/APIObject.h: |
| * Shared/API/Cocoa/WebKit.h: |
| * Shared/Cocoa/APIObject.mm: |
| (API::Object::newObject): |
| * Sources.txt: |
| * SourcesCocoa.txt: |
| * UIProcess/API/APIContextMenuElementInfo.cpp: Added. |
| (API::ContextMenuElementInfo::ContextMenuElementInfo): |
| * UIProcess/API/APIContextMenuElementInfo.h: Added. |
| * UIProcess/API/Cocoa/WKContextMenuElementInfo.h: Added. |
| * UIProcess/API/Cocoa/WKContextMenuElementInfo.mm: Added. |
| (-[WKContextMenuElementInfo linkURL]): |
| (-[WKContextMenuElementInfo _apiObject]): |
| (-[WKContextMenuElementInfo _activatedElementInfo]): |
| * UIProcess/API/Cocoa/WKContextMenuElementInfoInternal.h: Added. |
| * UIProcess/API/Cocoa/WKContextMenuElementInfoPrivate.h: Added. |
| * UIProcess/API/Cocoa/WKPreviewElementInfo.h: |
| * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: |
| * UIProcess/API/Cocoa/_WKActivatedElementInfo.h: |
| * UIProcess/API/Cocoa/_WKActivatedElementInfo.mm: |
| (-[_WKActivatedElementInfo _initWithInteractionInformationAtPosition:]): |
| (-[_WKActivatedElementInfo isAnimatedImage]): |
| * UIProcess/ios/WKActionSheetAssistant.h: |
| * UIProcess/ios/WKActionSheetAssistant.mm: |
| (-[WKActionSheetAssistant defaultActionsForLinkSheet:]): |
| (-[WKActionSheetAssistant defaultActionsForImageSheet:]): |
| * UIProcess/ios/WKContentView.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2019-06-05 Jer Noble <jer.noble@apple.com> |
| |
| -[WKWebView _suspendAllMediaPlayback] does not persist across navigation. |
| https://bugs.webkit.org/show_bug.cgi?id=198585 |
| |
| Reviewed by Chris Dumez. |
| |
| Add a new WebPageCreationParameters entry for mediaPlaybackIsSuspended, and pass |
| that value across during WebPage creation. |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::suspendAllMediaPlayback): |
| (WebKit::WebPageProxy::resumeAllMediaPlayback): |
| (WebKit::WebPageProxy::creationParameters): |
| * UIProcess/WebPageProxy.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage): |
| |
| 2019-06-05 Sihui Liu <sihui_liu@apple.com> |
| |
| TestWebKitAPI.WKWebView.LocalStorageProcessSuspends is flaky on release builds |
| https://bugs.webkit.org/show_bug.cgi?id=198582 |
| |
| Reviewed by Youenn Fablet. |
| |
| Initialize the state of StorageManager. |
| |
| * NetworkProcess/WebStorage/StorageManager.h: |
| |
| 2019-06-05 Alex Christensen <achristensen@webkit.org> |
| |
| Re-enable safe browsing in WKWebView |
| https://bugs.webkit.org/show_bug.cgi?id=196161 |
| <rdar://problem/49171413> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| This is mostly just reverting r241728. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/Cocoa/WKPreferences.h: |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences setSafeBrowsingEnabled:]): |
| (-[WKPreferences isSafeBrowsingEnabled]): |
| |
| 2019-06-05 Alex Christensen <achristensen@webkit.org> |
| |
| Progress towards resurrecting Mac CMake build |
| https://bugs.webkit.org/show_bug.cgi?id=197132 |
| |
| Reviewed by Don Olmstead. |
| |
| * PlatformMac.cmake: |
| |
| 2019-06-05 Youenn Fablet <youenn@apple.com> |
| |
| Remove logSiteIdentifier from UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame |
| https://bugs.webkit.org/show_bug.cgi?id=198575 |
| |
| Reviewed by Eric Carlson. |
| |
| * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: |
| (WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame): |
| |
| == Rolled over to ChangeLog-2019-06-05 == |