ChangeLog-2016-09-26 [plain text]
2016-09-26 Michael Catanzaro <mcatanzaro@igalia.com>
Fix -Wformat warnings in WebLoaderStrategy
https://bugs.webkit.org/show_bug.cgi?id=162553
Unreviewed
Two of the format arguments are swapped. Fix them.
* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::scheduleLoad):
2016-09-25 Chris Dumez <cdumez@apple.com>
Regression(r206356): Caused crashes for !NETWORK_SESSION code path
https://bugs.webkit.org/show_bug.cgi?id=162541
Reviewed by Alexey Proskuryakov.
After r206356, if Download is downloading a Blob instead of doing a
network load, then m_resourceHandle / m_downloadClient are used to do
the download. This broke some assumptions on Mac because the
NETWORK_SESSION code path assumed it was relying on m_download and the
!NETWORK_SESSION code path assumed it was using m_nsURLDownload /
m_delegate.
This patch refactors the code so that:
- The Download destructor now takes care of invalidating
m_resourceHandle and m_downloadClient before calling
platformInvalidate(). For the SOUP code path,
platformInvalidate() no longer needs to do anything
because SOUP uses m_resourceHandle / m_downloadClient
only. For the Mac !NETWORK_SESSION code path, we keep
invalidating m_nsURLDownload / m_delegate but we no
longer assume that those are initialized (given that
they are not when downloading a blob). Other
platforms do nothing in platformInvalidate() at the
moment.
- Download::cancel() now takes care of cancelling the
download if we're downloading a blob. Otherwise, we
call the platform specific cancelNetworkLoad(). This
is the same pattern that is used for start() /
startNetworkLoad().
* NetworkProcess/Downloads/BlobDownloadClient.cpp:
(WebKit::BlobDownloadClient::didCancel):
* NetworkProcess/Downloads/BlobDownloadClient.h:
* NetworkProcess/Downloads/Download.cpp:
(WebKit::Download::~Download):
(WebKit::Download::cancel):
* NetworkProcess/Downloads/Download.h:
* NetworkProcess/Downloads/cocoa/DownloadCocoa.mm:
(WebKit::Download::cancelNetworkLoad):
(WebKit::Download::cancel): Deleted.
* NetworkProcess/Downloads/ios/DownloadIOS.mm:
(WebKit::Download::cancelNetworkLoad):
(WebKit::Download::cancel): Deleted.
* NetworkProcess/Downloads/mac/DownloadMac.mm:
(WebKit::Download::cancelNetworkLoad):
(WebKit::Download::platformInvalidate):
(WebKit::Download::cancel): Deleted.
* NetworkProcess/Downloads/soup/DownloadSoup.cpp:
(WebKit::Download::cancelNetworkLoad):
(WebKit::Download::platformInvalidate):
(WebKit::Download::cancel): Deleted.
2016-09-24 Chris Dumez <cdumez@apple.com>
[WK2] Enable support for 'download' attribute on anchor elements
https://bugs.webkit.org/show_bug.cgi?id=162535
Reviewed by Darin Adler.
Enable support for 'download' attribute on anchor elements for WebKit2
now that:
- It works with our NETWORK_SESSION code path (Bug 162531)
- Supports Blob / Data URLs (Bug 156099)
- Requires user interaction / ignores synthetic clicks (Bug 156099)
* Shared/WebPreferencesDefinitions.h:
2016-09-24 Chris Dumez <cdumez@apple.com>
<a download> does not support Blob URLs
https://bugs.webkit.org/show_bug.cgi?id=156099
<rdar://problem/25535520>
Reviewed by Darin Adler.
Add support for downloading Blob URLs to WebKit2. This should work for
all WebKit2 port. This also works in combination with the download
attribute on anchor elements. Note that the download attribute is only
enabled at runtime in the context of the layout tests for now. I'll
enable the download attribute on WK2 once I have fixed Bug 162531.
* CMakeLists.txt:
* NetworkProcess/Downloads/BlobDownloadClient.cpp: Added.
(WebKit::BlobDownloadClient::BlobDownloadClient):
(WebKit::BlobDownloadClient::didReceiveResponse):
(WebKit::BlobDownloadClient::didReceiveBuffer):
(WebKit::BlobDownloadClient::didFinishLoading):
(WebKit::BlobDownloadClient::didFail):
* NetworkProcess/Downloads/BlobDownloadClient.h: Added.
* NetworkProcess/Downloads/Download.cpp:
(WebKit::Download::Download):
(WebKit::Download::start):
(WebKit::Download::didStart):
(WebKit::Download::didReceiveResponse):
(WebKit::Download::decideDestinationWithSuggestedFilename):
(WebKit::Download::~Download): Deleted.
(WebKit::Download::didReceiveData): Deleted.
(WebKit::Download::shouldDecodeSourceDataOfMIMEType): Deleted.
* NetworkProcess/Downloads/Download.h:
(WebKit::Download::Download):
(WebKit::Download::suggestedName):
(WebKit::Download::request):
* NetworkProcess/Downloads/DownloadManager.cpp:
(WebKit::DownloadManager::startDownload):
* NetworkProcess/Downloads/ios/DownloadIOS.mm:
(WebKit::Download::startNetworkLoad):
* NetworkProcess/Downloads/mac/DownloadMac.mm:
(WebKit::Download::startNetworkLoad):
* NetworkProcess/Downloads/soup/DownloadSoup.cpp:
(WebKit::Download::startNetworkLoad):
* UIProcess/Downloads/DownloadProxy.cpp:
(WebKit::DownloadProxy::decideDestinationWithSuggestedFilename):
* UIProcess/Downloads/DownloadProxy.h:
* UIProcess/Downloads/DownloadProxy.messages.in:
* WebKit2.xcodeproj/project.pbxproj:
2016-09-24 Chris Dumez <cdumez@apple.com>
[WK2] anchor.download attribute value is ignored by NETWORK_SESSION code path
https://bugs.webkit.org/show_bug.cgi?id=162531
Reviewed by Darin Adler.
Pipe the suggested filename through in the NETWORK_SESSION code path so
that it is used when deciding the destination path.
* NetworkProcess/Downloads/DownloadManager.cpp:
(WebKit::DownloadManager::startDownload):
* NetworkProcess/Downloads/PendingDownload.cpp:
(WebKit::PendingDownload::PendingDownload):
* NetworkProcess/Downloads/PendingDownload.h:
* NetworkProcess/NetworkDataTask.h:
* NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::setSuggestedFilename):
* NetworkProcess/NetworkLoad.h:
* NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTask::suggestedFilename):
(WebKit::NetworkDataTask::setSuggestedFilename):
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]):
2016-09-23 Wenson Hsieh <wenson_hsieh@apple.com>
Media controls playhead does not animate smoothly while playing
https://bugs.webkit.org/show_bug.cgi?id=162399
<rdar://problem/28115680>
Reviewed by Beth Dakin.
See WebCore ChangeLog for more details.
In the UI process, we update the WebPlaybackSessionManager's timing value when the rate or current time changes.
Each AVValueTiming is generated from the current time, system anchor time, and playback rate. The behavior of
the first two properties is unaffected. However, the rate used to update the timing value is the effective
playback rate, which is equal to the playback rate unless we are (1) not playing, (2) interacting with the media
controls in such a way that the media is essentially not playing, or (3) the current time precedes the playback
start time, accounting for playback direction. In these cases, our effective playback rate is 0, which means
that we do not animate the playhead.
* UIProcess/Cocoa/WebPlaybackSessionManagerProxy.h:
* UIProcess/Cocoa/WebPlaybackSessionManagerProxy.messages.in:
* UIProcess/Cocoa/WebPlaybackSessionManagerProxy.mm:
(WebKit::WebPlaybackSessionModelContext::beginScrubbing):
(WebKit::WebPlaybackSessionModelContext::endScrubbing):
(WebKit::WebPlaybackSessionModelContext::setPlaybackStartedTime):
(WebKit::WebPlaybackSessionModelContext::setCurrentTime):
(WebKit::WebPlaybackSessionManagerProxy::setPlaybackStartedTime):
* WebProcess/cocoa/WebPlaybackSessionManager.h:
* WebProcess/cocoa/WebPlaybackSessionManager.mm:
(WebKit::WebPlaybackSessionInterfaceContext::playbackStartedTimeChanged):
(WebKit::WebPlaybackSessionManager::playbackStartedTimeChanged):
2016-09-23 Caitlin Potter <caitp@igalia.com>
[JSC] Implement parsing of Async Functions
https://bugs.webkit.org/show_bug.cgi?id=161409
Reviewed by Yusuke Suzuki.
* Configurations/FeatureDefines.xcconfig:
2016-09-23 Jonathan Bedard <jbedard@apple.com>
Fix Mac CMake build after r206261
https://bugs.webkit.org/show_bug.cgi?id=162493
Reviewed by Alex Christensen.
* CMakeLists.txt: Exclude WebTextChecker from Mac CMake builds.
* PlatformEfl.cmake: Ditto.
* PlatformGTK.cmake: Ditto.
2016-09-23 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] BadDamage X error in /webkit2/WebKitWebView/preferred-size
https://bugs.webkit.org/show_bug.cgi?id=162489
Reviewed by Michael Catanzaro.
Do a XSync right after creating/destroying the XDamage used by the redirected window in X11.
* UIProcess/gtk/AcceleratedBackingStoreX11.cpp:
(WebKit::AcceleratedBackingStoreX11::~AcceleratedBackingStoreX11):
(WebKit::AcceleratedBackingStoreX11::update):
2016-09-23 Antoine Quint <graouts@apple.com>
Add a new runtime flag for work on modern media controls (off by default)
https://bugs.webkit.org/show_bug.cgi?id=162420
<rdar://problem/27989489>
Reviewed by Eric Carlson.
* Shared/WebPreferencesDefinitions.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
2016-09-23 Carlos Garcia Campos <cgarcia@igalia.com>
REGRESSION(r194387): Crash on github.com in IntlDateTimeFormat::resolvedOptions in C locale
https://bugs.webkit.org/show_bug.cgi?id=162139
Reviewed by Michael Catanzaro.
Handle the case of "C" locale passed by the user using "en-US" as default to match what
WTF::platformUserPreferredLanguages() does.
* UIProcess/API/gtk/WebKitWebContext.cpp:
(webkit_web_context_set_preferred_languages): Remove the call to languageDidChange() because
overrideUserPreferredLanguages() already calls it, so we were actually notifying the observers twice.
2016-09-23 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Improve performance when resizing a window with multiple web views in X11
https://bugs.webkit.org/show_bug.cgi?id=162413
Reviewed by Michael Catanzaro.
Resizing a window with a single way view performs good enough, but when adding more tabs, the performance
decreases a lot. This is because resize is a sync operation, and the UI process waits for the web process to
have a new update for the new size, while still draws the previous frame. This is needed for the visible web
view, to avoid flickering and artifacts while resizing, but for all other hidden web views, we don't really need
to block the UI process. This doesn't happen in Wayland, because in Wayland we never block the UI process while
waiting for web process update after a resize.
* UIProcess/AcceleratedDrawingAreaProxy.cpp:
(WebKit::AcceleratedDrawingAreaProxy::waitForAndDispatchDidUpdateBackingStoreState): Return early if the web
view is not visible.
* UIProcess/gtk/AcceleratedBackingStoreX11.cpp:
(WebKit::AcceleratedBackingStoreX11::update): Only schedule a redraw on a damage event when the view is visible.
* WebProcess/WebPage/gtk/AcceleratedSurfaceX11.cpp:
(WebKit::AcceleratedSurfaceX11::AcceleratedSurfaceX11): Do a XSync right after creating the new pixmap.
(WebKit::AcceleratedSurfaceX11::resize): Ditto.
2016-09-22 Daniel Bates <dabates@apple.com>
Remove more ENABLE(TEXT_AUTOSIZING) code
https://bugs.webkit.org/show_bug.cgi?id=162456
Reviewed by Simon Fraser.
* UIProcess/API/efl/ewk_settings.cpp:
(ewk_settings_text_autosizing_enabled_set):
(ewk_settings_text_autosizing_enabled_get):
* UIProcess/API/efl/tests/test_ewk2_settings.cpp:
(TEST_F):
2016-09-22 Jonathan Bedard <jbedard@apple.com>
Automatic Text Replacement Testing in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=161919
Reviewed by Ryosuke Niwa.
Implemented test hooks for text replacement for WebKit2.
Note that spell checking has not been implemented, so most tests which use text replacement still fail.
* UIProcess/API/C/WKTextChecker.cpp: Added #ifdefs to include file for iOS and Mac.
(WKTextCheckerSetTestingMode): Added.
* UIProcess/API/C/WKTextChecker.h: Added #ifdefs to include file for iOS and Mac.
* UIProcess/TextChecker.h: Added hooks to bypass writing to NSUserDefaults.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::toggleSmartInsertDelete): New message to toggle TextChecker flag.
(WebKit::WebPageProxy::toggleAutomaticQuoteSubstitution): Ditto.
(WebKit::WebPageProxy::toggleAutomaticLinkDetection): Ditto.
(WebKit::WebPageProxy::toggleAutomaticDashSubstitution): Ditto.
(WebKit::WebPageProxy::toggleAutomaticTextReplacement): Ditto.
* UIProcess/WebPageProxy.h: Added messages to toggle TextChecker flags.
* UIProcess/WebPageProxy.messages.in: Ditto.
* UIProcess/efl/TextCheckerEfl.cpp: Implemented new TextChecker hooks for non-Cocoa platforms.
* UIProcess/gtk/TextCheckerGtk.cpp: Ditto.
(WebKit::TextChecker::mutableState): Ditto.
* UIProcess/ios/TextCheckerIOS.mm: Implemented new TextChecker hooks.
(WebKit::TextChecker::mutableState): Allow modification of text checker without writing to NSUserDefaults.
(WebKit::TextChecker::state): Call mutableState.
(WebKit::TextChecker::accessSmartInsertDeleteEnabled): Dummy function.
* UIProcess/mac/TextCheckerMac.mm:
(WebKit::refresh): Reload TextChecker configuration from NSUserDefaults.
(WebKit::TextChecker::mutableState): Allow modification of text checker without writing to NSUserDefaults.
(WebKit::TextChecker::state): Call mutableState().
(WebKit::TextChecker::accessSmartInsertDeleteEnabled): Allow toggling of smartInsertDeleteEnabled without writing to NSUserDefaults.
(WebKit::initializeState): Deleted.
* WebProcess/InjectedBundle/API/c/WKBundle.cpp:
(WKBundleSetAutomaticLinkDetectionEnabled): Deleted.
* WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: Removed WKBundleSetAutomaticLinkDetectionEnabled.
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::setAutomaticLinkDetectionEnabled): Deleted.
* WebKit2.xcodeproj/project.pbxproj: Added WKTextChecker to Mac and iOS.
* WebProcess/InjectedBundle/InjectedBundle.h: Remove setAutomaticLinkDetectionEnabled.
* WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
(WebKit::WebEditorClient::toggleSmartInsertDelete): Send message to UI process to toggle TextChecker.
(WebKit::WebEditorClient::toggleAutomaticQuoteSubstitution): Ditto.
(WebKit::WebEditorClient::toggleAutomaticLinkDetection): Ditto.
(WebKit::WebEditorClient::toggleAutomaticDashSubstitution): Ditto.
(WebKit::WebEditorClient::toggleAutomaticTextReplacement): Ditto.
2016-09-22 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Rename DataObjectGtk as SelectionData
https://bugs.webkit.org/show_bug.cgi?id=162380
Reviewed by Žan Doberšek.
* PlatformGTK.cmake:
* Shared/gtk/ArgumentCodersGtk.cpp:
(IPC::ArgumentCoder<SelectionData>::encode):
(IPC::ArgumentCoder<SelectionData>::decode):
* Shared/gtk/ArgumentCodersGtk.h:
* Shared/gtk/WebSelectionData.cpp: Renamed from Source/WebKit2/Shared/gtk/PasteboardContent.cpp.
(WebKit::WebSelectionData::WebSelectionData):
(WebKit::WebSelectionData::encode):
(WebKit::WebSelectionData::decode):
* Shared/gtk/WebSelectionData.h: Renamed from Source/WebKit2/Shared/gtk/PasteboardContent.h.
* UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::startDrag):
* UIProcess/API/gtk/PageClientImpl.h:
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::performDragControllerAction):
(WebKit::WebPageProxy::startDrag):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/WebPasteboardProxy.h:
* UIProcess/WebPasteboardProxy.messages.in:
* UIProcess/gtk/DragAndDropHandler.cpp:
(WebKit::DragAndDropHandler::DroppingContext::DroppingContext):
(WebKit::DragAndDropHandler::startDrag):
(WebKit::DragAndDropHandler::fillDragData):
(WebKit::DragAndDropHandler::finishDrag):
(WebKit::DragAndDropHandler::dropDataSelection):
(WebKit::DragAndDropHandler::dragEntered):
(WebKit::DragAndDropHandler::dragDataSelection):
(WebKit::DragAndDropHandler::dragMotion):
(WebKit::DragAndDropHandler::dragLeave):
(WebKit::DragAndDropHandler::drop):
* UIProcess/gtk/DragAndDropHandler.h:
* UIProcess/gtk/WebPasteboardProxyGtk.cpp:
(WebKit::WebPasteboardProxy::writeToClipboard):
(WebKit::WebPasteboardProxy::readFromClipboard):
(WebKit::WebPasteboardProxy::setPrimarySelectionOwner): Deleted.
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::writeToClipboard):
(WebKit::WebPlatformStrategies::readFromClipboard):
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:
* WebProcess/WebCoreSupport/gtk/WebDragClientGtk.cpp:
(WebKit::WebDragClient::startDrag):
* WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::performDragControllerAction):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
2016-09-21 Dan Bernstein <mitz@apple.com>
[macOS] Upon layout, _webView:renderingProgressDidChange: fires before the intrinsic content size is updated
https://bugs.webkit.org/show_bug.cgi?id=162359
<rdar://problem/27776454>
Reviewed by Tim Horton.
Test: added to TestWebKitAPI/Tests/WebKit2Cocoa/AutoLayoutIntegration.mm
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h: Fixed a bug where
m_pendingNewlyReachedLayoutMilestones was never initialized.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h: Added
m_pendingNewlyReachedLayoutMilestones member variable to this derived class as well.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::flushLayers): If we have pending milestones, notify
the WebPageProxy now, after any content size changes have been sent.
(WebKit::TiledCoreAnimationDrawingArea::dispatchDidReachLayoutMilestone): New override that
accumulates the milestones into m_pendingNewlyReachedLayoutMilestones and returns true,
so that the caller won’t notify the WebPageProxy immediately.
2016-09-21 Anders Carlsson <andersca@apple.com>
support openPaymentSetup API on ApplePaySession object
https://bugs.webkit.org/show_bug.cgi?id=162357
rdar://problem/26776939
Reviewed by Tim Horton.
* UIProcess/ApplePay/WebPaymentCoordinatorProxy.cpp:
(WebKit::WebPaymentCoordinatorProxy::openPaymentSetup):
Call through to platformOpenPaymentSetup, and in the completion handler, send back a OpenPaymentSetupReply message.
* UIProcess/ApplePay/WebPaymentCoordinatorProxy.h:
Add new members.
* UIProcess/ApplePay/WebPaymentCoordinatorProxy.messages.in:
Add OpenPaymentSetup message.
* UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
(WebKit::WebPaymentCoordinatorProxy::platformOpenPaymentSetup):
Allocate a PKPassLibrary and call openPaymentSetupForMerchantIdentifier:domain:completion: on it.
* WebProcess/ApplePay/WebPaymentCoordinator.cpp:
(WebKit::generateOpenPaymentSetupReplyID):
New helper function to generate a reply ID.
(WebKit::WebPaymentCoordinator::openPaymentSetup):
Add the completion handler to m_pendingOpenPaymentSetupCallbacks and send a OpenPaymentSetup message to the UI process.
(WebKit::WebPaymentCoordinator::openPaymentSetupReply):
Grab the callback given its ID and invoke it.
* WebProcess/ApplePay/WebPaymentCoordinator.h:
Add new members.
* WebProcess/ApplePay/WebPaymentCoordinator.messages.in:
Add OpenPaymentSetupReply message.
2016-09-21 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
Unreviewed, build fix.
* UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:
(WebKit::AcceleratedBackingStoreWayland::paint): fix usage of deviceScaleFactor variable which was
removed.
2016-09-20 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Clean up DataObjectGtk handling
https://bugs.webkit.org/show_bug.cgi?id=162267
Reviewed by Michael Catanzaro.
In some cases the ownership of DataObjectGtk instances is not clear enough, and we have hacks to avoid memory
leaks because of that.
* Shared/gtk/ArgumentCodersGtk.cpp:
(IPC::encodeImage): Use Image instead of GdkPixbuf.
(IPC::decodeImage): Ditto.
(IPC::ArgumentCoder<DataObjectGtk>::encode):
(IPC::ArgumentCoder<DataObjectGtk>::decode):
(IPC::encode): Deleted.
(IPC::decode): Deleted.
(IPC::ArgumentCoder<DragData>::encode): Deleted.
(IPC::ArgumentCoder<DragData>::decode): Deleted.
* Shared/gtk/ArgumentCodersGtk.h:
* Shared/gtk/PasteboardContent.cpp:
(WebKit::PasteboardContent::PasteboardContent): Add empty constructor that creates a new DataObjectGtk, a
constructor that receives a const reference and another one that takes the ownership of the given DataObjectGtk.
(WebKit::PasteboardContent::encode):
(WebKit::PasteboardContent::decode):
* Shared/gtk/PasteboardContent.h: Use Ref instead of RefPtr for the DataObjectGtk member.
* UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::startDrag): Transfer the DataObjectGtk to the DragAndDropHandler, instead of using DragData.
* UIProcess/API/gtk/PageClientImpl.h:
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::performDragControllerAction): Instead of sending a DragData object to the web process,
send the DataObjectGtk and DragData members needed as parameters.
(WebKit::WebPageProxy::startDrag): Transfer the received DataObjectGtk to page client, instead of using
DragData. Also notify the web process that drag started.
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in: Update StartDrag message parameters.
* UIProcess/gtk/DragAndDropHandler.cpp:
(WebKit::DragAndDropHandler::DragAndDropHandler): Remove unneeded initialization.
(WebKit::DragAndDropHandler::startDrag): Take ownership of the given DataObjectGtk.
* UIProcess/gtk/DragAndDropHandler.h:
* UIProcess/gtk/WebPasteboardProxyGtk.cpp:
(WebKit::WebPasteboardProxy::writeToClipboard):
(WebKit::WebPasteboardProxy::readFromClipboard):
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::writeToClipboard):
(WebKit::WebPlatformStrategies::readFromClipboard):
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:
* WebProcess/WebCoreSupport/gtk/WebDragClientGtk.cpp:
(WebKit::convertCairoSurfaceToShareableBitmap):
(WebKit::WebDragClient::startDrag): Do not create a DragData and pass the DataObjectGtk directly to the
message. Also notify the WebPage that drag is about to start.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::performDragControllerAction): Remove explicit DataObjectGtk derefs and simply create a
DragData using the DataObjectGtk pointer as platform data.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in: Update PerformDragControllerAction message parameters.
2016-09-20 Hunseop Jeong <hs85.jeong@samsung.com>
[EFL] ewk_context_menu_item_select test have been failed
https://bugs.webkit.org/show_bug.cgi?id=162143
Reviewed by Gyuyoung Kim.
ewk_context_menu_item_select has been waited until test page loading is finished, but it is
unnecessary to wait the loading is finished. It would be good to pass if *testFinished*
flag is true.
* UIProcess/API/efl/tests/test_ewk2_context_menu.cpp:
(EWK2ContextMenuTest::checkBasicContextMenuItem):
(EWK2ContextMenuTest::testContextMenu):
(TEST_F):
2016-09-20 Keith Rollin <krollin@apple.com>
Add new logging for network resource loading
https://bugs.webkit.org/show_bug.cgi?id=162237
Reviewed by Antti Koivisto.
Add new logging along the non-main path for resource loading. This
logging should allow us to differentiate between lack-of-logging due
execution along a path that doesn't have logging statements and
lack-of-logging due to a hung process.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::start):
(WebKit::NetworkResourceLoader::startNetworkLoad):
(WebKit::NetworkResourceLoader::setDefersLoading):
(WebKit::NetworkResourceLoader::abort):
(WebKit::NetworkResourceLoader::didReceiveBuffer):
* NetworkProcess/NetworkResourceLoader.h:
* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::loadResource):
(WebKit::WebLoaderStrategy::scheduleLoad):
2016-09-20 Anders Carlsson <andersca@apple.com>
Can't present a payment sheet if a sheet is already active in another window
https://bugs.webkit.org/show_bug.cgi?id=162314
rdar://problem/27643511
Reviewed by Tim Horton.
Instead of keeping track of whether a sheet is active or not, keep track of its underlying payment coordinator proxy,
so we can hide it and send a cancel event to WebCore if another sheet is being presented.
* UIProcess/ApplePay/WebPaymentCoordinatorProxy.cpp:
(WebKit::WebPaymentCoordinatorProxy::~WebPaymentCoordinatorProxy):
(WebKit::WebPaymentCoordinatorProxy::showPaymentUI):
(WebKit::WebPaymentCoordinatorProxy::didReachFinalState):
2016-09-20 Keith Rollin <krollin@apple.com>
Adjust current networking logging
https://bugs.webkit.org/show_bug.cgi?id=162235
Reviewed by Antti Koivisto.
Update the "always on" network logging in order to better track the
loading of a particular resource and to better bind together the
resources downloaded for a particular page and frame. Do this by
consistently logging pageID, frameID, and resourceID.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didFinishLoading):
(WebKit::NetworkResourceLoader::didFailLoading):
(WebKit::NetworkResourceLoader::continueWillSendRequest):
* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::scheduleLoad):
(WebKit::WebLoaderStrategy::startLocalLoad):
* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::create):
(WebKit::WebResourceLoader::WebResourceLoader):
(WebKit::WebResourceLoader::willSendRequest):
(WebKit::WebResourceLoader::didReceiveResponse):
(WebKit::WebResourceLoader::didReceiveData):
(WebKit::WebResourceLoader::didFinishResourceLoad):
(WebKit::WebResourceLoader::didFailResourceLoad):
(WebKit::WebResourceLoader::didReceiveResource):
* WebProcess/Network/WebResourceLoader.h:
2016-09-19 Wenson Hsieh <wenson_hsieh@apple.com>
Add a unit test covering <https://trac.webkit.org/changeset/205983>
https://bugs.webkit.org/show_bug.cgi?id=162112
Reviewed by Beth Dakin.
Adds some a test support method as SPI on WKWebView to determine whether to request candidates. See
Tools/ChangeLog for more details.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _shouldRequestCandidates]):
(-[WKWebView _forceRequestCandidates]): Deleted.
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
2016-09-19 Anders Carlsson <andersca@apple.com>
Suppress JavaScript prompts early on in certain cases
https://bugs.webkit.org/show_bug.cgi?id=162243
rdar://problem/27661602
Reviewed by Geoffrey Garen.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::shouldSuppressJavaScriptDialogs):
Add helper function.
(WebKit::WebChromeClient::runJavaScriptAlert):
(WebKit::WebChromeClient::runJavaScriptConfirm):
(WebKit::WebChromeClient::runJavaScriptPrompt):
Call helper function and return early if we should supress dialogs.
2016-09-19 Keith Rollin <krollin@apple.com>
Reduce logging from WebResourceLoader::didReceiveData
https://bugs.webkit.org/show_bug.cgi?id=162233
Reviewed by Antti Koivisto.
Only log once even if called multiple times for a single resource.
* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::didReceiveData):
* WebProcess/Network/WebResourceLoader.h:
2016-09-19 Daniel Bates <dabates@apple.com>
Remove ENABLE(TEXT_AUTOSIZING) automatic text size adjustment code
https://bugs.webkit.org/show_bug.cgi?id=162167
Reviewed by Simon Fraser.
* Configurations/FeatureDefines.xcconfig:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
2016-09-19 Alex Christensen <achristensen@webkit.org>
Only override URLParser::enabled if NSUserDefaults object exists
https://bugs.webkit.org/show_bug.cgi?id=162131
Reviewed by Sam Weinig.
* Shared/Cocoa/WebKit2InitializeCocoa.mm:
(WebKit::platformInitializeWebKit2):
* Shared/WebKit2Initialize.cpp:
When I enable URLParser by default, I will want the default to only be overwritten if there is a
NSUserDefaults key for URLParserEnabled. Right now it is setting URLParser::enabled to false always,
which isn't a problem because the default is also false. When the default is true, that will overwrite the default.
2016-09-19 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Bring the inspected page's window forward when activating element search
https://bugs.webkit.org/show_bug.cgi?id=162114
<rdar://problem/28349357>
Reviewed by Brian Burg.
* UIProcess/WebInspectorProxy.h:
* UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::elementSelectionChanged):
When element search is activated allow the platform to bring
the window containing the inspected page to the foreground.
(WebKit::WebInspectorProxy::platformBringInspectedPageToFront):
* UIProcess/efl/WebInspectorProxyEfl.cpp:
(WebKit::WebInspectorProxy::platformBringInspectedPageToFront):
* UIProcess/gtk/WebInspectorProxyGtk.cpp:
(WebKit::WebInspectorProxy::platformBringInspectedPageToFront):
Default empty implementation for ports.
* UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::platformBringInspectedPageToFront):
Bring the window containing the inspected page to the foreground.
2016-09-18 Michael Catanzaro <mcatanzaro@igalia.com>
[GTK] Empty referer header after WebKit session state restoration trips Bad Behavior Wordpress plugin
https://bugs.webkit.org/show_bug.cgi?id=159606
Reviewed by Carlos Garcia Campos.
Leave the referrer member of FrameState unset when restoring from session state, unless
there is actually a nonempty referrer saved in the state. If we set it to an empty string,
then an empty referrer gets sent to the server, which some servers do not accept. It
triggers the Bad Behavior plugin on my WordPress blog, for instance. It also breaks vox.com.
* UIProcess/API/gtk/WebKitWebViewSessionState.cpp:
(decodeFrameState):
2016-09-18 Chelsea Pugh <cpugh@apple.com>
[iOS] Remove unused methods from _WKInputDelegate
https://bugs.webkit.org/show_bug.cgi?id=162098
Reviewed by Anders Carlsson.
* UIProcess/API/Cocoa/_WKInputDelegate.h:
2016-09-18 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
[GTK] Stop using glReadPixels() to blit AC surfaces in the UIProcess under Wayland
https://bugs.webkit.org/show_bug.cgi?id=161530
Reviewed by Carlos Garcia Campos.
Use gdk_cairo_draw_from_gl when all necessary conditions exist.
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::create): take TextureMapper::PaintFlags as optional argument.
(WebKit::ThreadedCompositor::ThreadedCompositor): ditto.
(WebKit::ThreadedCompositor::renderLayerTree): relay paint flags to TextureMapper::beginPaint.
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
* UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:
(WebKit::AcceleratedBackingStoreWayland::paint): use the faster gdk_cairo_draw_from_gl when a new
enough GTK+ is in use.
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:
(WebKit::ThreadedCoordinatedLayerTreeHost::ThreadedCoordinatedLayerTreeHost): create compositor
with PaintingMirrored flag if we have recent GTK+ and are running under Wayland.
* WebProcess/WebPage/gtk/AcceleratedSurfaceX11.h: implement shouldPaintMirrored by always
returning false.
* WebProcess/WebPage/gtk/AcceleratedSurfaceWayland.h: implement shouldPaintMirrored by always
returning true.
* WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
(WebKit::LayerTreeHostGtk::compositeLayersToContext): pass PaintingMirror flag to TextureMapper
when under a recent enough GTK+ and Wayland.
2016-09-17 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Move the rendering of auth dialog shadow to the auth dialog widget
https://bugs.webkit.org/show_bug.cgi?id=162061
Reviewed by Michael Catanzaro.
Instead of rendering the shadow in the web view, we can let the auth dialog do it. This fixes the rendering of
the shadow in Wayland when using gdk_cairo_draw_from_gl().
* UIProcess/API/gtk/WebKitAuthenticationDialog.cpp:
(webkitAuthenticationDialogDraw): Draw the shadow before rendering the child.
(webkitAuthenticationDialogSizeAllocate): Center the child on the allocated space.
(webkit_authentication_dialog_class_init): Add size_allocate implementation.
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseDraw): Do not draw the shadow when auth dialog is present.
(webkitWebViewBaseSizeAllocate): Give the whole web view allocation to the auth dialog.
2016-09-17 Carlos Garcia Campos <cgarcia@igalia.com>
[ThreadedCompositor] Scrolling artifacts on accelerated subframes
https://bugs.webkit.org/show_bug.cgi?id=149060
Reviewed by Michael Catanzaro.
The problem is that we are scrolling the main frame even when scrolling is not delegated.
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:
(WebKit::ThreadedCoordinatedLayerTreeHost::scrollNonCompositedContents): Return early if main frame view doesn't
delegate scrolling.
2016-09-16 Simon Fraser <simon.fraser@apple.com>
WKWebViewConfiguration's _incrementalRenderingSuppressionTimeout should be an NSTimeInterval
https://bugs.webkit.org/show_bug.cgi?id=162092
Reviewed by Anders Carlsson.
The _incrementalRenderingSuppressionTimeout property should be a NSTimeInterval, not a CGFloat.
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration _incrementalRenderingSuppressionTimeout]):
(-[WKWebViewConfiguration _setIncrementalRenderingSuppressionTimeout:]):
* UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
2016-09-15 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
[GTK] Surface created for glReadPixels path on Wayland is bigger than needed
https://bugs.webkit.org/show_bug.cgi?id=162025
Reviewed by Carlos Garcia Campos.
* UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:
(WebKit::AcceleratedBackingStoreWayland::paint): the texture created by the Wayland
compositor is already scaled, so scaling its size when creating the surface causes it
to end up bigger than necessary.
2016-09-16 David Kilzer <ddkilzer@apple.com>
ASSERT accidentally commented out in r204916
<https://webkit.org/b/162077>
Reviewed by Anders Carlsson.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::terminateProcess): Comment in the ASSERT
back in.
2016-09-16 Wenson Hsieh <wenson_hsieh@apple.com>
Inserting a space after inserting an accepted candidate scrolls the document and causes a flicker
https://bugs.webkit.org/show_bug.cgi?id=162009
<rdar://problem/28086237>
Reviewed by Tim Horton.
After inserting a text candidate, if the candidate ended with a soft space, the next space we insert should just
replace the soft space. This currently works because we leave the text insertion out of the list of
KeypressCommands sent to the web process and instead replace the soft space via WebPage::InsertTextAsync.
However, this means when the web process handles this keydown event, the current editor will not handle it,
since the list of key commands is empty despite the text and unmodified text being non-empty.
To fix this, when sending keydown or keyup events where we replace a soft space, we set the key event's text to
an empty string instead of a space. This allows us to return early in EventHandler::keyEvent and avoid the
codepath that tries to insert text into the current editor and (in the case of inserting a ' ') scrolls the
document if necessary. Since we've already handled text insertion via WebPage::InsertTextAsync, there is no need
to also dispatch the keypress to the editor.
Additionally, this patch addresses flickering in the candidates UI due to the fact that we're asynchronously
replacing the last soft space. During this operation, we select the range of the soft space and then insert the
new text. This causes a momentary range selection which the web process notifies the UI process about, prompting
us to hide the candidates list. To address this, we suppress the EditorStateChanged message fired from the web
process to the UI process while we're selecting the original range to replace.
This patch adds 3 new WebKit API tests.
* Shared/NativeWebKeyboardEvent.h:
* Shared/mac/NativeWebKeyboardEventMac.mm:
(WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent):
* Shared/mac/WebEventFactory.h:
* Shared/mac/WebEventFactory.mm:
(WebKit::textFromEvent):
(WebKit::unmodifiedTextFromEvent):
(WebKit::WebEventFactory::createWebKeyboardEvent):
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _handleAcceptedCandidate:]):
(-[WKWebView _didHandleAcceptedCandidate]):
(-[WKWebView _didUpdateCandidateListVisibility:]):
(-[WKWebView _forceRequestCandidates]):
(-[WKWebView _handleControlledElementIDResponse:]): Deleted.
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/API/mac/WKView.mm:
(-[WKView _didHandleAcceptedCandidate]):
(-[WKView _didUpdateCandidateListVisibility:]):
* UIProcess/Cocoa/WebViewImpl.h:
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::forceRequestCandidatesForTesting):
(WebKit::WebViewImpl::becomeFirstResponder):
(WebKit::WebViewImpl::didHandleAcceptedCandidate):
(WebKit::WebViewImpl::insertText):
(WebKit::WebViewImpl::performKeyEquivalent):
(WebKit::WebViewImpl::keyUp):
(WebKit::WebViewImpl::keyDown):
(WebKit::WebViewImpl::flagsChanged):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::insertTextAsync):
* UIProcess/WebPageProxy.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::insertTextAsync):
(WebKit::WebPage::didChangeSelection):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
2016-09-16 Anders Carlsson <andersca@apple.com>
Add support for enum class parameters in the message generator
https://bugs.webkit.org/show_bug.cgi?id=162036
Reviewed by Brady Eidson.
Also, convert the WebPage::SetLayerHostingMode to take an actual enum class.
* Scripts/webkit/messages.py:
(function_parameter_type):
Change this to take the parameter kind as well, and use the raw type for enums.
(arguments_type):
(message_to_struct_declaration):
Pass the kind to function_parameter_type.
(forward_declaration):
(forward_declarations_for_namespace):
Forward declare enums with "enum class".
(headers_for_type):
Add WebKit::LayerHostingMode as a special case.
(generate_message_handler):
Pass the kind to function_parameter_type.
* Scripts/webkit/parser.py:
(parse_parameters_string):
Parse 'enum' as well.
* Shared/LayerTreeContext.h:
Add enum traits.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::viewDidEnterWindow):
(WebKit::WebPageProxy::layerHostingModeDidChange):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::reinitializeWebPage):
(WebKit::WebPage::setLayerHostingMode):
* WebProcess/WebPage/WebPage.h:
Change unsigned to LayerHostingMode.
* WebProcess/WebPage/WebPage.messages.in:
Change unsigned to LayerHostingMode.
2016-09-16 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r206000.
https://bugs.webkit.org/show_bug.cgi?id=162062
inadvertent GCC requirement bump (Requested by mcatanzaro on
#webkit).
Reverted changeset:
"Add support for enum class parameters in the message
generator"
https://bugs.webkit.org/show_bug.cgi?id=162036
http://trac.webkit.org/changeset/206000
2016-09-15 Brady Eidson <beidson@apple.com>
WKWebView.hasOnlySecureContent always returns "YES" after going back to a CachedPage (even if it has http resources).
<rdar://problem/27681261> and https://bugs.webkit.org/show_bug.cgi?id=162043
Reviewed by Brent Fulgham.
* Scripts/webkit/messages.py:
(headers_for_type): Add a custom header, and alphabetize existing ones.
* Shared/WebCoreArgumentCoders.h: Add EnumTraits for HasInsecureContent.
* UIProcess/PageLoadState.h:
(WebKit::PageLoadState::committedHasInsecureContent):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::hasInsecureContent):
(WebKit::WebPageProxy::didCommitLoadForFrame): If the WebProcess included an existing "HasInsecureContent" value, use it.
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
(WebKit::WebFrameLoaderClient::savePlatformDataToCachedFrame): Save the "HasInsecureContent" value to the CachedFrame in
case we restore it in the future.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
2016-09-15 Anders Carlsson <andersca@apple.com>
Actually assign the decoded enum value to the output value
https://bugs.webkit.org/show_bug.cgi?id=162042
Reviewed by Brady Eidson.
* Platform/IPC/Decoder.h:
2016-09-15 Anders Carlsson <andersca@apple.com>
Add support for enum class parameters in the message generator
https://bugs.webkit.org/show_bug.cgi?id=162036
Reviewed by Brady Eidson.
Also, convert the WebPage::SetLayerHostingMode to take an actual enum class.
* Scripts/webkit/messages.py:
(function_parameter_type):
Change this to take the parameter kind as well, and use the raw type for enums.
(arguments_type):
(message_to_struct_declaration):
Pass the kind to function_parameter_type.
(forward_declaration):
(forward_declarations_for_namespace):
Forward declare enums with "enum class".
(headers_for_type):
Add WebKit::LayerHostingMode as a special case.
(generate_message_handler):
Pass the kind to function_parameter_type.
* Scripts/webkit/parser.py:
(parse_parameters_string):
Parse 'enum' as well.
* Shared/LayerTreeContext.h:
Add enum traits.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::viewDidEnterWindow):
(WebKit::WebPageProxy::layerHostingModeDidChange):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::reinitializeWebPage):
(WebKit::WebPage::setLayerHostingMode):
* WebProcess/WebPage/WebPage.h:
Change unsigned to LayerHostingMode.
* WebProcess/WebPage/WebPage.messages.in:
Change unsigned to LayerHostingMode.
2016-09-14 Beth Dakin <bdakin@apple.com>
dictionaryPopupInfoForRange() can change selection temporarily; updates should not
be sent to the UIProcess.
https://bugs.webkit.org/show_bug.cgi?id=162008
-and corresponding-
rdar://problem/28312297
Reviewed by Tim Horton.
This patch prevents the selection changes that occur while gathering
dictionaryPopupInfo from being propagated to the UIProcess.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didChangeSelection):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::dictionaryPopupInfoForRange):
2016-09-14 Wenson Hsieh <wenson_hsieh@apple.com>
Media controls behave strangely when changing media sources
https://bugs.webkit.org/show_bug.cgi?id=161914
<rdar://problem/28227805>
Reviewed by Tim Horton.
Allows a web page to have an active video for a media control manager even if no audio or video is currently
being produced. This is because the media element may be in a state where it is changing its source and does not
currently have a video or audio track.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::hasActiveVideoForControlsManager):
2016-09-14 Beth Dakin <bdakin@apple.com>
Add needsPlainTextQuirk and send it to the UIProcess
https://bugs.webkit.org/show_bug.cgi?id=161996
-and corresponding-
rdar://problem/26013388
Rubber-stamped by Simon Fraser.
Quick clean-up.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::needsPlainTextQuirk):
2016-09-14 Beth Dakin <bdakin@apple.com>
Add needsPlainTextQuirk and send it to the UIProcess
https://bugs.webkit.org/show_bug.cgi?id=161996
-and corresponding-
rdar://problem/26013388
Reviewed by Anders Carlsson.
WebPageProxy should keep track of m_needsPlainTextQuirk.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setNeedsPlainTextQuirk):
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::needsPlainTextQuirk):
(WebKit::WebPageProxy::needsHiddenContentEditableQuirk): Deleted.
* UIProcess/WebPageProxy.messages.in:
If m_needsPlainTextQuirk is true, set it back to false on page transition.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didStartPageTransition):
The sites that need this quirk.
(WebKit::needsPlainTextQuirk):
(WebKit::WebPage::didChangeSelection):
* WebProcess/WebPage/WebPage.h:
2016-09-14 Eric Carlson <eric.carlson@apple.com>
[MediaStream] Minor cleanup
https://bugs.webkit.org/show_bug.cgi?id=161976
Reviewed by Youenn Fablet and Dean Jackson.
* UIProcess/UserMediaPermissionRequestProxy.cpp:
2016-09-14 Beth Dakin <bdakin@apple.com>
Add needsHiddenContentEditableQuirk and send it to the UIProcess
https://bugs.webkit.org/show_bug.cgi?id=161984
-and corresponding-
rdar://problem/26013388
Reviewed by Anders Carlsson.
Keep track of m_needsHiddenContentEditableQuirk in WebPageProxy.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setNeedsHiddenContentEditableQuirk):
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::needsHiddenContentEditableQuirk):
(WebKit::WebPageProxy::hasHadSelectionChangesFromUserInteraction): Deleted.
* UIProcess/WebPageProxy.messages.in:
If m_needsHiddenContentEditableQuirk is true, set it back to false on page
transition.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didStartPageTransition):
Google Docs and iCloud Pages are the sites that need this quirk.
(WebKit::needsHiddenContentEditableQuirk):
(WebKit::WebPage::didChangeSelection):
* WebProcess/WebPage/WebPage.h:
2016-09-14 Megan Gardner <megan_gardner@apple.com>
Long tap menu on an image link no longer includes "Save Image" button
https://bugs.webkit.org/show_bug.cgi?id=161761
<rdar://27202717>
Reviewed by Beth Dakin.
* UIProcess/ios/WKActionSheetAssistant.mm:
(-[WKActionSheetAssistant defaultActionsForImageSheet:]):
Added share to image sheet as to not regress current functionality
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getPositionInformation):
Gather information for images as well as links, and they can be both
2016-09-14 Carlos Garnacho <carlosg@gnome.org>
[GTK][Wayland] Implement clipboard support
https://bugs.webkit.org/show_bug.cgi?id=146574
Reviewed by Carlos Garcia Campos.
Add the necessary plumbing for the GTK+ backend to use the
PlatformPasteboard in WebCore. All selection data is transmitted
at once through the serialization of PasteboardContentGtk/DataObjectGtk.
* PlatformGTK.cmake: Add PasteboardContentGtk.cpp and
WebPasteboardProxyGtk.cpp
* Shared/gtk/ArgumentCodersGtk.cpp:
(IPC::encode):
(IPC::decode): Renamed from encodeDataObject/decodeDataObject
and made public.
(IPC::ArgumentCoder<DragData>::encode):
(IPC::ArgumentCoder<DragData>::decode): Update DataObjectGtk
encode/decode callers. Encode the extra canSmartReplace field.
* Shared/gtk/ArgumentCodersGtk.h: Expose encode/decode methods for
DataObjectGtk.
* Shared/gtk/PasteboardContent.cpp: Added. Wraps a DataObjectGtk
so it can be serialized on WebProcess/UIProcess messaging.
(WebKit::PasteboardContent::PasteboardContent):
(WebKit::PasteboardContent::encode):
(WebKit::PasteboardContent::decode): Methods to encode/decode a
PasteboardContent.
* Shared/gtk/PasteboardContent.h: Added.
* UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::collapseSelection): Added plumbing to allow
collapsing the global selection from the UI process side.
* UIProcess/WebFrameProxy.h:
* UIProcess/WebPasteboardProxy.h:
* UIProcess/WebPasteboardProxy.messages.in: Added plumbing for the
GTK+ pasteboard proxy functions.
* UIProcess/gtk/WebPageProxyGtk.cpp:
(WebKit::WebPageProxy::editorStateChanged):
* UIProcess/gtk/WebPasteboardProxyGtk.cpp: Added.
(WebKit::WebPasteboardProxy::writeToClipboard):
(WebKit::WebPasteboardProxy::readFromClipboard): Implemented functions
hooking into the PlatformPasteboard. Per-selection (ie.
primary/clipboard) PlatformPasteboards are kept at this level, so those
are independently set and dealt with.
(WebKit::WebPasteboardProxy::setPrimarySelectionOwner):
(WebKit::WebPasteboardProxy::didDestroyFrame): Implemented functions
to manage the frame currently being currently interacted, so we can
signal back when the global selection has been replaced.
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::writeToClipboard):
(WebKit::WebPlatformStrategies::readFromClipboard): Added methods to
send the WebProcess->UIProcess messages.
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:
* WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:
(WebKit::WebEditorClient::updateGlobalSelection): Remove GClosure to
get notifications about changes in global selection ownership. This
is done through a WebPage message now, as the UI process manages the
clipboard.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/gtk/WebPageGtk.cpp:
(WebKit::WebPage::collapseSelectionInFrame): Added methods to send
the UIProcess->WebProcess notification that the global selection has
been replaced.
2016-09-13 Tim Horton <timothy_horton@apple.com>
Provide a mechanism to specify the maximum size of WKThumbnailView snapshots
https://bugs.webkit.org/show_bug.cgi?id=161896
<rdar://problem/28229827>
Reviewed by Simon Fraser.
Some clients know that their thumbnail views will only be displayed up to
a specific size that is significantly smaller than the WKView size. Allow
them to avoid wasting lots of memory on unnecessarily large snapshots.
* UIProcess/API/Cocoa/_WKThumbnailView.h:
* UIProcess/API/Cocoa/_WKThumbnailView.mm:
(-[_WKThumbnailView requestSnapshot]):
(-[_WKThumbnailView _requestSnapshotIfNeeded]):
(-[_WKThumbnailView setMaximumSnapshotSize:]):
Add a maximumSnapshotSize property which can be changed dynamically.
2016-09-13 Anders Carlsson <andersca@apple.com>
REGRESSION (r196321): Amazon Videos are all black in Fullscreen
https://bugs.webkit.org/show_bug.cgi?id=161924
rdar://problem/28208208
Reviewed by Dan Bernstein.
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.mm:
(main):
Set AppleMagnifiedMode to true.
2016-09-13 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Get rid of DataObjectGtk::forClipboard and cleanup pasteboard code
https://bugs.webkit.org/show_bug.cgi?id=161907
Reviewed by Michael Catanzaro.
Update to DataObjectGtk and PasteboardHelper API changes.
* UIProcess/gtk/DragAndDropHandler.cpp:
(WebKit::DragAndDropHandler::startDrag):
(WebKit::DragAndDropHandler::fillDragData):
(WebKit::DragAndDropHandler::dataObjectForDropData):
* WebProcess/WebCoreSupport/gtk/WebDragClientGtk.cpp:
(WebKit::WebDragClient::startDrag):
* WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:
(WebKit::collapseSelection):
(WebKit::WebEditorClient::updateGlobalSelection): Remove wrong X11 guards, since that code is not X11 specific.
2016-09-12 DAN SAUNDERS <dasau@microsoft.com>
AX: WKWebView for macOS does not allow configuration of tabsToLinks
https://bugs.webkit.org/show_bug.cgi?id=161394
Reviewed by Anders Carlsson.
* UIProcess/API/Cocoa/WKPreferences.h:
* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences encodeWithCoder:]):
(-[WKPreferences initWithCoder:]):
(-[WKPreferences tabFocusesLinks]):
(-[WKPreferences setTabFocusesLinks:]):
2016-09-12 Saam Barati <sbarati@apple.com>
Add WebKit support for an option in Safari's debug menu similar to "Get Bytecode Profile" but for the Sampling Profiler's data
https://bugs.webkit.org/show_bug.cgi?id=161785
Reviewed by Tim Horton.
This patch follows in the steps of how we dump output for the
internal JSC bytecode profiler tool, but now also for the internal
JSC sampling profiler tool. This can be used when doing performance
analysis work analyzing the JS execution of a page.
* UIProcess/API/C/WKPage.cpp:
(WKPageGetSamplingProfilerOutput):
* UIProcess/API/C/WKPagePrivate.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::getSamplingProfilerOutput):
(WebKit::WebPageProxy::invalidateStringCallback):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::getSamplingProfilerOutput):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
2016-09-12 Keith Rollin <krollin@apple.com>
Enhance Network logging
https://bugs.webkit.org/show_bug.cgi?id=161771
Reviewed by Antti Koivisto.
Modify current logging statements to follow a consistent pattern in
order to enhance readability and parsing.
* NetworkProcess/Downloads/Download.cpp:
(WebKit::Download::didReceiveResponse):
(WebKit::Download::didReceiveData):
(WebKit::Download::didFinish):
(WebKit::Download::didFail):
(WebKit::Download::didCancel):
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::startNetworkLoad):
(WebKit::NetworkResourceLoader::didFinishLoading):
(WebKit::NetworkResourceLoader::didFailLoading):
(WebKit::NetworkResourceLoader::continueWillSendRequest):
* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::scheduleLoad):
* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::willSendRequest):
(WebKit::WebResourceLoader::didReceiveResponse):
(WebKit::WebResourceLoader::didReceiveData):
(WebKit::WebResourceLoader::didFinishResourceLoad):
(WebKit::WebResourceLoader::didFailResourceLoad):
(WebKit::WebResourceLoader::didReceiveResource):
2016-09-09 Tim Horton <timothy_horton@apple.com>
WKThumbnailView should expose a mode where it can be reparented without resnapshotting
https://bugs.webkit.org/show_bug.cgi?id=161828
<rdar://problem/28229756>
Reviewed by Alex Christensen.
* UIProcess/API/Cocoa/_WKThumbnailView.h:
* UIProcess/API/Cocoa/_WKThumbnailView.mm:
(-[_WKThumbnailView initWithFrame:fromWKView:]):
(-[_WKThumbnailView _viewWasUnparented]):
Add such a mode. Bail from snapshot teardown when unparented if it is on.
2016-09-08 Dean Jackson <dino@apple.com>
Expose Apple Pencil data to Touch events
https://bugs.webkit.org/show_bug.cgi?id=161783
<rdar://problem/28218898>
Reviewed by Beth Dakin.
* Platform/spi/ios/UIKitSPI.h: Expose the new SPI. Since this is only used
on public builds, guard it against everything that is <= iOS 10.0.
* Shared/WebEvent.h: New properties.
(WebKit::WebPlatformTouchPoint::setAltitudeAngle):
(WebKit::WebPlatformTouchPoint::altitudeAngle):
(WebKit::WebPlatformTouchPoint::setAzimuthAngle):
(WebKit::WebPlatformTouchPoint::azimuthAngle):
(WebKit::WebPlatformTouchPoint::setTouchType):
(WebKit::WebPlatformTouchPoint::touchType):
(WebKit::WebPlatformTouchPoint::force): Deleted.
* Shared/WebEventConversion.cpp:
(WebKit::webPlatformTouchTypeToPlatform):
(WebKit::WebKit2PlatformTouchPoint::WebKit2PlatformTouchPoint): More
parameters sent to parent constructor.
* Shared/ios/NativeWebTouchEventIOS.mm:
(WebKit::convertTouchType):
(WebKit::NativeWebTouchEvent::extractWebTouchPoint):
* Shared/ios/WebPlatformTouchPointIOS.cpp:
(WebKit::WebPlatformTouchPoint::encode):
(WebKit::WebPlatformTouchPoint::decode):
2016-09-09 Tim Horton <timothy_horton@apple.com>
Text replacement candidates don't always overwrite the entire original string
https://bugs.webkit.org/show_bug.cgi?id=161779
<rdar://problem/28033492>
Reviewed by Simon Fraser.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::platformEditorState):
Make use of the shared implementation of contextRangeForCandidateRequest.
2016-09-08 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix GTK+ build after r205689.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOListElement.cpp:
(webkit_dom_html_o_list_element_set_start):
2016-09-08 Dan Bernstein <mitz@apple.com>
Re-landing the fix for
[Mac] .tbd files for the shims end up installed when building with GENERATE_TEXT_BASED_STUBS=YES
https://bugs.webkit.org/show_bug.cgi?id=161722
without reintroducing https://webkit.org/b/161782
* Configurations/Shim.xcconfig: Don’t install the shims. The Copy Shims build phase in the
WebKit target will copy them into place without bringing their .tbd files along. Keep the
install path set, though, because it determines the dylibs’ install names.
2016-09-08 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r205576.
https://bugs.webkit.org/show_bug.cgi?id=161782
Introduced a crash at launch and broke all our Mac perf
testing (Requested by rniwa on #webkit).
Reverted changeset:
"[Mac] .tbd files for the shims end up installed when building
with GENERATE_TEXT_BASED_STUBS=YES"
https://bugs.webkit.org/show_bug.cgi?id=161722
http://trac.webkit.org/changeset/205576
2016-09-08 Said Abou-Hallawa <sabouhallawa@apple.com>
Move the BitmapImage platform dependent code to a new file named NativeImage[CG|Cairo].cpp
https://bugs.webkit.org/show_bug.cgi?id=158684
Reviewed by Simon Fraser.
* UIProcess/API/C/cg/WKIconDatabaseCG.cpp:
(WKIconDatabaseTryGetCGImageForURL):
(WKIconDatabaseTryCopyCGImageArrayForURL):
It was the only place in the code which uses BitmapImage::getCGImageArray().
Call BitmapImage::framesNativeImages() instead and form the returned
Vector<NativeImagePtr> build the CFArrayRef.
* UIProcess/WebIconDatabase.h:
Include "NativeImage.h" instead of "NativeImagePtr.h".
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _presentationSnapshotForPreviewItemController:]):
* WebProcess/Plugins/PluginView.cpp:
(WebKit::isAlmostSolidColor):
Call BitmapImage::getCGImageRef() instead of calling BitmapImage::nativeImage().
2016-09-08 Zan Dobersek <zdobersek@igalia.com>
Move webkit2gtk.pc.in, webkit2gtk-web-extension.pc.in files under Source/WebKit2/gtk/
https://bugs.webkit.org/show_bug.cgi?id=161703
Reviewed by Carlos Garcia Campos.
Move the pkg-config input files that are specific to the GTK+ port
under the Source/WebKit2/gtk/ directory. Build rules are updated
accordingly.
* PlatformGTK.cmake:
* gtk/webkit2gtk-web-extension.pc.in: Renamed from Source/WebKit2/webkit2gtk-web-extension.pc.in.
* gtk/webkit2gtk.pc.in: Renamed from Source/WebKit2/webkit2gtk.pc.in.
2016-09-07 Joseph Pecoraro <pecoraro@apple.com>
[Mac] Address some clang static analyzer warnings in WebKit
https://bugs.webkit.org/show_bug.cgi?id=161597
Reviewed by Darin Adler.
* UIProcess/Cocoa/WebVideoFullscreenManagerProxy.mm:
(-[WKLayerHostView makeBackingLayer]):
* UIProcess/mac/WKSharingServicePickerDelegate.mm:
(-[WKSharingServicePickerDelegate sharingServicePicker:sharingServicesForItems:mask:proposedSharingServices:]):
* WebProcess/InjectedBundle/API/mac/WKDOMRange.mm:
(-[WKDOMRange rangeByExpandingToWordBoundaryByCharacters:inDirection:]):
Address leaks caught by the static analyzer.
2016-09-07 Zan Dobersek <zdobersek@igalia.com>
[GTK] Remove stale WebSoupRequestManager headers
https://bugs.webkit.org/show_bug.cgi?id=161691
Reviewed by Sergio Villar Senin.
WebSoupRequestManager, WebSoupRequestManagerProxy and WebSoupRequestManagerClient
classes were used to implement custom URI scheme support for Soup. This API and
the implementations of these classes were removed in r174584, but curiously the
headers went unnoticed. This patch removes them, as well as the
WebSoupRequestManagerProxy forwarding declaration in WKAPICastSoup.h.
* UIProcess/API/C/soup/WKAPICastSoup.h:
* UIProcess/soup/WebSoupRequestManagerClient.h: Removed.
* UIProcess/soup/WebSoupRequestManagerProxy.h: Removed.
(WebKit::WebSoupRequestManagerProxy::registeredURISchemes): Deleted.
* WebProcess/soup/WebSoupRequestManager.h: Removed.
2016-09-07 Simon Fraser <simon.fraser@apple.com>
Enable the <meter> element on iOS
https://bugs.webkit.org/show_bug.cgi?id=161714
rdar://problem/8978410
Reviewed by Tim Horton.
Define ENABLE_METER_ELEMENT unconditionally now.
* Configurations/FeatureDefines.xcconfig:
2016-09-07 Dan Bernstein <mitz@apple.com>
[Mac] .tbd files for the shims end up installed when building with GENERATE_TEXT_BASED_STUBS=YES
https://bugs.webkit.org/show_bug.cgi?id=161722
Reviewed by Anders Carlsson.
* Configurations/Shim.xcconfig: Don’t install the shims. The Copy Shims build phase in the
WebKit target will copy them into place without bringing their .tbd files along.
2016-09-07 Mark Lam <mark.lam@apple.com>
Add CatchScope and force all exception checks to be via ThrowScope or CatchScope.
https://bugs.webkit.org/show_bug.cgi?id=161498
Reviewed by Geoffrey Garen.
* WebProcess/Plugins/Netscape/NPJSObject.cpp:
(WebKit::NPJSObject::hasMethod):
(WebKit::NPJSObject::hasProperty):
(WebKit::NPJSObject::getProperty):
(WebKit::NPJSObject::setProperty):
(WebKit::NPJSObject::removeProperty):
(WebKit::NPJSObject::construct):
(WebKit::NPJSObject::invoke):
2016-09-07 Konstantin Tokarev <annulen@yandex.ru>
[GTK] Make inspection of Inspector conditional on DEVELOPER_MODE
https://bugs.webkit.org/show_bug.cgi?id=161702
Reviewed by Michael Catanzaro.
* UIProcess/gtk/WebInspectorProxyGtk.cpp:
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
2016-09-07 Dan Bernstein <mitz@apple.com>
[Cocoa] Update availability attributes per the macOS Sierra and iOS 10 GM seeds
https://bugs.webkit.org/show_bug.cgi?id=161704
Reviewed by Anders Carlsson.
* Shared/API/Cocoa/_WKHitTestResult.h:
* UIProcess/API/Cocoa/WKErrorPrivate.h:
* UIProcess/API/Cocoa/WKFrameInfoPrivate.h:
* UIProcess/API/Cocoa/WKMenuItemIdentifiersPrivate.h:
* UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
* UIProcess/API/Cocoa/WKOpenPanelParameters.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/WKUIDelegate.h:
* UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
* UIProcess/API/Cocoa/WKUserContentControllerPrivate.h:
* UIProcess/API/Cocoa/WKUserScriptPrivate.h:
* UIProcess/API/Cocoa/WKWebView.h:
* UIProcess/API/Cocoa/WKWebViewConfiguration.h:
* UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/API/Cocoa/WKWebsiteDataRecordPrivate.h:
* UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
* UIProcess/API/Cocoa/_WKActivatedElementInfo.h:
* UIProcess/API/Cocoa/_WKAutomationSession.h:
* UIProcess/API/Cocoa/_WKContextMenuElementInfo.h:
* UIProcess/API/Cocoa/_WKElementAction.h:
* UIProcess/API/Cocoa/_WKExperimentalFeature.h:
* UIProcess/API/Cocoa/_WKFormInputSession.h:
* UIProcess/API/Cocoa/_WKInputDelegate.h:
* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
* UIProcess/API/Cocoa/_WKUserContentExtensionStore.h:
* UIProcess/API/Cocoa/_WKUserContentWorld.h:
* UIProcess/API/Cocoa/_WKUserInitiatedAction.h:
* UIProcess/API/Cocoa/_WKUserStyleSheet.h:
* UIProcess/API/Cocoa/_WKWebsiteDataSize.h:
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h:
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.h:
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInScriptWorld.h:
2016-09-07 Michael Catanzaro <mcatanzaro@igalia.com>
[EFL] Switch to ENABLE_NETWORK_CACHE
https://bugs.webkit.org/show_bug.cgi?id=152676
Reviewed by Alex Christensen.
Nowadays GTK+ always uses the network cache, and never the soup cache. Remove support for
using the soup cache, and switch the EFL port to use network cache.
* NetworkProcess/cache/NetworkCacheBlobStorage.cpp:
(WebKit::NetworkCache::BlobStorage::add): Check return value of link to placate
-Werror=unused-result on EFL builder
* NetworkProcess/efl/NetworkProcessMainEfl.cpp:
* NetworkProcess/soup/NetworkProcessSoup.cpp:
(WebKit::getCacheDiskFreeSize):
(WebKit::NetworkProcess::platformInitializeNetworkProcess):
(WebKit::NetworkProcess::platformSetCacheModel):
(WebKit::NetworkProcess::clearDiskCache):
* PlatformEfl.cmake: Add files to build.
* UIProcess/API/efl/APIWebsiteDataStoreEfl.cpp:
(API::WebsiteDataStore::defaultNetworkCacheDirectory): Use a saner location.
* UIProcess/API/gtk/APIWebsiteDataStoreGtk.cpp:
(API::WebsiteDataStore::defaultNetworkCacheDirectory):
* UIProcess/API/gtk/WebKitPrivate.h:
* UIProcess/soup/WebProcessPoolSoup.cpp:
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
* WebProcess/efl/WebProcessMainEfl.cpp:
* config.h:
2016-09-07 Youenn Fablet <youenn@apple.com>
[Streams API] Separate compile flag for ReadableStream and WritableStream
https://bugs.webkit.org/show_bug.cgi?id=161044
Reviewed by Alex Christensen.
Moving from STREAMS_API to READABLE_STREAM_API and WRITABLE_STREAM_API compilation flags.
* Configurations/FeatureDefines.xcconfig:
2016-09-07 Emanuele Aina <emanuele.aina@collabora.com>
[GTK] Clarify frame callbacks behaviour in Wayland compositor
https://bugs.webkit.org/show_bug.cgi?id=161683
Reviewed by Carlos Garcia Campos.
The way we fire frame callbacks in the nested Wayland compositor can
be puzzling to developers expecting Wayland semantics, but since we
have our own mechanism to handle synchronization we don't care much
about them. Add a comment to avoid surprised Wayland developers.
* UIProcess/gtk/WaylandCompositor.cpp:
(WebKit::WaylandCompositor::Surface::commit):
2016-09-07 Csaba Osztrogonác <ossy@webkit.org>
URTBF after r205369, just for fun.
* PlatformMac.cmake: Added new files.
2016-09-07 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Remove unused GObject DOM unstable API
https://bugs.webkit.org/show_bug.cgi?id=161440
Reviewed by Philippe Normand.
Remove unstable GObject DOM API now that we no longer auto-generate the bindings.
* PlatformGTK.cmake:
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMAnimatable.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMAnimatable.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMAnimationEffect.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMAnimationEffect.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMAnimationEffectPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMAnimationTimeline.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMAnimationTimeline.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMAnimationTimelinePrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMAttr.cpp:
(webkit_dom_attr_get_property):
(webkit_dom_attr_class_init):
(webkit_dom_attr_get_prefix): Deleted.
(webkit_dom_attr_get_local_name): Deleted.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMAttrUnstable.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMAudioTrack.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMAudioTrack.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMAudioTrackList.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMAudioTrackList.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMAudioTrackListPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMAudioTrackPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMBarProp.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMBarProp.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMBarPropPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMBatteryManager.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMBatteryManager.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMBatteryManagerPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMBlob.cpp:
(webkit_dom_blob_get_property):
(webkit_dom_blob_class_init):
(webkit_dom_blob_get_size):
(webkit_dom_blob_init): Deleted.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMBlobUnstable.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRule.cpp:
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRuleUnstable.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCharacterData.cpp:
(webkit_dom_character_data_get_property):
(webkit_dom_character_data_class_init):
(webkit_dom_character_data_get_length):
(webkit_dom_character_data_set_property): Deleted.
(webkit_dom_character_data_substring_data): Deleted.
(webkit_dom_character_data_append_data): Deleted.
(webkit_dom_character_data_insert_data): Deleted.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCharacterDataUnstable.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMApplicationCache.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMApplicationCache.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMApplicationCachePrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMCSSNamespace.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMCSSNamespace.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMCSSNamespacePrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMMimeType.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMMimeType.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMMimeTypeArray.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMMimeTypeArray.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMMimeTypeArrayPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMMimeTypePrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMNamedFlowCollection.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMNamedFlowCollection.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMNamedFlowCollectionPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMPlugin.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMPlugin.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMPluginArray.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMPluginArray.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMPluginArrayPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMPluginPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMStringList.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMStringList.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMStringListPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMStringMap.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMStringMap.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMStringMapPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMTokenList.h:
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindowSpeechSynthesis.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindowSpeechSynthesis.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDataCue.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDataCue.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDataCuePrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDatabase.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDatabase.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDatabasePrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentAnimation.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentAnimation.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentTimeline.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentTimeline.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentTimelinePrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentType.cpp:
(webkit_dom_document_type_get_name): Deleted.
(webkit_dom_document_type_get_entities): Deleted.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentTypeUnstable.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEvent.cpp:
(webkit_dom_event_get_property):
(webkit_dom_event_class_init):
(webkit_dom_event_init): Deleted.
(webkit_dom_event_stop_propagation): Deleted.
(webkit_dom_event_get_bubbles): Deleted.
(webkit_dom_event_get_cancelable): Deleted.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEventUnstable.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFile.cpp:
(webkit_dom_file_get_property):
(webkit_dom_file_class_init):
(webkit_dom_file_get_name):
(webkit_dom_file_init): Deleted.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFileUnstable.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMGamepad.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMGamepad.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMGamepadList.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMGamepadList.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMGeolocation.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMGeolocation.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMGeolocationPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAnchorElement.cpp:
(webkit_dom_html_anchor_element_set_property):
(webkit_dom_html_anchor_element_get_property):
(webkit_dom_html_anchor_element_class_init):
(webkit_dom_html_anchor_element_init): Deleted.
(webkit_dom_html_anchor_element_get_charset): Deleted.
(webkit_dom_html_anchor_element_set_charset): Deleted.
(webkit_dom_html_anchor_element_get_coords): Deleted.
(webkit_dom_html_anchor_element_set_coords): Deleted.
(webkit_dom_html_anchor_element_get_target): Deleted.
(webkit_dom_html_anchor_element_set_target): Deleted.
(webkit_dom_html_anchor_element_get_type_attr): Deleted.
(webkit_dom_html_anchor_element_set_type_attr): Deleted.
(webkit_dom_html_anchor_element_set_href): Deleted.
(webkit_dom_html_anchor_element_get_protocol): Deleted.
(webkit_dom_html_anchor_element_set_protocol): Deleted.
(webkit_dom_html_anchor_element_set_hash): Deleted.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAnchorElement.h:
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAnchorElementUnstable.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAreaElement.cpp:
(webkit_dom_html_area_element_set_property):
(webkit_dom_html_area_element_get_property):
(webkit_dom_html_area_element_class_init):
(webkit_dom_html_area_element_init): Deleted.
(webkit_dom_html_area_element_get_alt): Deleted.
(webkit_dom_html_area_element_set_alt): Deleted.
(webkit_dom_html_area_element_get_coords): Deleted.
(webkit_dom_html_area_element_set_coords): Deleted.
(webkit_dom_html_area_element_get_hostname): Deleted.
(webkit_dom_html_area_element_set_hostname): Deleted.
(webkit_dom_html_area_element_get_port): Deleted.
(webkit_dom_html_area_element_set_port): Deleted.
(webkit_dom_html_area_element_get_pathname): Deleted.
(webkit_dom_html_area_element_get_hash): Deleted.
(webkit_dom_html_area_element_set_hash): Deleted.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAreaElement.h:
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAreaElementUnstable.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAudioElement.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAudioElement.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAudioElementPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLButtonElement.cpp:
(webkit_dom_html_button_element_set_property):
(webkit_dom_html_button_element_get_property):
(webkit_dom_html_button_element_class_init):
(webkit_dom_html_button_element_get_will_validate):
(webkit_dom_html_button_element_get_autofocus): Deleted.
(webkit_dom_html_button_element_set_autofocus): Deleted.
(webkit_dom_html_button_element_get_disabled): Deleted.
(webkit_dom_html_button_element_set_disabled): Deleted.
(webkit_dom_html_button_element_get_form): Deleted.
(webkit_dom_html_button_element_get_button_type): Deleted.
(webkit_dom_html_button_element_set_button_type): Deleted.
(webkit_dom_html_button_element_get_name): Deleted.
(webkit_dom_html_button_element_set_value): Deleted.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLButtonElementUnstable.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDetailsElement.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDetailsElement.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDetailsElementPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFieldSetElement.cpp:
(webkit_dom_html_field_set_element_get_property):
(webkit_dom_html_field_set_element_class_init):
(webkit_dom_html_field_set_element_get_form):
(webkit_dom_html_field_set_element_init): Deleted.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFieldSetElementUnstable.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFormElement.cpp:
(webkit_dom_html_form_element_set_property):
(webkit_dom_html_form_element_get_property):
(webkit_dom_html_form_element_class_init):
(webkit_dom_html_form_element_get_length):
(webkit_dom_html_form_element_submit): Deleted.
(webkit_dom_html_form_element_reset): Deleted.
(webkit_dom_html_form_element_get_action): Deleted.
(webkit_dom_html_form_element_set_action): Deleted.
(webkit_dom_html_form_element_get_enctype): Deleted.
(webkit_dom_html_form_element_set_encoding): Deleted.
(webkit_dom_html_form_element_get_method): Deleted.
(webkit_dom_html_form_element_set_method): Deleted.
(webkit_dom_html_form_element_set_target): Deleted.
(webkit_dom_html_form_element_get_elements): Deleted.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFormElementUnstable.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHtmlElement.cpp:
(webkit_dom_html_html_element_set_property):
(webkit_dom_html_html_element_get_property):
(webkit_dom_html_html_element_class_init):
(webkit_dom_html_html_element_set_version):
(webkit_dom_html_html_element_get_version): Deleted.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHtmlElementUnstable.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLIFrameElement.cpp:
(webkit_dom_html_iframe_element_set_property):
(webkit_dom_html_iframe_element_get_property):
(webkit_dom_html_iframe_element_class_init):
(webkit_dom_html_iframe_element_init): Deleted.
(webkit_dom_html_iframe_element_set_src): Deleted.
(webkit_dom_html_iframe_element_get_width): Deleted.
(webkit_dom_html_iframe_element_set_width): Deleted.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLIFrameElementUnstable.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLImageElement.cpp:
(webkit_dom_html_image_element_set_property):
(webkit_dom_html_image_element_get_property):
(webkit_dom_html_image_element_class_init):
(webkit_dom_html_image_element_set_long_desc): Deleted.
(webkit_dom_html_image_element_get_src): Deleted.
(webkit_dom_html_image_element_set_src): Deleted.
(webkit_dom_html_image_element_get_natural_height): Deleted.
(webkit_dom_html_image_element_get_natural_width): Deleted.
(webkit_dom_html_image_element_get_x): Deleted.
(webkit_dom_html_image_element_get_y): Deleted.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLImageElementUnstable.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.cpp:
(webkit_dom_html_input_element_set_property):
(webkit_dom_html_input_element_get_property):
(webkit_dom_html_input_element_class_init):
(webkit_dom_html_input_element_set_capture_type):
(webkit_dom_html_input_element_init): Deleted.
(webkit_dom_html_input_element_select): Deleted.
(webkit_dom_html_input_element_get_accept): Deleted.
(webkit_dom_html_input_element_set_accept): Deleted.
(webkit_dom_html_input_element_get_alt): Deleted.
(webkit_dom_html_input_element_set_alt): Deleted.
(webkit_dom_html_input_element_get_default_checked): Deleted.
(webkit_dom_html_input_element_set_default_checked): Deleted.
(webkit_dom_html_input_element_get_checked): Deleted.
(webkit_dom_html_input_element_set_checked): Deleted.
(webkit_dom_html_input_element_get_disabled): Deleted.
(webkit_dom_html_input_element_get_files): Deleted.
(webkit_dom_html_input_element_set_files): Deleted.
(webkit_dom_html_input_element_set_height): Deleted.
(webkit_dom_html_input_element_get_indeterminate): Deleted.
(webkit_dom_html_input_element_get_max_length): Deleted.
(webkit_dom_html_input_element_set_max_length): Deleted.
(webkit_dom_html_input_element_get_name): Deleted.
(webkit_dom_html_input_element_set_name): Deleted.
(webkit_dom_html_input_element_get_size): Deleted.
(webkit_dom_html_input_element_set_size): Deleted.
(webkit_dom_html_input_element_get_src): Deleted.
(webkit_dom_html_input_element_set_input_type): Deleted.
(webkit_dom_html_input_element_get_default_value): Deleted.
(webkit_dom_html_input_element_set_default_value): Deleted.
(webkit_dom_html_input_element_set_value): Deleted.
(webkit_dom_html_input_element_get_width): Deleted.
(webkit_dom_html_input_element_set_width): Deleted.
(webkit_dom_html_input_element_get_will_validate): Deleted.
(webkit_dom_html_input_element_get_align): Deleted.
(webkit_dom_html_input_element_set_align): Deleted.
(webkit_dom_html_input_element_get_use_map): Deleted.
(webkit_dom_html_input_element_set_use_map): Deleted.
(webkit_dom_html_input_element_get_capture_type): Deleted.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.h:
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElementUnstable.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLKeygenElement.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLKeygenElement.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLKeygenElementPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLabelElement.cpp:
(webkit_dom_html_label_element_get_property):
(webkit_dom_html_label_element_class_init):
(webkit_dom_html_label_element_init): Deleted.
(webkit_dom_html_label_element_get_form): Deleted.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLabelElementUnstable.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLinkElement.cpp:
(webkit_dom_html_link_element_set_property):
(webkit_dom_html_link_element_get_property):
(webkit_dom_html_link_element_class_init):
(webkit_dom_html_link_element_get_disabled): Deleted.
(webkit_dom_html_link_element_set_disabled): Deleted.
(webkit_dom_html_link_element_get_charset): Deleted.
(webkit_dom_html_link_element_set_charset): Deleted.
(webkit_dom_html_link_element_get_href): Deleted.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLinkElement.h:
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLinkElementUnstable.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMarqueeElement.cpp:
(webkit_dom_html_marquee_element_class_init):
(webkit_dom_html_marquee_element_stop):
(webkit_dom_html_marquee_element_init): Deleted.
(webkit_dom_html_marquee_element_start): Deleted.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMarqueeElementUnstable.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMediaElement.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMediaElement.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMediaElementPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOListElement.cpp:
(webkit_dom_html_o_list_element_set_property):
(webkit_dom_html_o_list_element_get_property):
(webkit_dom_html_o_list_element_class_init):
(webkit_dom_html_o_list_element_init): Deleted.
(webkit_dom_html_o_list_element_get_compact): Deleted.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOListElementUnstable.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLObjectElement.cpp:
(webkit_dom_html_object_element_get_property):
(webkit_dom_html_object_element_class_init):
(webkit_dom_html_object_element_set_property): Deleted.
(webkit_dom_html_object_element_get_form): Deleted.
(webkit_dom_html_object_element_get_code): Deleted.
(webkit_dom_html_object_element_set_code): Deleted.
(webkit_dom_html_object_element_get_align): Deleted.
(webkit_dom_html_object_element_set_align): Deleted.
(webkit_dom_html_object_element_get_archive): Deleted.
(webkit_dom_html_object_element_set_archive): Deleted.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLObjectElementUnstable.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionsCollection.cpp:
(webkit_dom_html_options_collection_get_selected_index): Deleted.
(webkit_dom_html_options_collection_set_selected_index): Deleted.
(webkit_dom_html_options_collection_get_length): Deleted.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionsCollectionUnstable.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPrivate.cpp:
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLScriptElement.cpp:
(webkit_dom_html_script_element_set_property):
(webkit_dom_html_script_element_get_property):
(webkit_dom_html_script_element_class_init):
(webkit_dom_html_script_element_set_type_attr):
(webkit_dom_html_script_element_init): Deleted.
(webkit_dom_html_script_element_get_html_for): Deleted.
(webkit_dom_html_script_element_set_html_for): Deleted.
(webkit_dom_html_script_element_get_event): Deleted.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLScriptElement.h:
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLScriptElementUnstable.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLSelectElement.cpp:
(webkit_dom_html_select_element_set_property):
(webkit_dom_html_select_element_get_property):
(webkit_dom_html_select_element_class_init):
(webkit_dom_html_select_element_get_will_validate):
(webkit_dom_html_select_element_named_item): Deleted.
(webkit_dom_html_select_element_get_autofocus): Deleted.
(webkit_dom_html_select_element_set_autofocus): Deleted.
(webkit_dom_html_select_element_get_disabled): Deleted.
(webkit_dom_html_select_element_set_disabled): Deleted.
(webkit_dom_html_select_element_get_form): Deleted.
(webkit_dom_html_select_element_set_size): Deleted.
(webkit_dom_html_select_element_get_select_type): Deleted.
(webkit_dom_html_select_element_get_options): Deleted.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLSelectElementUnstable.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLStyleElement.cpp:
(webkit_dom_html_style_element_set_property):
(webkit_dom_html_style_element_get_property):
(webkit_dom_html_style_element_class_init):
(webkit_dom_html_style_element_get_sheet):
(webkit_dom_html_style_element_get_disabled): Deleted.
(webkit_dom_html_style_element_set_disabled): Deleted.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLStyleElementUnstable.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableElement.cpp:
(webkit_dom_html_table_element_set_property):
(webkit_dom_html_table_element_get_property):
(webkit_dom_html_table_element_class_init):
(webkit_dom_html_table_element_insert_row): Deleted.
(webkit_dom_html_table_element_set_summary): Deleted.
(webkit_dom_html_table_element_get_width): Deleted.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableElementUnstable.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTextAreaElement.cpp:
(webkit_dom_html_text_area_element_set_property):
(webkit_dom_html_text_area_element_get_property):
(webkit_dom_html_text_area_element_class_init):
(webkit_dom_html_text_area_element_init): Deleted.
(webkit_dom_html_text_area_element_set_selection_range): Deleted.
(webkit_dom_html_text_area_element_set_autofocus): Deleted.
(webkit_dom_html_text_area_element_get_disabled): Deleted.
(webkit_dom_html_text_area_element_get_form): Deleted.
(webkit_dom_html_text_area_element_get_name): Deleted.
(webkit_dom_html_text_area_element_get_rows): Deleted.
(webkit_dom_html_text_area_element_set_rows): Deleted.
(webkit_dom_html_text_area_element_get_cols): Deleted.
(webkit_dom_html_text_area_element_set_cols): Deleted.
(webkit_dom_html_text_area_element_get_area_type): Deleted.
(webkit_dom_html_text_area_element_get_default_value): Deleted.
(webkit_dom_html_text_area_element_get_value): Deleted.
(webkit_dom_html_text_area_element_set_value): Deleted.
(webkit_dom_html_text_area_element_get_will_validate): Deleted.
(webkit_dom_html_text_area_element_get_selection_start): Deleted.
(webkit_dom_html_text_area_element_set_selection_start): Deleted.
(webkit_dom_html_text_area_element_get_selection_end): Deleted.
(webkit_dom_html_text_area_element_set_selection_end): Deleted.
(webkit_dom_html_text_area_element_is_edited): Deleted.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTextAreaElementUnstable.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLVideoElement.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLVideoElement.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLVideoElementPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHistory.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHistory.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHistoryPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMKeyframeEffect.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMKeyframeEffect.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMKeyframeEffectPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMLocation.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMLocation.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMLocationPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaController.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaController.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaControllerPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaDevices.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaDevices.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaDevicesPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaError.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaError.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaErrorPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaQueryList.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaQueryList.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaQueryListPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaTrackSupportedConstraints.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaTrackSupportedConstraints.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaTrackSupportedConstraintsPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMessagePort.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMessagePort.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMessagePortPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMouseEvent.cpp:
(webkit_dom_mouse_event_get_property):
(webkit_dom_mouse_event_class_init):
(webkit_dom_mouse_event_get_y): Deleted.
(webkit_dom_mouse_event_get_from_element): Deleted.
(webkit_dom_mouse_event_get_to_element): Deleted.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMouseEventUnstable.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNavigator.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNavigator.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNavigatorMediaDevices.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNavigatorMediaDevices.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNavigatorPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNode.cpp:
(webkit_dom_node_get_property):
(webkit_dom_node_class_init):
(webkit_dom_node_init): Deleted.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeUnstable.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMPerformance.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMPerformance.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMPerformanceEntry.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMPerformanceEntry.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMPerformanceEntryPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMPerformanceNavigation.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMPerformanceNavigation.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMPerformanceNavigationPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMPerformancePrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMPerformanceTiming.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMPerformanceTiming.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMPerformanceTimingPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMPrivate.cpp:
(WebKit::wrap): Deleted.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMPrivate.h:
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMScreen.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMScreen.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMScreenPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMSpeechSynthesis.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMSpeechSynthesis.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMSpeechSynthesisEvent.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMSpeechSynthesisEvent.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMSpeechSynthesisEventPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMSpeechSynthesisPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMSpeechSynthesisUtterance.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMSpeechSynthesisUtterance.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMSpeechSynthesisUtterancePrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMSpeechSynthesisVoice.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMSpeechSynthesisVoice.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMSpeechSynthesisVoicePrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStorage.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStorage.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStorageInfo.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStorageInfo.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStoragePrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStorageQuota.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStorageQuota.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleMedia.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleMedia.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleMediaPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTextTrack.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTextTrack.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTextTrackCue.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTextTrackCue.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTextTrackCueList.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTextTrackCueList.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTextTrackCueListPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTextTrackCuePrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTextTrackList.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTextTrackList.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTextTrackListPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTextTrackPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTimeRanges.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTimeRanges.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTimeRangesPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTouch.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTouch.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTouchPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTrackEvent.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTrackEvent.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTrackEventPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMUIEvent.cpp:
(webkit_dom_ui_event_get_property):
(webkit_dom_ui_event_class_init):
(webkit_dom_ui_event_get_page_y):
(webkit_dom_ui_event_init): Deleted.
(webkit_dom_ui_event_init_ui_event): Deleted.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMUIEventUnstable.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMUserMessageHandler.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMUserMessageHandler.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMUserMessageHandlerPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMUserMessageHandlersNamespace.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMUserMessageHandlersNamespace.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMUserMessageHandlersNamespacePrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMVTTCue.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMVTTCue.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMVTTCuePrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMValidityState.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMValidityState.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMValidityStatePrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMVideoPlaybackQuality.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMVideoPlaybackQuality.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMVideoPlaybackQualityPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMVideoTrack.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMVideoTrack.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMVideoTrackList.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMVideoTrackList.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMVideoTrackListPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMVideoTrackPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMWebAnimation.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMWebAnimation.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMWebAnimationPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMWebKitNamedFlow.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMWebKitNamedFlow.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMWebKitNamedFlowPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMWebKitNamespace.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMWebKitNamespace.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMWebKitNamespacePrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMWebKitPoint.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMWebKitPoint.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMWebKitPointPrivate.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMWheelEvent.cpp:
(webkit_dom_wheel_event_get_property):
(webkit_dom_wheel_event_class_init):
(webkit_dom_wheel_event_get_wheel_delta):
(webkit_dom_wheel_event_init): Deleted.
(webkit_dom_wheel_event_init_wheel_event): Deleted.
(webkit_dom_wheel_event_get_wheel_delta_x): Deleted.
(webkit_dom_wheel_event_get_wheel_delta_y): Deleted.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMWheelEventUnstable.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/docs/webkitdomgtk-4.0-sections.txt:
* WebProcess/InjectedBundle/API/gtk/DOM/webkitdomautocleanups-unstable.h: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/webkitdomdefines-unstable.h: Removed.
2016-09-07 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Move some GObject DOM unstable API to stable
https://bugs.webkit.org/show_bug.cgi?id=161681
Reviewed by Žan Doberšek.
Move unstable API currently used by applications to the stable API in preparation for removing all unused
unstable API.
* PlatformGTK.cmake:
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCustom.cpp: Removed.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCustom.h:
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCustomUnstable.h:
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMSelection.h:
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMTokenList.h:
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.cpp:
(webkit_dom_dom_window_get_property):
(webkit_dom_dom_window_class_init):
(webkit_dom_dom_window_webkit_message_handlers_post_message):
(webkit_dom_dom_window_set_property): Deleted.
(webkit_dom_dom_window_get_computed_style): Deleted.
(webkit_dom_dom_window_capture_events): Deleted.
(webkit_dom_dom_window_get_frame_element): Deleted.
(webkit_dom_dom_window_get_offscreen_buffering): Deleted.
(webkit_dom_dom_window_get_outer_height): Deleted.
(webkit_dom_dom_window_get_outer_width): Deleted.
(webkit_dom_dom_window_get_inner_height): Deleted.
(webkit_dom_dom_window_get_inner_width): Deleted.
(webkit_dom_dom_window_get_screen_x): Deleted.
(webkit_dom_dom_window_set_status): Deleted.
(webkit_dom_dom_window_get_default_status): Deleted.
(webkit_dom_dom_window_get_window): Deleted.
(webkit_dom_dom_window_get_frames): Deleted.
(webkit_dom_dom_window_get_parent): Deleted.
(webkit_dom_dom_window_get_top): Deleted.
(webkit_dom_dom_window_get_document): Deleted.
(webkit_dom_dom_window_get_device_pixel_ratio): Deleted.
(webkit_dom_dom_window_get_orientation): Deleted.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.h:
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindowUnstable.h:
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocument.cpp:
(webkit_dom_document_get_property):
(webkit_dom_document_webkit_cancel_fullscreen):
(webkit_dom_document_get_webkit_is_fullscreen):
(webkit_dom_document_get_webkit_fullscreen_keyboard_input_allowed):
(webkit_dom_document_get_webkit_current_fullscreen_element):
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocument.h:
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentFragment.h:
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentFragmentUnstable.h:
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentUnstable.h:
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElement.cpp:
(webkit_dom_element_webkit_request_fullscreen): Deleted.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElement.h:
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElementUnstable.h:
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElement.h:
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElementUnstable.h:
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.cpp:
(webkit_dom_html_input_element_is_edited):
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.h:
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLinkElement.cpp:
(webkit_dom_html_link_element_set_sizes):
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLinkElement.h:
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTextAreaElement.cpp:
(webkit_dom_html_text_area_element_is_edited):
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTextAreaElement.h:
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMRange.h:
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMRangeUnstable.h:
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMUserMessageHandlersNamespace.cpp:
(webkit_dom_user_message_handlers_namespace_get_handler):
(webkit_dom_user_message_handlers_namespace_init): Deleted.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMUserMessageHandlersNamespace.h:
* WebProcess/InjectedBundle/API/gtk/DOM/docs/webkitdomgtk-4.0-sections.txt:
* WebProcess/InjectedBundle/API/gtk/DOM/docs/webkitdomgtk-docs.sgml:
* WebProcess/InjectedBundle/API/gtk/DOM/webkitdomdefines-unstable.h:
* WebProcess/InjectedBundle/API/gtk/DOM/webkitdomdefines.h:
2016-09-06 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK][Threaded Compositor] Several flaky tests
https://bugs.webkit.org/show_bug.cgi?id=161242
Reviewed by Michael Catanzaro.
Reset the viewport attributes on SimpleViewportController when viewport attributes change and fixed layout is
not used. We were only updating the viewport attributes when fixed layout was used, but not resetting them again
when it's no longer used. That caused that reference tests run after fast/fixed-layout/fixed-layout.html or
compositing/fixed-with-fixed-layout.html in the same worker thread were incorrectly rendered.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::dispatchViewportPropertiesDidChange): Remove ifdefs and call
WebPage::viewportPropertiesDidChange() unconditionally.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setSize): Pass current page viewport arguments to sendViewportAttributesChanged().
(WebKit::WebPage::sendViewportAttributesChanged): It now receives the viewport arguments.
(WebKit::WebPage::viewportPropertiesDidChange): Move the iOS implementation from WebPageIOS.mm and for
coordinated graphics call sendViewportAttributesChanged() when fixed layout is used or reset the viewport
attributes when not used in case of threaded compositor.
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::viewportPropertiesDidChange): Moved out of iOS ifdef.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::viewportPropertiesDidChange): Deleted.
2016-09-06 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix the GTK+ build after r205524.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.cpp:
(webkit_dom_html_input_element_get_max_length):
(webkit_dom_html_input_element_set_max_length):
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTextAreaElement.cpp:
(webkit_dom_html_text_area_element_get_max_length):
(webkit_dom_html_text_area_element_set_max_length):
2016-09-06 Daniel Bates <dabates@apple.com>
[iOS] WebKit2 fails to build with iOS 10 beta SDK - "'UIWKTextInteractionAssistant' may not respond to 'selectAll:'"
https://bugs.webkit.org/show_bug.cgi?id=161663
Reviewed by Darin Adler.
The UIResponderStandardEditActions extensions, including the selectAll: message, are now
part of a formal protocol by the same name as of the iOS 10 beta SDK.
* Platform/spi/ios/UIKitSPI.h:
2016-09-06 Ryosuke Niwa <rniwa@webkit.org>
Enable custom elements API in Safari Technology Preview
https://bugs.webkit.org/show_bug.cgi?id=161518
Reviewed by Chris Dumez.
Re-enable custom elements API in Safari Technology Preview after r203296
now that our implementation has caught up to the latest specification changes.
* Shared/WebPreferencesDefinitions.h:
2016-09-01 Simon Fraser <simon.fraser@apple.com>
Use TemporaryChange<> to maintain m_userIsInteracting
https://bugs.webkit.org/show_bug.cgi?id=161497
Reviewed by Tim Horton.
Replace some error-prone manual set/clear of m_userIsInteracting with
TemporaryChange<>.
No behavior change.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::mouseEvent):
(WebKit::WebPage::keyEvent):
(WebKit::WebPage::dispatchTouchEvent):
2016-09-06 Tim Horton <timothy_horton@apple.com>
Remove SwipeTransitionStyle; only Overlap has ever been used
https://bugs.webkit.org/show_bug.cgi?id=161617
Reviewed by Alex Christensen.
* UIProcess/mac/ViewGestureController.h:
* UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::handleSwipeGesture):
Remove SwipeTransitionStyle::Push, and SwipeTransitionStyle itself entirely,
because we've never used it and it is only supported by the Mac
implementation of ViewGestureController.
2016-09-06 Daniel Bates <dabates@apple.com>
Remove EXTERN_C from WTF
https://bugs.webkit.org/show_bug.cgi?id=161090
Reviewed by Brent Fulgham.
Guard external C declarations in WTF_EXTERN_C_BEGIN, WTF_EXTERN_C_END.
* Platform/spi/ios/ManagedConfigurationSPI.h:
2016-09-06 Ryan Haddad <ryanhaddad@apple.com>
Unreviewed, rolling out r205407.
Not the correct way to implement this functionality
Reverted changeset:
"Consult with the FrameLoaderClient about whether or not
content extensions should be enabled when loading this URL."
https://bugs.webkit.org/show_bug.cgi?id=161441
http://trac.webkit.org/changeset/205407
2016-09-06 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK][Wayland] evince-browser-plugin prevents viewing PDFs
https://bugs.webkit.org/show_bug.cgi?id=158697
Reviewed by Michael Catanzaro.
Use a different cache file for plugins depending on the current platform display. Plugins can claim to work on
X11 but not on Wayland, for example, if they need XEmebed to work. That's the case of the evince browser plugin.
* UIProcess/Plugins/gtk/PluginInfoCache.cpp:
(WebKit::cacheFilenameForCurrentDisplay):
(WebKit::PluginInfoCache::PluginInfoCache):
2016-09-06 Carlos Garcia Campos <cgarcia@igalia.com>
[Threaded Compositor] Update timer should have lower priority than tasks scheduled in compositing thread
https://bugs.webkit.org/show_bug.cgi?id=161625
Reviewed by Sergio Villar Senin.
This way, if a resize is scheduled, for example, and there are pending updates, the resize will happen first,
and then the updates will happen at the right size.
* Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:
(WebKit::CompositingRunLoop::CompositingRunLoop): Use G_PRIORITY_HIGH_IDLE as update timer priority. The actual
priority doesn't really matter as long as it's lower than G_PRIORITY_DEFAULT, because there are only two
possible sources in the compositing run loop, one for the tasks scheduled, and another one for the update timer.
2016-09-06 Emanuele Aina <emanuele.aina@collabora.com>
[GTK] glImageTargetTexture2D() is a GL function, rename accordingly
https://bugs.webkit.org/show_bug.cgi?id=161622
Reviewed by Carlos Garcia Campos.
glImageTargetTexture2D() is a GL function, not EGL, using the 'egl'
prefix is misleading.
* UIProcess/gtk/WaylandCompositor.cpp:
(WebKit::WaylandCompositor::Surface::prepareTextureForPainting):
(WebKit::WaylandCompositor::initializeEGL):
2016-09-06 Emanuele Aina <emanuele.aina@collabora.com>
[GTK][EFL] Make *_PROCESS_CMD_PREFIX conditional on DEVELOPER_MODE
https://bugs.webkit.org/show_bug.cgi?id=161621
Reviewed by Carlos Garcia Campos.
Instead of enabling support for the *_PROCESS_CMD_PREFIX set of
environment valiables (eg. WEB_PROCESS_CMD_PREFIX) on debug builds
only, enable it when DEVELOPER_MODE is enabled as it already guards
similar features (eg. WEBKIT_EXEC_PATH).
* UIProcess/ChildProcessProxy.cpp:
(WebKit::ChildProcessProxy::getLaunchOptions):
* UIProcess/Launcher/ProcessLauncher.h:
* UIProcess/Launcher/efl/ProcessLauncherEfl.cpp:
(WebKit::ProcessLauncher::launchProcess):
* UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
(WebKit::ProcessLauncher::launchProcess):
2016-09-05 Zan Dobersek <zdobersek@igalia.com>
Fix ENABLE(GAMEPAD) build errors on non-Cocoa platforms
https://bugs.webkit.org/show_bug.cgi?id=161596
Reviewed by Darin Adler.
This patch fixes build errors popping up when enabling Gamepad
feature on non-Cocoa platforms.
* CMakeLists.txt: Add the Source/WebCore/platform/gamepad/ directory to
WebKit2_INCLUDE_DIRECTORIES. Add GamepadData.cpp, UIGamepad.cpp files to the build.
* UIProcess/Gamepad/UIGamepadProvider.cpp: Don't include Cocoa-specific
HIDGamepadProvider.h file. Update methods for the UIGamepadProvider class.
(WebKit::UIGamepadProvider::platformWebPageProxyForGamepadInput):
(WebKit::UIGamepadProvider::platformStartMonitoringGamepads): Deleted.
(WebKit::UIGamepadProvider::platformStopMonitoringGamepads): Deleted.
(WebKit::UIGamepadProvider::platformGamepads): Deleted.
(WebKit::UIGamepadProvider::platformWebProcessProxyForGamepadInput): Deleted.
2016-09-05 Tim Horton <timothy_horton@apple.com>
Remove some dead code in ViewGestureControllerMac
https://bugs.webkit.org/show_bug.cgi?id=161616
Reviewed by Darin Adler.
* UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::endSwipeGesture):
All other LEGACY_SWIPE_SHADOW_STYLE code has been removed, except for this.
2016-09-05 Darin Adler <darin@apple.com>
More bindings improvements, particularly things not needed for JavaScript bindings
https://bugs.webkit.org/show_bug.cgi?id=161572
Reviewed by Sam Weinig.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMImplementation.cpp:
(webkit_dom_dom_implementation_has_feature): Call SVGTests::hasFeatureForLegacyBindings
instead of DOMImplementation::hasFeature. Also removed JSMainThreadNullState
since this does not do anything that can invoke JavaScript.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDeprecated.cpp:
(webkit_dom_document_get_default_charset): Call defaultCharsetForLegacyBindings.
Also removed JSMainThreadNullState.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentType.cpp:
(webkit_dom_document_type_get_entities): Changed to simply return nullptr; same behavior
as before, but with no dependency on WebCore. Also removed JSMainThreadNullState.
(webkit_dom_document_type_get_notations): Ditto.
(webkit_dom_document_type_get_internal_subset): Ditto.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNode.cpp:
(webkit_dom_node_is_supported): Call SVGTests::hasFeatureForLegacyBindings
instead of Node::isSupportedForBindings. Also removed JSMainThreadNullState.
2016-09-05 Michael Catanzaro <mcatanzaro@igalia.com>
Unreviewed, update stale variable name
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseCreateWebPage):
2016-08-31 Filip Pizlo <fpizlo@apple.com>
Butterflies should be allocated in Auxiliary MarkedSpace instead of CopiedSpace and we should rewrite as much of the GC as needed to make this not a regression
https://bugs.webkit.org/show_bug.cgi?id=160125
Reviewed by Geoffrey Garen and Keith Miller.
Just rewiring some #includes.
* UIProcess/ViewGestureController.cpp:
* UIProcess/WebPageProxy.cpp:
* UIProcess/WebProcessPool.cpp:
* UIProcess/WebProcessProxy.cpp:
* WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:
* WebProcess/Plugins/Netscape/JSNPObject.cpp:
2016-09-05 Michael Catanzaro <mcatanzaro@igalia.com>
Unreviewed error message typo fix
* WebProcess/UserContent/WebUserContentController.cpp:
(WebKit::WebUserContentController::removeUserContentWorlds):
2016-09-05 Dan Bernstein <mitz@apple.com>
[Cocoa] Drop ".Development" suffix from XPC service bundle IDs, leave it only on the executable
https://bugs.webkit.org/show_bug.cgi?id=161575
Reviewed by Sam Weinig.
Append the ".Development" suffix to the executable names, but not to the bundle names and
bundle IDs.
* Configurations/BaseTarget.xcconfig: No need for a preprocessor definition anymore.
* Configurations/BaseXPCService.xcconfig: Set EXECUTABLE_SUFFIX.
* Configurations/DatabaseService.xcconfig: No need to suffix the service name and bundle ID.
* Configurations/NetworkService.xcconfig: Ditto.
* Configurations/PluginService.32.xcconfig: Ditto.
* Configurations/PluginService.64.xcconfig: Ditto.
* Configurations/WebContentService.xcconfig: Ditto.
* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::serviceName): Service names are no longer suffixed.
* WebKit2.xcodeproj/project.pbxproj: Ditto.
2016-09-05 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
[GTK] GL_PACK_ROW_LENGTH is not available in GLES2
https://bugs.webkit.org/show_bug.cgi?id=161484
Reviewed by Carlos Garcia Campos.
* UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:
(WebKit::AcceleratedBackingStoreWayland::paint): when under GLES2 we cannot rely on
GL_PACK_ROW_LENGTH; use glReadPixel directly when stride matches width, read line
by line manually otherwise. Colour conversion is also required to get the data out
correctly.
2016-09-05 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] SetNativeSurfaceHandleForCompositing should not be compiled in for wayland build
https://bugs.webkit.org/show_bug.cgi?id=161483
Reviewed by Žan Doberšek.
SetNativeSurfaceHandleForCompositing and DestroyNativeSurfaceHandleForCompositing messages should only be used
for GTK+ port when compiled with OpenGL and X11 enabled and redirected XComposite window disabled. So, we should
use USE(TEXTURE_MAPPER) && PLATFORM(GTK) && PLATFORM(X11) && !USE(REDIRECTED_XCOMPOSITE_WINDOW) consistently.
This fixes the build when building the GTK+ port with Wayland enabled and X11 disabled.
* UIProcess/AcceleratedDrawingAreaProxy.cpp:
(WebKit::AcceleratedDrawingAreaProxy::didUpdateBackingStoreState):
* UIProcess/AcceleratedDrawingAreaProxy.h:
* WebProcess/WebPage/AcceleratedDrawingArea.cpp:
(WebKit::AcceleratedDrawingArea::enterAcceleratedCompositingMode):
* WebProcess/WebPage/AcceleratedDrawingArea.h:
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
* WebProcess/WebPage/DrawingArea.h:
* WebProcess/WebPage/DrawingArea.messages.in:
* WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
* WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
2016-09-05 Zan Dobersek <zdobersek@igalia.com>
[GObject bindings] override handleEvent() method in GObjectEventListener
https://bugs.webkit.org/show_bug.cgi?id=161593
Reviewed by Carlos Garcia Campos.
* WebProcess/InjectedBundle/API/gtk/DOM/GObjectEventListener.h: Override
the handleMethod() which is inherited from the WebCore EventListener class.
Suppresses the -Winconsistent-missing-override warning that Clang propagates.
2016-09-04 Joseph Pecoraro <pecoraro@apple.com>
Remove unnecessary RetainPtr.
Review comments on earlier change.
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _defaultAnimationController]):
2016-09-04 Dan Bernstein <mitz@apple.com>
[Cocoa] Wrapping XPC service execution in os_activity is no longer needed
https://bugs.webkit.org/show_bug.cgi?id=161577
Reviewed by Sam Weinig.
Removed code that created an os_activity around the execution of the XPC service
code, because this workaround is no longer needed.
* DatabaseProcess/EntryPoint/mac/XPCService/DatabaseServiceEntryPoint.mm:
(DatabaseServiceInitializer):
* NetworkProcess/EntryPoint/mac/XPCService/NetworkServiceEntryPoint.mm:
(NetworkServiceInitializer):
* PluginProcess/EntryPoint/mac/XPCService/PluginServiceEntryPoint.mm:
(PluginServiceInitializer):
* WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm:
(WebContentServiceInitializer):
2016-09-04 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r205415.
https://bugs.webkit.org/show_bug.cgi?id=161573
Many bots see inspector test failures, rolling out now and
investigating later. (Requested by brrian on #webkit).
Reverted changeset:
"Web Inspector: unify Main.html and Test.html sources and
generate different copies with the preprocessor"
https://bugs.webkit.org/show_bug.cgi?id=161212
http://trac.webkit.org/changeset/205415
2016-09-01 Brian Burg <bburg@apple.com>
Web Inspector: unify Main.html and Test.html sources and generate different copies with the preprocessor
https://bugs.webkit.org/show_bug.cgi?id=161212
<rdar://problem/28017961>
Reviewed by Joseph Pecoraro.
Rearrange CMake rules so that most Inspector UI work is done in WebInspectorUI.
* PlatformGTK.cmake:
- Move the list of Inspector resources into WebInspectorUI/CMakeLists.txt.
- Move generation of InspectorGResourceBundle into WebInspectorUI.
- Copy over InspectorGResourceBundle.c into WebKit2's Derived Sources before compiling.
2016-09-03 Wenson Hsieh <wenson_hsieh@apple.com>
Refactor the heuristic for showing media controls to take all media sessions into account
https://bugs.webkit.org/show_bug.cgi?id=161503
<rdar://problem/28033783>
Reviewed by Darin Adler.
Adds an SPI testing hook for sending the element ID of the currently controlled video element from the web
process to the UI process. See VideoControlsManager.mm in Tools/TestWebKitAPI/ for usage.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _requestControlledElementID]):
(-[WKWebView _handleControlledElementIDResponse:]):
(-[WKWebView _hasActiveVideoForControlsManager]): Deleted.
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/Cocoa/WebPlaybackSessionManagerProxy.h:
* UIProcess/Cocoa/WebPlaybackSessionManagerProxy.messages.in:
* UIProcess/Cocoa/WebPlaybackSessionManagerProxy.mm:
(WebKit::WebPlaybackSessionManagerProxy::handleControlledElementIDResponse):
(WebKit::WebPlaybackSessionManagerProxy::requestControlledElementID):
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::requestControlledElementID):
(WebKit::WebPageProxy::handleControlledElementIDResponse):
* UIProcess/WebPageProxy.h:
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::handleControlledElementIDResponse):
* WebProcess/cocoa/WebPlaybackSessionManager.h:
* WebProcess/cocoa/WebPlaybackSessionManager.messages.in:
* WebProcess/cocoa/WebPlaybackSessionManager.mm:
(WebKit::WebPlaybackSessionManager::handleControlledElementIDRequest):
2016-09-03 Darin Adler <darin@apple.com>
Streamline DOMImplementation, and move it to our new DOM exception system
https://bugs.webkit.org/show_bug.cgi?id=161295
Reviewed by Ryosuke Niwa.
* UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::isDisplayingMarkupDocument): Use isXMLMIMEType in its
new location in MIMETypeRegistry rather than in DOMImplementation.
(WebKit::WebFrameProxy::isDisplayingPDFDocument): Removed unneeded redundant
check for empty string, already done by MIMETypeRegistry.
2016-09-03 Brian Weinstein <bweinstein@apple.com>
Implement WebFrameLoaderClient::shouldUseContentExtensionsForURL and consult the InjectedBundlePageLoaderClient.
https://bugs.webkit.org/show_bug.cgi?id=161441
Reviewed by Darin Adler.
WebFrameLoaderClient::shouldUseContentExtensionsForURL only consults the injected bundle, because we don't want to
defer the loading of every main resource to consult with the UI Process about whether or not we should use content
extensions for the load.
* WebProcess/InjectedBundle/API/c/WKBundlePageLoaderClient.h: Bump the latest version to WKBundlePageLoaderClientV9 and
add WKBundlePageShouldUseContentExtensionsForURLCallback.
* WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
(WebKit::InjectedBundlePageLoaderClient::shouldUseContentExtensionsForURL): Ask the client if we should use content
extensions for this URL.
* WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::shouldUseContentExtensionsForURL): Only consult with the injected bundle about whether
or not we should use content extensions for this URL.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMImplementation.cpp:
(webkit_dom_dom_implementation_create_document_type): Updated to work with ExceptionOr.
(webkit_dom_dom_implementation_create_document): Updated to work with ExceptionOr.
(webkit_dom_dom_implementation_create_css_style_sheet): Updated since this function
can no longer raise an exception.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocument.cpp:
(webkit_dom_document_set_xml_standalone): Updated since this function can no longer
raise an exception.
2016-09-03 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Move WebKit2 WebInspector files to #pragma once
https://bugs.webkit.org/show_bug.cgi?id=161550
Reviewed by Darin Adler.
* UIProcess/InspectorServer/WebInspectorServer.h:
* UIProcess/WebInspectorProxy.h:
* UIProcess/gtk/WebInspectorClientGtk.h:
* WebProcess/WebCoreSupport/WebInspectorClient.h:
* WebProcess/WebPage/WebInspector.h:
* WebProcess/WebPage/WebInspectorFrontendAPIDispatcher.h:
* WebProcess/WebPage/WebInspectorUI.h:
2016-09-02 Michael Catanzaro <mcatanzaro@igalia.com>
[GTK] -Wmissing-field-initializers on WaylandCompositor.cpp:295
https://bugs.webkit.org/show_bug.cgi?id=161524
Reviewed by Carlos Garcia Campos.
* UIProcess/gtk/WaylandCompositor.cpp:
2016-09-02 Carlos Garcia Campos <cgarcia@igalia.com>
[Threaded Compositor] Move the viewport controller off the compositing thread
https://bugs.webkit.org/show_bug.cgi?id=161532
Reviewed by Michael Catanzaro.
While working on bug #161242 I've realized that having the view port controller in the compositing thread makes
everything more complex. The viewport controller receives changes about things like contents size, viewport
size, etc. and uses that information to compute the visible contents rect and page scale factor. Then it
notifies back to main thread about the computed visible contents rect and page scale. Those computations are not
heave at all, so they could be done in the main thread and we would avoid communications between the main and
compositing thread in both directions. The main thread needs the visible contents rect to notify the compositing
coordinator and the page cale to scale the page in case of pixed layout. But the compositing thread only needs
to know the effective scale and scroll position. So, instead of going to the compositing thread after every
change that might update the visible contents rect and page scale factor, we could do those calculations in the
main thread and only notify the compositing thread about the actual changes in the scroll position and effective scale.
* Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
(WebKit::CoordinatedGraphicsScene::createTilesIfNeeded): Return early if backingStore is nullptr, which can
happen if the layer shouldn't have a backing store and was removed by the previous call to prepareContentBackingStore().
(WebKit::CoordinatedGraphicsScene::updateTilesIfNeeded): Ditto.
* Shared/CoordinatedGraphics/SimpleViewportController.cpp:
(WebKit::SimpleViewportController::SimpleViewportController): Remove the client since we no longer need to
notify about changes.
(WebKit::SimpleViewportController::didChangeViewportSize): Remove call to syncVisibleContents().
(WebKit::SimpleViewportController::didChangeContentsSize): Ditto.
(WebKit::SimpleViewportController::didChangeViewportAttributes): Ditto.
(WebKit::SimpleViewportController::didScroll): Removed unused scrollBy methods and renamed scrollTo as
didiScroll for consistency. Save the position without calling boundContentsPosition, because that's already
donde when the position is used to compute the contents visible rectangle.
(WebKit::SimpleViewportController::visibleContentsRect): No need to notify about the changes.
(WebKit::SimpleViewportController::visibleContentsSize): Deleted.
* Shared/CoordinatedGraphics/SimpleViewportController.h:
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::create): Pass a reference to the client instead of a pointer. It's no longer
possible to have a valid pointer when the object has been destroyed, so we can better use a reference now.
(WebKit::ThreadedCompositor::ThreadedCompositor): Ditto.
(WebKit::ThreadedCompositor::~ThreadedCompositor): Remove assert.
(WebKit::ThreadedCompositor::invalidate): No need to invalidate the client.
(WebKit::ThreadedCompositor::setScaleFactor): Set the effective scale factor that should be used for rendering.
(WebKit::ThreadedCompositor::setScrollPosition): Set the current scroll position and effective scale factor.
(WebKit::ThreadedCompositor::setViewportSize): Set the viewport size and effective scale factor.
(WebKit::ThreadedCompositor::renderNextFrame): Update m_client use that is no longer a pointer.
(WebKit::ThreadedCompositor::commitScrollOffset): Ditto.
(WebKit::ThreadedCompositor::renderLayerTree): Call glViewport after a resize and use m_viewportSize,
m_scrollPosition and m_scaleFactor members.
(WebKit::ThreadedCompositor::didChangeVisibleRect): Deleted.
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:
(WebKit::ThreadedCoordinatedLayerTreeHost::ThreadedCoordinatedLayerTreeHost): Pass the compositor client as a
reference to ThreadedCompositor constructor.
(WebKit::ThreadedCoordinatedLayerTreeHost::scrollNonCompositedContents): Update the viewport and call didChangeViewport().
(WebKit::ThreadedCoordinatedLayerTreeHost::contentsSizeChanged): Ditto.
(WebKit::ThreadedCoordinatedLayerTreeHost::deviceOrPageScaleFactorChanged): Pass the effective scale factor to
the compositor.
(WebKit::ThreadedCoordinatedLayerTreeHost::sizeDidChange): Update the viewport, the compositor and call didChangeViewport().
(WebKit::ThreadedCoordinatedLayerTreeHost::didChangeViewportProperties): Update the viewport and call didChangeViewport().
(WebKit::ThreadedCoordinatedLayerTreeHost::didChangeViewport): Notify the compositing coordinator about the new
visible contents rectangle, and update the threaded compositor if needed.
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
2016-09-02 Beth Dakin <bdakin@apple.com>
Need to updateEditorState if an element change edit-ability without changing
selection
https://bugs.webkit.org/show_bug.cgi?id=161546
-and corresponding-
rdar://problem/27806012
Reviewed by Ryosuke Niwa.
Every time WebPage::editorState() is called, we now save whether the last state
was contentEditable. That way in updateEditorStateAfterLayoutIfNeeded() we can
assess whether or not edit-ability has changed.
* WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient:: updateEditorStateAfterLayoutIfEditabilityChanged):
* WebProcess/WebCoreSupport/WebEditorClient.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::editorState):
(WebKit::WebPage:: updateEditorStateAfterLayoutIfEditabilityChanged):
(WebKit::WebPage::didStartPageTransition):
* WebProcess/WebPage/WebPage.h:
2016-09-02 Jonathan Bedard <jbedard@apple.com>
WebKitTestRunner needs layoutTestController.setDashboardCompatibilityMode
https://bugs.webkit.org/show_bug.cgi?id=42547
Reviewed by Darin Adler.
Added access to setUseDashBoardCompatibilityMode for WebKit2.
Note: this bug mistakenly called this function setDashboardCompatibilityMode, it is actually setUseDashboardCompatibilityMode.
* WebProcess/InjectedBundle/API/c/WKBundle.cpp:
(WKBundleSetUseDashboardCompatibilityMode): Added dashboard compatiblity mode setter.
* WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: Ditto.
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::setUseDashboardCompatibilityMode): Ditto.
* WebProcess/InjectedBundle/InjectedBundle.h: Ditto.
2016-09-02 Joseph Pecoraro <pecoraro@apple.com>
[Mac] RetainPtr misuse, AnimationController leaks
https://bugs.webkit.org/show_bug.cgi?id=161552
Reviewed by Tim Horton.
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _defaultAnimationController]):
2016-09-02 Joseph Pecoraro <pecoraro@apple.com>
[Mac] RetainPtr misuse, DDActionContext leaks
https://bugs.webkit.org/show_bug.cgi?id=161551
Reviewed by Tim Horton.
* Platform/mac/MenuUtilities.mm:
(WebKit::menuItemForTelephoneNumber):
(WebKit::menuForTelephoneNumber):
2016-09-02 Joseph Pecoraro <pecoraro@apple.com>
Fix Mac CMake build, missing _WKRemoteWebInspectorViewController.mm
Unreviewed build fix.
* PlatformMac.cmake:
2016-09-02 Jer Noble <jer.noble@apple.com>
Unreviewed build fix; partial roll out of r205365 to remove unintentional change in WKWebView.mm.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
2016-09-02 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: If inspector process crashes, re-inspecting the page does not work
https://bugs.webkit.org/show_bug.cgi?id=161502
<rdar://problem/28120368>
Reviewed by Brian Burg.
This is an issue on Mac because WebInspectorProxyMac's platformDidClose
doesn't immediately get rid of the WKWebView for the inspector. This is
intended so that a quick close and reopen of Web Inspector is faster,
however in the case where the WebPage under the WKWebView crashed, we
actually should clear things instead of using the timer path. Provide
a stronger platform close handler when the inspector page crashed.
* UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::closeForCrash):
(WebKit::webProcessDidCrash):
(WebKit::WebInspectorProxy::platformDidCloseForCrash):
Go through a stronger path when the web process crashes.
Some platforms may want to handle this differently then the user
closing a web inspector window.
* UIProcess/WebInspectorProxy.h:
* UIProcess/efl/WebInspectorProxyEfl.cpp:
(WebKit::WebInspectorProxy::platformDidCloseForCrash):
* UIProcess/gtk/WebInspectorProxyGtk.cpp:
(WebKit::WebInspectorProxy::platformDidCloseForCrash):
These platforms do not need to do anything special.
* UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::closeTimerFired):
Loosen this code. There is no need for it to be so strict.
(WebKit::WebInspectorProxy::platformDidCloseForCrash):
If the inspector page crashed, close our handles immediately.
2016-09-02 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Provide a way to open an inspector frontend for a remote target
https://bugs.webkit.org/show_bug.cgi?id=161515
<rdar://problem/13182127>
Reviewed by Brian Burg.
Provide an interface to open a Web Inspector window/webView for a
remote debuggable. Unlike the local Web Inspector, the remote
debuggable may be either a JSContext or WebPage, and may only
support an older version of the protocol. The Inspector frontend
already supports these configurations.
This adds new RemoteWebInspector/Proxy classes that mirror the
WebInspector/Proxy classes for local inspection, but have
slightly different behavior as the inspected target is not
directly available (and may not be a web page).
The remote and local classes share a lot of inspector
frontend implementation:
- share most of the inspector frontend host implementation
- share much of the frontend webview/window handling
- use an inspector process for the frontend page
But remains separate in some ways:
- inspected target is unavailable
- docking is never available
- a few inspector frontend host methods are duplicated
- some of the webview/window handling is duplicated
* UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.h: Added.
* UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm: Added.
(-[_WKRemoteWebInspectorViewController init]):
(-[_WKRemoteWebInspectorViewController window]):
(-[_WKRemoteWebInspectorViewController webView]):
(-[_WKRemoteWebInspectorViewController loadForDebuggableType:backendCommandsURL:]):
(-[_WKRemoteWebInspectorViewController close]):
(-[_WKRemoteWebInspectorViewController show]):
(-[_WKRemoteWebInspectorViewController sendMessageToFrontend:]):
(-[_WKRemoteWebInspectorViewController sendMessageToBackend:]):
(-[_WKRemoteWebInspectorViewController closeFromFrontend]):
The interface that may be used to open an inspector window for
a remote debuggable. There are only a few delegates to handle
sending messages to the backend and knowing if the frontend
closed itself (InspectorFrontendHost.closeWindow() or crashed).
* UIProcess/WebInspectorUtilities.h:
* UIProcess/WebInspectorUtilities.cpp: Added.
(WebKit::pageLevelMap):
(WebKit::inspectorLevelForPage):
(WebKit::inspectorPageGroupIdentifierForPage):
(WebKit::trackInspectorPage):
(WebKit::untrackInspectorPage):
(WebKit::inspectorProcessPool):
(WebKit::isInspectorProcessPool):
(WebKit::isInspectorPage):
Extract utilities for determining if a page contains an inspector frontend.
Previously this was part of WebInspectorProxy and subclasses but can
now be used by multiple classes.
* UIProcess/WebInspectorProxy.h:
* UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::inspectionLevel):
(WebKit::WebInspectorProxy::invalidate):
(WebKit::WebInspectorProxy::isMainOrTestInspectorPage):
(WebKit::decidePolicyForNavigationAction):
(WebKit::WebInspectorProxy::eagerlyCreateInspectorPage):
(WebKit::WebInspectorProxy::didClose):
(WebKit::pageLevelMap): Deleted.
(WebKit::WebInspectorProxy::inspectorPageGroupIdentifier): Deleted.
(WebKit::WebInspectorProxy::inspectorProcessPool): Deleted.
(WebKit::WebInspectorProxy::isInspectorProcessPool): Deleted.
(WebKit::WebInspectorProxy::isInspectorPage): Deleted.
(WebKit::isMainOrTestInspectorPage): Deleted.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::getLaunchOptions):
* UIProcess/efl/WebInspectorProxyEfl.cpp:
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
* UIProcess/gtk/WebInspectorProxyGtk.cpp:
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
Extract methods to utilities and use them.
Also address an issue where WebInspectorProxy was untracking
the wrong page. It should have been untracking the inspector
page but was untracking the inspected page.
* UIProcess/RemoteWebInspectorProxy.cpp: Added.
(WebKit::RemoteWebInspectorProxy::RemoteWebInspectorProxy):
(WebKit::RemoteWebInspectorProxy::~RemoteWebInspectorProxy):
(WebKit::RemoteWebInspectorProxy::invalidate):
(WebKit::RemoteWebInspectorProxy::load):
(WebKit::RemoteWebInspectorProxy::closeFromBackend):
(WebKit::RemoteWebInspectorProxy::closeFromCrash):
(WebKit::RemoteWebInspectorProxy::show):
(WebKit::RemoteWebInspectorProxy::sendMessageToFrontend):
(WebKit::RemoteWebInspectorProxy::frontendDidClose):
(WebKit::RemoteWebInspectorProxy::bringToFront):
(WebKit::RemoteWebInspectorProxy::save):
(WebKit::RemoteWebInspectorProxy::append):
(WebKit::RemoteWebInspectorProxy::startWindowDrag):
(WebKit::RemoteWebInspectorProxy::openInNewTab):
(WebKit::RemoteWebInspectorProxy::sendMessageToBackend):
(WebKit::RemoteWebInspectorProxy::createFrontendPageAndWindow):
(WebKit::RemoteWebInspectorProxy::closeFrontendPageAndWindow):
This class behaves like WebInspectorProxy but without having a
reference to the inspected target. It communicates with
RemoteInspectorUI in an Inspector process to send and receive
frontend messages. What can't be easily shared is duplicated.
* UIProcess/mac/RemoteWebInspectorProxyMac.mm: Added.
(-[WKRemoteWebInspectorProxyObjCAdapter initWithRemoteWebInspectorProxy:]):
(-[WKRemoteWebInspectorProxyObjCAdapter webViewWebContentProcessDidTerminate:]):
(-[WKRemoteWebInspectorProxyObjCAdapter webView:decidePolicyForNavigationAction:decisionHandler:]):
(WebKit::RemoteWebInspectorProxy::platformCreateFrontendPageAndWindow):
(WebKit::RemoteWebInspectorProxy::platformCloseFrontendPageAndWindow):
(WebKit::RemoteWebInspectorProxy::platformBringToFront):
(WebKit::RemoteWebInspectorProxy::platformSave):
(WebKit::RemoteWebInspectorProxy::platformAppend):
(WebKit::RemoteWebInspectorProxy::platformStartWindowDrag):
(WebKit::RemoteWebInspectorProxy::platformOpenInNewTab):
Platform implementation for the bits that are platform specific.
What can't be easily shared is duplicated. Ideally we will
eventually share this with WebInspectorProxyMac.
* UIProcess/mac/WKWebInspectorWKWebView.h:
* UIProcess/mac/WKWebInspectorWKWebView.mm: Added.
(WebKit::getWindowFrame):
(WebKit::setWindowFrame):
(WebKit::exceededDatabaseQuota):
(WebKit::runOpenPanel):
(-[WKWebInspectorWKWebView initWithFrame:configuration:]):
(-[WKWebInspectorWKWebView tag]):
Extract Mac platform code for the inspector webview from WebInspectorProxyMac.
* UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::closeTimerFired):
(WebKit::WebInspectorProxy::createInspectorWindow):
(WebKit::WebInspectorProxy::createFrontendConfiguration):
(WebKit::WebInspectorProxy::createFrontendWindow):
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
(-[WKWebInspectorWKWebView tag]): Deleted.
(WebKit::getWindowFrame): Deleted.
(WebKit::setWindowFrame): Deleted.
(WebKit::exceededDatabaseQuota): Deleted.
(WebKit::runOpenPanel): Deleted.
Extact Mac platform code to be shared for construction of a
WKWebViewConfiguration, WKWebView, and NSWindow for an inspector webview.
* WebProcess/WebPage/RemoteWebInspectorUI.cpp: Added.
(WebKit::RemoteWebInspectorUI::create):
(WebKit::RemoteWebInspectorUI::RemoteWebInspectorUI):
(WebKit::RemoteWebInspectorUI::initialize):
(WebKit::RemoteWebInspectorUI::didSave):
(WebKit::RemoteWebInspectorUI::didAppend):
(WebKit::RemoteWebInspectorUI::sendMessageToFrontend):
(WebKit::RemoteWebInspectorUI::sendMessageToBackend):
(WebKit::RemoteWebInspectorUI::windowObjectCleared):
(WebKit::RemoteWebInspectorUI::frontendLoaded):
(WebKit::RemoteWebInspectorUI::startWindowDrag):
(WebKit::RemoteWebInspectorUI::moveWindowBy):
(WebKit::RemoteWebInspectorUI::bringToFront):
(WebKit::RemoteWebInspectorUI::closeWindow):
(WebKit::RemoteWebInspectorUI::openInNewTab):
(WebKit::RemoteWebInspectorUI::save):
(WebKit::RemoteWebInspectorUI::append):
(WebKit::RemoteWebInspectorUI::inspectedURLChanged):
* WebProcess/WebPage/RemoteWebInspectorUI.h: Added.
* WebProcess/WebPage/RemoteWebInspectorUI.messages.in: Added.
* UIProcess/RemoteWebInspectorProxy.messages.in: Added.
* UIProcess/RemoteWebInspectorProxy.mm: Added.
Inspector frontend client that knows to talk
with a RemoteWebInspectorProxy instead of a WebInspectorProxy.
* WebProcess/WebPage/WebInspectorUI.cpp:
* WebProcess/WebPage/WebInspectorUI.h:
* WebProcess/WebPage/mac/WebInspectorUIMac.mm:
(WebKit::webInspectorUILocalizedStringsURL):
(WebKit::WebInspectorUI::localizedStringsURL):
(WebKit::RemoteWebInspectorUI::localizedStringsURL):
Simplify localized string URL lookup.
* DerivedSources.make:
* WebKit2.xcodeproj/project.pbxproj:
New files.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
(WebKit::WebPage::~WebPage):
(WebKit::WebPage::remoteInspectorUI):
(WebKit::WebPage::didReceiveMessage):
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::isInspectorPage):
An InspectorProcess WebPage may have either a WebInspectorUI or a RemoteWebInspectorUI.
2016-07-08 Jer Noble <jer.noble@apple.com>
Refactor WebPlaybackSessionModelMediaElement to be client based.
https://bugs.webkit.org/show_bug.cgi?id=159580
Reviewed by Eric Carlson.
Adopt the changes made in the WebPlaybackSessionModel,Interface and WebVideoFullscreenModel,Interface
in the WebPlaybackSessionManager,Proxy classes.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]): Deleted.
* UIProcess/Cocoa/WebPlaybackSessionManagerProxy.h:
* UIProcess/Cocoa/WebPlaybackSessionManagerProxy.mm:
(WebKit::WebPlaybackSessionModelContext::addClient):
(WebKit::WebPlaybackSessionModelContext::removeClient):
(WebKit::WebPlaybackSessionModelContext::setDuration):
(WebKit::WebPlaybackSessionModelContext::setCurrentTime):
(WebKit::WebPlaybackSessionModelContext::setBufferedTime):
(WebKit::WebPlaybackSessionModelContext::setRate):
(WebKit::WebPlaybackSessionModelContext::setSeekableRanges):
(WebKit::WebPlaybackSessionModelContext::setCanPlayFastReverse):
(WebKit::WebPlaybackSessionModelContext::setAudioMediaSelectionOptions):
(WebKit::WebPlaybackSessionModelContext::setLegibleMediaSelectionOptions):
(WebKit::WebPlaybackSessionModelContext::setExternalPlayback):
(WebKit::WebPlaybackSessionModelContext::setWirelessVideoPlaybackDisabled):
(WebKit::WebPlaybackSessionManagerProxy::createModelAndInterface):
(WebKit::WebPlaybackSessionManagerProxy::removeClientForContext):
(WebKit::WebPlaybackSessionManagerProxy::setCurrentTime):
(WebKit::WebPlaybackSessionManagerProxy::setBufferedTime):
(WebKit::WebPlaybackSessionManagerProxy::setSeekableRangesVector):
(WebKit::WebPlaybackSessionManagerProxy::setCanPlayFastReverse):
(WebKit::WebPlaybackSessionManagerProxy::setAudioMediaSelectionOptions):
(WebKit::WebPlaybackSessionManagerProxy::setLegibleMediaSelectionOptions):
(WebKit::WebPlaybackSessionManagerProxy::setExternalPlaybackProperties):
(WebKit::WebPlaybackSessionManagerProxy::setWirelessVideoPlaybackDisabled):
(WebKit::WebPlaybackSessionManagerProxy::setDuration):
(WebKit::WebPlaybackSessionManagerProxy::setRate):
* UIProcess/Cocoa/WebVideoFullscreenManagerProxy.h:
* UIProcess/Cocoa/WebVideoFullscreenManagerProxy.messages.in:
* UIProcess/Cocoa/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenModelContext::addClient):
(WebKit::WebVideoFullscreenModelContext::removeClient):
(WebKit::WebVideoFullscreenManagerProxy::setHasVideo):
(WebKit::WebVideoFullscreenManagerProxy::setVideoDimensions):
* WebProcess/cocoa/WebPlaybackSessionManager.h:
* WebProcess/cocoa/WebPlaybackSessionManager.mm:
(WebKit::WebPlaybackSessionInterfaceContext::durationChanged):
(WebKit::WebPlaybackSessionInterfaceContext::currentTimeChanged):
(WebKit::WebPlaybackSessionInterfaceContext::bufferedTimeChanged):
(WebKit::WebPlaybackSessionInterfaceContext::rateChanged):
(WebKit::WebPlaybackSessionInterfaceContext::seekableRangesChanged):
(WebKit::WebPlaybackSessionInterfaceContext::canPlayFastReverseChanged):
(WebKit::WebPlaybackSessionInterfaceContext::audioMediaSelectionOptionsChanged):
(WebKit::WebPlaybackSessionInterfaceContext::legibleMediaSelectionOptionsChanged):
(WebKit::WebPlaybackSessionInterfaceContext::externalPlaybackChanged):
(WebKit::WebPlaybackSessionInterfaceContext::wirelessVideoPlaybackDisabledChanged):
(WebKit::WebPlaybackSessionManager::~WebPlaybackSessionManager):
(WebKit::WebPlaybackSessionManager::createModelAndInterface):
(WebKit::WebPlaybackSessionManager::removeContext):
(WebKit::WebPlaybackSessionManager::durationChanged):
(WebKit::WebPlaybackSessionManager::currentTimeChanged):
(WebKit::WebPlaybackSessionManager::bufferedTimeChanged):
(WebKit::WebPlaybackSessionManager::rateChanged):
(WebKit::WebPlaybackSessionManager::seekableRangesChanged):
(WebKit::WebPlaybackSessionManager::canPlayFastReverseChanged):
(WebKit::WebPlaybackSessionManager::audioMediaSelectionOptionsChanged):
(WebKit::WebPlaybackSessionManager::legibleMediaSelectionOptionsChanged):
(WebKit::WebPlaybackSessionManager::externalPlaybackChanged):
(WebKit::WebPlaybackSessionManager::wirelessVideoPlaybackDisabledChanged):
(WebKit::WebPlaybackSessionInterfaceContext::setDuration): Deleted.
(WebKit::WebPlaybackSessionInterfaceContext::setCurrentTime): Deleted.
(WebKit::WebPlaybackSessionInterfaceContext::setBufferedTime): Deleted.
(WebKit::WebPlaybackSessionInterfaceContext::setRate): Deleted.
(WebKit::WebPlaybackSessionInterfaceContext::setSeekableRanges): Deleted.
(WebKit::WebPlaybackSessionInterfaceContext::setCanPlayFastReverse): Deleted.
(WebKit::WebPlaybackSessionInterfaceContext::setAudioMediaSelectionOptions): Deleted.
(WebKit::WebPlaybackSessionInterfaceContext::setLegibleMediaSelectionOptions): Deleted.
(WebKit::WebPlaybackSessionInterfaceContext::setExternalPlayback): Deleted.
(WebKit::WebPlaybackSessionInterfaceContext::setWirelessVideoPlaybackDisabled): Deleted.
(WebKit::WebPlaybackSessionManager::setDuration): Deleted.
(WebKit::WebPlaybackSessionManager::setCurrentTime): Deleted.
(WebKit::WebPlaybackSessionManager::setBufferedTime): Deleted.
(WebKit::WebPlaybackSessionManager::setRate): Deleted.
(WebKit::WebPlaybackSessionManager::setSeekableRanges): Deleted.
(WebKit::WebPlaybackSessionManager::setCanPlayFastReverse): Deleted.
(WebKit::WebPlaybackSessionManager::setAudioMediaSelectionOptions): Deleted.
(WebKit::WebPlaybackSessionManager::setLegibleMediaSelectionOptions): Deleted.
(WebKit::WebPlaybackSessionManager::setExternalPlayback): Deleted.
(WebKit::WebPlaybackSessionManager::setWirelessVideoPlaybackDisabled): Deleted.
* WebProcess/cocoa/WebVideoFullscreenManager.h:
(WebKit::WebVideoFullscreenInterfaceContext::create):
* WebProcess/cocoa/WebVideoFullscreenManager.mm:
(WebKit::WebVideoFullscreenInterfaceContext::WebVideoFullscreenInterfaceContext):
(WebKit::WebVideoFullscreenInterfaceContext::hasVideoChanged):
(WebKit::WebVideoFullscreenInterfaceContext::videoDimensionsChanged):
(WebKit::WebVideoFullscreenManager::~WebVideoFullscreenManager):
(WebKit::WebVideoFullscreenManager::createModelAndInterface):
(WebKit::WebVideoFullscreenManager::removeContext):
(WebKit::WebVideoFullscreenManager::hasVideoChanged):
(WebKit::WebVideoFullscreenManager::videoDimensionsChanged):
(WebKit::WebVideoFullscreenInterfaceContext::resetMediaState): Deleted.
(WebKit::WebVideoFullscreenInterfaceContext::setDuration): Deleted.
(WebKit::WebVideoFullscreenInterfaceContext::setCurrentTime): Deleted.
(WebKit::WebVideoFullscreenInterfaceContext::setBufferedTime): Deleted.
(WebKit::WebVideoFullscreenInterfaceContext::setRate): Deleted.
(WebKit::WebVideoFullscreenInterfaceContext::setVideoDimensions): Deleted.
(WebKit::WebVideoFullscreenInterfaceContext::setSeekableRanges): Deleted.
(WebKit::WebVideoFullscreenInterfaceContext::setCanPlayFastReverse): Deleted.
(WebKit::WebVideoFullscreenInterfaceContext::setAudioMediaSelectionOptions): Deleted.
(WebKit::WebVideoFullscreenInterfaceContext::setLegibleMediaSelectionOptions): Deleted.
(WebKit::WebVideoFullscreenInterfaceContext::setExternalPlayback): Deleted.
(WebKit::WebVideoFullscreenInterfaceContext::setWirelessVideoPlaybackDisabled): Deleted.
(WebKit::WebVideoFullscreenManager::setVideoDimensions): Deleted.
2016-09-02 Zan Dobersek <zdobersek@igalia.com>
Fix GObject bindings build breakage when compiling with ENABLE_USER_TIMING disabled.
Rubber-stamped by Carlos Garcia Campos.
Add additional ENABLE(USER_TIMING) build guards to WebKitDOMPerformance bindings,
avoiding build errors when building with that feature disabled. Previously this
wasn't a problem because the four amended binding functions weren't generated
when the feature was disabled due to the similar use of guards in the Performance.idl
file.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMPerformance.cpp:
(webkit_dom_performance_webkit_mark):
(webkit_dom_performance_webkit_clear_marks):
(webkit_dom_performance_webkit_measure):
(webkit_dom_performance_webkit_clear_measures):
2016-09-02 Zan Dobersek <zdobersek@igalia.com>
Unreviewed GTK+ build fix when compiling with Clang.
* WebProcess/WebPage/gtk/AcceleratedSurface.cpp: Include WebPage.h.
2016-09-01 Yusuke Suzuki <utatane.tea@gmail.com>
Unreviewed, build fix after r205327
* UIProcess/API/gtk/WebKitUIClient.cpp:
2016-09-01 Dan Bernstein <mitz@apple.com>
Build fix.
* Configurations/FeatureDefines.xcconfig:
2016-09-01 Anders Carlsson <andersca@apple.com>
Use WTF::Function for completion handlers in API::UIClient
https://bugs.webkit.org/show_bug.cgi?id=161516
Reviewed by Tim Horton.
* UIProcess/API/APIUIClient.h:
(API::UIClient::runJavaScriptAlert):
(API::UIClient::runJavaScriptConfirm):
(API::UIClient::runJavaScriptPrompt):
(API::UIClient::runBeforeUnloadConfirmPanel):
(API::UIClient::exceededDatabaseQuota):
(API::UIClient::reachedApplicationCacheOriginQuota):
* UIProcess/API/C/WKPage.cpp:
(WebKit::RunBeforeUnloadConfirmPanelResultListener::create):
(WebKit::RunBeforeUnloadConfirmPanelResultListener::RunBeforeUnloadConfirmPanelResultListener):
(WebKit::RunJavaScriptAlertResultListener::create):
(WebKit::RunJavaScriptAlertResultListener::RunJavaScriptAlertResultListener):
(WebKit::RunJavaScriptConfirmResultListener::create):
(WebKit::RunJavaScriptConfirmResultListener::RunJavaScriptConfirmResultListener):
(WebKit::RunJavaScriptPromptResultListener::create):
(WebKit::RunJavaScriptPromptResultListener::RunJavaScriptPromptResultListener):
(WKPageSetPageUIClient):
* UIProcess/Cocoa/UIDelegate.h:
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::UIClient::runJavaScriptAlert):
(WebKit::UIDelegate::UIClient::runJavaScriptConfirm):
(WebKit::UIDelegate::UIClient::runJavaScriptPrompt):
(WebKit::UIDelegate::UIClient::exceededDatabaseQuota):
(WebKit::UIDelegate::UIClient::reachedApplicationCacheOriginQuota):
2016-09-01 JF Bastien <jfbastien@apple.com>
Fix cmake build, missing SecItemShim.messages.in
https://bugs.webkit.org/show_bug.cgi?id=161496
Reviewed by Alex Christensen.
* PlatformMac.cmake:
2016-09-01 Joseph Pecoraro <pecoraro@apple.com>
[Mac] Web Inspector: Remove stale inspector process termination code
https://bugs.webkit.org/show_bug.cgi?id=161465
<rdar://problem/28106584>
Reviewed by Brian Burg.
* UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::didRelaunchInspectorPageProcess): Deleted.
* UIProcess/WebInspectorProxy.h:
* UIProcess/mac/WebInspectorProxyMac.mm:
(-[WKWebInspectorProxyObjCAdapter didRelaunchProcess]): Deleted.
(-[WKWebInspectorWKWebView _didRelaunchProcess]): Deleted.
This code doesn't appear to be run when the WebContent process inside
of an Inspector process crashes. The general WebInspectorProxy has its
own handling of when the page inside an inspector process crashes, so
this Mac specific path appears to be unused and stale.
2016-09-01 Jeremy Huddleston Sequoia <jeremyhu@apple.com>
[GTK] Fix configuration without wayland support
https://bugs.webkit.org/show_bug.cgi?id=161475
WebKit2WaylandClientProtocol.c is a derived source that is created
conditionally on ENABLE_WAYLAND_TARGET. It was being included
in the sources list unconditionally, so configure failed whenever
wayland support was unavailable.
Reviewed by Žan Doberšek.
* PlatformGTK.cmake: Include WebKit2WaylandClientProtocol.c in source list conditional on ENABLE_WAYLAND_TARGET
2016-08-31 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Move GObject DOM bindings to WebKit2 layer and stop auto generating them
https://bugs.webkit.org/show_bug.cgi?id=161438
Reviewed by Michael Catanzaro.
Move all GObject bindings code to WebProcess/InjectedBundle/API/gtk/DOM.
* PlatformGTK.cmake:
* WebProcess/InjectedBundle/API/gtk/DOM:
2016-08-31 Keith Rollin <krollin@apple.com>
WebKit should set a subsystem for os_log so it's easier to filter for WebKit log messages
https://bugs.webkit.org/show_bug.cgi?id=160969
<rdar://problem/26068734>
Reviewed by Simon Fraser.
- Specify a channel when using RELEASE_LOG macros.
- Add some new channels so that we have something to pass to the
RELEASE_LOG macros (ProcessSuspension, IPC, Layers).
- Enable subsystem- and channel-related data and functions when using
RELEASE_LOG macros.
- Use the DECLARE_LOG_CHANNEL, DEFINE_LOG_CHANNEL, and
LOG_CHANNEL_ADDRESS macros that are now defined in WTF.
* NetworkProcess/Downloads/Download.cpp:
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::prepareToSuspend):
(WebKit::NetworkProcess::cancelPrepareToSuspend):
(WebKit::NetworkProcess::processDidResume):
* NetworkProcess/NetworkResourceLoader.cpp:
* Platform/IPC/Connection.cpp:
(IPC::Connection::waitForSyncReply):
* Platform/LogInitialization.h:
* Platform/Logging.cpp:
(WebKit::initializeLogChannelsIfNecessary):
* Platform/Logging.h:
* Platform/foundation/LoggingFoundation.mm:
* Platform/unix/LoggingUnix.cpp:
* Shared/ChildProcess.cpp:
(WebKit::didCloseOnConnectionWorkQueue):
* Shared/WebKit2Initialize.cpp:
(WebKit::InitializeWebKit2):
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::releaseNetworkActivityToken):
(WebKit::NavigationState::didChangeIsLoading):
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::fetchWebsiteData):
(WebKit::NetworkProcessProxy::deleteWebsiteData):
(WebKit::NetworkProcessProxy::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcessProxy::setIsHoldingLockedFiles):
* UIProcess/ProcessThrottler.cpp:
(WebKit::ProcessThrottler::updateAssertionNow):
(WebKit::ProcessThrottler::updateAssertion):
* UIProcess/WebPageProxy.cpp:
* UIProcess/WebProcessPool.cpp:
(WebKit::m_hiddenPageThrottlingTimer):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::fetchWebsiteData):
(WebKit::WebProcessProxy::deleteWebsiteData):
(WebKit::WebProcessProxy::deleteWebsiteDataForOrigins):
(WebKit::WebProcessProxy::didSetAssertionState):
(WebKit::WebProcessProxy::setIsHoldingLockedFiles):
* UIProcess/ios/ProcessAssertionIOS.mm:
(-[WKProcessAssertionBackgroundTaskManager _updateBackgroundTask]):
(WebKit::ProcessAssertion::ProcessAssertion):
* WebProcess/Network/WebLoaderStrategy.cpp:
* WebProcess/Network/WebResourceLoader.cpp:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::layerVolatilityTimerFired):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::actualPrepareToSuspend):
(WebKit::WebProcess::processWillSuspendImminently):
(WebKit::WebProcess::prepareToSuspend):
(WebKit::WebProcess::cancelPrepareToSuspend):
(WebKit::WebProcess::markAllLayersVolatile):
(WebKit::WebProcess::processDidResume):
2016-08-31 Yoav Weiss <yoav@yoav.ws>
Add event support for link preload.
https://bugs.webkit.org/show_bug.cgi?id=158466
Reviewed by Alex Christensen.
* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::maximumBufferingTime): Removed LinkPreload.
2016-08-31 Alex Christensen <achristensen@webkit.org>
Add runtime flag for using URLParser
https://bugs.webkit.org/show_bug.cgi?id=161363
Reviewed by Sam Weinig.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
* NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode):
(WebKit::NetworkProcessCreationParameters::decode):
* NetworkProcess/NetworkProcessCreationParameters.h:
* PlatformEfl.cmake:
* PlatformGTK.cmake:
* PlatformMac.cmake:
* Shared/Cocoa/WebKit2InitializeCocoa.mm: Added.
(WebKit::platformInitializeWebKit2):
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h:
(WebKit::XPCServiceInitializer):
* Shared/WebKit2Initialize.cpp:
(WebKit::InitializeWebKit2):
* Shared/WebKit2Initialize.h:
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
* Shared/efl/WebKit2InitializeEFL.cpp: Added.
(WebKit::platformInitializeWebKit2):
* Shared/gtk/WebKit2InitializeGTK.cpp: Added.
(WebKit::platformInitializeWebKit2):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::createNewWebProcess):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
2016-08-30 Anders Carlsson <andersca@apple.com>
Use Connection::sendWithReply for the SecItem shim messages
https://bugs.webkit.org/show_bug.cgi?id=161419
Reviewed by Tim Horton.
* DerivedSources.make:
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeConnection):
* NetworkProcess/mac/NetworkProcessMac.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcess):
* Shared/mac/SecItemShim.cpp:
(WebKit::workQueue):
(WebKit::sendSecItemRequest):
(WebKit::webSecItemCopyMatching):
(WebKit::webSecItemAdd):
(WebKit::webSecItemUpdate):
(WebKit::webSecItemDelete):
(WebKit::initializeSecItemShim):
(WebKit::responseMap): Deleted.
(WebKit::SecItemShim::singleton): Deleted.
(WebKit::SecItemShim::SecItemShim): Deleted.
(WebKit::generateSecItemRequestID): Deleted.
(WebKit::SecItemShim::secItemResponse): Deleted.
(WebKit::SecItemShim::initialize): Deleted.
(WebKit::SecItemShim::initializeConnection): Deleted.
* Shared/mac/SecItemShim.h:
* Shared/mac/SecItemShim.messages.in: Removed.
* UIProcess/mac/SecItemShimProxy.cpp:
(WebKit::SecItemShimProxy::didReceiveMessage):
(WebKit::SecItemShimProxy::secItemRequest):
* UIProcess/mac/SecItemShimProxy.h:
* UIProcess/mac/SecItemShimProxy.messages.in:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeConnection):
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeProcess):
2016-08-31 Andreas Kling <akling@apple.com>
DOM event handling should pass Event around by reference.
<https://webkit.org/b/161398>
Reviewed by Chris Dumez.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performNonEditingBehaviorForSelector):
2016-08-31 Brady Eidson <beidson@apple.com>
WK2 Gamepad provider on iOS.
https://bugs.webkit.org/show_bug.cgi?id=161412
Reviewed by Tim Horton.
* Configurations/FeatureDefines.xcconfig:
* Platform/spi/ios/UIKitSPI.h:
* UIProcess/Gamepad/UIGamepadProvider.cpp:
* UIProcess/Gamepad/ios/UIGamepadProviderIOS.mm: Copied from Source/WebKit2/UIProcess/Gamepad/mac/UIGamepadProviderMac.mm.
(WebKit::UIGamepadProvider::platformWebPageProxyForGamepadInput):
* UIProcess/Gamepad/mac/UIGamepadProviderMac.mm:
* WebKit2.xcodeproj/project.pbxproj:
2016-08-30 Anders Carlsson <andersca@apple.com>
Try to fix the 32-bit build.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::deleteWebsiteData):
(WebKit::WebProcessProxy::deleteWebsiteDataForOrigins):
* UIProcess/WebProcessProxy.h:
2016-08-30 Anders Carlsson <andersca@apple.com>
Switch more messages over to Connection::sendWithReply
https://bugs.webkit.org/show_bug.cgi?id=161415
Reviewed by Tim Horton.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::~WebProcessProxy):
(WebKit::WebProcessProxy::processWillShutDown):
(WebKit::WebProcessProxy::canTerminateChildProcess):
(WebKit::WebProcessProxy::deleteWebsiteData):
(WebKit::WebProcessProxy::deleteWebsiteDataForOrigins):
(WebKit::generateCallbackID): Deleted.
(WebKit::WebProcessProxy::didDeleteWebsiteData): Deleted.
(WebKit::WebProcessProxy::didDeleteWebsiteDataForOrigins): Deleted.
* UIProcess/WebProcessProxy.h:
* UIProcess/WebProcessProxy.messages.in:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::deleteWebsiteData):
(WebKit::WebProcess::deleteWebsiteDataForOrigins):
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:
2016-08-30 Anders Carlsson <andersca@apple.com>
Add Connection::sendWithReply
https://bugs.webkit.org/show_bug.cgi?id=161399
Reviewed by Tim Horton.
Connection::sendWithReply makes it easy to send a message and process its reply asynchronously on a given WorkQueue or RunLoop.
The reply handler is guaranteed to be called. If the reply is successfully received, it will consist of an std::tuple with the arguments,
otherwise it will be called with Nullopt.
* Platform/IPC/Connection.cpp:
(IPC::Connection::invalidate):
Go through all reply handlers and dispatch them with a null Decoder.
(IPC::Connection::sendMessageWithReply):
Add the reply handler to the m_replyHandlers hash map, and send the message.
(IPC::Connection::processIncomingSyncReply):
Check if the incoming reply has an entry in m_replyHandlers. If it does, dispatch its handler using the given dispatcher.
(IPC::Connection::connectionDidClose):
Go through all reply handlers and dispatch them with a null Decoder.
* Platform/IPC/Connection.h:
(IPC::Connection::sendWithReply):
Encode the message (we use the sync message ID infrastructure for this), then call sendMessageWithReply with a reply handler that
decodes the reply and calls the real reply handler.
* Platform/IPC/HandleMessage.h:
Forward declare Connection.
* UIProcess/Databases/DatabaseProcessProxy.h:
* UIProcess/Network/NetworkProcessProxy.h:
Forward declare WebsiteData.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::~WebProcessProxy):
(WebKit::WebProcessProxy::processWillShutDown):
Remove m_pendingFetchWebsiteDataCallbacks.
(WebKit::WebProcessProxy::fetchWebsiteData):
Use Connection::sendWithReply.
(WebKit::WebProcessProxy::didFetchWebsiteData): Deleted.
* UIProcess/WebProcessProxy.h:
Remove members.
* UIProcess/WebProcessProxy.messages.in:
Remove DidFetchWebsiteData.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::fetchWebsiteData):
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:
Update the FetchWebsiteData message to have a reply parameter.
2016-08-30 Brady Eidson <beidson@apple.com>
Fix runtime error caused by missing export after https://bugs.webkit.org/show_bug.cgi?id=160846
Rubberstamped by Dan Bernstein.
* UIProcess/API/Cocoa/_WKVisitedLinkProvider.mm:
2016-08-30 Brady Eidson <beidson@apple.com>
GameController.framework backend for gamepad API.
https://bugs.webkit.org/show_bug.cgi?id=161086
Reviewed by Alex Christensen.
* UIProcess/API/Cocoa/WKProcessPool.mm:
(+[WKProcessPool _forceGameControllerFramework]):
* UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
* UIProcess/Gamepad/UIGamepadProvider.h:
* UIProcess/Gamepad/cocoa/UIGamepadProviderCocoa.mm: Renamed from Source/WebKit2/UIProcess/Gamepad/mac/UIGamepadProviderHID.cpp.
(WebKit::UIGamepadProvider::setUsesGameControllerFramework):
(WebKit::UIGamepadProvider::platformSetDefaultGamepadProvider):
(WebKit::UIGamepadProvider::platformStopMonitoringInput):
(WebKit::UIGamepadProvider::platformStartMonitoringInput):
* WebKit2.xcodeproj/project.pbxproj:
2016-08-30 Mark Lam <mark.lam@apple.com>
Introduce the ThrowScope and force every throw site to instantiate a ThrowScope.
https://bugs.webkit.org/show_bug.cgi?id=161171
Reviewed by Filip Pizlo and Geoffrey Garen.
* WebProcess/Plugins/Netscape/JSNPMethod.cpp:
(WebKit::callMethod):
* WebProcess/Plugins/Netscape/JSNPObject.cpp:
(WebKit::JSNPObject::callMethod):
(WebKit::JSNPObject::callObject):
(WebKit::JSNPObject::callConstructor):
(WebKit::JSNPObject::getOwnPropertySlot):
(WebKit::JSNPObject::put):
(WebKit::JSNPObject::deleteProperty):
(WebKit::JSNPObject::getOwnPropertyNames):
(WebKit::JSNPObject::propertyGetter):
(WebKit::JSNPObject::methodGetter):
(WebKit::JSNPObject::throwInvalidAccessError):
* WebProcess/Plugins/Netscape/JSNPObject.h:
* WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
(WebKit::NPRuntimeObjectMap::moveGlobalExceptionToExecState):
2016-08-29 Anders Carlsson <andersca@apple.com>
Stop using m_client to indicate whether an IPC::Connection is valid
https://bugs.webkit.org/show_bug.cgi?id=161362
Reviewed by Andreas Kling.
Instead, add an std::atomic<bool> so we can reliably check the state from other threads.
* Platform/IPC/Connection.cpp:
(IPC::Connection::Connection):
(IPC::Connection::invalidate):
(IPC::Connection::connectionDidClose):
(IPC::Connection::dispatchSyncMessage):
(IPC::Connection::dispatchDidReceiveInvalidMessage):
(IPC::Connection::dispatchMessage):
* Platform/IPC/Connection.h:
(IPC::Connection::client):
(IPC::Connection::isValid):
(IPC::Connection::waitForAndDispatchImmediately):
* UIProcess/WebGeolocationManagerProxy.cpp:
(WebKit::WebGeolocationManagerProxy::startUpdating):
(WebKit::WebGeolocationManagerProxy::stopUpdating):
(WebKit::WebGeolocationManagerProxy::setEnableHighAccuracy):
2016-08-30 Carlos Garcia Campos <cgarcia@igalia.com>
REGRESSION(r194846): [GTK] UI process crash visiting sites protected with HTTP auth when using GTK+ < 3.14
https://bugs.webkit.org/show_bug.cgi?id=161385
Reviewed by Antonio Gomes.
Since r194846, we are chaining up webkitWebViewBaseMotionNotifyEvent, but before GTK+ 3.14
GtkWidget::motion_notify_event was nullptr, so it can't be used unconditionally.
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseMotionNotifyEvent):
2016-08-30 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix GTK+ build after r205150.
* UIProcess/API/gtk/WebKitUserContentManager.cpp:
2016-08-29 Gyuyoung Kim <gyuyoung.kim@navercorp.com>
Unreviewed EFL/GTK build fix since r205150
* CMakeLists.txt: Add Shared/FrameInfoData.cpp.
2016-08-29 Anders Carlsson <andersca@apple.com>
Get rid of ChildProcessProxy::fromConnection
https://bugs.webkit.org/show_bug.cgi?id=161357
Reviewed by Tim Horton.
* UIProcess/ChildProcessProxy.cpp:
(WebKit::ChildProcessProxy::fromConnection): Deleted.
* UIProcess/ChildProcessProxy.h:
* UIProcess/WebProcessProxy.h:
(WebKit::WebProcessProxy::fromConnection): Deleted.
2016-08-29 Anders Carlsson <andersca@apple.com>
Remove the last uses of WebProcessProxy::fromConnection
https://bugs.webkit.org/show_bug.cgi?id=161355
Reviewed by Tim Horton.
* UIProcess/WebProcessPool.cpp:
(WebKit::webProcessProxyFromConnection):
(WebKit::WebProcessPool::handleMessage):
(WebKit::WebProcessPool::handleSynchronousMessage):
(WebKit::WebProcessPool::startedUsingGamepads):
(WebKit::WebProcessPool::stoppedUsingGamepads):
2016-08-29 Anders Carlsson <andersca@apple.com>
Get rid of another use of WebProcessProxy::fromConnection
https://bugs.webkit.org/show_bug.cgi?id=161331
Reviewed by Dan Bernstein.
WebUserContentControllerProxy::didPostMessage uses WebProcessProxy::fromConnection to be able to find a WebFrameProxy from
a given frame ID. Since the WebFrameProxy is only used to construct an API::FrameInfo object from, introduce a FrameInfoData object
and fill it in on the web process side and send it over to the UI process where an API::FrameInfo object can be created.
* Shared/FrameInfoData.cpp: Added.
(WebKit::FrameInfoData::encode):
(WebKit::FrameInfoData::decode):
* Shared/FrameInfoData.h: Added.
* UIProcess/API/APIFrameInfo.cpp:
(API::FrameInfo::create):
(API::FrameInfo::FrameInfo):
* UIProcess/API/APIFrameInfo.h:
* UIProcess/API/Cocoa/WKUserContentController.mm:
* UIProcess/UserContent/WebScriptMessageHandler.h:
* UIProcess/UserContent/WebUserContentControllerProxy.cpp:
(WebKit::WebUserContentControllerProxy::didPostMessage):
* UIProcess/UserContent/WebUserContentControllerProxy.h:
* UIProcess/UserContent/WebUserContentControllerProxy.messages.in:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/UserContent/WebUserContentController.cpp:
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::info):
* WebProcess/WebPage/WebFrame.h:
2016-08-29 Anders Carlsson <andersca@apple.com>
Stop using WebProcessProxy::fromConnection in WebPageProxy
https://bugs.webkit.org/show_bug.cgi?id=161322
Reviewed by Dan Bernstein.
The WebPageProxy already knows its WebProcessProxy - no need to look it up from the connection.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::handleMessage):
(WebKit::WebPageProxy::handleSynchronousMessage):
2016-08-29 Anders Carlsson <andersca@apple.com>
Move some structs into Connection.cpp
https://bugs.webkit.org/show_bug.cgi?id=161320
Reviewed by Darin Adler.
* Platform/IPC/Connection.cpp:
(IPC::Connection::PendingSyncReply::PendingSyncReply):
* Platform/IPC/Connection.h:
(IPC::Connection::PendingSyncReply::PendingSyncReply): Deleted.
2016-08-26 Anders Carlsson <andersca@apple.com>
Remove sync message sending from secondary threads
https://bugs.webkit.org/show_bug.cgi?id=161277
Reviewed by Sam Weinig.
This codepath hasn't been used for some time, and removing it will make it easier to make IPC::Connection backed by libxpc.
* Platform/IPC/Connection.cpp:
(IPC::Connection::sendSyncMessage):
(IPC::Connection::processIncomingSyncReply):
(IPC::Connection::connectionDidClose):
(IPC::Connection::sendSyncMessageFromSecondaryThread): Deleted.
* Platform/IPC/Connection.h:
2016-08-16 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Accelerated compositing does not work in Wayland
https://bugs.webkit.org/show_bug.cgi?id=115803
Reviewed by Michael Catanzaro.
This is the initial implementation of accelerated compositing support in Wayland for the GTK+ port. It's based
on previous patches written by Iago Toral, Žan Doberšek, Emanuele Aina and Emilio Pozuelo Monfort.
The existing WebKitGTK+ Wayland interface previously added for this to WebCore has been moved to the WebKit2
layer, since it's actually specific to WebKit2, and it's now actually used. The UI process runs a nested Wayland
compositor that web processes connect to. Web processes create a Wayland surface in the nested compositor for
the web page, and using the WebKitGTK+ Wayland protocol interface they tell the nested compositor the web page
associated to the surface. A Wayland window is created for that surface that is then used as the native window
handle for compositing. To communicate with the nested compositor and to ensure all GL operations happen in the
nested compositor display, the web process creates a Wayland display that connects to the nested compositor,
uses the WebKitGTK+ Wayland interface and it's set as the global shared display for compositing.
The nested Wayland compositor creates a new display with a unique name that is sent to the web processes at
start up. It implements the Wayland surface interface to handle the Wayland buffers created for every surface
and scheduling redraws on the web pages when updates are available. It uses the WebKitGTK+ Wayland interface to
associate the surfaces to a particular web page. A texture is created for every surface and updated with the
Wayland buffer contents using an EGLImageKHR and eglImageTargetTexture2d API.
To abstract the platform differences and avoid ifdefs as much as possible, new abstract classes have been added
to represent the surfaces used in accelerated compositing. AcceleratedSurface is used by the web process and
represents the surface where contents are rendered into. The X11 implementation is the redirected XComposite
window, and the Wayland implementation is equivalent to the previous Wayland surface added to WebCore but never
used. In the UI process the web view creates an abstract AcceleratedBackingStore that is used to render the
AcceleratedSurface into the web view using cairo. The X11 implementation creates the cairo surface for the
redirected XComposite window pixmap and uses XDamage extension to schedule redraws. The Wayland implementation
asks the nested Wayland compositor for the texture associated to the web view page.
Accelerated compositing is now always enabled by default in both X11 and Wayland, unless it's explicitly
disabled by the user using the WEBKIT_DISABLE_COMPOSITING_MODE environment variable, or if any extension or
feature required by X11 or Wayland implementations are not available.
* PlatformGTK.cmake:
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::glContext): Pass the shared display for compositing to GLContext::createContextForWindow()
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode): Encode wayland compositor display name.
(WebKit::WebProcessCreationParameters::decode): Decode wayland compositor display name.
* Shared/WebProcessCreationParameters.h: Add wayland compositor display name initial parameter.
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseDispose):
(webkitWebViewBaseDraw):
(webkitWebViewBaseCreateWebPage):
(webkitWebViewBaseEnterAcceleratedCompositingMode):
(webkitWebViewBaseUpdateAcceleratedCompositingMode):
(webkitWebViewBaseExitAcceleratedCompositingMode):
(webkitWebViewBasePageClosed):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::createNewWebProcess): Initialize the wayland compositor display name initial parameter.
* UIProcess/gtk/AcceleratedBackingStore.cpp: Added.
(WebKit::AcceleratedBackingStore::create):
(WebKit::AcceleratedBackingStore::AcceleratedBackingStore):
(WebKit::AcceleratedBackingStore::~AcceleratedBackingStore):
(WebKit::AcceleratedBackingStore::paint):
* UIProcess/gtk/AcceleratedBackingStore.h: Added.
(WebKit::AcceleratedBackingStore::update):
* UIProcess/gtk/AcceleratedBackingStoreWayland.cpp: Added.
(WebKit::AcceleratedBackingStoreWayland::create):
(WebKit::AcceleratedBackingStoreWayland::AcceleratedBackingStoreWayland):
(WebKit::AcceleratedBackingStoreWayland::~AcceleratedBackingStoreWayland):
(WebKit::AcceleratedBackingStoreWayland::paint):
* UIProcess/gtk/AcceleratedBackingStoreWayland.h: Added.
* UIProcess/gtk/AcceleratedBackingStoreX11.cpp: Added.
(WebKit::XDamageNotifier::singleton):
(WebKit::XDamageNotifier::add):
(WebKit::XDamageNotifier::remove):
(WebKit::XDamageNotifier::filterXDamageEvent):
(WebKit::XDamageNotifier::notify):
(WebKit::AcceleratedBackingStoreX11::create):
(WebKit::AcceleratedBackingStoreX11::AcceleratedBackingStoreX11):
(WebKit::AcceleratedBackingStoreX11::~AcceleratedBackingStoreX11):
(WebKit::AcceleratedBackingStoreX11::update):
(WebKit::AcceleratedBackingStoreX11::paint):
* UIProcess/gtk/AcceleratedBackingStoreX11.h: Added.
* UIProcess/gtk/WaylandCompositor.cpp: Added.
(WebKit::WaylandCompositor::singleton):
(WebKit::WaylandCompositor::Buffer::getOrCreate):
(WebKit::WaylandCompositor::Buffer::Buffer):
(WebKit::WaylandCompositor::Buffer::~Buffer):
(WebKit::WaylandCompositor::Buffer::destroyListenerCallback):
(WebKit::WaylandCompositor::Buffer::use):
(WebKit::WaylandCompositor::Buffer::unuse):
(WebKit::WaylandCompositor::Buffer::createImage):
(WebKit::WaylandCompositor::Buffer::size):
(WebKit::WaylandCompositor::Surface::Surface):
(WebKit::WaylandCompositor::Surface::~Surface):
(WebKit::WaylandCompositor::Surface::makePendingBufferCurrent):
(WebKit::WaylandCompositor::Surface::attachBuffer):
(WebKit::WaylandCompositor::Surface::requestFrame):
(WebKit::WaylandCompositor::Surface::prepareTextureForPainting):
(WebKit::WaylandCompositor::Surface::commit):
(WebKit::WaylandCompositor::initializeEGL):
(WebKit::createWaylandLoopSource):
(WebKit::WaylandCompositor::WaylandCompositor):
(WebKit::WaylandCompositor::getTexture):
(WebKit::WaylandCompositor::bindSurfaceToWebPage):
(WebKit::WaylandCompositor::registerWebPage):
(WebKit::WaylandCompositor::unregisterWebPage):
* UIProcess/gtk/WaylandCompositor.h: Added.
(WebKit::WaylandCompositor::Buffer::createWeakPtr):
(WebKit::WaylandCompositor::Surface::setWebPage):
(WebKit::WaylandCompositor::isRunning):
(WebKit::WaylandCompositor::displayName):
* UIProcess/gtk/WebPreferencesGtk.cpp:
(WebKit::WebPreferences::platformInitializeStore):
* UIProcess/gtk/XDamageNotifier.cpp: Removed.
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:
(WebKit::ThreadedCoordinatedLayerTreeHost::ThreadedCoordinatedLayerTreeHost):
(WebKit::ThreadedCoordinatedLayerTreeHost::invalidate):
(WebKit::ThreadedCoordinatedLayerTreeHost::deviceOrPageScaleFactorChanged):
(WebKit::ThreadedCoordinatedLayerTreeHost::sizeDidChange):
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
* WebProcess/WebPage/gtk/AcceleratedSurface.cpp: Added.
(WebKit::AcceleratedSurface::create):
(WebKit::AcceleratedSurface::AcceleratedSurface):
(WebKit::AcceleratedSurface::~AcceleratedSurface):
(WebKit::AcceleratedSurface::resize):
* WebProcess/WebPage/gtk/AcceleratedSurface.h: Added.
(WebKit::AcceleratedSurface::window):
(WebKit::AcceleratedSurface::surfaceID):
* WebProcess/WebPage/gtk/AcceleratedSurfaceWayland.cpp: Added.
(WebKit::waylandCompositorDisplay):
(WebKit::AcceleratedSurfaceWayland::create):
(WebKit::AcceleratedSurfaceWayland::AcceleratedSurfaceWayland):
(WebKit::AcceleratedSurfaceWayland::~AcceleratedSurfaceWayland):
(WebKit::AcceleratedSurfaceWayland::resize):
* WebProcess/WebPage/gtk/AcceleratedSurfaceWayland.h: Added.
* WebProcess/WebPage/gtk/AcceleratedSurfaceX11.cpp: Renamed from Source/WebKit2/WebProcess/WebPage/gtk/RedirectedXCompositeWindow.cpp.
(WebKit::AcceleratedSurfaceX11::create):
(WebKit::AcceleratedSurfaceX11::AcceleratedSurfaceX11):
(WebKit::AcceleratedSurfaceX11::~AcceleratedSurfaceX11):
(WebKit::AcceleratedSurfaceX11::resize):
* WebProcess/WebPage/gtk/AcceleratedSurfaceX11.h: Renamed from Source/WebKit2/WebProcess/WebPage/gtk/RedirectedXCompositeWindow.h.
* WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
(WebKit::LayerTreeHostGtk::LayerTreeHostGtk):
(WebKit::LayerTreeHostGtk::makeContextCurrent):
(WebKit::LayerTreeHostGtk::invalidate):
(WebKit::LayerTreeHostGtk::sizeDidChange):
(WebKit::LayerTreeHostGtk::deviceOrPageScaleFactorChanged):
(WebKit::LayerTreeHostGtk::RenderFrameScheduler::RenderFrameScheduler): Deleted.
* WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess): Initialize the wayland compositor display name.
* WebProcess/WebProcess.h:
(WebKit::WebProcess::waylandCompositorDisplayName): Return the wayland compositor display name.
2016-08-27 Jonathan Bedard <jbedard@apple.com>
WTR needs an implementation of setAutomaticLinkDetectionEnabled
https://bugs.webkit.org/show_bug.cgi?id=87162
Reviewed by Darin Adler
* WebProcess/InjectedBundle/API/c/WKBundle.cpp:
(WKBundleSetAutomaticLinkDetectionEnabled): Added WKBundleSetAutomaticLinkDetectionEnabled definition.
* WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: Added WKBundleSetAutomaticLinkDetectionEnabled declaration.
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::setAutomaticLinkDetectionEnabled): Added setAutomaticLinkDetectionEnabled definition.
* WebProcess/InjectedBundle/InjectedBundle.h: Added setAutomaticLinkDetectionEnabled declaration.
* WebProcess/WebProcess.h: Declared setTextCheckerState public.
2016-08-27 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK][Threaded Compositor] Several flaky tests
https://bugs.webkit.org/show_bug.cgi?id=161242
Reviewed by Michael Catanzaro.
We still have a lot of flaky tests since we switched to the threaded compositor. The UI process might
take the screenshot too early, before everything is actually painted. I can't reproduce the problem, so this is
actually a speculative fix or workaround. Our implementation of DrawingArea::dispatchAfterEnsuringDrawing() is
quite simple, we just dispatch the callback in the next run loop iteration, which doesn't really ensures any
drawing at all. So, we can wait for draw events before dispatching the given callback. Since we don't really
know if draw events were already processed before dispatchAfterEnsuringDrawing() is called, or if there will be
more than one damage event in a short time, this patch waits up to 1 second for draw events, and if a draw
happens it stops if there isn't another draw event in the next 100ms. This should ensure a drawing if it was
really needed.
* UIProcess/DrawingAreaProxyImpl.cpp:
(WebKit::DrawingAreaProxyImpl::DrawingMonitor::DrawingMonitor):
(WebKit::DrawingAreaProxyImpl::DrawingMonitor::~DrawingMonitor):
(WebKit::DrawingAreaProxyImpl::DrawingMonitor::webViewDrawCallback):
(WebKit::DrawingAreaProxyImpl::DrawingMonitor::start):
(WebKit::DrawingAreaProxyImpl::DrawingMonitor::stop):
(WebKit::DrawingAreaProxyImpl::DrawingMonitor::didDraw):
(WebKit::DrawingAreaProxyImpl::dispatchAfterEnsuringDrawing):
* UIProcess/DrawingAreaProxyImpl.h:
2016-08-26 Sam Weinig <sam@webkit.org>
Remove support for ENABLE_LEGACY_WEB_AUDIO
https://bugs.webkit.org/show_bug.cgi?id=161262
Reviewed by Anders Carlsson.
* Configurations/FeatureDefines.xcconfig:
Remove ENABLE_LEGACY_WEB_AUDIO.
2016-08-26 Anders Carlsson <andersca@apple.com>
Get rid of NetworkResourceLoader::sendAbortingOnFailure
https://bugs.webkit.org/show_bug.cgi?id=161267
Reviewed by Dan Bernstein.
NetworkResourceLoader::sendAbortingOnFailure sends an IPC message, and if IPC::Connection::send returns false,
it will abort the network resource load.
IPC::Connection::send will only return false if the connection is invalid, and when it becomes invalidated the
connection client member function "didClose" is invoked. For the network process, this will call abort on all outstanding
network loads.
Auditing all the sendAbortingOnFailure call sites, shows that none of them can be called with an invalid connection,
so replace sendAbortingOnFailure with send.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didReceiveResponse):
This is a NetworkLoadClient function which won't be called if the load has been aborted.
(WebKit::NetworkResourceLoader::didReceiveBuffer):
Ditto.
(WebKit::NetworkResourceLoader::didFinishLoading):
Ditto. Also, update a call to sendBufferMaybeAborting to sendBuffer.
(WebKit::NetworkResourceLoader::willSendRedirectedRequest):
This is another NetworkLoadClient function.
(WebKit::NetworkResourceLoader::bufferingTimerFired):
The buffering timer is stopped when abort() is called.
(WebKit::NetworkResourceLoader::sendBuffer):
Rename this from sendBufferMaybeAborting. It has three call sites:
- didReceiveBuffer and didFinishLoading are both NetworkLoadClient functions.
- didRetrieveCacheEntry is called from didFinishLoading (a NetworkLoadClient function) and from
the completion function of retrieveCacheEntry, which has an early return for when the loader has been aborted.
(WebKit::NetworkResourceLoader::didRetrieveCacheEntry):
This is called from the retrieveCacheEntry completion function, which has an early return for when the loader has been aborted.
(WebKit::NetworkResourceLoader::dispatchWillSendRequestForCacheEntry):
Ditto.
(WebKit::NetworkResourceLoader::sendAbortingOnFailure): Deleted.
* NetworkProcess/NetworkResourceLoader.h:
2016-08-26 Dan Bernstein <mitz@apple.com>
[Cocoa] Infinite recursion calling -charValue on a WKNSNumber
https://bugs.webkit.org/show_bug.cgi?id=161258
Reviewed by Anders Carlsson.
* Shared/Cocoa/WKNSNumber.mm:
(-[WKNSNumber charValue]): Override this…
(-[WKNSNumber boolValue]): …not this.
2016-08-26 Csaba Osztrogonác <ossy@webkit.org>
[EFL][GTK] REGRESSION(204877): Fix the clean build
https://bugs.webkit.org/show_bug.cgi?id=161240
Reviewed by Carlos Garcia Campos.
* Scripts/generate-forwarding-headers.pl: Added back multiple include-path support. (removed by r183389)
2016-08-26 Gyuyoung Kim <gyuyoung.kim@navercorp.com>
Unreviewed EFL build fix since r204996.
* UIProcess/efl/WebPageProxyEfl.cpp:
(WebKit::WebPageProxy::editorStateChanged):
(WebKit::WebPageProxy::setThemePath):
(WebKit::WebPageProxy::confirmComposition):
(WebKit::WebPageProxy::setComposition):
(WebKit::WebPageProxy::cancelComposition):
2016-08-25 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix GTK+ build after r204986 and r204996.
* Platform/IPC/unix/ConnectionUnix.cpp:
(IPC::Connection::willSendSyncMessage):
(IPC::Connection::didReceiveSyncReply):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::drawPagesForPrinting):
2016-08-25 Anders Carlsson <andersca@apple.com>
Replace all IPC message send flags with OptionSet
https://bugs.webkit.org/show_bug.cgi?id=161211
Reviewed by Tim Horton.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didFailLoading):
(WebKit::NetworkResourceLoader::sendAbortingOnFailure):
* NetworkProcess/NetworkResourceLoader.h:
* Platform/IPC/Connection.cpp:
(IPC::WaitForMessageState::WaitForMessageState):
(IPC::Connection::sendMessage):
(IPC::Connection::sendSyncReply):
(IPC::Connection::waitForMessage):
(IPC::Connection::sendSyncMessage):
(IPC::Connection::sendSyncMessageFromSecondaryThread):
(IPC::Connection::waitForSyncReply):
(IPC::Connection::processIncomingMessage):
* Platform/IPC/Connection.h:
(IPC::Connection::send):
(IPC::Connection::sendSync):
(IPC::Connection::waitForAndDispatchImmediately):
* Platform/IPC/MessageSender.cpp:
(IPC::MessageSender::sendMessage):
* Platform/IPC/MessageSender.h:
(IPC::MessageSender::send):
(IPC::MessageSender::sendSync):
* Platform/IPC/mac/ConnectionMac.mm:
(IPC::Connection::open):
(IPC::Connection::willSendSyncMessage):
(IPC::Connection::didReceiveSyncReply):
* PluginProcess/mac/PluginControllerProxyMac.mm:
(WebKit::PluginControllerProxy::setComplexTextInputState):
* UIProcess/ChildProcessProxy.cpp:
(WebKit::ChildProcessProxy::sendMessage):
(WebKit::ChildProcessProxy::didFinishLaunching):
* UIProcess/ChildProcessProxy.h:
(WebKit::ChildProcessProxy::send):
(WebKit::ChildProcessProxy::sendSync):
* UIProcess/Databases/DatabaseProcessProxy.cpp:
(WebKit::DatabaseProcessProxy::getDatabaseProcessConnection):
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::getNetworkProcessConnection):
* UIProcess/Plugins/PluginProcessProxy.cpp:
(WebKit::PluginProcessProxy::getPluginProcessConnection):
* UIProcess/WebEditCommandProxy.cpp:
(WebKit::WebEditCommandProxy::unapply):
(WebKit::WebEditCommandProxy::reapply):
* UIProcess/WebPageProxy.cpp:
(WebKit::printingSendOptions):
(WebKit::WebPageProxy::preferencesDidChange):
(WebKit::WebPageProxy::sendMessage):
(WebKit::WebPageProxy::beginPrinting):
(WebKit::WebPageProxy::endPrinting):
(WebKit::WebPageProxy::computePagesForPrinting):
(WebKit::WebPageProxy::drawRectToImage):
(WebKit::WebPageProxy::drawPagesToPDF):
(WebKit::WebPageProxy::drawPagesForPrinting):
(WebKit::WebPageProxy::setMinimumLayoutSize): Deleted.
(WebKit::WebPageProxy::setAutoSizingShouldExpandToViewHeight): Deleted.
(WebKit::WebPageProxy::handleAlternativeTextUIResult): Deleted.
* UIProcess/WebPageProxy.h:
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::waitForDidUpdateViewState):
* UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
(WebKit::TiledCoreAnimationDrawingAreaProxy::waitForDidUpdateViewState):
* WebProcess/Plugins/PluginProxy.cpp:
(WebKit::PluginProxy::geometryDidChange):
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::runBeforeUnloadConfirmPanel):
(WebKit::WebChromeClient::runJavaScriptAlert):
(WebKit::WebChromeClient::runJavaScriptConfirm):
(WebKit::WebChromeClient::runJavaScriptPrompt):
(WebKit::WebChromeClient::print):
(WebKit::WebChromeClient::exceededDatabaseQuota):
(WebKit::WebChromeClient::reachedApplicationCacheOriginQuota):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::createWithCoreMainFrame):
(WebKit::WebFrame::createSubframe):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::sendPostLayoutEditorStateIfNeeded):
(WebKit::WebPage::postSynchronousMessageForTesting):
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::BackingStoreFlusher::flush):
2016-08-25 Anders Carlsson <andersca@apple.com>
Remove some more MessageRecorder gunk
https://bugs.webkit.org/show_bug.cgi?id=161209
Reviewed by Tim Horton.
* DatabaseProcess/DatabaseProcess.h:
* DatabaseProcess/DatabaseToWebProcessConnection.h:
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/NetworkProcess.h:
* Platform/IPC/Connection.h:
* Platform/IPC/ProcessType.h: Removed.
* PluginProcess/PluginProcess.h:
* PluginProcess/WebProcessConnection.h:
* UIProcess/Databases/DatabaseProcessProxy.h:
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/Plugins/PluginProcessProxy.h:
* UIProcess/WebProcessProxy.h:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/Databases/WebToDatabaseProcessConnection.h:
* WebProcess/Network/NetworkProcessConnection.h:
* WebProcess/Plugins/PluginProcessConnection.h:
* WebProcess/WebPage/WebInspector.h:
* WebProcess/WebPage/WebInspectorUI.h:
* WebProcess/WebProcess.h:
2016-08-25 Johan K. Jensen <johan_jensen@apple.com>
Don't store networkLoadTiming in the disk cache
https://bugs.webkit.org/show_bug.cgi?id=161161
Reviewed by Antti Koivisto.
* NetworkProcess/cache/NetworkCacheStorage.h: Updated version to 10.
* NetworkProcess/cache/NetworkCacheDecoder.h:
* NetworkProcess/cache/NetworkCacheEncoder.h:
* Platform/IPC/Decoder.h:
* Platform/IPC/Encoder.h:
Added isIPCDecoder/isIPCEncoder static members.
2016-08-25 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK][Threaded Compositor] Several flaky tests due to differences in scrollbars
https://bugs.webkit.org/show_bug.cgi?id=160450
Reviewed by Michael Catanzaro.
The issue is that ThreadedCompositor::didChangeVisibleRect() dispatches the setVisibleContentsRect() call that
ends up in CompositingCoordinator. Since we're compositing the scrollbars as well, this visible contents rect
needs to encompass the complete width of the view, but that's not happening.
In case of non-overlay scrollbars, the scrollbars are clipped from this rect, but that doesn't prevent the
scrollbar overlay layers to be flushed and rendered. What does happen is that during tile creation in the
backing store the tiles that would normally intersect the visible rect of the view (if it were spanning over the
whole actual visible area) are sorted by distance to the visible rect.
The top of the two tiles used for the scrollbar is closer to the visible rect, so that gets created and filled
in first. The second tile is stored as pending for creation, and does get rendered at the point of the next
layer flush.
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:
(WebKit::ThreadedCoordinatedLayerTreeHost::setVisibleContentsRect): Update the visible rect taking into account
the non-overlay scrollbars before passing it to the compositor.
2016-08-24 JF Bastien <jfbastien@apple.com>
cmake build broken by MessageRecorder removal
https://bugs.webkit.org/show_bug.cgi?id=161175
Reviewed by Dean Jackson.
* PlatformMac.cmake:
2016-08-24 Jonathan Bedard <jbedard@apple.com>
FocusController multiple dereferenced NULL pointers
https://bugs.webkit.org/show_bug.cgi?id=160808
Reviewed by Darin Adler.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setInitialFocus): Should use nullptr, not 0 to initialize NULL pointer.
2016-08-23 Anders Carlsson <andersca@apple.com>
Add enum traits and use them in the IPC::Decoder
https://bugs.webkit.org/show_bug.cgi?id=161103
Reviewed by Sam Weinig.
* Platform/IPC/Decoder.h:
* Platform/IPC/Encoder.h:
Add new encode/decode functions.
* Shared/mac/ArgumentCodersMac.mm:
Change NSType to be a strongly typed enum. Use encode/decode
instead of encodeEnum/decodeEnum since the latter don't have the
enum check.
2016-08-24 Filip Pizlo <fpizlo@apple.com>
Unreviewed, roll out r204901, r204897, r204866, r204856, r204854.
* UIProcess/ViewGestureController.cpp:
* UIProcess/WebPageProxy.cpp:
* UIProcess/WebProcessPool.cpp:
* UIProcess/WebProcessProxy.cpp:
* WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:
* WebProcess/Plugins/Netscape/JSNPObject.cpp:
2016-08-24 Anders Carlsson <andersca@apple.com>
In some cases, an IPC::Connection won't know when the other end has gone away
https://bugs.webkit.org/show_bug.cgi?id=161153
rdar://problem/27896368
Reviewed by Dan Bernstein.
When being asked to invalidate a connection that isn't yet connected, make sure to release
our send and receive rights so that the other end will get a failure when trying to connect.
* Platform/IPC/mac/ConnectionMac.mm:
(IPC::Connection::platformInvalidate):
2016-08-24 Dan Bernstein <mitz@apple.com>
Add a convenience function for creating a WKFrameHandleRef from a WKFrameRef without going through WKFrameInfoRef
https://bugs.webkit.org/show_bug.cgi?id=161152
Reviewed by Anders Carlsson.
* UIProcess/API/C/WKFrame.cpp:
(WKFrameCreateFrameHandle): Added. Creates a handle with the frame’s frameID.
* UIProcess/API/C/WKFrame.h:
2016-08-24 Dan Bernstein <mitz@apple.com>
[Cocoa] Can’t "po" WKObject instances
https://bugs.webkit.org/show_bug.cgi?id=161151
Reviewed by Anders Carlsson.
* Shared/Cocoa/WKObject.mm:
(-[WKObject debugDescription]): Implement and forward to the target or print a generic
description.
2016-08-24 Brady Eidson <beidson@apple.com>
Get timestamps and ids working in WK2 gamepads (and test them!)
https://bugs.webkit.org/show_bug.cgi?id=161112
Reviewed by Alex Christensen.
* Shared/Gamepad/GamepadData.cpp:
(WebKit::GamepadData::GamepadData):
(WebKit::GamepadData::encode):
(WebKit::GamepadData::decode):
* Shared/Gamepad/GamepadData.h:
(WebKit::GamepadData::id):
(WebKit::GamepadData::index): Deleted.
* UIProcess/Gamepad/UIGamepad.cpp:
(WebKit::UIGamepad::UIGamepad):
(WebKit::UIGamepad::condensedGamepadData):
(WebKit::UIGamepad::fullGamepadData): Include the ID for initial WebGamepad creation.
(WebKit::UIGamepad::gamepadData): Deleted.
* UIProcess/Gamepad/UIGamepad.h:
* UIProcess/Gamepad/UIGamepadProvider.cpp:
(WebKit::UIGamepadProvider::snapshotGamepads):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::gamepadConnected):
(WebKit::WebProcessPool::setInitialConnectedGamepads):
* WebProcess/Gamepad/WebGamepad.cpp:
(WebKit::WebGamepad::WebGamepad):
(WebKit::WebGamepad::updateValues):
2016-08-24 Hunseop Jeong <hs85.jeong@samsung.com>
[EFL] Fix test_ewk2_view
https://bugs.webkit.org/show_bug.cgi?id=161131
Reviewed by Gyuyoung Kim.
ewk_view_title_changed: null is treated as the string "null" after r203487.
ewk_view_page_contents_get: aligned encoding labels after r204605.
* UIProcess/API/efl/tests/resources/resultMHTML.mht:
* UIProcess/API/efl/tests/test_ewk2_view.cpp:
(TEST_F):
2016-08-23 Simon Fraser <simon.fraser@apple.com>
Add some logging for WKSelectionDrawingInfo
https://bugs.webkit.org/show_bug.cgi?id=161055
Reviewed by Tim Horton.
Add a Selection logging channel for WK2, and dump WKSelectionDrawingInfo when it changes.
* Platform/Logging.h:
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(WebKit::operator<<):
(-[WKContentView _updateChangedSelection:]):
2016-08-23 Ryosuke Niwa <rniwa@webkit.org>
Another CMake build fix attempt after r204852.
* CMakeLists.txt:
2016-08-22 Filip Pizlo <fpizlo@apple.com>
Butterflies should be allocated in Auxiliary MarkedSpace instead of CopiedSpace and we should rewrite as much of the GC as needed to make this not a regression
https://bugs.webkit.org/show_bug.cgi?id=160125
Reviewed by Geoffrey Garen.
Just rewiring some #includes.
* WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:
* WebProcess/Plugins/Netscape/JSNPObject.cpp:
2016-08-23 Brady Eidson <beidson@apple.com>
WK2 Gamepad layout test support.
https://bugs.webkit.org/show_bug.cgi?id=134671
Reviewed by Alex Christensen.
- Teach the UIGamepadProvider to use the default shared provider.
- Especially if its the MockGamepadProvider, don't overwrite it.
* Shared/Gamepad/GamepadData.cpp:
(WebKit::GamepadData::GamepadData):
(WebKit::GamepadData::encode):
(WebKit::GamepadData::decode):
(WebKit::GamepadData::loggingString):
(WebKit::GamepadData::isNull): Deleted.
* Shared/Gamepad/GamepadData.h:
(WebKit::GamepadData::GamepadData):
(WebKit::GamepadData::isNull):
(WebKit::GamepadData::index):
(WebKit::GamepadData::axisValues):
(WebKit::GamepadData::buttonValues):
* UIProcess/Gamepad/UIGamepad.h:
* UIProcess/Gamepad/UIGamepadProvider.cpp:
(WebKit::UIGamepadProvider::UIGamepadProvider):
(WebKit::UIGamepadProvider::~UIGamepadProvider):
(WebKit::UIGamepadProvider::platformGamepadInputActivity):
(WebKit::UIGamepadProvider::startMonitoringGamepads):
(WebKit::UIGamepadProvider::stopMonitoringGamepads):
(WebKit::UIGamepadProvider::platformSetDefaultGamepadProvider):
* UIProcess/Gamepad/UIGamepadProvider.h:
* UIProcess/Gamepad/mac/UIGamepadProviderHID.cpp:
(WebKit::UIGamepadProvider::platformSetDefaultGamepadProvider):
(WebKit::UIGamepadProvider::platformStopMonitoringInput):
(WebKit::UIGamepadProvider::platformStartMonitoringInput):
(WebKit::UIGamepadProvider::platformStartMonitoringGamepads): Deleted.
(WebKit::UIGamepadProvider::platformStopMonitoringGamepads): Deleted.
(WebKit::UIGamepadProvider::platformGamepads): Deleted.
* UIProcess/WebPageProxy.h:
* WebProcess/Gamepad/WebGamepad.cpp:
(WebKit::WebGamepad::WebGamepad):
(WebKit::WebGamepad::updateValues):
* WebProcess/Gamepad/WebGamepad.h:
* WebProcess/Gamepad/WebGamepadProvider.cpp:
(WebKit::WebGamepadProvider::gamepadConnected):
* WebProcess/Gamepad/WebGamepadProvider.h:
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebProcess.h:
2016-08-23 Dave Hyatt <hyatt@apple.com>
Add pref for enabling new CSS parsing and move parser files into subdirectory.
https://bugs.webkit.org/show_bug.cgi?id=161095
Reviewed by Sam Weinig.
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetNewCSSParserEnabled):
(WKPreferencesGetNewCSSParserEnabled):
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
2016-08-23 Chris Dumez <cdumez@apple.com>
Unreviewed, rolling out r204243.
Caused some layout test failures
Reverted changeset:
"Write API test to cover crash fix in r204135"
https://bugs.webkit.org/show_bug.cgi?id=160587
http://trac.webkit.org/changeset/204243
2016-08-23 Hunseop Jeong <hs85.jeong@samsung.com>
[EFL] URTBF after r204743.
* Shared/WebBatteryStatus.cpp: Remove Arguments.h.
2016-08-22 Yusuke Suzuki <utatane.tea@gmail.com>
Use Messages::XXX...::Reply explicitly
https://bugs.webkit.org/show_bug.cgi?id=161075
Reviewed by Carlos Garcia Campos.
std::tuple's constructor is annotated as `explicit`.
So we cannot use the implicit conversion here.
This causes the build failure in EFL and GTK.
Looking through code, the other places use ::Reply explicitly.
So in this patch, we follow that.
* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:
(WebKit::WebIDBConnectionToServer::WebIDBConnectionToServer):
* WebProcess/InjectedBundle/InjectedBundlePageFullScreenClient.cpp:
(WebKit::InjectedBundlePageFullScreenClient::supportsFullScreen):
2016-08-22 Anders Carlsson <andersca@apple.com>
Remove Arguments.h
https://bugs.webkit.org/show_bug.cgi?id=161060
Reviewed by Tim Horton.
* Platform/IPC/Arguments.h: Removed.
(IPC::Arguments::Arguments): Deleted.
(IPC::Arguments::encode): Deleted.
(IPC::Arguments::decode): Deleted.
* Platform/IPC/Connection.h:
* Platform/IPC/HandleMessage.h:
* Shared/AssistedNodeInformation.cpp:
* Shared/Cocoa/DataDetectionResult.mm:
* Shared/EditorState.cpp:
* Shared/WebContextMenuItemData.cpp:
* Shared/WebMouseEvent.cpp:
* Shared/WebPlatformTouchPoint.cpp:
* Shared/WebPopupItem.cpp:
* Shared/WebTouchEvent.cpp:
* Shared/WebWheelEvent.cpp:
* Shared/ios/InteractionInformationAtPosition.mm:
* Shared/ios/WebPlatformTouchPointIOS.cpp:
* Shared/ios/WebTouchEventIOS.cpp:
* Shared/mac/WebGestureEvent.cpp:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
* WebProcess/WebPage/WebPage.cpp:
2016-08-22 Anders Carlsson <andersca@apple.com>
Move tuple coding to ArgumentCoders.h
https://bugs.webkit.org/show_bug.cgi?id=161059
Reviewed by Tim Horton.
* Platform/IPC/ArgumentCoders.h:
(IPC::TupleCoder::encode):
(IPC::TupleCoder::decode):
* Platform/IPC/Arguments.h:
(IPC::TupleCoder::encode): Deleted.
(IPC::TupleCoder::decode): Deleted.
* Scripts/webkit/messages.py:
(forward_declarations_and_headers):
2016-08-22 Anders Carlsson <andersca@apple.com>
Simplify the generated message structs
https://bugs.webkit.org/show_bug.cgi?id=161057
Reviewed by Geoffrey Garen.
Use a class template to transform the Reply and Argument tuple types for encoding/decoding
instead of generating them for each message.
* Platform/IPC/HandleMessage.h:
(IPC::handleMessage):
(IPC::handleMessageDelayed):
* Scripts/webkit/messages.py:
(reply_type):
(message_to_struct_declaration):
(decode_type): Deleted.
2016-08-19 Anders Carlsson <andersca@apple.com>
Remove MessageRecorder
https://bugs.webkit.org/show_bug.cgi?id=161022
Reviewed by Tim Horton.
* Platform/IPC/ArgumentCoders.cpp:
(IPC::ArgumentCoder<uuid_t>::encode): Deleted.
(IPC::ArgumentCoder<uuid_t>::decode): Deleted.
* Platform/IPC/ArgumentCoders.h:
* Platform/IPC/Connection.cpp:
(IPC::Connection::sendMessage):
(IPC::Connection::sendSyncMessage):
(IPC::Connection::sendSyncMessageFromSecondaryThread):
(IPC::Connection::dispatchSyncMessage): Deleted.
(IPC::Connection::dispatchMessage): Deleted.
* Platform/IPC/Connection.h:
* Platform/IPC/Encoder.cpp:
(IPC::Encoder::encodeHeader): Deleted.
* Platform/IPC/MessageRecorder.cpp: Removed.
(IPC::MessageRecorder::isEnabled): Deleted.
(IPC::MessageRecorder::recordOutgoingMessage): Deleted.
(IPC::MessageRecorder::recordIncomingMessage): Deleted.
(IPC::MessageRecorder::MessageProcessingToken::MessageProcessingToken): Deleted.
(IPC::MessageRecorder::MessageProcessingToken::~MessageProcessingToken): Deleted.
* Platform/IPC/MessageRecorder.h: Removed.
(IPC::MessageRecorder::MessageRecorder): Deleted.
* Platform/IPC/MessageRecorderProbes.d: Removed.
* WebKit2.xcodeproj/project.pbxproj:
2016-08-22 Alex Christensen <achristensen@webkit.org>
Fix Mac CMake build after r204717.
* PlatformMac.cmake:
2016-08-22 Simon Fraser <simon.fraser@apple.com>
<select> menu on iPad causes shifting of hit-testing areas
https://bugs.webkit.org/show_bug.cgi?id=150079
Reviewed by Tim Horton.
-isAssistingNode (aka the poorly named isEditable) is input into WebPageProxy::computeCustomFixedPositionRect(),
so when it changes we have to update visible rects. We were doing this on focus, but failing
to do it on blur.
Added the ability to test by:
1. Making it possible to initiate an animated scroll in the UI process
2. Adding callbacks for starting and ending interaction with a form control. Sadly
the "ending interaction" for <select> popovers on iPad isn't late enough, since we
have no way currently to know when the dimming view behind the popover animates out,
so for now the test keeps trying to tap a button.
Test: fast/forms/ios/ipad/unfocus-inside-fixed-hittest.html
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _zoomToPoint:atScale:animated:]):
(-[WKWebView _scrollToRect:origin:minimumScrollDistance:]):
(-[WKWebView _scrollByContentOffset:]):
(-[WKWebView _zoomToFocusRect:selectionRect:fontSize:minimumScale:maximumScale:allowScaling:forceScroll:]):
(-[WKWebView didStartFormControlInteraction]):
(-[WKWebView didEndFormControlInteraction]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/ios/WKContentView.mm:
(-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:obscuredInset:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollableAncestorView:]):
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView setIsEditable:]):
(-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:userObject:]):
(-[WKContentView _stopAssistingNode]):
2016-08-22 Daniel Bates <dabates@apple.com>
[iOS] <a ping> and <area ping> tests time out
https://bugs.webkit.org/show_bug.cgi?id=156857
Reviewed by Simon Fraser.
Support single tapping on an HTML area element in WebKit2 just as we do in Legacy WebKit.
WebKit2 commits to clicking a "clickable" DOM node on a single tap only if it has a
renderer. An HTML area element represents a hyperlink in an image map and does not have
a renderer.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::sendTapHighlightForNodeIfNecessary): Compute the tap highlight with respect
to the renderer for the image map associated with the tapped HTML area element (if it has one).
(WebKit::WebPage::commitPotentialTap): Allow committing a potential tap on an HTML area element.
2016-08-22 Darin Adler <darin@apple.com>
Move Objective-C DOM bindings from WebCore to legacy WebKit
https://bugs.webkit.org/show_bug.cgi?id=160654
Reviewed by Alex Christensen.
* WebProcess/WebCoreSupport/WebEditorClient.h: Updated to use RefPtr.
* WebProcess/WebCoreSupport/ios/WebEditorClientIOS.mm:
(WebKit::WebEditorClient::documentFragmentFromDelegate): Ditto.
* WebProcess/WebCoreSupport/mac/WebDragClientMac.mm: Removed unneeded includes
of Objective-C DOM headers that are now part of legacy WebKit, not WebCore.
But this file doesn't need to depend on those headers at all.
2016-08-22 Chris Dumez <cdumez@apple.com>
[iOS] Wait a few seconds before release network activity assertion after a load
https://bugs.webkit.org/show_bug.cgi?id=160975
<rdar://problem/27910964>
Reviewed by Darin Adler.
Some apps do several loads one after the other in a non-visible view.
This causes us to release the background assertion every time a load
completes and then take one again less than a second after. Every
time we release the assertion, we send a PrepareToSuspend IPC to the
WebContent process, which does all the clean up to get ready to
suspend, only to get a CancelPrepareReadyToSuspend later on because
the next load has started. To work around this problem, we now wait
a few seconds before releasing the background activity after a load.
* UIProcess/Cocoa/NavigationState.h:
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::NavigationState):
(WebKit::NavigationState::releaseNetworkActivityToken):
(WebKit::NavigationState::didChangeIsLoading):
2016-08-22 Youenn Fablet <youenn@apple.com>
[Fetch API] Activate fetch api runtime flag by default
https://bugs.webkit.org/show_bug.cgi?id=160452
Reviewed by Alex Christensen.
* Shared/WebPreferencesDefinitions.h:
2016-08-22 Gyuyoung Kim <gyuyoung.kim@navercorp.com>
[SOUP] Change MessageDecoder with Decoder
https://bugs.webkit.org/show_bug.cgi?id=161040
Reviewed by Darin Adler.
Clean up MessageDecoder in files of Soup.
* Scripts/webkit/MessageReceiverSuperclass-expected.cpp:
(WebKit::WebPage::didReceiveMessage):
* UIProcess/soup/WebSoupRequestManagerProxy.h:
* WebProcess/soup/WebSoupRequestManager.h:
2016-08-21 Alex Christensen <achristensen@webkit.org>
Use Document& instead of Document* when getting cookies
https://bugs.webkit.org/show_bug.cgi?id=161011
Reviewed by Darin Adler.
* WebProcess/Automation/WebAutomationSessionProxy.cpp:
(WebKit::WebAutomationSessionProxy::getCookiesForFrame):
(WebKit::WebAutomationSessionProxy::deleteCookie):
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::cookiesForURL):
(WebKit::PluginView::setCookiesForURL):
(WebKit::PluginView::getAuthenticationInfo):
2016-08-20 Gyuyoung Kim <gyuyoung.kim@navercorp.com>
Unreviewed EFL build fix since r204668
r204668 changed MessageDecoder with Decoder though, MessageDecoder remained
in EFL specific files.
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h:
* UIProcess/WebVibrationProxy.h:
* WebProcess/Battery/WebBatteryManager.h:
* WebProcess/WebPage/AcceleratedDrawingArea.cpp:
(WebKit::AcceleratedDrawingArea::didReceiveCoordinatedLayerTreeHostMessage):
* WebProcess/WebPage/AcceleratedDrawingArea.h:
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
* WebProcess/WebPage/LayerTreeHost.h:
2016-08-20 Dan Bernstein <mitz@apple.com>
[Mac] Web Content service with a restricted entitlement may load arbitrary dylibs
https://bugs.webkit.org/show_bug.cgi?id=156668
<rdar://problem/25429784>
Reviewed by Sam Weinig.
* Configurations/WebContentService.xcconfig: Enable library validation when the Web Content
service is given the XPC domain extension entitlement.
2016-08-20 Javier Fernandez <jfernandez@igalia.com>
[GTK] Unreviewed GTK build fix since r204665 and 204668
https://bugs.webkit.org/show_bug.cgi?id=161020
* CMakeLists.txt:
* Platform/IPC/MessageRecorder.cpp:
(IPC::MessageRecorder::recordOutgoingMessage):
* Platform/IPC/unix/ConnectionUnix.cpp:
(IPC::Connection::processMessage):
(IPC::Connection::sendOutgoingMessage):
* Platform/unix/SharedMemoryUnix.cpp:
(WebKit::SharedMemory::Handle::encode):
(WebKit::SharedMemory::Handle::decode):
* PlatformGTK.cmake:
* Scripts/webkit/LegacyMessageReceiver-expected.cpp:
(Messages::WebPage::GetPluginProcessConnection::DelayedReply::DelayedReply):
(Messages::WebPage::TestMultipleAttributes::DelayedReply::DelayedReply):
(WebKit::WebPage::didReceiveWebPageMessage):
(WebKit::WebPage::didReceiveSyncWebPageMessage):
* Scripts/webkit/LegacyMessages-expected.h:
* Scripts/webkit/MessageReceiver-expected.cpp:
(Messages::WebPage::GetPluginProcessConnection::DelayedReply::DelayedReply):
(Messages::WebPage::TestMultipleAttributes::DelayedReply::DelayedReply):
(WebKit::WebPage::didReceiveMessage):
(WebKit::WebPage::didReceiveSyncMessage):
* Scripts/webkit/Messages-expected.h:
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
(IPC::ArgumentCoder<WebCore::FilterOperations>::encode):
(IPC::ArgumentCoder<WebCore::FilterOperations>::decode):
(IPC::ArgumentCoder<TransformOperations>::encode):
(IPC::ArgumentCoder<TransformOperations>::decode):
(IPC::encodeTimingFunction):
(IPC::decodeTimingFunction):
(IPC::ArgumentCoder<TextureMapperAnimation>::encode):
(IPC::ArgumentCoder<TextureMapperAnimation>::decode):
(IPC::ArgumentCoder<TextureMapperAnimations>::encode):
(IPC::ArgumentCoder<TextureMapperAnimations>::decode):
(IPC::ArgumentCoder<WebCore::GraphicsSurfaceToken>::encode):
(IPC::ArgumentCoder<WebCore::GraphicsSurfaceToken>::decode):
(IPC::ArgumentCoder<SurfaceUpdateInfo>::encode):
(IPC::ArgumentCoder<SurfaceUpdateInfo>::decode):
(IPC::ArgumentCoder<CoordinatedGraphicsLayerState>::encode):
(IPC::ArgumentCoder<CoordinatedGraphicsLayerState>::decode):
(IPC::ArgumentCoder<TileUpdateInfo>::encode):
(IPC::ArgumentCoder<TileUpdateInfo>::decode):
(IPC::ArgumentCoder<TileCreationInfo>::encode):
(IPC::ArgumentCoder<TileCreationInfo>::decode):
(IPC::encodeCoordinatedSurface):
(IPC::decodeCoordinatedSurface):
(IPC::ArgumentCoder<CoordinatedGraphicsState>::encode):
(IPC::ArgumentCoder<CoordinatedGraphicsState>::decode):
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.h:
* Shared/CoordinatedGraphics/WebCoordinatedSurface.cpp:
(WebKit::WebCoordinatedSurface::Handle::encode):
(WebKit::WebCoordinatedSurface::Handle::decode):
* Shared/CoordinatedGraphics/WebCoordinatedSurface.h:
* Shared/WebBatteryStatus.cpp:
(WebKit::WebBatteryStatus::Data::encode):
(WebKit::WebBatteryStatus::Data::decode):
* Shared/WebBatteryStatus.h:
* Shared/gtk/ArgumentCodersGtk.cpp:
(IPC::encodeImage):
(IPC::decodeImage):
(IPC::encodeDataObject):
(IPC::decodeDataObject):
(IPC::ArgumentCoder<DragData>::encode):
(IPC::ArgumentCoder<DragData>::decode):
(IPC::encodeGKeyFile):
(IPC::decodeGKeyFile):
(IPC::encode):
(IPC::decode):
* Shared/gtk/ArgumentCodersGtk.h:
* Shared/soup/WebCoreArgumentCodersSoup.cpp:
(IPC::ArgumentCoder<ResourceRequest>::encodePlatformData):
(IPC::ArgumentCoder<ResourceRequest>::decodePlatformData):
(IPC::ArgumentCoder<CertificateInfo>::encode):
(IPC::ArgumentCoder<CertificateInfo>::decode):
(IPC::ArgumentCoder<ResourceError>::encodePlatformData):
(IPC::ArgumentCoder<ResourceError>::decodePlatformData):
(IPC::ArgumentCoder<ProtectionSpace>::encodePlatformData):
(IPC::ArgumentCoder<ProtectionSpace>::decodePlatformData):
(IPC::ArgumentCoder<Credential>::encodePlatformData):
(IPC::ArgumentCoder<Credential>::decodePlatformData):
* UIProcess/LegacySessionStateCodingNone.cpp:
(WebKit::encodeLegacySessionState):
(WebKit::decodeLegacySessionState):
* UIProcess/WebBatteryManagerProxy.h:
2016-08-20 Yusuke Suzuki <utatane.tea@gmail.com>
Unreviewed, build fix attempt after r204665 and r204668.
* PlatformGTK.cmake:
2016-08-19 Ryosuke Niwa <rniwa@webkit.org>
Another build fix attempt after r204665 and r204668.
* CMakeLists.txt:
2016-08-19 Ryosuke Niwa <rniwa@webkit.org>
GTK+ / EFL build fix attempt after r204665.
* CMakeLists.txt:
2016-08-19 Anders Carlsson <andersca@apple.com>
Merge MessageDecoder and ArgumentDecoder into Decoder
https://bugs.webkit.org/show_bug.cgi?id=161019
Reviewed by Tim Horton.
* DatabaseProcess/DatabaseProcess.cpp:
* DatabaseProcess/DatabaseProcess.h:
* DatabaseProcess/DatabaseToWebProcessConnection.cpp:
* DatabaseProcess/DatabaseToWebProcessConnection.h:
* DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h:
* NetworkProcess/CustomProtocols/CustomProtocolManager.h:
* NetworkProcess/Downloads/DownloadID.h:
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/NetworkProcess.cpp:
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcessCreationParameters.cpp:
* NetworkProcess/NetworkProcessCreationParameters.h:
* NetworkProcess/NetworkResourceLoadParameters.cpp:
* NetworkProcess/NetworkResourceLoadParameters.h:
* NetworkProcess/NetworkResourceLoader.h:
* Platform/IPC/ArgumentCoder.h:
* Platform/IPC/ArgumentCoders.cpp:
* Platform/IPC/ArgumentCoders.h:
* Platform/IPC/ArgumentDecoder.cpp:
* Platform/IPC/ArgumentDecoder.h:
* Platform/IPC/Arguments.h:
* Platform/IPC/Attachment.cpp:
* Platform/IPC/Attachment.h:
* Platform/IPC/Connection.cpp:
* Platform/IPC/Connection.h:
* Platform/IPC/DataReference.cpp:
* Platform/IPC/DataReference.h:
* Platform/IPC/Decoder.cpp: Renamed from Source/WebKit2/Platform/IPC/ArgumentDecoder.cpp.
* Platform/IPC/Decoder.h: Renamed from Source/WebKit2/Platform/IPC/ArgumentDecoder.h.
* Platform/IPC/HandleMessage.h:
* Platform/IPC/MessageDecoder.cpp: Removed.
* Platform/IPC/MessageDecoder.h: Removed.
* Platform/IPC/MessageReceiver.h:
* Platform/IPC/MessageReceiverMap.cpp:
* Platform/IPC/MessageReceiverMap.h:
* Platform/IPC/MessageRecorder.cpp:
* Platform/IPC/MessageRecorder.h:
* Platform/IPC/StringReference.cpp:
* Platform/IPC/StringReference.h:
* Platform/IPC/mac/ConnectionMac.mm:
* Platform/IPC/mac/MachPort.h:
* Platform/SharedMemory.h:
* Platform/mac/SharedMemoryMac.cpp:
* PluginProcess/PluginControllerProxy.h:
* PluginProcess/PluginCreationParameters.cpp:
* PluginProcess/PluginCreationParameters.h:
* PluginProcess/PluginProcess.cpp:
* PluginProcess/PluginProcess.h:
* PluginProcess/WebProcessConnection.cpp:
* PluginProcess/WebProcessConnection.h:
* Scripts/webkit/messages.py:
* Shared/API/APIData.cpp:
* Shared/API/APIData.h:
* Shared/API/APIError.cpp:
* Shared/API/APIError.h:
* Shared/API/APIFrameHandle.cpp:
* Shared/API/APIFrameHandle.h:
* Shared/API/APIGeometry.cpp:
* Shared/API/APIGeometry.h:
* Shared/API/APINumber.h:
* Shared/API/APIPageGroupHandle.cpp:
* Shared/API/APIPageGroupHandle.h:
* Shared/API/APIPageHandle.cpp:
* Shared/API/APIPageHandle.h:
* Shared/API/APIURL.h:
* Shared/API/APIURLRequest.cpp:
* Shared/API/APIURLRequest.h:
* Shared/API/APIURLResponse.cpp:
* Shared/API/APIURLResponse.h:
* Shared/API/Cocoa/RemoteObjectInvocation.h:
* Shared/API/Cocoa/RemoteObjectInvocation.mm:
* Shared/API/Cocoa/RemoteObjectRegistry.h:
* Shared/AssistedNodeInformation.cpp:
* Shared/AssistedNodeInformation.h:
* Shared/Authentication/AuthenticationManager.h:
* Shared/ChildProcess.h:
* Shared/Cocoa/DataDetectionResult.h:
* Shared/Cocoa/DataDetectionResult.mm:
* Shared/Cocoa/LoadParametersCocoa.mm:
* Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
* Shared/ContextMenuContextData.cpp:
* Shared/ContextMenuContextData.h:
* Shared/Databases/DatabaseProcessCreationParameters.cpp:
* Shared/Databases/DatabaseProcessCreationParameters.h:
* Shared/Databases/IndexedDB/WebIDBResult.cpp:
* Shared/Databases/IndexedDB/WebIDBResult.h:
* Shared/EditorState.cpp:
* Shared/EditorState.h:
* Shared/FontInfo.cpp:
* Shared/FontInfo.h:
* Shared/Gamepad/GamepadData.cpp:
* Shared/Gamepad/GamepadData.h:
* Shared/LayerTreeContext.cpp:
* Shared/LayerTreeContext.h:
* Shared/LoadParameters.cpp:
* Shared/LoadParameters.h:
* Shared/NavigationActionData.cpp:
* Shared/NavigationActionData.h:
* Shared/PlatformPopupMenuData.cpp:
* Shared/PlatformPopupMenuData.h:
* Shared/Plugins/NPIdentifierData.cpp:
* Shared/Plugins/NPIdentifierData.h:
* Shared/Plugins/NPObjectMessageReceiver.h:
* Shared/Plugins/NPRemoteObjectMap.cpp:
* Shared/Plugins/NPRemoteObjectMap.h:
* Shared/Plugins/NPVariantData.cpp:
* Shared/Plugins/NPVariantData.h:
* Shared/Plugins/PluginProcessCreationParameters.cpp:
* Shared/Plugins/PluginProcessCreationParameters.h:
* Shared/PrintInfo.cpp:
* Shared/PrintInfo.h:
* Shared/SandboxExtension.h:
* Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
* Shared/Scrolling/RemoteScrollingCoordinatorTransaction.h:
* Shared/SessionState.cpp:
* Shared/SessionState.h:
* Shared/ShareableBitmap.cpp:
* Shared/ShareableBitmap.h:
* Shared/ShareableResource.cpp:
* Shared/ShareableResource.h:
* Shared/StatisticsData.cpp:
* Shared/StatisticsData.h:
* Shared/UpdateInfo.cpp:
* Shared/UpdateInfo.h:
* Shared/UserData.cpp:
* Shared/UserData.h:
* Shared/VisibleContentRectUpdateInfo.cpp:
* Shared/VisibleContentRectUpdateInfo.h:
* Shared/WebBackForwardListItem.h:
* Shared/WebCompiledContentExtensionData.cpp:
* Shared/WebCompiledContentExtensionData.h:
* Shared/WebConnection.h:
* Shared/WebContextMenuItemData.cpp:
* Shared/WebContextMenuItemData.h:
* Shared/WebCoreArgumentCoders.cpp:
* Shared/WebCoreArgumentCoders.h:
* Shared/WebEvent.cpp:
* Shared/WebEvent.h:
* Shared/WebGeolocationPosition.cpp:
* Shared/WebGeolocationPosition.h:
* Shared/WebHitTestResultData.cpp:
* Shared/WebHitTestResultData.h:
* Shared/WebKeyboardEvent.cpp:
* Shared/WebMouseEvent.cpp:
* Shared/WebNavigationDataStore.h:
* Shared/WebPageCreationParameters.cpp:
* Shared/WebPageCreationParameters.h:
* Shared/WebPageGroupData.cpp:
* Shared/WebPageGroupData.h:
* Shared/WebPlatformTouchPoint.cpp:
* Shared/WebPopupItem.cpp:
* Shared/WebPopupItem.h:
* Shared/WebPreferencesStore.cpp:
* Shared/WebPreferencesStore.h:
* Shared/WebProcessCreationParameters.cpp:
* Shared/WebProcessCreationParameters.h:
* Shared/WebTouchEvent.cpp:
* Shared/WebUserContentControllerDataTypes.cpp:
* Shared/WebUserContentControllerDataTypes.h:
* Shared/WebWheelEvent.cpp:
* Shared/WebsiteData/WebsiteData.cpp:
* Shared/WebsiteData/WebsiteData.h:
* Shared/cf/ArgumentCodersCF.cpp:
* Shared/cf/ArgumentCodersCF.h:
* Shared/ios/InteractionInformationAtPosition.h:
* Shared/ios/InteractionInformationAtPosition.mm:
* Shared/ios/QuickLookDocumentData.cpp:
* Shared/ios/QuickLookDocumentData.h:
* Shared/ios/WebPlatformTouchPointIOS.cpp:
* Shared/ios/WebTouchEventIOS.cpp:
* Shared/mac/ArgumentCodersMac.h:
* Shared/mac/ArgumentCodersMac.mm:
* Shared/mac/AttributedString.h:
* Shared/mac/AttributedString.mm:
* Shared/mac/ColorSpaceData.h:
* Shared/mac/ColorSpaceData.mm:
* Shared/mac/ObjCObjectGraph.h:
* Shared/mac/ObjCObjectGraph.mm:
* Shared/mac/RemoteLayerBackingStore.h:
* Shared/mac/RemoteLayerBackingStore.mm:
* Shared/mac/RemoteLayerTreeTransaction.h:
* Shared/mac/RemoteLayerTreeTransaction.mm:
* Shared/mac/SandboxExtensionMac.mm:
* Shared/mac/SecItemRequestData.cpp:
* Shared/mac/SecItemRequestData.h:
* Shared/mac/SecItemResponseData.cpp:
* Shared/mac/SecItemResponseData.h:
* Shared/mac/SecItemShim.h:
* Shared/mac/WebCoreArgumentCodersMac.mm:
* Shared/mac/WebGestureEvent.cpp:
* Shared/mac/WebGestureEvent.h:
* Shared/mac/WebHitTestResultData.mm:
* UIProcess/API/APIHitTestResult.h:
* UIProcess/ApplePay/WebPaymentCoordinatorProxy.h:
* UIProcess/Automation/WebAutomationSession.h:
* UIProcess/ChildProcessProxy.cpp:
* UIProcess/ChildProcessProxy.h:
* UIProcess/Cocoa/WebPlaybackSessionManagerProxy.h:
* UIProcess/Cocoa/WebVideoFullscreenManagerProxy.h:
* UIProcess/Databases/DatabaseProcessProxy.cpp:
* UIProcess/Databases/DatabaseProcessProxy.h:
* UIProcess/Downloads/DownloadProxy.h:
* UIProcess/DrawingAreaProxy.h:
* UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.h:
* UIProcess/Network/NetworkProcessProxy.cpp:
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/Plugins/PluginProcessProxy.h:
* UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
* UIProcess/Storage/StorageManager.h:
* UIProcess/UserContent/WebUserContentControllerProxy.h:
* UIProcess/VisitedLinkStore.h:
* UIProcess/WebCookieManagerProxy.h:
* UIProcess/WebFrameProxy.h:
* UIProcess/WebFullScreenManagerProxy.h:
* UIProcess/WebGeolocationManagerProxy.h:
* UIProcess/WebIconDatabase.h:
* UIProcess/WebInspectorProxy.h:
* UIProcess/WebPageProxy.h:
* UIProcess/WebPasteboardProxy.h:
* UIProcess/WebProcessPool.cpp:
* UIProcess/WebProcessPool.h:
* UIProcess/WebProcessProxy.cpp:
* UIProcess/WebProcessProxy.h:
* UIProcess/WebResourceLoadStatisticsStore.h:
* UIProcess/ios/SmartMagnificationController.h:
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
* UIProcess/mac/SecItemShimProxy.h:
* UIProcess/mac/ViewGestureController.h:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/ApplePay/WebPaymentCoordinator.h:
* WebProcess/Automation/WebAutomationSessionProxy.h:
* WebProcess/Cookies/WebCookieManager.h:
* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
* WebProcess/Databases/WebToDatabaseProcessConnection.cpp:
* WebProcess/Databases/WebToDatabaseProcessConnection.h:
* WebProcess/FullScreen/WebFullScreenManager.cpp:
* WebProcess/FullScreen/WebFullScreenManager.h:
* WebProcess/Geolocation/WebGeolocationManager.h:
* WebProcess/IconDatabase/WebIconDatabaseProxy.h:
* WebProcess/InjectedBundle/InjectedBundle.h:
* WebProcess/Network/NetworkProcessConnection.cpp:
* WebProcess/Network/NetworkProcessConnection.h:
* WebProcess/Network/WebResourceLoader.h:
* WebProcess/Notifications/WebNotificationManager.h:
* WebProcess/Plugins/Plugin.cpp:
* WebProcess/Plugins/Plugin.h:
* WebProcess/Plugins/PluginProcessConnection.cpp:
* WebProcess/Plugins/PluginProcessConnection.h:
* WebProcess/Plugins/PluginProcessConnectionManager.cpp:
* WebProcess/Plugins/PluginProcessConnectionManager.h:
* WebProcess/Plugins/PluginProxy.h:
* WebProcess/Scrolling/RemoteScrollingCoordinator.h:
* WebProcess/Scrolling/RemoteScrollingCoordinator.mm:
* WebProcess/Storage/StorageAreaMap.h:
* WebProcess/UserContent/WebUserContentController.h:
* WebProcess/WebPage/DrawingArea.h:
* WebProcess/WebPage/EventDispatcher.h:
* WebProcess/WebPage/ViewGestureGeometryCollector.h:
* WebProcess/WebPage/ViewUpdateDispatcher.h:
* WebProcess/WebPage/VisitedLinkTableController.h:
* WebProcess/WebPage/WebInspector.h:
* WebProcess/WebPage/WebInspectorUI.h:
* WebProcess/WebPage/WebPage.cpp:
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/mac/PlatformCAAnimationRemote.h:
* WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:
* WebProcess/WebProcess.cpp:
* WebProcess/WebProcess.h:
* WebProcess/cocoa/WebPlaybackSessionManager.h:
* WebProcess/cocoa/WebVideoFullscreenManager.h:
2016-08-19 Anders Carlsson <andersca@apple.com>
Update Xcode project.
* WebKit2.xcodeproj/project.pbxproj:
2016-08-19 Anders Carlsson <andersca@apple.com>
Merge MessageEncoder and ArgumentEncoder into Encoder
https://bugs.webkit.org/show_bug.cgi?id=161016
Reviewed by Tim Horton.
* DatabaseProcess/DatabaseToWebProcessConnection.cpp:
(WebKit::DatabaseToWebProcessConnection::didReceiveSyncMessage):
* DatabaseProcess/DatabaseToWebProcessConnection.h:
* NetworkProcess/Downloads/DownloadID.h:
(IPC::ArgumentCoder<WebKit::DownloadID>::encode):
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::didReceiveSyncMessage):
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::didReceiveSyncMessage):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode):
* NetworkProcess/NetworkProcessCreationParameters.h:
* NetworkProcess/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::encode):
* NetworkProcess/NetworkResourceLoadParameters.h:
* Platform/IPC/ArgumentCoder.h:
(IPC::ArgumentCoder::encode):
* Platform/IPC/ArgumentCoders.cpp:
(IPC::ArgumentCoder<std::chrono::system_clock::time_point>::encode):
(IPC::ArgumentCoder<AtomicString>::encode):
(IPC::ArgumentCoder<CString>::encode):
(IPC::ArgumentCoder<String>::encode):
(IPC::ArgumentCoder<uuid_t>::encode):
* Platform/IPC/ArgumentCoders.h:
(IPC::SimpleArgumentCoder::encode):
(IPC::ArgumentCoder<OptionSet<T>>::encode):
(IPC::ArgumentCoder<WTF::Optional<T>>::encode):
* Platform/IPC/ArgumentEncoder.cpp:
(IPC::allocBuffer): Deleted.
(IPC::freeBuffer): Deleted.
(IPC::ArgumentEncoder::ArgumentEncoder): Deleted.
(IPC::ArgumentEncoder::~ArgumentEncoder): Deleted.
(IPC::roundUpToAlignment): Deleted.
(IPC::ArgumentEncoder::reserve): Deleted.
(IPC::ArgumentEncoder::grow): Deleted.
(IPC::ArgumentEncoder::encodeFixedLengthData): Deleted.
(IPC::ArgumentEncoder::encodeVariableLengthByteArray): Deleted.
(IPC::copyValueToBuffer): Deleted.
(IPC::ArgumentEncoder::encode): Deleted.
(IPC::ArgumentEncoder::addAttachment): Deleted.
(IPC::ArgumentEncoder::releaseAttachments): Deleted.
* Platform/IPC/ArgumentEncoder.h:
(IPC::ArgumentEncoder::encodeEnum): Deleted.
(IPC::ArgumentEncoder::encode): Deleted.
(IPC::ArgumentEncoder::operator<<): Deleted.
(IPC::ArgumentEncoder::buffer): Deleted.
(IPC::ArgumentEncoder::bufferSize): Deleted.
* Platform/IPC/Arguments.h:
(IPC::TupleCoder::encode):
(IPC::Arguments::encode):
* Platform/IPC/Attachment.cpp:
(IPC::Attachment::encode):
* Platform/IPC/Attachment.h:
* Platform/IPC/Connection.cpp:
(IPC::Connection::dispatchWorkQueueMessageReceiverMessage):
(IPC::Connection::createSyncMessageEncoder):
(IPC::Connection::sendMessage):
(IPC::Connection::sendSyncReply):
(IPC::Connection::sendSyncMessage):
(IPC::Connection::sendSyncMessageFromSecondaryThread):
(IPC::Connection::sendOutgoingMessages):
(IPC::Connection::dispatchSyncMessage):
* Platform/IPC/Connection.h:
(IPC::Connection::send):
(IPC::Connection::sendSync):
* Platform/IPC/DataReference.cpp:
(IPC::DataReference::encode):
(IPC::SharedBufferDataReference::encode):
* Platform/IPC/DataReference.h:
* Platform/IPC/Encoder.cpp: Renamed from Source/WebKit2/Platform/IPC/ArgumentEncoder.cpp.
(IPC::allocBuffer):
(IPC::freeBuffer):
(IPC::Encoder::Encoder):
(IPC::Encoder::~Encoder):
(IPC::Encoder::isSyncMessage):
(IPC::Encoder::shouldDispatchMessageWhenWaitingForSyncReply):
(IPC::Encoder::setIsSyncMessage):
(IPC::Encoder::setShouldDispatchMessageWhenWaitingForSyncReply):
(IPC::Encoder::setFullySynchronousModeForTesting):
(IPC::Encoder::wrapForTesting):
(IPC::roundUpToAlignment):
(IPC::Encoder::reserve):
(IPC::Encoder::encodeHeader):
(IPC::Encoder::grow):
(IPC::Encoder::encodeFixedLengthData):
(IPC::Encoder::encodeVariableLengthByteArray):
(IPC::copyValueToBuffer):
(IPC::Encoder::encode):
(IPC::Encoder::addAttachment):
(IPC::Encoder::releaseAttachments):
* Platform/IPC/Encoder.h: Renamed from Source/WebKit2/Platform/IPC/ArgumentEncoder.h.
* Platform/IPC/HandleMessage.h:
(IPC::handleMessage):
(IPC::handleMessageDelayed):
* Platform/IPC/MessageEncoder.cpp: Removed.
(IPC::MessageEncoder::MessageEncoder): Deleted.
(IPC::MessageEncoder::~MessageEncoder): Deleted.
(IPC::MessageEncoder::encodeHeader): Deleted.
(IPC::MessageEncoder::isSyncMessage): Deleted.
(IPC::MessageEncoder::shouldDispatchMessageWhenWaitingForSyncReply): Deleted.
(IPC::MessageEncoder::setIsSyncMessage): Deleted.
(IPC::MessageEncoder::setShouldDispatchMessageWhenWaitingForSyncReply): Deleted.
(IPC::MessageEncoder::setFullySynchronousModeForTesting): Deleted.
(IPC::MessageEncoder::wrapForTesting): Deleted.
* Platform/IPC/MessageEncoder.h: Removed.
(IPC::MessageEncoder::messageReceiverName): Deleted.
(IPC::MessageEncoder::messageName): Deleted.
(IPC::MessageEncoder::destinationID): Deleted.
(IPC::MessageEncoder::UUID): Deleted.
* Platform/IPC/MessageReceiver.h:
(IPC::MessageReceiver::didReceiveSyncMessage):
* Platform/IPC/MessageReceiverMap.cpp:
(IPC::MessageReceiverMap::dispatchSyncMessage):
* Platform/IPC/MessageReceiverMap.h:
* Platform/IPC/MessageRecorder.h:
* Platform/IPC/MessageSender.cpp:
(IPC::MessageSender::sendMessage):
* Platform/IPC/MessageSender.h:
(IPC::MessageSender::send):
* Platform/IPC/StringReference.cpp:
(IPC::StringReference::encode):
* Platform/IPC/StringReference.h:
* Platform/IPC/mac/ConnectionMac.mm:
(IPC::Connection::open):
(IPC::Connection::sendOutgoingMessage):
* Platform/IPC/mac/MachPort.h:
(IPC::MachPort::encode):
* Platform/SharedMemory.h:
* Platform/mac/SharedMemoryMac.cpp:
(WebKit::SharedMemory::Handle::encode):
* PluginProcess/PluginControllerProxy.h:
* PluginProcess/PluginCreationParameters.cpp:
(WebKit::PluginCreationParameters::encode):
* PluginProcess/PluginCreationParameters.h:
* PluginProcess/WebProcessConnection.cpp:
(WebKit::WebProcessConnection::didReceiveSyncMessage):
* PluginProcess/WebProcessConnection.h:
* Scripts/webkit/messages.py:
(message_to_struct_declaration):
(forward_declarations_and_headers):
(generate_message_handler):
(headers_for_type): Deleted.
* Shared/API/APIData.cpp:
(API::Data::encode):
* Shared/API/APIData.h:
* Shared/API/APIError.cpp:
(API::Error::encode):
* Shared/API/APIError.h:
* Shared/API/APIFrameHandle.cpp:
(API::FrameHandle::encode):
* Shared/API/APIFrameHandle.h:
* Shared/API/APIGeometry.cpp:
(API::Point::encode):
(API::Size::encode):
(API::Rect::encode):
* Shared/API/APIGeometry.h:
* Shared/API/APINumber.h:
(API::Number::encode):
* Shared/API/APIPageGroupHandle.cpp:
(API::PageGroupHandle::encode):
* Shared/API/APIPageGroupHandle.h:
* Shared/API/APIPageHandle.cpp:
(API::PageHandle::encode):
* Shared/API/APIPageHandle.h:
* Shared/API/APIURL.h:
(API::URL::encode):
* Shared/API/APIURLRequest.cpp:
(API::URLRequest::encode):
* Shared/API/APIURLRequest.h:
* Shared/API/APIURLResponse.cpp:
(API::URLResponse::encode):
* Shared/API/APIURLResponse.h:
* Shared/API/Cocoa/RemoteObjectInvocation.h:
* Shared/API/Cocoa/RemoteObjectInvocation.mm:
(WebKit::RemoteObjectInvocation::encode):
* Shared/AssistedNodeInformation.cpp:
(WebKit::OptionItem::encode):
(WebKit::AssistedNodeInformation::encode):
* Shared/AssistedNodeInformation.h:
* Shared/Cocoa/DataDetectionResult.h:
* Shared/Cocoa/DataDetectionResult.mm:
(WebKit::DataDetectionResult::encode):
* Shared/Cocoa/LoadParametersCocoa.mm:
(WebKit::LoadParameters::platformEncode):
* Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
(IPC::ArgumentCoder<WebCore::Payment>::encode):
(IPC::ArgumentCoder<WebCore::PaymentContact>::encode):
(IPC::ArgumentCoder<WebCore::PaymentMerchantSession>::encode):
(IPC::ArgumentCoder<WebCore::PaymentMethod>::encode):
(IPC::ArgumentCoder<PaymentRequest>::encode):
(IPC::ArgumentCoder<PaymentRequest::ContactFields>::encode):
(IPC::ArgumentCoder<PaymentRequest::LineItem>::encode):
(IPC::ArgumentCoder<PaymentRequest::MerchantCapabilities>::encode):
(IPC::ArgumentCoder<PaymentRequest::ShippingMethod>::encode):
(IPC::ArgumentCoder<PaymentRequest::TotalAndLineItems>::encode):
* Shared/ContextMenuContextData.cpp:
(WebKit::ContextMenuContextData::encode):
* Shared/ContextMenuContextData.h:
* Shared/Databases/DatabaseProcessCreationParameters.cpp:
(WebKit::DatabaseProcessCreationParameters::encode):
* Shared/Databases/DatabaseProcessCreationParameters.h:
* Shared/Databases/IndexedDB/WebIDBResult.cpp:
(WebKit::WebIDBResult::encode):
* Shared/Databases/IndexedDB/WebIDBResult.h:
* Shared/EditorState.cpp:
(WebKit::EditorState::encode):
(WebKit::EditorState::PostLayoutData::encode):
* Shared/EditorState.h:
* Shared/FontInfo.cpp:
(WebKit::FontInfo::encode):
* Shared/FontInfo.h:
* Shared/Gamepad/GamepadData.cpp:
(WebKit::GamepadData::encode):
* Shared/Gamepad/GamepadData.h:
* Shared/LayerTreeContext.cpp:
(WebKit::LayerTreeContext::encode):
* Shared/LayerTreeContext.h:
* Shared/LoadParameters.cpp:
(WebKit::LoadParameters::encode):
(WebKit::LoadParameters::platformEncode):
* Shared/LoadParameters.h:
* Shared/NavigationActionData.cpp:
(WebKit::NavigationActionData::encode):
* Shared/NavigationActionData.h:
* Shared/PlatformPopupMenuData.cpp:
(WebKit::PlatformPopupMenuData::encode):
* Shared/PlatformPopupMenuData.h:
* Shared/Plugins/NPIdentifierData.cpp:
(WebKit::NPIdentifierData::encode):
* Shared/Plugins/NPIdentifierData.h:
* Shared/Plugins/NPObjectMessageReceiver.h:
* Shared/Plugins/NPRemoteObjectMap.cpp:
(WebKit::NPRemoteObjectMap::didReceiveSyncMessage):
* Shared/Plugins/NPRemoteObjectMap.h:
* Shared/Plugins/NPVariantData.cpp:
(WebKit::NPVariantData::encode):
* Shared/Plugins/NPVariantData.h:
* Shared/Plugins/PluginProcessCreationParameters.cpp:
(WebKit::PluginProcessCreationParameters::encode):
* Shared/Plugins/PluginProcessCreationParameters.h:
* Shared/PrintInfo.cpp:
(WebKit::PrintInfo::encode):
* Shared/PrintInfo.h:
* Shared/SandboxExtension.h:
(WebKit::SandboxExtension::Handle::encode):
(WebKit::SandboxExtension::HandleArray::encode):
* Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
(ArgumentCoder<ScrollingStateNode>::encode):
(ArgumentCoder<ScrollingStateScrollingNode>::encode):
(ArgumentCoder<ScrollingStateFrameScrollingNode>::encode):
(ArgumentCoder<ScrollingStateOverflowScrollingNode>::encode):
(ArgumentCoder<ScrollingStateFixedNode>::encode):
(ArgumentCoder<ScrollingStateStickyNode>::encode):
(WebKit::encodeNodeAndDescendants):
(WebKit::RemoteScrollingCoordinatorTransaction::encode):
* Shared/Scrolling/RemoteScrollingCoordinatorTransaction.h:
* Shared/SessionState.cpp:
(WebKit::HTTPBody::Element::encode):
(WebKit::HTTPBody::encode):
(WebKit::FrameState::encode):
(WebKit::PageState::encode):
(WebKit::BackForwardListItemState::encode):
(WebKit::BackForwardListState::encode):
* Shared/SessionState.h:
* Shared/ShareableBitmap.cpp:
(WebKit::ShareableBitmap::Handle::encode):
* Shared/ShareableBitmap.h:
* Shared/ShareableResource.cpp:
(WebKit::ShareableResource::Handle::encode):
* Shared/ShareableResource.h:
* Shared/StatisticsData.cpp:
(WebKit::StatisticsData::encode):
* Shared/StatisticsData.h:
* Shared/UpdateInfo.cpp:
(WebKit::UpdateInfo::encode):
* Shared/UpdateInfo.h:
* Shared/UserData.cpp:
(WebKit::UserData::encode):
* Shared/UserData.h:
* Shared/VisibleContentRectUpdateInfo.cpp:
(WebKit::VisibleContentRectUpdateInfo::encode):
* Shared/VisibleContentRectUpdateInfo.h:
* Shared/WebBackForwardListItem.h:
* Shared/WebCompiledContentExtensionData.cpp:
(WebKit::WebCompiledContentExtensionData::encode):
* Shared/WebCompiledContentExtensionData.h:
* Shared/WebContextMenuItemData.cpp:
(WebKit::WebContextMenuItemData::encode):
* Shared/WebContextMenuItemData.h:
* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<AffineTransform>::encode):
(IPC::ArgumentCoder<EventTrackingRegions>::encode):
(IPC::ArgumentCoder<TransformationMatrix>::encode):
(IPC::ArgumentCoder<LinearTimingFunction>::encode):
(IPC::ArgumentCoder<CubicBezierTimingFunction>::encode):
(IPC::ArgumentCoder<StepsTimingFunction>::encode):
(IPC::ArgumentCoder<SpringTimingFunction>::encode):
(IPC::ArgumentCoder<FloatPoint>::encode):
(IPC::ArgumentCoder<FloatPoint3D>::encode):
(IPC::ArgumentCoder<FloatRect>::encode):
(IPC::ArgumentCoder<FloatSize>::encode):
(IPC::ArgumentCoder<FloatRoundedRect>::encode):
(IPC::ArgumentCoder<FloatQuad>::encode):
(IPC::ArgumentCoder<ViewportArguments>::encode):
(IPC::ArgumentCoder<IntPoint>::encode):
(IPC::ArgumentCoder<IntRect>::encode):
(IPC::ArgumentCoder<IntSize>::encode):
(IPC::pathEncodeApplierFunction):
(IPC::ArgumentCoder<Path>::encode):
(IPC::ArgumentCoder<RecentSearch>::encode):
(IPC::ArgumentCoder<Region::Span>::encode):
(IPC::ArgumentCoder<Region>::encode):
(IPC::ArgumentCoder<Length>::encode):
(IPC::ArgumentCoder<ViewportAttributes>::encode):
(IPC::ArgumentCoder<MimeClassInfo>::encode):
(IPC::ArgumentCoder<PluginInfo>::encode):
(IPC::ArgumentCoder<AuthenticationChallenge>::encode):
(IPC::ArgumentCoder<ProtectionSpace>::encode):
(IPC::ArgumentCoder<Credential>::encode):
(IPC::encodeImage):
(IPC::encodeOptionalImage):
(IPC::ArgumentCoder<Cursor>::encode):
(IPC::ArgumentCoder<ResourceRequest>::encode):
(IPC::ArgumentCoder<ResourceError>::encode):
(IPC::ArgumentCoder<SelectionRect>::encode):
(IPC::ArgumentCoder<WindowFeatures>::encode):
(IPC::ArgumentCoder<Color>::encode):
(IPC::ArgumentCoder<CompositionUnderline>::encode):
(IPC::ArgumentCoder<Cookie>::encode):
(IPC::ArgumentCoder<DatabaseDetails>::encode):
(IPC::ArgumentCoder<Highlight>::encode):
(IPC::encodeSharedBuffer):
(IPC::ArgumentCoder<PasteboardWebContent>::encode):
(IPC::ArgumentCoder<PasteboardImage>::encode):
(IPC::ArgumentCoder<DictationAlternative>::encode):
(IPC::ArgumentCoder<FileChooserSettings>::encode):
(IPC::ArgumentCoder<GrammarDetail>::encode):
(IPC::ArgumentCoder<TextCheckingRequestData>::encode):
(IPC::ArgumentCoder<TextCheckingResult>::encode):
(IPC::ArgumentCoder<URL>::encode):
(IPC::ArgumentCoder<UserStyleSheet>::encode):
(IPC::ArgumentCoder<MediaSessionMetadata>::encode):
(IPC::ArgumentCoder<UserScript>::encode):
(IPC::ArgumentCoder<ScrollableAreaParameters>::encode):
(IPC::ArgumentCoder<FixedPositionViewportConstraints>::encode):
(IPC::ArgumentCoder<StickyPositionViewportConstraints>::encode):
(IPC::ArgumentCoder<FilterOperation>::encode):
(IPC::ArgumentCoder<FilterOperations>::encode):
(IPC::ArgumentCoder<SessionID>::encode):
(IPC::ArgumentCoder<BlobPart>::encode):
(IPC::ArgumentCoder<TextIndicatorData>::encode):
(IPC::ArgumentCoder<MediaPlaybackTargetContext>::encode):
(IPC::ArgumentCoder<DictionaryPopupInfo>::encode):
(IPC::ArgumentCoder<ExceptionDetails>::encode):
(IPC::ArgumentCoder<ResourceLoadStatistics>::encode):
* Shared/WebCoreArgumentCoders.h:
* Shared/WebEvent.cpp:
(WebKit::WebEvent::encode):
* Shared/WebEvent.h:
* Shared/WebGeolocationPosition.cpp:
(WebKit::WebGeolocationPosition::Data::encode):
* Shared/WebGeolocationPosition.h:
* Shared/WebHitTestResultData.cpp:
(WebKit::WebHitTestResultData::encode):
(WebKit::WebHitTestResultData::platformEncode):
* Shared/WebHitTestResultData.h:
* Shared/WebKeyboardEvent.cpp:
(WebKit::WebKeyboardEvent::encode):
* Shared/WebMouseEvent.cpp:
(WebKit::WebMouseEvent::encode):
* Shared/WebNavigationDataStore.h:
(WebKit::WebNavigationDataStore::encode):
* Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode):
* Shared/WebPageCreationParameters.h:
* Shared/WebPageGroupData.cpp:
(WebKit::WebPageGroupData::encode):
* Shared/WebPageGroupData.h:
* Shared/WebPlatformTouchPoint.cpp:
(WebKit::WebPlatformTouchPoint::encode):
* Shared/WebPopupItem.cpp:
(WebKit::WebPopupItem::encode):
* Shared/WebPopupItem.h:
* Shared/WebPreferencesStore.cpp:
(WebKit::WebPreferencesStore::Value::encode):
(WebKit::WebPreferencesStore::encode):
* Shared/WebPreferencesStore.h:
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode):
* Shared/WebProcessCreationParameters.h:
* Shared/WebTouchEvent.cpp:
(WebKit::WebTouchEvent::encode):
* Shared/WebUserContentControllerDataTypes.cpp:
(WebKit::WebUserScriptData::encode):
(WebKit::WebUserStyleSheetData::encode):
(WebKit::WebScriptMessageHandlerData::encode):
* Shared/WebUserContentControllerDataTypes.h:
* Shared/WebWheelEvent.cpp:
(WebKit::WebWheelEvent::encode):
* Shared/WebsiteData/WebsiteData.cpp:
(WebKit::WebsiteData::Entry::encode):
(WebKit::WebsiteData::encode):
* Shared/WebsiteData/WebsiteData.h:
* Shared/cf/ArgumentCodersCF.cpp:
(IPC::encode):
* Shared/cf/ArgumentCodersCF.h:
* Shared/ios/InteractionInformationAtPosition.h:
* Shared/ios/InteractionInformationAtPosition.mm:
(WebKit::InteractionInformationAtPosition::encode):
* Shared/ios/QuickLookDocumentData.cpp:
(WebKit::QuickLookDocumentData::encode):
* Shared/ios/QuickLookDocumentData.h:
* Shared/ios/WebPlatformTouchPointIOS.cpp:
(WebKit::WebPlatformTouchPoint::encode):
* Shared/ios/WebTouchEventIOS.cpp:
(WebKit::WebTouchEvent::encode):
* Shared/mac/ArgumentCodersMac.h:
* Shared/mac/ArgumentCodersMac.mm:
(IPC::encode):
* Shared/mac/AttributedString.h:
* Shared/mac/AttributedString.mm:
(WebKit::AttributedString::encode):
* Shared/mac/ColorSpaceData.h:
* Shared/mac/ColorSpaceData.mm:
(WebKit::ColorSpaceData::encode):
* Shared/mac/ObjCObjectGraph.h:
* Shared/mac/ObjCObjectGraph.mm:
(WebKit::ObjCObjectGraph::encode):
* Shared/mac/RemoteLayerBackingStore.h:
* Shared/mac/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::encode):
* Shared/mac/RemoteLayerTreeTransaction.h:
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::encode):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
(WebKit::RemoteLayerTreeTransaction::encode):
* Shared/mac/SandboxExtensionMac.mm:
(WebKit::SandboxExtension::Handle::encode):
(WebKit::SandboxExtension::HandleArray::encode):
* Shared/mac/SecItemRequestData.cpp:
(WebKit::SecItemRequestData::encode):
* Shared/mac/SecItemRequestData.h:
* Shared/mac/SecItemResponseData.cpp:
(WebKit::SecItemResponseData::encode):
* Shared/mac/SecItemResponseData.h:
* Shared/mac/WebCoreArgumentCodersMac.mm:
(IPC::ArgumentCoder<ResourceRequest>::encodePlatformData):
(IPC::ArgumentCoder<CertificateInfo>::encode):
(IPC::encodeNSError):
(IPC::ArgumentCoder<ResourceError>::encodePlatformData):
(IPC::ArgumentCoder<ProtectionSpace>::encodePlatformData):
(IPC::ArgumentCoder<Credential>::encodePlatformData):
(IPC::ArgumentCoder<MachSendRight>::encode):
(IPC::ArgumentCoder<KeypressCommand>::encode):
(IPC::ArgumentCoder<ContentFilterUnblockHandler>::encode):
(IPC::ArgumentCoder<MediaPlaybackTargetContext>::encodePlatformData):
* Shared/mac/WebGestureEvent.cpp:
(WebKit::WebGestureEvent::encode):
* Shared/mac/WebGestureEvent.h:
* Shared/mac/WebHitTestResultData.mm:
(WebKit::WebHitTestResultData::platformEncode):
* UIProcess/API/APIHitTestResult.h:
* UIProcess/ApplePay/WebPaymentCoordinatorProxy.h:
* UIProcess/ChildProcessProxy.cpp:
(WebKit::ChildProcessProxy::sendMessage):
(WebKit::ChildProcessProxy::dispatchSyncMessage):
(WebKit::ChildProcessProxy::didFinishLaunching):
* UIProcess/ChildProcessProxy.h:
(WebKit::ChildProcessProxy::send):
* UIProcess/Downloads/DownloadProxy.h:
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::didReceiveSyncMessage):
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/Notifications/WebNotification.cpp:
* UIProcess/Notifications/WebNotification.h:
* UIProcess/Plugins/PluginProcessManager.h:
* UIProcess/Plugins/PluginProcessProxy.h:
* UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
* UIProcess/Storage/StorageManager.h:
* UIProcess/WebFullScreenManagerProxy.h:
* UIProcess/WebIconDatabase.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::sendMessage):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPasteboardProxy.h:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::dispatchSyncMessage):
* UIProcess/WebProcessPool.h:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didReceiveSyncMessage):
* UIProcess/WebProcessProxy.h:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::didReceiveSyncMessage):
* WebProcess/Network/NetworkProcessConnection.h:
* WebProcess/Plugins/Plugin.cpp:
(WebKit::Plugin::Parameters::encode):
* WebProcess/Plugins/Plugin.h:
* WebProcess/Plugins/PluginProcessConnection.cpp:
(WebKit::PluginProcessConnection::didReceiveSyncMessage):
* WebProcess/Plugins/PluginProcessConnection.h:
* WebProcess/Plugins/PluginProcessConnectionManager.cpp:
* WebProcess/Plugins/PluginProxy.h:
* WebProcess/Scrolling/RemoteScrollingCoordinator.h:
* WebProcess/Scrolling/RemoteScrollingCoordinator.mm:
* WebProcess/WebPage/DrawingArea.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didReceiveSyncMessage):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/mac/PlatformCAAnimationRemote.h:
* WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:
(WebKit::PlatformCAAnimationRemote::KeyframeValue::encode):
(WebKit::PlatformCAAnimationRemote::Properties::encode):
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::flushLayers):
(WebKit::RemoteLayerTreeDrawingArea::BackingStoreFlusher::create):
(WebKit::RemoteLayerTreeDrawingArea::BackingStoreFlusher::BackingStoreFlusher):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::didReceiveSyncMessage):
* WebProcess/WebProcess.h:
2016-08-16 Simon Fraser <simon.fraser@apple.com>
Rename didLayout(LayoutMilestones) to didReachLayoutMilestone(), and related WK2 functions
https://bugs.webkit.org/show_bug.cgi?id=160923
Reviewed by Tim Horton.
didLayout(LayoutMilestones) -> didReachLayoutMilestone(LayoutMilestones)
dispatchDidLayout(LayoutMilestones) -> dispatchDidReachLayoutMilestone(LayoutMilestones)
Avoided changing functions that are exposed as API/SPI.
* UIProcess/API/APILoaderClient.h:
(API::LoaderClient::didReachLayoutMilestone):
(API::LoaderClient::didLayout): Deleted.
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageLoaderClient):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didLayoutForCustomContentProvider):
(WebKit::WebPageProxy::didReachLayoutMilestone):
(WebKit::WebPageProxy::didLayout): Deleted.
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::didCommitLayerTree):
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
(didReachLayoutMilestone):
(setUpPageLoaderClient):
(didLayout): Deleted.
* WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
(WebKit::InjectedBundlePageLoaderClient::didReachLayoutMilestone):
(WebKit::InjectedBundlePageLoaderClient::didLayout): Deleted.
* WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidReachLayoutMilestone):
(WebKit::WebFrameLoaderClient::dispatchDidLayout): Deleted.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
* WebProcess/WebPage/DrawingArea.h:
(WebKit::DrawingArea::dispatchDidReachLayoutMilestone):
(WebKit::DrawingArea::dispatchDidLayout): Deleted.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::dispatchDidReachLayoutMilestone):
(WebKit::WebPage::dispatchDidLayout): Deleted.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::dispatchDidReachLayoutMilestone):
(WebKit::RemoteLayerTreeDrawingArea::dispatchDidLayout): Deleted.
2016-08-18 Daniel Bates <dabates@apple.com>
Ld warns of non-existent PrivateFrameworks directory when building WebKit with the public iOS 9.3 SDK
https://bugs.webkit.org/show_bug.cgi?id=160979
Rubber-stamped by Simon Fraser.
Only add the SDK PrivateFrameworks directory to the FRAMEWORK_SEARCH_PATH when building for
iOS Simulator, building with an iOS SDK that does not support text-based stubs, or building
an Apple-internal build.
* Configurations/BaseTarget.xcconfig:
2016-08-18 Hunseop Jeong <hs85.jeong@samsung.com>
Unreviewed, Fix CMake build after r204614
* PlatformMac.cmake:
2016-08-18 Chris Dumez <cdumez@apple.com>
[iOS] Network Processes & Database processes do not exit promptly
https://bugs.webkit.org/show_bug.cgi?id=160978
<rdar://problem/27914081>
Reviewed by Anders Carlsson.
Network Processes & Database processes do not exit promptly. They hang
for 10 seconds until they log the following message:
> com.apple.WebKit.Networking: (WebKit) #WK: Exiting process early due to unacknowledged closed-connection
Then forcefully call exit(0).
To address the issue, we now call ChildProcess::stopRunLoop() instead
of RunLoop::current().stop(). stopRunLoop() works as expected on iOS
after r202723.
There is no impact on Mac because stopRunLoop() calls
RunLoop::current().stop().
* DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::didClose):
(WebKit::DatabaseProcess::didReceiveInvalidMessage):
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::didClose):
(WebKit::NetworkProcess::didReceiveInvalidMessage):
2016-08-18 Dan Bernstein <mitz@apple.com>
[Cocoa] API::Number needs to be wrapped by an NSNumber
https://bugs.webkit.org/show_bug.cgi?id=160977
<rdar://problem/27877735>
Reviewed by Anders Carlsson.
We introduce a single WKNSNumber class to wrap three distinct API::Number instantiations
corresponding to the Boolean, UInt64 and Double types.
Test: TestWebKitAPI/Tests/WebKit2Cocoa/WKNSNumber.mm
* Shared/Cocoa/APIObject.mm:
(API::Object::newObject): Create a WKNSNumber to contain any of the number types, and set
its _type ivar accordingly.
* Shared/Cocoa/WKNSNumber.h: Added.
(WebKit::wrapper):
* Shared/Cocoa/WKNSNumber.mm: Added.
(-[WKNSNumber dealloc]): Call the appropriate destructor.
(-[WKNSNumber objCType]): Implement this NSValue primitive method.
(-[WKNSNumber getValue:]): Ditto.
(-[WKNSNumber boolValue]): Implement this NSNumber method corresponding to one of our
possible types.
(-[WKNSNumber doubleValue]): Ditto.
(-[WKNSNumber unsignedLongLongValue]): Ditto.
(-[WKNSNumber copyWithZone:]): Implement this NSCopying method by retaining self.
(-[WKNSNumber _apiObject]): Implement this WKObject method by returning the appropriate
API object.
* WebKit2.xcodeproj/project.pbxproj: Added references to new files.
2016-08-18 Andy Estes <aestes@apple.com>
[Cocoa] Add SPI to WKProcessPool for enabling cookie storage partitioning
https://bugs.webkit.org/show_bug.cgi?id=160964
Reviewed by Anders Carlsson.
Followed the guidelines for SPI naming.
* UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _isCookieStoragePartitioningEnabled]): Renamed from -cookieStoragePartitioningEnabled.
(-[WKProcessPool _setCookieStoragePartitioningEnabled:]): Renamed from -setCookieStoragePartitioningEnabled:.
(-[WKProcessPool cookieStoragePartitioningEnabled]): Renamed to -_isCookieStoragePartitioningEnabled.
(-[WKProcessPool setCookieStoragePartitioningEnabled:]): Renamed to -_setCookieStoragePartitioningEnabled:.
* UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
2016-08-18 Andy Estes <aestes@apple.com>
Generated messages headers should use #pragma once
https://bugs.webkit.org/show_bug.cgi?id=160965
Reviewed by Anders Carlsson.
* Scripts/webkit/messages.py:
(generate_messages_header): Used #pragma once instead of a header guard.
2016-08-18 Andy Estes <aestes@apple.com>
[Cocoa] Add SPI to WKProcessPool for enabling cookie storage partitioning
https://bugs.webkit.org/show_bug.cgi?id=160964
Reviewed by Brent Fulgham.
* NetworkProcess/NetworkProcess.h: Declared setCookieStoragePartitioningEnabled().
* NetworkProcess/NetworkProcess.messages.in: Added message SetCookieStoragePartitioningEnabled.
* NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode): Encoded cookieStoragePartitioningEnabled.
(WebKit::NetworkProcessCreationParameters::decode): Decoded cookieStoragePartitioningEnabled.
* NetworkProcess/NetworkProcessCreationParameters.h: Declared cookieStoragePartitioningEnabled.
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
Called NetworkStorageSession::setCookieStoragePartitioningEnabled() given the cookieStoragePartitioningEnabled parameter.
(WebKit::NetworkProcess::setCookieStoragePartitioningEnabled):
Called NetworkStorageSession::setCookieStoragePartitioningEnabled().
* UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool cookieStoragePartitioningEnabled]): Returned WebProcessPool::cookieStoragePartitioningEnabled().
(-[WKProcessPool setCookieStoragePartitioningEnabled:]): Called WebProcessPool::setCookieStoragePartitioningEnabled().
* UIProcess/API/Cocoa/WKProcessPoolPrivate.h: Declared cookieStoragePartitioningEnabled as a property.
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
Set the cookieStoragePartitioningEnabled parameter from m_cookieStoragePartitioningEnabled.
(WebKit::WebProcessPool::setCookieStoragePartitioningEnabled):
Set m_cookieStoragePartitioningEnabled and sent the NetworkProcess::SetCookieStoragePartitioningEnabled message.
* UIProcess/WebProcessPool.h: Declared cookieStoragePartitioningEnabled.
2016-08-17 Anders Carlsson <andersca@apple.com>
Add support for additional networks
https://bugs.webkit.org/show_bug.cgi?id=160951
rdar://problem/27807479
Reviewed by Sam Weinig.
* Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
(IPC::ArgumentCoder<PaymentRequest>::decode):
(IPC::ArgumentCoder<PaymentRequest::SupportedNetworks>::encode): Deleted.
(IPC::ArgumentCoder<PaymentRequest::SupportedNetworks>::decode): Deleted.
* Shared/WebCoreArgumentCoders.h:
* UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
(WebKit::toAdditionalSupportedNetwork):
(WebKit::toSupportedNetwork):
(WebKit::toSupportedNetworks):
* WebProcess/ApplePay/WebPaymentCoordinator.cpp:
(WebKit::WebPaymentCoordinator::supportsVersion):
2016-08-17 Anders Carlsson <andersca@apple.com>
Remove a couple of unused WKSI function pointers
https://bugs.webkit.org/show_bug.cgi?id=160946
Reviewed by Dan Bernstein.
* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface): Deleted.
2016-08-17 Dan Bernstein <mitz@apple.com>
[Cocoa] -[NSString isEqualToString:] returns NO for any WKNSString argument
https://bugs.webkit.org/show_bug.cgi?id=160938
<rdar://problem/27876652>
Reviewed by Anders Carlsson.
-[NSString isEqualToString:] calls an internal NSObject method on its argument, which
NSString subclasses override to return YES, but WKObject does not override and does not
forward to its target NSString.
To fix this issue and other similar issues, we make WKObject a root class instead of an
NSObject subclass.
Test: TestWebKitAPI/Tests/WebKit2Cocoa/WKObject.mm
* Platform/spi/Cocoa/objcSPI.h: Added.
* Shared/Cocoa/WKObject.h: Make WKObject a root class instead of inhereting from NSObject.
* Shared/Cocoa/WKObject.mm:
(+[WKObject class]): Return self.
(-[WKObject allowsWeakReference]): Added. Called by the Objective-C runtime.
(-[WKObject retainWeakReference]): Ditto.
(-[WKObject hash]): If we don’t have a target, return our address.
(-[WKObject superclass]): Implement this NSObject protocol method.
(-[WKObject class]): Ditto.
(-[WKObject self]): Ditto.
(-[WKObject performSelector:]): Ditto.
(-[WKObject performSelector:withObject:]): Ditto.
(-[WKObject performSelector:withObject:withObject:]): Ditto.
(-[WKObject isProxy]): Ditto.
(-[WKObject respondsToSelector:]): Changed to not call super.
(-[WKObject conformsToProtocol:]): Ditto.
(-[WKObject description]): Ditto.
(-[WKObject retain]): Implement this NSObject protocol method.
(-[WKObject release]): Ditto.
(-[WKObject autorelease]): Ditto.
(-[WKObject retainCount]): Ditto.
(-[WKObject zone]): Ditto.
(-[WKObject dealloc]): Deleted.
(-[WKObject classForCoder]): Deleted.
(-[WKObject classForKeyedArchiver]): Deleted.
(-[WKObject _cfTypeID]): Deleted.
* WebKit2.xcodeproj/project.pbxproj: Added reference to new file.
2016-08-17 Hunseop Jeong <hs85.jeong@samsung.com>
[EFL] Fix test_ewk2_view after r203612
https://bugs.webkit.org/show_bug.cgi?id=160937
Reviewed by Gyuyoung Kim.
Default parameter values for window.alert() / prompt() / confirm() was
changed from "undefined" to the empty string after r203612.
* UIProcess/API/efl/tests/test_ewk2_view.cpp:
(TEST_F):
2016-08-16 Simon Fraser <simon.fraser@apple.com>
[iOS WK2] Don't throw touchMove events on the floor
https://bugs.webkit.org/show_bug.cgi?id=160935
Reviewed by Tim Horton.
EventDispatcher claimed to coalesce touchMove events, but actually threw away any
touchMove if there was one in the queue when the next non-move event came along.
Fix to strictly coalesce touchMove events, so a start/move/end stream always fires
a move event. This is necessary for move-based interaction to work in testing,
for example the added range slider test.
Test: fast/forms/ios/drag-range-thumb.html
* WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::touchEvent):
2016-08-16 Simon Fraser <simon.fraser@apple.com>
[iOS WK2] Clean up form select code
https://bugs.webkit.org/show_bug.cgi?id=160915
Reviewed by Enrica Casucci.
Some minor forms-related cleanup:
1. Give WKFormSelectPopover and WKFormSelectPicker their own header files, making
things easier to find.
2. Remove WKContentView *_view member variables from classes which also stored
the view in their base classes.
Sort the project file.
* UIProcess/ios/forms/WKFormPopover.h:
* UIProcess/ios/forms/WKFormPopover.mm:
(-[WKFormRotatingAccessoryPopover accessoryDone]):
(-[WKFormRotatingAccessoryPopover initWithView:]): Deleted.
* UIProcess/ios/forms/WKFormSelectControl.h:
* UIProcess/ios/forms/WKFormSelectControl.mm:
* UIProcess/ios/forms/WKFormSelectPicker.h: Copied from Source/WebKit2/UIProcess/ios/forms/WKFormSelectControl.h.
* UIProcess/ios/forms/WKFormSelectPicker.mm:
* UIProcess/ios/forms/WKFormSelectPopover.h: Copied from Source/WebKit2/UIProcess/ios/forms/WKFormSelectControl.h.
* UIProcess/ios/forms/WKFormSelectPopover.mm:
(-[WKSelectPopover initWithView:hasGroups:]):
* WebKit2.xcodeproj/project.pbxproj:
2016-08-16 Daniel Bates <dabates@apple.com>
WKSI static library should be named by major iOS revision, not individual updates
https://bugs.webkit.org/show_bug.cgi?id=160727
<rdar://problem/22274848>
Reviewed by Alexey Proskuryakov.
* Configurations/Base.xcconfig:
* Configurations/BaseTarget.xcconfig:
* Configurations/DebugRelease.xcconfig:
2016-08-16 Simon Fraser <simon.fraser@apple.com>
Make it possible to test iOS select elements, and add iPhone and iPad tests for them
https://bugs.webkit.org/show_bug.cgi?id=160909
Reviewed by Enrica Casucci.
Hook up form-related UIScriptController functions, and plumb through the various
<select> pickers the ability to select a row.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView dismissFormAccessoryView]):
(-[WKWebView selectFormAccessoryPickerRow:]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView selectFormAccessoryPickerRow:]):
* UIProcess/ios/forms/WKFormSelectControl.h:
* UIProcess/ios/forms/WKFormSelectControl.mm:
(-[WKFormSelectControl selectRow:inComponent:extendingSelection:]):
* UIProcess/ios/forms/WKFormSelectPicker.mm:
(-[WKMultipleSelectPicker selectRow:inComponent:extendingSelection:]):
(-[WKSelectSinglePicker selectRow:inComponent:extendingSelection:]):
* UIProcess/ios/forms/WKFormSelectPopover.mm:
(-[WKSelectPopover selectRow:inComponent:extendingSelection:]):
2016-08-16 Brady Eidson <beidson@apple.com>
Cleanup WK2 platform gamepad handling.
https://bugs.webkit.org/show_bug.cgi?id=160871
Reviewed by Alex Christensen.
This patch does a few things:
1 - Separates the concepts of "monitoring gamepads" and "monitoring gamepad inputs"
2 - Uses this new concept to much more cleanly handle the case where we are not currently
monitoring gamepad inputs because an interested WKWebView is not front and center.
3 - Pre-populates the "initial set of gamepads" in WebProcesses that start listening for gamepads.
* Platform/Logging.h:
* UIProcess/Gamepad/UIGamepadProvider.cpp:
(WebKit::UIGamepadProvider::gamepadSyncTimerFired):
(WebKit::UIGamepadProvider::setInitialConnectedGamepads):
(WebKit::UIGamepadProvider::processPoolStoppedUsingGamepads):
(WebKit::UIGamepadProvider::viewBecameActive):
(WebKit::UIGamepadProvider::viewBecameInactive):
(WebKit::UIGamepadProvider::stopMonitoringGamepads):
(WebKit::UIGamepadProvider::snapshotGamepads):
(WebKit::UIGamepadProvider::platformStopMonitoringInput):
(WebKit::UIGamepadProvider::platformStartMonitoringInput):
(WebKit::UIGamepadProvider::UIGamepadProvider): Deleted.
(WebKit::UIGamepadProvider::scheduleDisableGamepadMonitoring): Deleted.
(WebKit::UIGamepadProvider::disableMonitoringTimerFired): Deleted.
* UIProcess/Gamepad/UIGamepadProvider.h:
* UIProcess/Gamepad/mac/UIGamepadProviderHID.cpp:
(WebKit::UIGamepadProvider::platformStopMonitoringInput):
(WebKit::UIGamepadProvider::platformStartMonitoringInput):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::setInitialConnectedGamepads):
* UIProcess/WebProcessPool.h:
* WebProcess/Gamepad/WebGamepadProvider.cpp:
(WebKit::WebGamepadProvider::setInitialGamepads):
* WebProcess/Gamepad/WebGamepadProvider.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::setInitialGamepads):
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:
2016-08-15 Simon Fraser <simon.fraser@apple.com>
[iOS] Add iPad viewport and form tests, and revert the iPad-testing part of r202132
https://bugs.webkit.org/show_bug.cgi?id=160878
Reviewed by Tim Horton.
Remove testing-specific "forceIPadStyleZoomOnInputFocus" behavior added in r202132
now that we have the ability to run tests in the iPad simulator.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView forceIPadStyleZoomOnInputFocus]): Deleted.
(-[WKWebView setForceIPadStyleZoomOnInputFocus:]): Deleted.
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _displayFormNodeInputView]):
(-[WKContentView requiresAccessoryView]):
(-[WKContentView inputAccessoryView]):
(-[WKContentView requiresAccessoryView:]): Deleted.
(-[WKContentView forceIPadStyleZoomOnInputFocus]): Deleted.
(-[WKContentView setForceIPadStyleZoomOnInputFocus:]): Deleted.
2016-08-16 Alex Christensen <achristensen@webkit.org>
Clean up WebSockets
https://bugs.webkit.org/show_bug.cgi?id=160889
Reviewed by Darin Adler.
* UIProcess/InspectorServer/WebSocketServerConnection.cpp:
(WebKit::WebSocketServerConnection::didCloseSocketStream):
(WebKit::WebSocketServerConnection::didReceiveSocketStreamData):
* UIProcess/InspectorServer/WebSocketServerConnection.h:
2016-08-16 Chris Dumez <cdumez@apple.com>
Unreviewed, rolling out r204506.
Broke the build
Reverted changeset:
"Cleanup WK2 platform gamepad handling."
https://bugs.webkit.org/show_bug.cgi?id=160871
http://trac.webkit.org/changeset/204506
2016-08-16 Darin Adler <darin@apple.com>
[Cocoa] Remove dependency on Objective-C bindings in WebKit2 editing code
https://bugs.webkit.org/show_bug.cgi?id=160891
Reviewed by Anders Carlsson.
* WebProcess/WebCoreSupport/WebEditorClient.h: Removed documentFragmentFromAttributedString.
* WebProcess/WebCoreSupport/ios/WebEditorClientIOS.mm:
(WebKit::WebEditorClient::documentFragmentFromAttributedString): Deleted.
* WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
(WebKit::createExcludedElementsForAttributedStringConversion): Deleted.
(WebKit::WebEditorClient::documentFragmentFromAttributedString): Deleted.
2016-08-16 Brady Eidson <beidson@apple.com>
Cleanup WK2 platform gamepad handling.
https://bugs.webkit.org/show_bug.cgi?id=160871
Reviewed by Alex Christensen.
This patch does a few things:
1 - Separates the concepts of "monitoring gamepads" and "monitoring gamepad inputs"
2 - Uses this new concept to much more cleanly handle the case where we are not currently
monitoring gamepad inputs because an interested WKWebView is not front and center.
3 - Pre-populates the "initial set of gamepads" in WebProcesses that start listening for gamepads.
* Platform/Logging.h:
* UIProcess/Gamepad/UIGamepadProvider.cpp:
(WebKit::UIGamepadProvider::gamepadSyncTimerFired):
(WebKit::UIGamepadProvider::setInitialConnectedGamepads):
(WebKit::UIGamepadProvider::processPoolStoppedUsingGamepads):
(WebKit::UIGamepadProvider::viewBecameActive):
(WebKit::UIGamepadProvider::viewBecameInactive):
(WebKit::UIGamepadProvider::stopMonitoringGamepads):
(WebKit::UIGamepadProvider::snapshotGamepads):
(WebKit::UIGamepadProvider::platformStopMonitoringInput):
(WebKit::UIGamepadProvider::platformStartMonitoringInput):
(WebKit::UIGamepadProvider::UIGamepadProvider): Deleted.
(WebKit::UIGamepadProvider::scheduleDisableGamepadMonitoring): Deleted.
(WebKit::UIGamepadProvider::disableMonitoringTimerFired): Deleted.
* UIProcess/Gamepad/UIGamepadProvider.h:
* UIProcess/Gamepad/mac/UIGamepadProviderHID.cpp:
(WebKit::UIGamepadProvider::platformStopMonitoringInput):
(WebKit::UIGamepadProvider::platformStartMonitoringInput):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::setInitialConnectedGamepads):
* UIProcess/WebProcessPool.h:
* WebProcess/Gamepad/WebGamepadProvider.cpp:
(WebKit::WebGamepadProvider::setInitialGamepads):
* WebProcess/Gamepad/WebGamepadProvider.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::setInitialGamepads):
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:
2016-08-15 Alex Christensen <achristensen@webkit.org>
Rename SocketStreamHandleBase to SocketStreamHandle and SocketStreamHandle to SocketStreamHandleImpl
https://bugs.webkit.org/show_bug.cgi?id=160858
Reviewed by Brady Eidson.
* WebProcess/Network/WebSocketProvider.cpp:
(WebKit::WebSocketProvider::createSocketStreamHandle):
2016-08-15 Anders Carlsson <andersca@apple.com>
Fix iOS build.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::webGLPolicyForURL):
(WebKit::WebPage::resolveWebGLPolicyForURL):
2016-08-15 Keith Rollin <krollin@apple.com>
Rename LOG_ALWAYS
https://bugs.webkit.org/show_bug.cgi?id=160768
Rename LOG_ALWAYS and friends, given that the first parameter to it is
a boolean expression that determines whether or not logging should be
performed.
Reviewed by Chris Dumez.
* NetworkProcess/Downloads/Download.cpp:
(WebKit::Download::didReceiveResponse):
(WebKit::Download::didReceiveData):
(WebKit::Download::didFinish):
(WebKit::Download::didFail):
(WebKit::Download::didCancel):
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::prepareToSuspend):
(WebKit::NetworkProcess::cancelPrepareToSuspend):
(WebKit::NetworkProcess::processDidResume):
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::startNetworkLoad):
(WebKit::NetworkResourceLoader::didFinishLoading):
(WebKit::NetworkResourceLoader::didFailLoading):
(WebKit::NetworkResourceLoader::continueWillSendRequest):
* Platform/IPC/Connection.cpp:
(IPC::Connection::waitForSyncReply):
* Shared/ChildProcess.cpp:
(WebKit::didCloseOnConnectionWorkQueue):
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::didChangeIsLoading):
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::fetchWebsiteData):
(WebKit::NetworkProcessProxy::deleteWebsiteData):
(WebKit::NetworkProcessProxy::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcessProxy::setIsHoldingLockedFiles):
* UIProcess/ProcessThrottler.cpp:
(WebKit::ProcessThrottler::updateAssertionNow):
(WebKit::ProcessThrottler::updateAssertion):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::updateActivityToken):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::fetchWebsiteData):
(WebKit::WebProcessProxy::deleteWebsiteData):
(WebKit::WebProcessProxy::deleteWebsiteDataForOrigins):
(WebKit::WebProcessProxy::didSetAssertionState):
(WebKit::WebProcessProxy::setIsHoldingLockedFiles):
* UIProcess/ios/ProcessAssertionIOS.mm:
(-[WKProcessAssertionBackgroundTaskManager _updateBackgroundTask]):
(WebKit::ProcessAssertion::ProcessAssertion):
* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::scheduleLoad):
* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::willSendRequest):
(WebKit::WebResourceLoader::didReceiveResponse):
(WebKit::WebResourceLoader::didReceiveData):
(WebKit::WebResourceLoader::didFinishResourceLoad):
(WebKit::WebResourceLoader::didFailResourceLoad):
(WebKit::WebResourceLoader::didReceiveResource):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::layerVolatilityTimerFired):
(WebKit::WebPage::markLayersVolatile):
(WebKit::WebPage::cancelMarkLayersVolatile):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::actualPrepareToSuspend):
(WebKit::WebProcess::processWillSuspendImminently):
(WebKit::WebProcess::prepareToSuspend):
(WebKit::WebProcess::cancelPrepareToSuspend):
(WebKit::WebProcess::markAllLayersVolatile):
(WebKit::WebProcess::processDidResume):
2016-08-15 Daniel Bates <dabates@apple.com>
Cannot build WebKit for iOS device using Xcode 7.3/iOS 9.3 public SDK due to missing
private frameworks and libraries
https://bugs.webkit.org/show_bug.cgi?id=155931
<rdar://problem/25807989>
Reviewed by Dan Bernstein.
Add directory WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/X to the framework search path
where X is the major version of the active iOS SDK.
* Configurations/BaseTarget.xcconfig:
2016-08-15 Simon Fraser <simon.fraser@apple.com>
Add a setting and preferences to enable visual viewport mode
https://bugs.webkit.org/show_bug.cgi?id=160843
Reviewed by Sam Weinig.
Hook up the visualViewportEnabled setting for WebKit2.
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _visualViewportEnabled]):
(-[WKPreferences _setVisualViewportEnabled:]):
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
2016-08-15 Joseph Pecoraro <pecoraro@apple.com>
Remove unused includes of wtf headers
https://bugs.webkit.org/show_bug.cgi?id=160839
Reviewed by Alex Christensen.
* Lots of files.
2016-08-12 Anders Carlsson <andersca@apple.com>
Move the plug-in and WebGL blacklist code to WebCore
https://bugs.webkit.org/show_bug.cgi?id=160831
Reviewed by Sam Weinig.
Adopt the plug-in and WebGL blacklist code from WebCore instead of using the code from WebKitSystemInterface.
* Shared/Plugins/Netscape/mac/PluginInformationMac.mm:
(WebKit::getPlatformPluginModuleInformation):
* Shared/Plugins/PluginModuleInfo.h:
* UIProcess/API/C/mac/WKContextPrivateMac.mm:
(WKContextIsPlugInUpdateAvailable):
(WKContextShouldBlockWebGL):
(WKContextShouldSuggestBlockWebGL):
* UIProcess/Plugins/PluginInfoStore.h:
* UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
(WebKit::shouldBlockPlugin):
(WebKit::PluginInfoStore::defaultLoadPolicyForPlugin):
(WebKit::WKPlugInModuleLoadPolicyToPluginModuleLoadPolicy): Deleted.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::findPlugin):
2016-08-10 Brent Fulgham <bfulgham@apple.com>
Add Sandbox profile for Enterprise support version of Flash Player
https://bugs.webkit.org/show_bug.cgi?id=160753
<rdar://problem/17614483>
Reviewed by Andy Estes.
* Resources/PlugInSandboxProfiles/com.macromedia.Flash Player ESR.plugin.sb: Added.
* WebKit2.xcodeproj/project.pbxproj: Add reference to new sandbox profile.
2016-08-14 Dan Bernstein <mitz@apple.com>
[Cocoa] Remove deprecated _WKFormDelegate
https://bugs.webkit.org/show_bug.cgi?id=160848
Reviewed by Anders Carlsson.
* Shared/API/Cocoa/WebKitPrivate.h: Removed #import.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _formDelegate]): Moved into WKBinaryCompatibilityIOS10 cateogry implementation,
chaged type to id <_WKInputDelegate>.
(-[WKWebView _setFormDelegate:]): Ditto.
* UIProcess/API/Cocoa/WKWebViewPrivate.h: Removed property declaration.
* UIProcess/API/Cocoa/_WKFormDelegate.h: Removed.
* WebKit2.xcodeproj/project.pbxproj: Removed reference to header.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h: Fixed comment.
2016-08-14 Daniel Bates <dabates@apple.com>
Fix compiler errors when building iOS WebKit using the iOS 10 beta SDK
https://bugs.webkit.org/show_bug.cgi?id=160725
Reviewed by Sam Weinig.
* Platform/spi/ios/UIKitSPI.h: Add SPI for UITextInputSuggestionDelegate.
* UIProcess/ApplePay/ios/WebPaymentCoordinatorProxyIOS.mm: Remove unnecessary include of PKPaymentMerchantSession.h.
2016-08-14 Dan Bernstein <mitz@apple.com>
[Cocoa] Remove deprecated _WKVisitedLinkProvider declarations that aren’t needed
https://bugs.webkit.org/show_bug.cgi?id=160846
Reviewed by Darin Adler.
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration _visitedLinkProvider]): Moved into WKBinaryCompatibilityIOS10
cateogry implementation, changed type to _WKVisitedLinkStore.
(-[WKWebViewConfiguration _setVisitedLinkProvider:]): Ditto.
* UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: Removed property declaration.
* UIProcess/API/Cocoa/_WKVisitedLinkProvider.h: Removed.
* UIProcess/API/Cocoa/_WKVisitedLinkProvider.mm: Moved declaration in here.
* WebKit2.xcodeproj/project.pbxproj: Updated for header removal.
2016-08-12 Dan Bernstein <mitz@apple.com>
[Cocoa] Instances of WKObject subclasses don’t work correctly with CFGetTypeID()
https://bugs.webkit.org/show_bug.cgi?id=160820
<rdar://problem/27825875>
Reviewed by Anders Carlsson.
* Shared/Cocoa/WKObject.mm:
(-[WKObject _cfTypeID]): Override this internal method and forward to the target object.
2016-08-12 Johan K. Jensen <johan_jensen@apple.com>
Rename DocumentLoadTiming and ResourceLoadTiming
https://bugs.webkit.org/show_bug.cgi?id=160821
Reviewed by Alex Christensen.
Rename ResourceLoadTiming to NetworkLoadTiming.
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
2016-08-12 Anders Carlsson <andersca@apple.com>
message loading never finishes in Mail
https://bugs.webkit.org/show_bug.cgi?id=160806
rdar://problem/27624095
Reviewed by Dan Bernstein.
Add more checks for when a process goes away before we've established a proper connection to it.
* Platform/IPC/mac/ConnectionMac.mm:
(IPC::Connection::receiveSourceEventHandler):
Handle the MACH_NOTIFY_NO_SENDERS and MACH_NOTIFY_SEND_ONCE messages here. Also, once we receive a send
right from the other side, stop listening for the MACH_NOTIFY_NO_SENDERS notification.
* UIProcess/ChildProcessProxy.cpp:
(WebKit::ChildProcessProxy::didFinishLaunching):
Null check the connection identifier.
* UIProcess/Launcher/ProcessLauncher.cpp:
(WebKit::ProcessLauncher::ProcessLauncher):
(WebKit::processLauncherWorkQueue): Deleted.
Get rid of the process launcher queue - we're not doing any blocking work here.
* UIProcess/Launcher/ProcessLauncher.h:
Add a weak factory.
* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::systemDirectoryPath):
Move this before launchProcess().
(WebKit::ProcessLauncher::launchProcess):
Merge createService and connectToService into launchProcess. Also make the following changes:
- Use mach_port_request_notification to get a notification for when our receive right loses all its senders.
This lets us listen for the other process going away before we have a send right for it.
- Use xpc_connection_set_event_handler to listen for errors, so we can detect the process going away before
we've sent a message to it.
(WebKit::connectToService): Deleted.
(WebKit::createService): Deleted.
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::didFinishLaunching):
If we failed to launch, call networkProcessCrashedOrFailedToLaunch so we'll unblock any waiting web processes.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didFinishLaunching):
Null check the connection and XPC connection before trying to get its pid.
2016-08-11 Brady Eidson <beidson@apple.com>
[WK2] Don't monitor gamepads at all unless an interested WebPageProxy is in the active window.
https://bugs.webkit.org/show_bug.cgi?id=160760
Reviewed by Tim Horton.
This patch makes it such that the UIProcess will only listen to the platform gamepad mechanism
if a WebPageProxy that is interested in gamepads is in the active window.
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::windowDidBecomeKey):
(WebKit::WebViewImpl::windowDidResignKey):
* UIProcess/Gamepad/UIGamepadProvider.cpp:
(WebKit::UIGamepadProvider::UIGamepadProvider):
(WebKit::UIGamepadProvider::gamepadSyncTimerFired):
(WebKit::UIGamepadProvider::scheduleGamepadStateSync):
(WebKit::UIGamepadProvider::platformGamepadConnected):
(WebKit::UIGamepadProvider::platformGamepadDisconnected):
(WebKit::UIGamepadProvider::platformGamepadInputActivity):
(WebKit::UIGamepadProvider::processPoolStartedUsingGamepads):
(WebKit::UIGamepadProvider::processPoolStoppedUsingGamepads):
(WebKit::UIGamepadProvider::viewBecameActive):
(WebKit::UIGamepadProvider::viewBecameInactive):
(WebKit::UIGamepadProvider::scheduleDisableGamepadMonitoring):
(WebKit::UIGamepadProvider::disableMonitoringTimerFired):
(WebKit::UIGamepadProvider::startMonitoringGamepads):
(WebKit::UIGamepadProvider::stopMonitoringGamepads):
(WebKit::UIGamepadProvider::updateTimerFired): Deleted.
(WebKit::UIGamepadProvider::startOrStopSynchingGamepadState): Deleted.
* UIProcess/Gamepad/UIGamepadProvider.h:
2016-08-11 Brady Eidson <beidson@apple.com>
Make Gamepads be a WK2 ExperimentalFeature.
https://bugs.webkit.org/show_bug.cgi?id=160788
Reviewed by Alex Christensen.
* Shared/WebPreferencesDefinitions.h:
2016-08-11 Alex Christensen <achristensen@webkit.org>
Don't use a NetworkingContext when creating SocketStreamHandles
https://bugs.webkit.org/show_bug.cgi?id=160732
Reviewed by Brady Eidson.
* WebProcess/Network/WebSocketProvider.cpp:
(WebKit::WebSocketProvider::createSocketStreamHandle):
* WebProcess/Network/WebSocketProvider.h:
2016-08-11 Alex Christensen <achristensen@webkit.org>
Use StringBuilder::appendLiteral when possible don't append result of makeString
https://bugs.webkit.org/show_bug.cgi?id=160772
Reviewed by Sam Weinig.
* Shared/Gamepad/GamepadData.cpp:
(WebKit::GamepadData::isNull):
(WebKit::GamepadData::loggingString):
* Shared/Gamepad/GamepadData.h:
* UIProcess/WebProcessPool.h:
2016-08-10 Alex Christensen <achristensen@webkit.org>
Fix crash when changing cookie accept policy after r204327
https://bugs.webkit.org/show_bug.cgi?id=160758
Reviewed by Simon Fraser.
* WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
(WebKit::WebFrameNetworkingContext::setCookieAcceptPolicyForAllContexts):
2016-08-10 Simon Fraser <simon.fraser@apple.com>
Sort the feature flags in the FEATURE_DEFINES lines
https://bugs.webkit.org/show_bug.cgi?id=160742
Reviewed by Anders Carlsson.
* Configurations/FeatureDefines.xcconfig:
2016-08-09 Alex Christensen <achristensen@webkit.org>
Move NetworkStorageSession management to WebCore
https://bugs.webkit.org/show_bug.cgi?id=160173
Reviewed by Brady Eidson.
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::storageSession):
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
* NetworkProcess/NetworkSession.h:
(WebKit::NetworkSession::sessionID):
NetworkSessions no longer own NetworkStorageSessions, but they should still have the same lifetime.
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
(WebKit::NetworkSession::setSourceApplicationAuditTokenData):
(WebKit::NetworkSession::create):
(WebKit::NetworkSession::defaultSession):
(WebKit::NetworkSession::NetworkSession):
(WebKit::NetworkSession::networkStorageSession):
(WebKit::NetworkSession::clearCredentials):
* NetworkProcess/mac/RemoteNetworkingContext.mm:
(WebKit::RemoteNetworkingContext::storageSession):
(WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession):
* Shared/SessionTracker.cpp:
(WebKit::SessionTracker::networkSession):
(WebKit::SessionTracker::setSession):
(WebKit::SessionTracker::destroySession):
(WebKit::SessionTracker::storageSession): Deleted.
(WebKit::staticStorageSessionMap): Deleted.
(WebKit::SessionTracker::sessionID): Deleted.
(WebKit::SessionTracker::forEachNetworkStorageSession): Deleted.
* Shared/SessionTracker.h:
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::cookiesForDOM):
(WebKit::WebPlatformStrategies::setCookiesFromDOM):
(WebKit::WebPlatformStrategies::cookiesEnabled):
(WebKit::WebPlatformStrategies::cookieRequestHeaderFieldValue):
(WebKit::WebPlatformStrategies::getRawCookies):
(WebKit::WebPlatformStrategies::deleteCookie):
(WebKit::WebPlatformStrategies::addCookie):
* WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
(WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession):
(WebKit::WebFrameNetworkingContext::setCookieAcceptPolicyForAllContexts):
(WebKit::WebFrameNetworkingContext::storageSession):
* WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp:
(WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession):
(WebKit::WebFrameNetworkingContext::setCookieAcceptPolicyForAllContexts):
* WebProcess/WebPage/mac/WebPageMac.mm:
* WebProcess/WebProcess.cpp:
2016-08-09 Anders Carlsson <andersca@apple.com>
Fix iOS build.
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::setPluginLoadClientPolicy): Deleted.
(WebKit::WebProcessPool::clearPluginClientPolicies): Deleted.
2016-08-09 Anders Carlsson <andersca@apple.com>
Instantiate WebKit plug-ins at layout time, instead of at style resolution time
https://bugs.webkit.org/show_bug.cgi?id=160715
Reviewed by Tim Horton.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::objectContentType):
2016-08-09 Brady Eidson <beidson@apple.com>
[WK2] Only send gamepad input events to the currently focused page.
https://bugs.webkit.org/show_bug.cgi?id=160699
Reviewed by Tim Horton.
* UIProcess/Gamepad/UIGamepadProvider.cpp:
(WebKit::UIGamepadProvider::updateTimerFired):
(WebKit::UIGamepadProvider::platformWebProcessProxyForGamepadInput):
* UIProcess/Gamepad/UIGamepadProvider.h:
* UIProcess/Gamepad/mac/UIGamepadProviderMac.mm: Copied from Source/WebKit2/UIProcess/API/mac/WKViewInternal.h.
(WebKit::UIGamepadProvider::platformWebPageProxyForGamepadInput):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::gamepadActivity):
* UIProcess/WebPageProxy.h:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::gamepadActivity): Deleted.
* UIProcess/WebProcessPool.h:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::gamepadActivity):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::gamepadActivity): Deleted.
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:
2016-08-09 Anders Carlsson <andersca@apple.com>
Remove code that would tell clients whenever the list of installed plug-ins changes
https://bugs.webkit.org/show_bug.cgi?id=160719
Reviewed by Tim Horton.
* UIProcess/Plugins/PluginInfoStore.cpp:
(WebKit::PluginInfoStore::PluginInfoStore): Deleted.
(WebKit::PluginInfoStore::loadPluginsIfNecessary): Deleted.
* UIProcess/Plugins/PluginInfoStore.h:
(WebKit::PluginInfoStoreClient::~PluginInfoStoreClient): Deleted.
(WebKit::PluginInfoStoreClient::PluginInfoStoreClient): Deleted.
(WebKit::PluginInfoStore::setClient): Deleted.
(WebKit::PluginInfoStore::client): Deleted.
* UIProcess/WebContextClient.cpp:
(WebKit::WebContextClient::plugInInformationBecameAvailable): Deleted.
* UIProcess/WebContextClient.h:
* UIProcess/WebProcessPool.cpp:
(WebKit::m_hiddenPageThrottlingTimer): Deleted.
(WebKit::WebProcessPool::pluginInfoStoreDidLoadPlugins): Deleted.
* UIProcess/WebProcessPool.h:
2016-08-09 George Ruan <gruan@apple.com>
Implement functionality of media capture on iOS
https://bugs.webkit.org/show_bug.cgi?id=158945
<rdar://problem/26893343>
Reviewed by Tim Horton.
For a input type file element on iOS, the media capture attribute can
now be used to specify which camera to pull up immediately, as opposed
to having to select the camera from a file picker menu. If the
specified capture type camera device is unavailable, the other
built-in camera will be pulled up instead. If no camera is available,
then the file picker menu will be presented to the user.
* Configurations/FeatureDefines.xcconfig: Enable Media Capture feature
on iOS.
* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<FileChooserSettings>::encode): Encode enum
MediaCaptureType.
(IPC::ArgumentCoder<FileChooserSettings>::decode): Decode enum
MediaCaptureType.
* UIProcess/API/APIOpenPanelParameters.cpp:
(API::OpenPanelParameters::mediaCaptureType):
(API::OpenPanelParameters::capture): Deleted.
* UIProcess/API/APIOpenPanelParameters.h: Capture attribute is now
represented with MediaCaptureType instead of boolean.
* UIProcess/API/C/WKOpenPanelParametersRef.cpp:
(WKOpenPanelParametersGetMediaCaptureType): Change function name to
better represent function.
(WKOpenPanelParametersGetCaptureEnabled): Deleted.
* UIProcess/API/C/WKOpenPanelParametersRef.h:
* UIProcess/ios/forms/WKFileUploadPanel.mm:
(cameraDeviceForMediaCaptureType): Translate MediaCaptureType to media
device.
(-[WKFileUploadPanel presentWithParameters:resultListener:]):
Immediately pull up media capture device if devices are available and
capture attribute is present.
(-[WKFileUploadPanel _showDocumentPickerMenu]): Only show option to
use media capture device if it is available for the source type.
(-[WKFileUploadPanel _adjustMediaCaptureType]): Determines correct
fallback option for the media capture device.
(-[WKFileUploadPanel _shouldMediaCaptureOpenMediaDevice]): Checks if
the media capture device should be immediately pulled up.
(-[WKFileUploadPanel _showPhotoPickerWithSourceType:]): Specified the
media capture device to use.
2016-08-09 Brady Eidson <beidson@apple.com>
Implement "dumb" WK2 support for gamepads.
https://bugs.webkit.org/show_bug.cgi?id=160700
Reviewed by Alex Christensen.
With this patch, gamepads work in WK2.
Things known to be missing to make this mechanism more "smart":
- Refresh values along with display sync instead of on a 60hz timer (bug 160673)
- Only send updated values to the current focused web page (bug 160699)
* CMakeLists.txt:
* WebKit2.xcodeproj/project.pbxproj:
* Shared/Gamepad/GamepadData.cpp: Copied from Source/WebKit2/UIProcess/Gamepad/mac/UIGamepadProviderHID.cpp.
(WebKit::GamepadData::encode):
(WebKit::GamepadData::decode):
(WebKit::GamepadData::isNull):
(WebKit::GamepadData::loggingString):
* Shared/Gamepad/GamepadData.h: Copied from Source/WebKit2/WebProcess/Gamepad/WebGamepad.h.
* UIProcess/Gamepad/UIGamepad.cpp: Copied from Source/WebKit2/UIProcess/Gamepad/mac/UIGamepadProviderHID.cpp.
(WebKit::UIGamepad::UIGamepad):
(WebKit::UIGamepad::updateFromPlatformGamepad):
(WebKit::UIGamepad::gamepadData):
* UIProcess/Gamepad/UIGamepad.h: Copied from Source/WebKit2/WebProcess/Gamepad/WebGamepad.h.
(WebKit::UIGamepad::index):
* UIProcess/Gamepad/UIGamepadProvider.cpp:
(WebKit::UIGamepadProvider::UIGamepadProvider):
(WebKit::UIGamepadProvider::updateTimerFired):
(WebKit::UIGamepadProvider::startOrStopSynchingGamepadState):
(WebKit::UIGamepadProvider::platformGamepadConnected):
(WebKit::UIGamepadProvider::platformGamepadDisconnected):
(WebKit::UIGamepadProvider::platformGamepadInputActivity):
(WebKit::UIGamepadProvider::processPoolStartedUsingGamepads):
(WebKit::UIGamepadProvider::processPoolStoppedUsingGamepads):
(WebKit::UIGamepadProvider::platformGamepads):
* UIProcess/Gamepad/UIGamepadProvider.h:
* UIProcess/Gamepad/mac/UIGamepadProviderHID.cpp:
(WebKit::UIGamepadProvider::platformGamepads):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::gamepadConnected):
(WebKit::WebProcessPool::gamepadDisconnected):
(WebKit::WebProcessPool::gamepadActivity):
* UIProcess/WebProcessPool.h:
* WebProcess/Gamepad/WebGamepad.cpp:
(WebKit::WebGamepad::WebGamepad):
(WebKit::WebGamepad::axisValues):
(WebKit::WebGamepad::buttonValues):
(WebKit::WebGamepad::updateValues):
* WebProcess/Gamepad/WebGamepad.h:
* WebProcess/Gamepad/WebGamepadProvider.cpp:
(WebKit::WebGamepadProvider::gamepadConnected):
(WebKit::WebGamepadProvider::gamepadDisconnected):
(WebKit::WebGamepadProvider::gamepadActivity):
(WebKit::WebGamepadProvider::platformGamepads):
* WebProcess/Gamepad/WebGamepadProvider.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::gamepadConnected):
(WebKit::WebProcess::gamepadDisconnected):
(WebKit::WebProcess::gamepadActivity):
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:
2016-08-09 Anders Carlsson <andersca@apple.com>
Get rid of PluginStrategy
https://bugs.webkit.org/show_bug.cgi?id=160696
Reviewed by Dan Bernstein.
* NetworkProcess/NetworkProcessPlatformStrategies.cpp:
(WebKit::NetworkProcessPlatformStrategies::createPluginStrategy): Deleted.
* NetworkProcess/NetworkProcessPlatformStrategies.h:
* WebProcess/Plugins/WebPluginInfoProvider.h:
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::createPluginStrategy): Deleted.
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:
2016-08-09 Dan Bernstein <mitz@apple.com>
Add WKPage SPI for looking up a WKFrame given a WKFrameHandle
https://bugs.webkit.org/show_bug.cgi?id=160695
Reviewed by Anders Carlsson.
* UIProcess/API/C/WKPage.cpp:
(WKPageLookUpFrameFromHandle): Added. Gets the frame from the map in the page’s process and
returns it if it belongs to the page.
* UIProcess/API/C/WKPagePrivate.h:
2016-08-08 Anders Carlsson <andersca@apple.com>
Move plug-in code from WebPlatformStrategies to WebPluginInfoProvider
https://bugs.webkit.org/show_bug.cgi?id=160679
Reviewed by Alex Christensen.
* WebProcess/Plugins/WebPluginInfoProvider.cpp:
(WebKit::WebPluginInfoProvider::setPluginLoadClientPolicy):
(WebKit::WebPluginInfoProvider::clearPluginClientPolicies):
(WebKit::WebPluginInfoProvider::refreshPlugins):
(WebKit::WebPluginInfoProvider::getPluginInfo):
(WebKit::WebPluginInfoProvider::getWebVisiblePluginInfo):
(WebKit::WebPluginInfoProvider::populatePluginCache):
(WebKit::WebPluginInfoProvider::pluginLoadClientPolicyForHost):
(WebKit::WebPluginInfoProvider::longestMatchedWildcardHostForHost):
(WebKit::WebPluginInfoProvider::replaceHostWithMatchedWildcardHost):
* WebProcess/Plugins/WebPluginInfoProvider.h:
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::createPluginStrategy):
(WebKit::WebPlatformStrategies::WebPlatformStrategies): Deleted.
(WebKit::WebPlatformStrategies::refreshPlugins): Deleted.
(WebKit::WebPlatformStrategies::getPluginInfo): Deleted.
(WebKit::WebPlatformStrategies::getWebVisiblePluginInfo): Deleted.
(WebKit::WebPlatformStrategies::setPluginLoadClientPolicy): Deleted.
(WebKit::WebPlatformStrategies::clearPluginClientPolicies): Deleted.
(WebKit::WebPlatformStrategies::longestMatchedWildcardHostForHost): Deleted.
(WebKit::WebPlatformStrategies::replaceHostWithMatchedWildcardHost): Deleted.
(WebKit::WebPlatformStrategies::pluginLoadClientPolicyForHost): Deleted.
(WebKit::WebPlatformStrategies::populatePluginCache): Deleted.
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::setPluginLoadClientPolicy):
(WebKit::WebProcess::clearPluginClientPolicies):
2016-08-08 Anders Carlsson <andersca@apple.com>
Add a new PluginInfoProvider class, to replace PluginStrategy
https://bugs.webkit.org/show_bug.cgi?id=160670
Reviewed by Sam Weinig.
Add a new WebPluginInfoProvider - it just calls through to the plug-in strategy for now.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/Plugins/WebPluginInfoProvider.cpp: Added.
(WebKit::WebPluginInfoProvider::singleton):
(WebKit::WebPluginInfoProvider::WebPluginInfoProvider):
(WebKit::WebPluginInfoProvider::~WebPluginInfoProvider):
(WebKit::WebPluginInfoProvider::refreshPlugins):
(WebKit::WebPluginInfoProvider::getPluginInfo):
(WebKit::WebPluginInfoProvider::getWebVisiblePluginInfo):
(WebKit::WebPluginInfoProvider::setPluginLoadClientPolicy):
(WebKit::WebPluginInfoProvider::clearPluginClientPolicies):
* WebProcess/Plugins/WebPluginInfoProvider.h: Added.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::m_userInterfaceLayoutDirection):
2016-08-08 Brady Eidson <beidson@apple.com>
Addressing late review feedback in bug 160605
https://bugs.webkit.org/show_bug.cgi?id=160605
Reviewed by Darin's suggestions.
* UIProcess/Gamepad/UIGamepadProvider.cpp:
(WebKit::UIGamepadProvider::processPoolStartedUsingGamepads):
(WebKit::UIGamepadProvider::processPoolStoppedUsingGamepads):
* UIProcess/Gamepad/UIGamepadProvider.h:
* UIProcess/Gamepad/mac/UIGamepadProviderHID.cpp:
(WebKit::UIGamepadProvider::platformStartMonitoringGamepads):
(WebKit::UIGamepadProvider::platformStopMonitoringGamepads):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::disconnectProcess):
(WebKit::WebProcessPool::startedUsingGamepads):
(WebKit::WebProcessPool::stoppedUsingGamepads):
(WebKit::WebProcessPool::processStoppedUsingGamepads):
* UIProcess/WebProcessPool.h:
* WebProcess/Gamepad/WebGamepadProvider.cpp:
(WebKit::WebGamepadProvider::startMonitoringGamepads):
(WebKit::WebGamepadProvider::stopMonitoringGamepads):
* WebProcess/Gamepad/WebGamepadProvider.h:
2016-08-07 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Bad performance in accelerated compositing mode with the modesetting intel driver and DRI3 enabled
https://bugs.webkit.org/show_bug.cgi?id=160491
Reviewed by Michael Catanzaro.
This is becoming the default in several linux distributions and it makes WebKitGTK+ unusable in accelerated
compositing mode, which is now always enabled because since we switched to use the threaded compositor. The
problem seems to be an optimization of the intel driver for windows that are offscreen, and our redirected
window is always positioned at ScreenWidth + 1, 0. Using negative coordinates to position the redirected window
offscreen fixes the problem.
See also https://bugs.freedesktop.org/show_bug.cgi?id=85064.
* WebProcess/WebPage/gtk/RedirectedXCompositeWindow.cpp:
(WebKit::RedirectedXCompositeWindow::RedirectedXCompositeWindow): Position the parent window at -1, -1.
2016-08-07 Carlos Garcia Campos <cgarcia@igalia.com>
Duplicated code in DrawingAreaProxyImpl and CoordinatedDrawingAreaProxy
https://bugs.webkit.org/show_bug.cgi?id=160506
Reviewed by Michael Catanzaro.
Same logic as in r202855 but in the UI process. CoordinatedDrawingAreaProxy is just a copy paste of
DrawingAreaProxyImpl with non-accelerated code path removed. There's actually nothing (or very little) specific
to coordinated graphics in the CoordinatedDrawingAreaProxy implementation. This patch renames
CoordinatedDrawingAreaProxy as AcceleratedDrawingAreaProxy and makes DrawingAreaProxyImpl inherit from it, so
that in case of accelerated compositing the parent class is used, and DrawingAreaProxyImpl only adds the non
accelerated code path.
To simplify the common API of AcceleratedDrawingAreaProxy, I have changed CoordinatedLayerTreeHostProxy to
receive a WebPageProxy in the constructor instead of a drawing area, since the drawing area was used just to get
the page proxy.
* PlatformEfl.cmake:
* PlatformGTK.cmake:
* UIProcess/AcceleratedDrawingAreaProxy.cpp: Renamed from Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.cpp.
(WebKit::AcceleratedDrawingAreaProxy::AcceleratedDrawingAreaProxy):
(WebKit::AcceleratedDrawingAreaProxy::~AcceleratedDrawingAreaProxy):
(WebKit::AcceleratedDrawingAreaProxy::alwaysUseCompositing):
(WebKit::AcceleratedDrawingAreaProxy::dispatchAfterEnsuringDrawing):
(WebKit::AcceleratedDrawingAreaProxy::sizeDidChange):
(WebKit::AcceleratedDrawingAreaProxy::deviceScaleFactorDidChange):
(WebKit::AcceleratedDrawingAreaProxy::visibilityDidChange):
(WebKit::AcceleratedDrawingAreaProxy::waitForBackingStoreUpdateOnNextPaint):
(WebKit::AcceleratedDrawingAreaProxy::didUpdateBackingStoreState):
(WebKit::AcceleratedDrawingAreaProxy::enterAcceleratedCompositingMode):
(WebKit::AcceleratedDrawingAreaProxy::exitAcceleratedCompositingMode):
(WebKit::AcceleratedDrawingAreaProxy::updateAcceleratedCompositingMode):
(WebKit::AcceleratedDrawingAreaProxy::backingStoreStateDidChange):
(WebKit::AcceleratedDrawingAreaProxy::sendUpdateBackingStoreState):
(WebKit::AcceleratedDrawingAreaProxy::waitForAndDispatchDidUpdateBackingStoreState):
(WebKit::AcceleratedDrawingAreaProxy::setNativeSurfaceHandleForCompositing):
(WebKit::AcceleratedDrawingAreaProxy::destroyNativeSurfaceHandleForCompositing):
* UIProcess/AcceleratedDrawingAreaProxy.h: Renamed from Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.h.
(WebKit::AcceleratedDrawingAreaProxy::isInAcceleratedCompositingMode):
(WebKit::AcceleratedDrawingAreaProxy::coordinatedLayerTreeHostProxy):
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp:
(WebKit::CoordinatedLayerTreeHostProxy::CoordinatedLayerTreeHostProxy):
(WebKit::CoordinatedLayerTreeHostProxy::~CoordinatedLayerTreeHostProxy):
(WebKit::CoordinatedLayerTreeHostProxy::updateViewport):
(WebKit::CoordinatedLayerTreeHostProxy::commitCoordinatedGraphicsState):
(WebKit::CoordinatedLayerTreeHostProxy::setVisibleContentsRect):
(WebKit::CoordinatedLayerTreeHostProxy::renderNextFrame):
(WebKit::CoordinatedLayerTreeHostProxy::commitScrollOffset):
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h:
* UIProcess/CoordinatedGraphics/PageViewportController.cpp:
(WebKit::PageViewportController::syncVisibleContents):
* UIProcess/DrawingAreaProxyImpl.cpp:
(WebKit::DrawingAreaProxyImpl::DrawingAreaProxyImpl):
(WebKit::DrawingAreaProxyImpl::paint):
(WebKit::DrawingAreaProxyImpl::didUpdateBackingStoreState):
(WebKit::DrawingAreaProxyImpl::exitAcceleratedCompositingMode):
(WebKit::DrawingAreaProxyImpl::enterAcceleratedCompositingMode):
(WebKit::DrawingAreaProxyImpl::~DrawingAreaProxyImpl): Deleted.
(WebKit::DrawingAreaProxyImpl::update): Deleted.
(WebKit::DrawingAreaProxyImpl::incorporateUpdate): Deleted.
(WebKit::DrawingAreaProxyImpl::discardBackingStoreSoon): Deleted.
(WebKit::DrawingAreaProxyImpl::discardBackingStore): Deleted.
* UIProcess/DrawingAreaProxyImpl.h:
* UIProcess/efl/WebView.cpp:
(WebKit::WebView::setVisible):
(WebKit::WebView::coordinatedGraphicsScene):
(WebKit::WebView::updateViewportSize):
(WebKit::WebView::createDrawingAreaProxy):
2016-08-07 Dan Bernstein <mitz@apple.com>
[Cocoa] Reply block leaks if the remote object doesn’t call it
https://bugs.webkit.org/show_bug.cgi?id=160642
Reviewed by Sam Weinig.
* Shared/API/Cocoa/RemoteObjectRegistry.h: Declared new member functions.
* Shared/API/Cocoa/RemoteObjectRegistry.messages.in: Added ReleaseUnusedReplyBlock message.
* Shared/API/Cocoa/RemoteObjectRegistry.mm:
(WebKit::RemoteObjectRegistry::sendUnusedReply): Send the ReleaseUnusedReplyBlock message.
(WebKit::RemoteObjectRegistry::releaseUnusedReplyBlock): Message receiver that call through
to -_releaseReplyWithID:.
* Shared/API/Cocoa/_WKRemoteObjectRegistry.mm:
(-[_WKRemoteObjectRegistry _invokeMethod:]): Define a ReplyBlockCallChecker object and
capture an instance of it in the reply block we pass to the exported object. Have that
block set a flag on the checker when it’s called. If the checker gets destroyed without
the block having been called, which means that the block got destroyed without being
called, call sendUnusedReply to let the other side know that the block will not be invoked.
(-[_WKRemoteObjectRegistry _releaseReplyWithID:]): Added. Removed the pending reply from the
map, which release the block.
* Shared/API/Cocoa/_WKRemoteObjectRegistryInternal.h:
2016-08-07 Chris Dumez <cdumez@apple.com>
Write API test to cover crash fix in r204135
https://bugs.webkit.org/show_bug.cgi?id=160587
Reviewed by Darin Adler.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::terminateProcess):
Stop calling resetStateAfterProcessExited() after calling
requestTermination() because requestTermination() now calls
didClose() which calls processDidCrash() which already calls
resetStateAfterProcessExited(). Because the processDidCrash()
delegates may start new loads, we really do not want to
reset the state again after calling the delegates.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::requestTermination):
- Call didClose() in WebProcessProxy::requestTermination() so that
the processDidCrash() delegates get called in API tests whenever
a WebContent process is terminated to simulate a crash.
- Stop calling shutDown() and webConnection()->didClose() because
didClose() already does this for us.
2016-08-06 Chris Dumez <cdumez@apple.com>
Unreviewed, rolling out r204226.
Broke some API tests
Reverted changeset:
"Write API test to cover crash fix in r204135"
https://bugs.webkit.org/show_bug.cgi?id=160587
http://trac.webkit.org/changeset/204226
2016-08-06 Dan Bernstein <mitz@apple.com>
[Cocoa] -[_WKRemoteObjectRegistry() _invokeMethod:] leaks a block
https://bugs.webkit.org/show_bug.cgi?id=160636
Reviewed by Darin Adler.
* Shared/API/Cocoa/_WKRemoteObjectRegistry.mm:
(-[_WKRemoteObjectRegistry _invokeMethod:]): Release the block returned from
__NSMakeSpecialForwardingCaptureBlock.
2016-08-06 Chris Dumez <cdumez@apple.com>
Write API test to cover crash fix in r204135
https://bugs.webkit.org/show_bug.cgi?id=160587
Reviewed by Darin Adler.
Call didClose() in WebProcessProxy::requestTermination() so that
the processDidCrash() delegates get called in API tests whenever
a WebContent process is terminated to simulate a crash.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::requestTermination):
2016-08-06 Brady Eidson <beidson@apple.com>
Lay WebProcess/UIProcess groundwork for an IPC GamepadProvider.
https://bugs.webkit.org/show_bug.cgi?id=160605
Reviewed by Alex Christensen.
This patch:
- Introduces the GamepadProvider that the WebProcess will use (WebGamepadProvider)
- Has that provider message to the UIProcess notifying interest in gamepad state
- Introduces a GamepadProviderClient in the UIProcess (UIGamepadProvider) that will use
one of the existing GamepadProviders to pass gamepad state along to WebProcesses.
- Adds an empty skeleton for the soon-to-be-used WebGamepad, which will be the
"PlatformGamepad" for WebProcesses.
* CMakeLists.txt:
* WebKit2.xcodeproj/project.pbxproj:
* UIProcess/Gamepads/UIGamepadProvider.cpp: Added.
(WebKit::UIGamepadProvider::singleton):
(WebKit::UIGamepadProvider::UIGamepadProvider):
(WebKit::UIGamepadProvider::~UIGamepadProvider):
(WebKit::UIGamepadProvider::platformGamepadConnected):
(WebKit::UIGamepadProvider::platformGamepadDisconnected):
(WebKit::UIGamepadProvider::platformGamepadInputActivity):
(WebKit::UIGamepadProvider::processPoolStartedUsingGamepads):
(WebKit::UIGamepadProvider::processPoolStoppedUsingGamepads):
(WebKit::UIGamepadProvider::platformStartMonitoringGamepads):
(WebKit::UIGamepadProvider::platformStopMonitoringGamepads):
* UIProcess/Gamepads/UIGamepadProvider.h: Added.
* UIProcess/Gamepads/mac/UIGamepadProviderHID.cpp: Added.
(WebKit::UIGamepadProvider::platformStartMonitoringGamepads):
(WebKit::UIGamepadProvider::platformStopMonitoringGamepads):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::~WebProcessPool):
(WebKit::WebProcessPool::disconnectProcess):
(WebKit::WebProcessPool::startedUsingGamepads):
(WebKit::WebProcessPool::stoppedUsingGamepads):
(WebKit::WebProcessPool::processStoppedUsingGamepads):
* UIProcess/WebProcessPool.h:
* UIProcess/WebProcessPool.messages.in:
* WebProcess/Gamepad/WebGamepad.cpp: Added.
* WebProcess/Gamepad/WebGamepad.h: Added.
* WebProcess/Gamepad/WebGamepadProvider.cpp: Added.
(WebKit::WebGamepadProvider::singleton):
(WebKit::WebGamepadProvider::WebGamepadProvider):
(WebKit::WebGamepadProvider::~WebGamepadProvider):
(WebKit::WebGamepadProvider::startMonitoringGamepads):
(WebKit::WebGamepadProvider::stopMonitoringGamepads):
(WebKit::WebGamepadProvider::platformGamepads):
* WebProcess/Gamepad/WebGamepadProvider.h: Added.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
2016-08-05 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r204195.
https://bugs.webkit.org/show_bug.cgi?id=160623
This change causes assertion failures in LayoutTests and API
tests. (Requested by ryanhaddad on #webkit).
Reverted changeset:
"Lay WebProcess/UIProcess groundwork for an IPC
GamepadProvider."
https://bugs.webkit.org/show_bug.cgi?id=160605
http://trac.webkit.org/changeset/204195
2016-08-05 Brady Eidson <beidson@apple.com>
Lay WebProcess/UIProcess groundwork for an IPC GamepadProvider.
https://bugs.webkit.org/show_bug.cgi?id=160605
Reviewed by Alex Christensen.
This patch:
- Introduces the GamepadProvider that the WebProcess will use (WebGamepadProvider)
- Has that provider message to the UIProcess notifying interest in gamepad state
- Introduces a GamepadProviderClient in the UIProcess (UIGamepadProvider) that will use
one of the existing GamepadProviders to pass gamepad state along to WebProcesses.
- Adds an empty skeleton for the soon-to-be-used WebGamepad, which will be the
"PlatformGamepad" for WebProcesses.
* CMakeLists.txt:
* WebKit2.xcodeproj/project.pbxproj:
* UIProcess/Gamepads/UIGamepadProvider.cpp: Added.
(WebKit::UIGamepadProvider::singleton):
(WebKit::UIGamepadProvider::UIGamepadProvider):
(WebKit::UIGamepadProvider::~UIGamepadProvider):
(WebKit::UIGamepadProvider::platformGamepadConnected):
(WebKit::UIGamepadProvider::platformGamepadDisconnected):
(WebKit::UIGamepadProvider::platformGamepadInputActivity):
(WebKit::UIGamepadProvider::processPoolStartedUsingGamepads):
(WebKit::UIGamepadProvider::processPoolStoppedUsingGamepads):
(WebKit::UIGamepadProvider::platformStartMonitoringGamepads):
(WebKit::UIGamepadProvider::platformStopMonitoringGamepads):
* UIProcess/Gamepads/UIGamepadProvider.h: Added.
* UIProcess/Gamepads/mac/UIGamepadProviderHID.cpp: Added.
(WebKit::UIGamepadProvider::platformStartMonitoringGamepads):
(WebKit::UIGamepadProvider::platformStopMonitoringGamepads):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::~WebProcessPool):
(WebKit::WebProcessPool::disconnectProcess):
(WebKit::WebProcessPool::startedUsingGamepads):
(WebKit::WebProcessPool::stoppedUsingGamepads):
(WebKit::WebProcessPool::processStoppedUsingGamepads):
* UIProcess/WebProcessPool.h:
* UIProcess/WebProcessPool.messages.in:
* WebProcess/Gamepad/WebGamepad.cpp: Added.
* WebProcess/Gamepad/WebGamepad.h: Added.
* WebProcess/Gamepad/WebGamepadProvider.cpp: Added.
(WebKit::WebGamepadProvider::singleton):
(WebKit::WebGamepadProvider::WebGamepadProvider):
(WebKit::WebGamepadProvider::~WebGamepadProvider):
(WebKit::WebGamepadProvider::startMonitoringGamepads):
(WebKit::WebGamepadProvider::stopMonitoringGamepads):
(WebKit::WebGamepadProvider::platformGamepads):
* WebProcess/Gamepad/WebGamepadProvider.h: Added.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
2016-08-05 Dan Bernstein <mitz@apple.com>
[Cocoa] WKRemoteObjectCoder doesn’t handle NSRange
https://bugs.webkit.org/show_bug.cgi?id=160589
Reviewed by Tim Horton.
* Shared/API/Cocoa/WKRemoteObjectCoder.mm:
(encodeInvocationArguments): Encode NSRange by wrapping in an NSValue.
(decodeInvocationArguments): Decode wrapped NSRange.
2016-08-04 Chris Dumez <cdumez@apple.com>
Crash under NavigationState::NavigationClient::processDidCrash()
https://bugs.webkit.org/show_bug.cgi?id=160563
<rdar://problem/19814215>
Reviewed by Sam Weinig.
When WebPageProxy::close() gets called, make sure we destroy the page's
navigationClient. If we don't then the navigationClient can outlive the
navigationState, causing crashes when navigationClient tries to use its
stale navigationState member reference later on. This happens when the
WebPageProxy outlives its WKWebView because:
1. WebPageProxy owns the navigationClient
2. WKWebView owns the navigationState
3. navigationClient has a reference to the navigationState as member.
WebPageProxy can outlive the WKWebView because it is refCounted. It
can happen for example when the client application uses the
RelatedPage API as this extend the lifetime of the related WebPage's
proxy but the application may not keep the related WKWebView alive.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::close):
Note that it is safe to null out m_navigationClient here instead of
creating a fresh one because there is a null check before every use
of m_navigationClient in WebPageProxy.
2016-08-03 Michael Catanzaro <mcatanzaro@igalia.com>
[SOUP] Deduplicate WebProcessPool::setIgnoreTLSErrors
https://bugs.webkit.org/show_bug.cgi?id=160489
Reviewed by Alex Christensen.
WebProcessPool::setIgnoreTLSErrors has identical implementation in WebProcessPoolEfl.cpp
and WebProcessPoolGtk.cpp. We have WebProcessPoolSoup.cpp and this function is specific to
the soup network backend, so move it there.
* UIProcess/efl/WebProcessPoolEfl.cpp:
(WebKit::WebProcessPool::setIgnoreTLSErrors): Deleted.
* UIProcess/gtk/WebProcessPoolGtk.cpp:
(WebKit::WebProcessPool::setIgnoreTLSErrors): Deleted.
* UIProcess/soup/WebProcessPoolSoup.cpp:
(WebKit::WebProcessPool::setIgnoreTLSErrors):
2016-08-03 Michael Catanzaro <mcatanzaro@igalia.com>
[GTK] Document how to initialize WebKitFaviconDatabase
https://bugs.webkit.org/show_bug.cgi?id=160391
Reviewed by Carlos Garcia Campos.
* UIProcess/API/gtk/WebKitFaviconDatabase.cpp:
2016-08-02 Tim Horton <timothy_horton@apple.com>
REGRESSION (r203385): Frequent RELEASE_ASSERT in WebKit::RemoteLayerTreeDrawingArea::flushLayers()
https://bugs.webkit.org/show_bug.cgi?id=160481
<rdar://problem/27534205>
Reviewed by Simon Fraser.
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
(WebKit::RemoteLayerTreeDrawingAreaProxy::didRefreshDisplay):
(WebKit::RemoteLayerTreeDrawingAreaProxy::waitForDidUpdateViewState):
If the UI process sends a didUpdate message while the Web process is in
the middle of flushing on a background thread, the drawing area will
allow another commit to start on the main thread, which then (rightfully)
causes the RELEASE_ASSERT.
This is normally not a problem, because didRefreshDisplay (which sends the didUpdate)
bails if m_didUpdateMessageState is anything other than NotSent, and m_didUpdateMessageState
is only NotSent if the Web process has sent a commit (and thus will not commit again until
it gets a didUpdate). This is the fundamental mechanism that avoids multiple commits being
in flight at once.
In r203385, I added a path where didRefreshDisplay could be called
before the first commit arrived (by way of
_applicationWillEnterForeground -> viewStateDidChange -> waitForDidUpdateViewState).
This caused trouble because m_didUpdateMessageState is initialized to NotSent,
which means that we could end up sending a didUpdate immediately, before the first
commit arrives - even worse, while the first commit is being flushed on a background thread,
leading the aforementioned RELEASE_ASSERT to fire.
Instead, initialize it to Sent (which I've renamed to DoesNotNeedDidUpdate), so that
we won't send a didUpdate until after the first commit arrives (at which point
the two processes are in agreement about the order of things).
It's not currently possible to API test this for multiple reasons, though it is fairly
easy to write a test app that reproduces reliably (by simulating suspend/resume notifications
inside the didFinishNavigation: callback).
2016-08-02 Enrica Casucci <enrica@apple.com>
Allow building with content filtering disabled.
https://bugs.webkit.org/show_bug.cgi?id=160454
Reviewed by Simon Fraser.
* Configurations/FeatureDefines.xcconfig:
* Shared/mac/WebCoreArgumentCodersMac.mm:
(IPC::ArgumentCoder<KeypressCommand>::decode):
(IPC::ArgumentCoder<ContentFilterUnblockHandler>::encode):
(IPC::ArgumentCoder<ContentFilterUnblockHandler>::decode):
* WebProcess/WebCoreSupport/mac/WebErrorsMac.mm:
(WebKit::blockedByContentFilterError):
2016-08-02 Brady Eidson <beidson@apple.com>
Refactor data passed along for a "GetRecord" request.
https://bugs.webkit.org/show_bug.cgi?id=160352
Reviewed by Tim Horton.
* DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:
(WebKit::WebIDBConnectionToClient::getRecord):
* DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h:
* DatabaseProcess/IndexedDB/WebIDBConnectionToClient.messages.in:
* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:
(WebKit::WebIDBConnectionToServer::getRecord):
* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
2016-08-01 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Move the redirected XComposite window to the web process
https://bugs.webkit.org/show_bug.cgi?id=160389
Reviewed by Žan Doberšek.
In the current code, the UI process creates the redirected window that the web process uses to render
accelerated contents. The redirected window is sent to the web process as native surface handle, and using
XDamage extension the UI process takes a pixmap of the redirected window to render into the widget when there
are updates. This requires several points of synchronization between UI and web processes. When the web view is
resized, the UI process first resizes the redirected window and then sends a new backing store ID to the web
process. The time between the redirected window is resized and the web process renders the new contents the UI
process keeps rendering the previous contents with the previous size in the new window with the new size. This
makes the resize process slow, and it produces rendering artifacts quite often. The redirected window is created
when the web view is realized, to be able to inherit the XVisual from the parent window, and the native window
handle is sent to the web process. The time until the window is realized, the web process doesn't have a context
to render into, so the UI process simply renders an empty page. When the web view is unrealized, for example if
the web view is reparented, the redirected window is destroyed, and a sync message is sent to the web process to
destroy the current gl context and stop drawing. This needs to happen synchronously, because the UI process
can't remove the redirected window until the web process has stopped rendering into it. This makes also the
reparenting process quite unstable and risky.
To all those synchronization points we now have to add the synchronization with the compositing thread when
using the threaded compositor. The threaded compositor made resizing, reparenting, etc. even worse. We can't
avoid the synchronization with the threaded compositor, but we can reduce the synchronization points and improve
the current ones by moving the redirected window to the web process. In this case is web process who creates the
redirected window, so we can be sure that it always has a valid native surface handle to render into. This means
we no longer need the IPC message to send the native surface handle from the UI process to the web process, nor
the sync message to destroy it either. This also means we no longer need to wait until the view is realized to
start rendering accelerated contents, and we don't need to stop when it's unrealized either. We don't really
need to inherit the XVisual from the parent window if the redirected window always uses always a RGBA visual
when available. That way we always render into a transparent window that is composed into the web view
widget. And when the web view is resized, we no longer need to destroy the GL context either, because we use the
same redirected window as the native handle, but create a new pixmap that is what we send to the UI process as
layer tree context ID. The layer tree context ID is already sent to the UI process by the drawing area as part
of the backing store update process, so we don't need any new IPC message for this. When the web view is
resized, the UI process sends a backing store state update message to the web process that updates its size,
relayouts and then renders the new contents, so that when the update backing store state reply gets to the UI
process, we already have a new pixmap with the new contents updated. This makes resizing smooth again, and
avoids flickering and rendering artifacts. And finally all this also prevents several race conditions that were
causing X errors and web process crashes.
* PlatformGTK.cmake:
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::create): Make it possible to optionally pass a native surface handle for
compositing to the ThreadedCompositor contructor.
(WebKit::ThreadedCompositor::ThreadedCompositor): Initialize the native surface handle and make the scene active
after the thread initialization if we already have a valid handle.
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
* UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::enterAcceleratedCompositingMode): Pass the layer tree context ID to the web view.
(WebKit::PageClientImpl::updateAcceleratedCompositingMode): Notify the web view about the update.
(WebKit::PageClientImpl::willEnterAcceleratedCompositingMode): Deleted.
* UIProcess/API/gtk/PageClientImpl.h:
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseSetAcceleratedCompositingPixmap): Helper function to update the pixmap used to render the
accelerated contents.
(webkitWebViewBaseRealize): Remove the code to create the redirected window.
(webkitWebViewBaseUnrealize): Remove the code to destroy the redirected window.
(webkitWebViewBaseDispose): Reset the accelerated compositing pixmap.
(webkitWebViewRenderAcceleratedCompositingResults): Use the accelerated compositing pixmap surface.
(webkitWebViewBaseSizeAllocate): Remove the code to resize the redirected window.
(webkitWebViewBaseEnterAcceleratedCompositingMode): Update the accelerated compositing pixmap.
(webkitWebViewBaseUpdateAcceleratedCompositingMode): Ditto.
(webkitWebViewBaseExitAcceleratedCompositingMode): Reset the accelerated compositing pixmap.
(webkitWebViewBaseDidRelaunchWebProcess): Remove the code to send native surface handle to the web process.
(webkitWebViewBasePageClosed): Reset the accelerated compositing pixmap.
(_WebKitWebViewBasePrivate::updateViewStateTimerFired): Deleted.
* UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
* UIProcess/DrawingAreaProxy.h:
* UIProcess/DrawingAreaProxy.messages.in:
* UIProcess/DrawingAreaProxyImpl.cpp:
(WebKit::DrawingAreaProxyImpl::didUpdateBackingStoreState): Handle the case when the layer tree context ID
changes without leaving the accelerated compositing mode, calling updateAcceleratedCompositingMode().
(WebKit::DrawingAreaProxyImpl::exitAcceleratedCompositingMode): Let the web view know we are leaving accelerated
compositing mode even when it's forced, since in case of web process crash we need to leave the accelerated
compositing mode in the UI process.
(WebKit::DrawingAreaProxyImpl::willEnterAcceleratedCompositingMode): This message was added only to prepare the
redirected window when the web process was about to enter accelerated compositing mode, so it's no longer needed.
(WebKit::DrawingAreaProxyImpl::setNativeSurfaceHandleForCompositing): This is now only used when building
without redirected XComposite window support.
* UIProcess/DrawingAreaProxyImpl.h:
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::willEnterAcceleratedCompositingMode): Deleted.
* UIProcess/WebPageProxy.h:
* UIProcess/efl/WebView.h:
* UIProcess/gtk/RedirectedXCompositeWindow.cpp: Removed.
* UIProcess/gtk/XDamageNotifier.cpp: Helper class to be notified about XDamage events.
(WebKit::XDamageNotifier::singleton):
(WebKit::XDamageNotifier::XDamageNotifier):
(WebKit::XDamageNotifier::add):
(WebKit::XDamageNotifier::remove):
(WebKit::XDamageNotifier::filterXDamageEvent):
(WebKit::XDamageNotifier::notify):
* UIProcess/gtk/XDamageNotifier.h: Added.
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::willEnterAcceleratedCompositingMode): Deleted.
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::willEnterAcceleratedCompositingMode): Deleted.
* WebProcess/WebPage/AcceleratedDrawingArea.cpp:
(WebKit::AcceleratedDrawingArea::enterAcceleratedCompositingMode): Remove code to send
WillEnterAcceleratedCompositingMode message.
(WebKit::AcceleratedDrawingArea::setNativeSurfaceHandleForCompositing): This is now only used when building
without redirected XComposite window support.
* WebProcess/WebPage/AcceleratedDrawingArea.h:
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:
(WebKit::ThreadedCoordinatedLayerTreeHost::ThreadedCoordinatedLayerTreeHost): Create a redirected window and
pass the window ID as native surface handle to the threaded compositor. Use the redirected window pixmap as
layer tree context.
(WebKit::ThreadedCoordinatedLayerTreeHost::invalidate): Destroy the redirected window.
(WebKit::ThreadedCoordinatedLayerTreeHost::deviceOrPageScaleFactorChanged): Resize the redirected window and
update the layer tree context.
(WebKit::ThreadedCoordinatedLayerTreeHost::sizeDidChange): Ditto.
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
* WebProcess/WebPage/DrawingArea.h:
* WebProcess/WebPage/DrawingArea.messages.in:
* WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
(WebKit::LayerTreeHostGtk::LayerTreeHostGtk): Create a redirected window and texture mapper that uses the window
ID as native surface handle. Use the redirected window pixmap as layer tree context.
(WebKit::LayerTreeHostGtk::makeContextCurrent): Use the redirected window as native handle.
(WebKit::LayerTreeHostGtk::invalidate): Destroy the redirected window.
(WebKit::LayerTreeHostGtk::sizeDidChange): Resize the redirected window and update the layer tree context.
(WebKit::LayerTreeHostGtk::deviceOrPageScaleFactorChanged): Ditto.
(WebKit::LayerTreeHostGtk::createTextureMapper): Helper function to create the texture mapper.
(WebKit::LayerTreeHostGtk::setNativeSurfaceHandleForCompositing): Use createTextureMapper().
* WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
* WebProcess/WebPage/gtk/RedirectedXCompositeWindow.cpp: Added.
(WebKit::RedirectedXCompositeWindow::create):
(WebKit::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
(WebKit::RedirectedXCompositeWindow::~RedirectedXCompositeWindow):
(WebKit::RedirectedXCompositeWindow::resize):
* WebProcess/WebPage/gtk/RedirectedXCompositeWindow.h: Renamed from Source/WebKit2/UIProcess/gtk/RedirectedXCompositeWindow.h.
(WebKit::RedirectedXCompositeWindow::window):
(WebKit::RedirectedXCompositeWindow::pixmap):
2016-08-01 Carlos Garcia Campos <cgarcia@igalia.com>
Database Process: ASSERTION FAILED: filePaths.size() == result.handles().size() with SANDBOX_EXTENSIONS disabled
https://bugs.webkit.org/show_bug.cgi?id=160398
Reviewed by Brady Eidson.
Same assert as in bug #160188, but this time in preregisterSandboxExtensionsIfNecessary.
* DatabaseProcess/DatabaseProcess.cpp:
* DatabaseProcess/DatabaseProcess.h:
* DatabaseProcess/DatabaseProcess.messages.in:
* DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:
(WebKit::WebIDBConnectionToClient::handleGetResult):
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::preregisterSandboxExtensionsForOptionallyFileBackedBlob):
* UIProcess/Databases/DatabaseProcessProxy.cpp:
* UIProcess/Databases/DatabaseProcessProxy.h:
* UIProcess/Databases/DatabaseProcessProxy.messages.in:
* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:
(WebKit::preregisterSandboxExtensionsIfNecessary):
2016-08-01 Alex Christensen <achristensen@webkit.org>
_WKDownloadDelegate.didReceiveResponse should be called before decideDestinationWithSuggestedFilename
https://bugs.webkit.org/show_bug.cgi?id=160437
<rdar://problem/27578272>
Reviewed by Brady Eidson.
This preserves the behavior of the NSURLConnection/NSURLDownload code path.
decideDestinationWithSuggestedFilename might need some information from the didReceiveResponse callback
in order to decide what the suggested filename should be.
* NetworkProcess/Downloads/Download.cpp:
(WebKit::Download::didReceiveAuthenticationChallenge):
(WebKit::Download::didReceiveResponse):
(WebKit::Download::didReceiveData):
* NetworkProcess/Downloads/Download.h:
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::convertMainResourceLoadToDownload):
* NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::convertTaskToDownload):
(WebKit::NetworkLoad::setPendingDownloadID):
(WebKit::NetworkLoad::didReceiveResponseNetworkSession):
* NetworkProcess/NetworkLoad.h:
(WebKit::NetworkLoad::pendingDownloadID):
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::pendingDownloadCanceled):
(WebKit::NetworkProcess::findPendingDownloadLocation):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]):
2016-07-31 Adrian Perez de Castro <aperez@igalia.com>
[GTK][Unix] Implement missing WebKit::SharedMemory::create() function
https://bugs.webkit.org/show_bug.cgi?id=160364
Reviewed by Carlos Garcia Campos.
The WebKit::SharedMemory::create() function is missing for the Unix
platform, which is also used by the GTK+ port. The latter is going
to need this in place to use the common content filtering code.
* Platform/unix/SharedMemoryUnix.cpp:
(WebKit::accessModeMMap): Added helper function to convert a
SharedMemory::Protection value into flags useable with mmap().
(WebKit::SharedMemory::create): Added. Implementation reuses code
existing in the SharedMemory::allocate() function.
(WebKit::SharedMemory::allocate): Reimplemented in terms of
SharedMemory::create().
2016-07-30 Dan Bernstein <mitz@apple.com>
[Xcode] WebKit.framework is touched on incremental build even if nothing’s changed
https://bugs.webkit.org/show_bug.cgi?id=160383
Reviewed by Tim Horton.
* WebKit2.xcodeproj/project.pbxproj: Removed the output files listed under the
Copy iOS Sandbox Profiles for Manual Sandboxing script build phase, because it doesn’t
produce those files on macOS. With no outputs listed, the script will still run every
time, but the fact that it has run won’t trigger touching the framework.
2016-07-28 Ryosuke Niwa <rniwa@webkit.org>
Crash with an Invalid Web Process IPC Message ID: WebPageProxy.AttributedStringForCharacterRangeCallback
https://bugs.webkit.org/show_bug.cgi?id=160334
<rdar://problem/27078089>
Reviewed by Alexey Proskuryakov.
The crash is most likely caused by an MESSAGE_CHECK failure in WebPageProxy::attributedStringForCharacterRangeCallback
which marks the currently dispatching message was invalid inside the macro.
Make sure we never fail this check by sending an empty EditingRange in attributedSubstringForCharacterRangeAsync when
the editing range we're about to send to the UIProcess is invalid in WebProcess.
Unfortunately, no new tests since we don't have any reproduction and I couldn't spot any code path in which we end up
with an invalid EditingRage here with multiple inspection of the relevant code.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::attributedSubstringForCharacterRangeAsync):
2016-07-28 Carlos Garcia Campos <cgarcia@igalia.com>
Split calculateCacheSizes in two methods
https://bugs.webkit.org/show_bug.cgi?id=160237
Reviewed by Darin Adler.
It's used to calculate memory and disk cache sizes, but only the web process is interested in memory caches, and
the network process in disk cache. We can also avoid a lot of duplicated code between ports to set the cache model.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::setCacheModel): Use calculateURLCacheSizes to set the disk cache size and call
platformSetURLCacheSize if not set to allow ports to setup platform specific cache.
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformSetURLCacheSize): Remove common code that is now in cross-platform file.
(WebKit::volumeFreeSize): Deleted.
(WebKit::NetworkProcess::platformSetCacheModel): Renamed to platformSetURLCacheSize().
* NetworkProcess/soup/NetworkProcessSoup.cpp:
(WebKit::NetworkProcess::platformSetURLCacheSize): Remove common code that is now in cross-platform file.
(WebKit::getCacheDiskFreeSize): Deleted.
(WebKit::NetworkProcess::platformSetCacheModel): Renamed to platformSetURLCacheSize().
* Shared/CacheModel.cpp:
(WebKit::calculateMemoryCacheSizes): Calculate the memory and page cache sizes.
(WebKit::calculateURLCacheSizes): Calculate the disk cache size.
(WebKit::calculateCacheSizes): Deleted.
* Shared/CacheModel.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess): Tell the page cache to clear backing stores for GTK+ port too. This was done before when
setting the cache model.
(WebKit::WebProcess::setCacheModel): Use calculateMemoryCacheSizes to setup memory caches and call
platformSetCacheModel to allow ports do more setup according to the cache model.
(WebKit::WebProcess::clearResourceCaches): Deleted.
* WebProcess/WebProcess.h:
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformSetCacheModel): Remove common code that is now in cross-platform file.
(WebKit::volumeFreeSize): Deleted.
(WebKit::WebProcess::platformClearResourceCaches): Deleted.
* WebProcess/soup/WebProcessSoup.cpp:
(WebKit::WebProcess::platformSetCacheModel): Remove common code that is now in cross-platform file.
(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::WebProcess::platformClearResourceCaches): Deleted.
2016-07-28 Carlos Garcia Campos <cgarcia@igalia.com>
Database Process: ASSERTION FAILED: paths.size() == handles.size() with SANDBOX_EXTENSIONS disabled
https://bugs.webkit.org/show_bug.cgi?id=160188
Reviewed by Sergio Villar Senin.
This happens in ports with sandbox extensions disabled, and it's making several tests to crash in debug
builds. The SandboxExtension implementation is empty in case of building with sandbox extensions disabled, so
that we are actually allocating no extensions at all in
NetworkProcessProxy::grantSandboxExtensionsToDatabaseProcessForBlobs(). When the message arrives to database
process, we have a list of paths, but an empty list of hanldes which causes the assertion. We can just avoid
that message entirely in case of building without sandbox extensions.
* DatabaseProcess/DatabaseProcess.cpp:
* DatabaseProcess/DatabaseProcess.h:
* DatabaseProcess/DatabaseProcess.messages.in:
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::grantSandboxExtensionsToDatabaseProcessForBlobs):
2016-07-28 Myles C. Maxfield <mmaxfield@apple.com>
Remove deprecated SPI for video inline / fullscreen controls
https://bugs.webkit.org/show_bug.cgi?id=160318
Reviewed by Tim Horton.
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetAllowsInlineMediaPlaybackWithPlaysInlineAttribute): Deleted.
(WKPreferencesGetAllowsInlineMediaPlaybackWithPlaysInlineAttribute): Deleted.
(WKPreferencesSetAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute): Deleted.
(WKPreferencesGetAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute): Deleted.
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]): Deleted.
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]): Deleted.
(-[WKWebViewConfiguration copyWithZone:]): Deleted.
(-[WKWebViewConfiguration _allowsInlineMediaPlaybackWithPlaysInlineAttribute]): Deleted.
(-[WKWebViewConfiguration _setAllowsInlineMediaPlaybackWithPlaysInlineAttribute:]): Deleted.
(-[WKWebViewConfiguration _allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute]): Deleted.
(-[WKWebViewConfiguration _setAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute:]): Deleted.
* UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences): Deleted.
2016-07-28 Tim Horton <timothy_horton@apple.com>
Frequent animation lags when interacting with Safari (sidebar, tab switching, etc.)
https://bugs.webkit.org/show_bug.cgi?id=160289
<rdar://problem/27553464>
Reviewed by Simon Fraser.
API Tests: WebKit2.AnimatedResizeDoesNotHang, WebKit2.ResizeWithHiddenContentDoesNotHang
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _didCommitLayerTree:]):
Avoid calling _endAnimatedResize when a commit comes in when we haven't yet received
a dynamic viewport update reply (and thus don't have a transaction ID to wait on).
Previously, in this case, _resizeAnimationTransformTransactionID would be 0,
and *any* commit would cause _endAnimatedResize to be called, causing us to always
fall into the worst-case sync wait.
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::synchronizeDynamicViewportUpdate):
Make use of waitForDidUpdateViewState instead of having a separate waitForAndDispatchImmediately
here, because it knows to do things like dispatch the didUpdate message if it's still
pending. This also shortens the sync wait timeout from 1s to 500ms, which makes it
consistent with e.g. the newly-parented-view timeout duration, and should be nothing
but positive.
* Platform/IPC/Connection.cpp:
(IPC::Connection::timeoutRespectingIgnoreTimeoutsForTesting):
(IPC::Connection::waitForMessage):
(IPC::Connection::sendSyncMessageFromSecondaryThread):
(IPC::Connection::waitForSyncReply):
* Platform/IPC/Connection.h:
(IPC::Connection::ignoreTimeoutsForTesting):
* UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::copy):
* UIProcess/API/APIProcessPoolConfiguration.h:
* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
(-[_WKProcessPoolConfiguration ignoreSynchronousMessagingTimeoutsForTesting]):
(-[_WKProcessPoolConfiguration setIgnoreSynchronousMessagingTimeoutsForTesting:]):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::processDidFinishLaunching):
Add a mechanism for clients to cause all synchronous message timeouts to be effectively infinite.
The new API tests use this to ensure that the test will time out if they ever enter
the bad state (otherwise, the shorter sync wait timeout could make the test still pass).
2016-07-27 Andy Estes <aestes@apple.com>
[iOS] Add WKUIDelegate SPI for specifying that an attachment list is from a managed source
https://bugs.webkit.org/show_bug.cgi?id=160280
<rdar://problem/27471815>
Reviewed by Dan Bernstein.
* Platform/spi/ios/UIKitSPI.h: Declared
UIPreviewItemTypeAttachment, UIPreviewDataAttachmentList, and UIPreviewDataAttachmentIndex.
* UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Declared -_attachmentListForWebView:sourceIsManaged:.
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _dataForPreviewItemController:atPosition:type:]): Used UIPreviewItemTypeAttachment,
UIPreviewDataAttachmentList, and UIPreviewDataAttachmentIndex. If uiDelegate responds to
-_attachmentListForWebView:sourceIsManaged:, called it instead of -_attachmentListForWebView:.
Set sourceIsManaged as the value for the UIPreviewDataAttachmentListSourceIsManaged key in dataForPreview.
2016-07-27 Chelsea Pugh <cpugh@apple.com>
[iOS] Remove unused textContentType SPI from _WKFormInputSession
https://bugs.webkit.org/show_bug.cgi?id=160260
Reviewed by Dan Bernstein.
* UIProcess/API/Cocoa/_WKFormInputSession.h: Remove unused SPI.
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView textInputTraits]): Set textContentType of _traits to whatever we classify it as based
on the assisted node info. The default textContentType is nil, and that is our fallback in our method
for determining textContentType.
(-[WKFormInputSession textContentType]): Deleted.
(-[WKFormInputSession setTextContentType:]): Deleted.
2016-07-27 Chris Dumez <cdumez@apple.com>
Fix m_isInBackground initialization for Safari View Services
https://bugs.webkit.org/show_bug.cgi?id=160255
<rdar://problem/27569255>
Reviewed by Tim Horton.
Fix m_isInBackground initialization for Safari View Services. The
code was using m_applicationStateMonitor without initializing it.
Instead, use the local applicationStateMonitor and make sure we
invalidate it before it gets released.
* UIProcess/ApplicationStateTracker.mm:
(WebKit::ApplicationStateTracker::ApplicationStateTracker):
2016-07-27 Carlos Garcia Campos <cgarcia@igalia.com>
[Coordinated Graphics] Improve scheduling of tasks between threads in CoordinatedGraphicsScene
https://bugs.webkit.org/show_bug.cgi?id=160238
Reviewed by Michael Catanzaro.
This patch makes the following improvements:
- Avoid scheduling tasks to the main thread if the scene is detached.
- Do not take references when not actually sending tasks to another threads.
- Use Function instead of std::function on dispatch methods.
- Remove purgeBackingStores that is actually never called. It's only scheduled from purgeGLResources() that
is always called after detach.
* Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
(WebKit::CoordinatedGraphicsScene::dispatchOnMainThread):
(WebKit::CoordinatedGraphicsScene::dispatchOnClientRunLoop):
(WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext):
(WebKit::CoordinatedGraphicsScene::updateViewport):
(WebKit::CoordinatedGraphicsScene::onNewBufferAvailable):
(WebKit::CoordinatedGraphicsScene::commitSceneState):
(WebKit::CoordinatedGraphicsScene::renderNextFrame):
(WebKit::CoordinatedGraphicsScene::purgeGLResources):
(WebKit::CoordinatedGraphicsScene::commitScrollOffset):
(WebKit::CoordinatedGraphicsScene::detach):
(WebKit::CoordinatedGraphicsScene::setActive):
(WebKit::CoordinatedGraphicsScene::dispatchCommitScrollOffset): Deleted.
(WebKit::CoordinatedGraphicsScene::purgeBackingStores): Deleted.
* Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::purgeBackingStores): Deleted.
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp:
(WebKit::CoordinatedLayerTreeHostProxy::purgeBackingStores): Deleted.
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h:
* WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:
(WebKit::CompositingCoordinator::invalidate):
* WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h:
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::invalidate):
(WebKit::CoordinatedLayerTreeHost::purgeBackingStores): Deleted.
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.messages.in:
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
2016-07-27 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Remove network setup from web process
https://bugs.webkit.org/show_bug.cgi?id=160236
Reviewed by Michael Catanzaro.
We are still doing network init and finish in th web process. It's useless since we switched to mandatory
network process.
* WebProcess/gtk/WebProcessMainGtk.cpp:
2016-07-27 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.13.4 release.
* gtk/NEWS: Add release notes for 2.13.4.
2016-07-26 Simon Fraser <simon.fraser@apple.com>
Sort the project files.
* WebKit2.xcodeproj/project.pbxproj:
2016-07-26 Myles C. Maxfield <mmaxfield@apple.com>
[iPhone] Playing a video on tudou.com plays only sound, no video
https://bugs.webkit.org/show_bug.cgi?id=160178
<rdar://problem/27535468>
Reviewed by Eric Carlson and Dan Bernstein.
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetInlineMediaPlaybackRequiresPlaysInlineAttribute):
(WKPreferencesGetInlineMediaPlaybackRequiresPlaysInlineAttribute):
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _inlineMediaPlaybackRequiresPlaysInlineAttribute]):
(-[WKWebViewConfiguration _setInlineMediaPlaybackRequiresPlaysInlineAttribute:]):
* UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
2016-07-26 Alex Christensen <achristensen@webkit.org>
Remove unused DownloadAuthenticationClient
https://bugs.webkit.org/show_bug.cgi?id=160220
Reviewed by Darin Adler.
* CMakeLists.txt:
* NetworkProcess/Downloads/Download.cpp:
* NetworkProcess/Downloads/Download.h:
* NetworkProcess/Downloads/DownloadAuthenticationClient.cpp: Removed.
* NetworkProcess/Downloads/DownloadAuthenticationClient.h: Removed.
* WebKit2.xcodeproj/project.pbxproj:
2016-07-26 Simon Fraser <simon.fraser@apple.com>
Allow LOG macros to be used outside the namespace, and other logging cleanup
https://bugs.webkit.org/show_bug.cgi?id=160216
Reviewed by Anders Carlsson.
Fix some issues with the LOG macros.
First, they were not usable outside the WebKit namespace in WebKit2 code. Fix by moving
its log channels outside of the namespace (they are protected by a unique prefix anyway).
Second, allow LOG_WITH_STREAM to be used in WebKit2 by moving that and a helper macro
into LogMacros.h, which is exported from WebCore as a private header.
Third, split the Logging.h header into two. Logging.h remains for framework-internal
log channels and log macros. Add LogInitialization.h which is external, and used to
initialize the channels.
Finally unify "initializeLogChannels" and "initializeLoggingChannels" terminology everywhere.
* NetworkProcess/NetworkProcess.cpp:
* Platform/LogInitialization.h: Copied from Source/WebKit2/Platform/foundation/LoggingFoundation.mm.
* Platform/Logging.cpp:
(WebKit::initializeLogChannelsIfNecessary):
* Platform/Logging.h:
* Platform/foundation/LoggingFoundation.mm:
* Shared/WebKit2Initialize.cpp:
(WebKit::InitializeWebKit2):
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _updateContentRectsWithState:]):
(-[WKWebView _navigationGestureDidBegin]):
* UIProcess/WebProcessPool.cpp:
(WebKit::m_hiddenPageThrottlingTimer):
* WebKit2.xcodeproj/project.pbxproj:
2016-07-26 David Kilzer <ddkilzer@apple.com>
Networking process crash due to missing -[WebCoreAuthenticationClientAsChallengeSender performDefaultHandlingForAuthenticationChallenge:] implementation
https://bugs.webkit.org/show_bug.cgi?id=156947
<rdar://problem/23325160>
Reviewed by Alex Christensen.
* UIProcess/API/C/WKAuthenticationDecisionListener.cpp:
(WKAuthenticationDecisionListenerRejectProtectionSpaceAndContinue):
* UIProcess/API/C/WKAuthenticationDecisionListener.h:
Added new SPI for testing corresponding to calling the completion handler of
WKWebView.didReceiveAuthenticationChallenge with NSURLSessionAuthChallengeRejectProtectionSpace.
2016-07-26 Anders Carlsson <andersca@apple.com>
Payment session does not end if user closes all Safari windows
https://bugs.webkit.org/show_bug.cgi?id=160213
rdar://problem/27480873
Reviewed by Tim Horton.
Listen for the NSWindowWillCloseNotification of the sheet window and hide the payment UI when
the sheet window is going to be closed.
* UIProcess/ApplePay/WebPaymentCoordinatorProxy.h:
* UIProcess/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm:
(WebKit::WebPaymentCoordinatorProxy::platformShowPaymentUI):
(WebKit::WebPaymentCoordinatorProxy::hidePaymentUI):
2016-07-26 Carlos Garcia Campos <cgarcia@igalia.com>
[Threaded Compositor] ASSERTION FAILED: canAccessThreadLocalDataForThread(m_thread) after r203718
https://bugs.webkit.org/show_bug.cgi?id=160201
Reviewed by Michael Catanzaro.
I forgot to call purgeGLResources() before invalidating the scene in the compositing thread.
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::invalidate):
2016-07-26 Enrica Casucci <enrica@apple.com>
Support configurable autocapitalization.
https://bugs.webkit.org/show_bug.cgi?id=158860
rdar://problem/27536113
Reviewed by Tim Horton.
Autocapitalization should be enabled/disabled regardless of whether
we are using advance spelling feature.
* UIProcess/mac/TextCheckerMac.mm:
(WebKit::TextChecker::checkTextOfParagraph):
(WebKit::TextChecker::getGuessesForWord):
2016-07-26 Carlos Garcia Campos <cgarcia@igalia.com>
[Coordinated Graphics] Test fast/fixed-layout/fixed-layout.html crashes in debug
https://bugs.webkit.org/show_bug.cgi?id=160117
Reviewed by Michael Catanzaro.
The problem is that WebPage has its own m_useFixedLayout that is only updated when changed from the UI
process. However, layout tests doing internals.setUseFixedLayout() change the frame view directly, and the
WebPage doesn't notice it.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setFixedVisibleContentRect): Deleted.
(WebKit::WebPage::sendViewportAttributesChanged): Change the assert to check the main FrameView is in fixed
layout mode.
* WebProcess/WebPage/WebPage.h:
2016-07-26 Carlos Garcia Campos <cgarcia@igalia.com>
[Threaded Compositor] ASSERTION FAILED: isMainThread() when ThreadedCompositor is destroyed since r203718
https://bugs.webkit.org/show_bug.cgi?id=160197
Reviewed by Žan Doberšek.
ThreadedCompositor can be destroyed from a secondary thread, for example, when a task takes a reference and the
main threads derefs it, when the task finishes in the secondary thread the lambda ends up deleting the threaded
compositor. This is ok for the Threaded compositor but not for the CompositingRunLoop class. this was not a
problem before r203718 because the CompositingRunLoop object was created and destroyed in the same thread
always, but now it's part of the ThreadedCompositor class. This patch uses std:unique_ptr again to explicitly
create the CompositingRunLoop in the ThreadedCompositor constructor and delete in the invalidate() method to
make sure it happens in the main thread in both cases.
* Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:
(WebKit::WorkQueuePool::invalidate):
(WebKit::WorkQueuePool::getOrCreateWorkQueueForContext):
* Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h:
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::ThreadedCompositor):
(WebKit::ThreadedCompositor::invalidate):
(WebKit::ThreadedCompositor::setNativeSurfaceHandleForCompositing):
(WebKit::ThreadedCompositor::setDeviceScaleFactor):
(WebKit::ThreadedCompositor::setDrawsBackground):
(WebKit::ThreadedCompositor::didChangeViewportSize):
(WebKit::ThreadedCompositor::didChangeViewportAttribute):
(WebKit::ThreadedCompositor::didChangeContentsSize):
(WebKit::ThreadedCompositor::scrollTo):
(WebKit::ThreadedCompositor::scrollBy):
(WebKit::ThreadedCompositor::updateViewport):
(WebKit::ThreadedCompositor::scheduleDisplayImmediately):
(WebKit::ThreadedCompositor::forceRepaint):
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
2016-07-26 Youenn Fablet <youenn@apple.com>
Remove ClientCredentialPolicy cross-origin option from ResourceLoaderOptions
https://bugs.webkit.org/show_bug.cgi?id=159413
Reviewed by Alex Christensen.
Renaming of ClientCredentialPolicy values.
* NetworkProcess/Downloads/DownloadManager.cpp:
(WebKit::DownloadManager::startDownload):
* NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace):
(WebKit::NetworkLoad::didReceiveAuthenticationChallenge):
* NetworkProcess/NetworkLoadParameters.h:
* NetworkProcess/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters):
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::NetworkResourceLoader):
* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::scheduleLoad):
* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::willSendRequest):
2016-07-26 Carlos Garcia Campos <cgarcia@igalia.com>
[Threaded Compositor] Crashes and deadlocks in single web process mode
https://bugs.webkit.org/show_bug.cgi?id=160160
Reviewed by Žan Doberšek.
Every WebPage has its own threaded compositor that runs its own compositing thread. That means that when there's
more than one WebPage in the same process, we are running OpenGL stuff in different secondary threads. That's
causing crashes and deadlocks in X and graphics drivers. We should ensure there's a single compositing thread
per process when multiple threads is not supported. This is causing unit test
WebKit2.WKPageGetScaleFactorNotZero to time out since we switched to the threaded compositor. That test is
creating two pages in the same web process, and most of the times the web process crashes or deadlocks causing
the test to never finish and time out.
This patch makes CompositingRunLoop use a thread pool that spawns the compositing threads and schedules the tasks
there.
* Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:
(WebKit::WorkQueuePool::singleton):
(WebKit::WorkQueuePool::dispatch):
(WebKit::WorkQueuePool::runLoop):
(WebKit::WorkQueuePool::invalidate):
(WebKit::WorkQueuePool::WorkQueuePool):
(WebKit::WorkQueuePool::getOrCreateWorkQueueForContext):
(WebKit::CompositingRunLoop::CompositingRunLoop):
(WebKit::CompositingRunLoop::~CompositingRunLoop):
(WebKit::CompositingRunLoop::performTask):
(WebKit::CompositingRunLoop::performTaskSync):
* Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h:
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::ThreadedCompositor):
(WebKit::ThreadedCompositor::invalidate):
(WebKit::ThreadedCompositor::setNativeSurfaceHandleForCompositing):
(WebKit::ThreadedCompositor::setDeviceScaleFactor):
(WebKit::ThreadedCompositor::setDrawsBackground):
(WebKit::ThreadedCompositor::didChangeViewportSize):
(WebKit::ThreadedCompositor::didChangeViewportAttribute):
(WebKit::ThreadedCompositor::didChangeContentsSize):
(WebKit::ThreadedCompositor::scrollTo):
(WebKit::ThreadedCompositor::scrollBy):
(WebKit::ThreadedCompositor::purgeBackingStores):
(WebKit::ThreadedCompositor::renderNextFrame):
(WebKit::ThreadedCompositor::commitScrollOffset):
(WebKit::ThreadedCompositor::updateViewport):
(WebKit::ThreadedCompositor::scheduleDisplayImmediately):
(WebKit::ThreadedCompositor::forceRepaint):
(WebKit::ThreadedCompositor::tryEnsureGLContext): Deleted.
(WebKit::ThreadedCompositor::glContext): Deleted.
(WebKit::ThreadedCompositor::updateSceneState): Deleted.
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
2016-07-25 Sam Weinig <sam@webkit.org>
Fix assertion.
* NetworkProcess/cache/NetworkCacheCodersCocoa.cpp:
(WebKit::NetworkCache::encodeCertificateChain):
2016-07-25 Sam Weinig <sam@webkit.org>
Split platform specific parts of NetworkCacheCoders.cpp into separate files
https://bugs.webkit.org/show_bug.cgi?id=160151
Reviewed by Alex Christensen.
* NetworkProcess/cache/NetworkCacheCoders.cpp:
(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::encode): Deleted.
(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::decode): Deleted.
* NetworkProcess/cache/NetworkCacheCodersCocoa.cpp: Copied from Source/WebKit2/NetworkProcess/cache/NetworkCacheCoders.cpp.
(WebKit::NetworkCache::encodeCFData): Moved.
(WebKit::NetworkCache::decodeCFData): Moved.
(WebKit::NetworkCache::encodeSecTrustRef): Moved.
(WebKit::NetworkCache::decodeSecTrustRef): Moved.
(WebKit::NetworkCache::encodeCertificateChain): Moved.
(WebKit::NetworkCache::decodeCertificateChain): Moved.
(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::encode): Moved.
(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::decode): Moved.
* NetworkProcess/cache/NetworkCacheCodersSoup.cpp: Copied from Source/WebKit2/NetworkProcess/cache/NetworkCacheCoders.cpp.
(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::encode): Moved.
(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::decode): Moved.
* PlatformGTK.cmake:
* PlatformMac.cmake:
* WebKit2.xcodeproj/project.pbxproj:
Add new files.
2016-07-25 Chris Dumez <cdumez@apple.com>
[iOS] Make sure we call the ProcessAssertion invalidation handler on the main thread
https://bugs.webkit.org/show_bug.cgi?id=160140
<rdar://problem/27399998>
Reviewed by Darin Adler.
Based on crash traces, it appears BKSProcessAssertion is calling our
invalidation handler on a background thread. This was not anticipated
and therefore, this would lead to thread safety issues and crashes.
We now make sure to call our invalidation handler on the main thread.
We also use a WeakPtr to ensure that the ProcessAssertion is still
alive once on the main thread and before calling the invalidation
handler.
* UIProcess/ProcessAssertion.cpp:
(WebKit::ProcessAssertion::ProcessAssertion):
* UIProcess/ProcessAssertion.h:
(WebKit::ProcessAssertion::ProcessAssertion):
(WebKit::ProcessAssertion::createWeakPtr):
* UIProcess/ios/ProcessAssertionIOS.mm:
(WebKit::ProcessAssertion::ProcessAssertion):
(WebKit::ProcessAssertion::markAsInvalidated):
2016-07-24 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK][Threaded Compositor] ASSERTION FAILED: !!handle ^ !!m_nativeSurfaceHandle with several layout tests
https://bugs.webkit.org/show_bug.cgi?id=160143
Reviewed by Michael Catanzaro.
We have a message to set the native surface handle and another one for destroying it, the former is a normal
message while the latter is sync. This assertion happens if the web view is realized before the web process is
launched. This is the sequence:
1.- DrawingAreaProxyImpl sends SetNativeSurfaceHandleForCompositing message to the web process, since the
process hasn't been launched yet, the message is queued.
2.- Web process is launched and queued messages are now sent to the web process.
3.- The page is closed right after the web process is launched, and DrawingAreaProxyImpl sends
DestroyNativeSurfaceHandleForCompositing to the web process.
4.- The web process processes incoming messages, and DestroyNativeSurfaceHandleForCompositing is processed before
SetNativeSurfaceHandleForCompositing because it's sync.
5.- The web process processes SetNativeSurfaceHandleForCompositing message.
This is not only producing the assertion, it's also setting a handle for a X window already destroyed in the UI
process, so this could be producing the X errors we have seen in other tests. So, we need to make sure
SetNativeSurfaceHandleForCompositing and DestroyNativeSurfaceHandleForCompositing are handled in order by the
web process. We could make SetNativeSurfaceHandleForCompositing sync as well, but sync messages are just ignored
when sent before the web process has been launched (only normal messages are queued for obvious reasons). The
other option is sending the SetNativeSurfaceHandleForCompositing message with the
IPC::DispatchMessageEvenWhenWaitingForSyncReply flag. In this case the message is queued and dispatched on
process launch, but it's dispatched before other messages also queued without that flag, like
CreateWebPage. Since there's no WebPage the web process doesn't find a valid message receiver for it and
it's discarded. We need to ensure the DrawinArea object has been created before sending the
SetNativeSurfaceHandleForCompositing with the PC::DispatchMessageEvenWhenWaitingForSyncReply flag.
* UIProcess/DrawingAreaProxyImpl.cpp:
(WebKit::DrawingAreaProxyImpl::didUpdateBackingStoreState): If we have received the first update and there's a
SetNativeSurfaceHandleForCompositing message pending, send it.
(WebKit::DrawingAreaProxyImpl::setNativeSurfaceHandleForCompositing): Do not send the message before the first
update is received.
(WebKit::DrawingAreaProxyImpl::destroyNativeSurfaceHandleForCompositing): If there was a
SetNativeSurfaceHandleForCompositing message pending, just ignore this destroy since the web process never
received the handle.
* UIProcess/DrawingAreaProxyImpl.h:
2016-07-25 Philippe Normand <pnormand@igalia.com>
Improve GDB backtrace generation for GTK/EFL
https://bugs.webkit.org/show_bug.cgi?id=128928
Reviewed by Carlos Garcia Campos.
Move the Web, Database and Network ProcessIdentifier functions to
the cross-platform WKContext and WKPage implementations.
* UIProcess/API/C/WKContext.cpp:
(WKContextGetNetworkProcessIdentifier):
(WKContextGetDatabaseProcessIdentifier):
* UIProcess/API/C/WKContextPrivate.h:
* UIProcess/API/C/WKPage.cpp:
(WKPageGetProcessIdentifier):
* UIProcess/API/C/WKPagePrivate.h:
* UIProcess/API/C/mac/WKContextPrivateMac.h:
* UIProcess/API/C/mac/WKContextPrivateMac.mm:
* UIProcess/API/C/mac/WKPagePrivateMac.h:
* UIProcess/API/C/mac/WKPagePrivateMac.mm:
2016-07-24 Sam Weinig <sam@webkit.org>
Add specialization for encoding/decoding WebCore::CertificateInfos in the Network Cache
<rdar://problem/27409315>
https://bugs.webkit.org/show_bug.cgi?id=160144
Reviewed by Chris Dumez.
* NetworkProcess/cache/NetworkCacheCoders.cpp:
(WebKit::NetworkCache::encodeCFData):
(WebKit::NetworkCache::decodeCFData):
(WebKit::NetworkCache::encodeSecTrustRef):
(WebKit::NetworkCache::decodeSecTrustRef):
(WebKit::NetworkCache::encodeCertificateChain):
(WebKit::NetworkCache::decodeCertificateChain):
(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::encode):
(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::decode):
* NetworkProcess/cache/NetworkCacheStorage.h:
(WebKit::NetworkCache::Storage::version):
Bump the version and lastStableVersion to account for the format change.
2016-07-22 Joseph Pecoraro <pecoraro@apple.com>
Web Automation: All key events should be processed before sending response
https://bugs.webkit.org/show_bug.cgi?id=160114
<rdar://problem/27505943>
Reviewed by Darin Adler.
When evaluating performKeyboardInteractions, we were sending all
NSEvents synchronously, but because WebPageProxy was doing its
own queueing and asynchronous processing of those key events, we
would receive and respond to the next Automation command before
having completed all of the key events.
This change makes performKeyboardInteractions asynchronous. It
will be notified only after WebPageProxy has exhausted its queue
of key events.
* UIProcess/Automation/Automation.json:
* UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::keyboardEventsFlushedForPage):
(WebKit::WebAutomationSession::evaluateJavaScriptFunction):
(WebKit::WebAutomationSession::performKeyboardInteractions):
* UIProcess/Automation/WebAutomationSession.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didReceiveEvent):
2016-07-22 Joseph Pecoraro <pecoraro@apple.com>
Web Automation: WebAutomationSession::deleteAllCookies never calls callback, hangs automation session
https://bugs.webkit.org/show_bug.cgi?id=160113
<rdar://problem/27308124>
Reviewed by Darin Adler.
Delete all cookies appears to be a straightforward action
where we don't need to wait for a callback. So drop the
async altogether and implicitly complete the action.
* UIProcess/Automation/Automation.json:
* UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::deleteAllCookies):
* UIProcess/Automation/WebAutomationSession.h:
2016-07-22 Zalan Bujtas <zalan@apple.com>
Handle cases when IOSurface initialization fails.
https://bugs.webkit.org/show_bug.cgi?id=160006
<rdar://problem/27495102>
Reviewed by Tim Horton and Simon Fraser.
This is an additional fix to r203514 to check if IOSurface initialization was successful.
Unable to test.
* Shared/mac/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::encode):
(WebKit::RemoteLayerBackingStore::display):
(WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer):
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _takeViewSnapshot]):
(-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):
2016-07-22 Chelsea Pugh <cpugh@apple.com>
[iOS] Clients should be able to decide if they want secure text entry in a form field
https://bugs.webkit.org/show_bug.cgi?id=160109
rdar://problem/27504958
Reviewed by Dan Bernstein.
* UIProcess/API/Cocoa/_WKFormInputSession.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKFormInputSession forceSecureTextEntry]): Getter.
(-[WKFormInputSession setForceSecureTextEntry:]): Setter.
(-[WKContentView textInputTraits]): If the form input session has specified that secure text
entry is desired, we should use secure text entry.
2016-07-22 Anders Carlsson <andersca@apple.com>
Get rid of an unused API typedef
https://bugs.webkit.org/show_bug.cgi?id=160103
Reviewed by Sam Weinig.
* Shared/API/c/WKSharedAPICast.h:
2016-07-22 Dan Bernstein <mitz@apple.com>
run-safari doesn't work with Safari 10 on 10.11
https://bugs.webkit.org/show_bug.cgi?id=159958
<rdar://problem/27422805>
Reviewed by Alexey Proskuryakov.
Safari’s injected bundle may depend on the newer versions of frameworks installed in a
staging location. Have the engineering builds of the Web Content service look for newer
versions in that location.
* Configurations/BaseTarget.xcconfig: Shortened a linker flag.
* Configurations/BaseXPCService.xcconfig: Increased Mach-O header padding in production
builds to allow for more dyld environment commands to be added after the fact.
* Configurations/DebugRelease.xcconfig: Have the new
WK_WEBCONTENT_SERVICE_NEEDS_VERSIONED_FRAMEWORK_PATH_LDFLAG set to YES for macOS
engineering builds.
* Configurations/WebContentService.xcconfig: Include the versioned frameworks whenever
WK_WEBCONTENT_SERVICE_NEEDS_VERSIONED_FRAMEWORK_PATH_LDFLAG is set to YES. Have the
value of WK_WEBCONTENT_SERVICE_NEEDS_VERSIONED_FRAMEWORK_PATH_LDFLAG default to
the value of USE_STAGING_INSTALL_PATH, while letting DebugRelease.xcconfig override it.
2016-07-21 Myles C. Maxfield <mmaxfield@apple.com>
Remove support for deprecated SPI inlineMediaPlaybackRequiresPlaysInlineAttribute
https://bugs.webkit.org/show_bug.cgi?id=160066
Reviewed by Dean Jackson.
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetInlineMediaPlaybackRequiresPlaysInlineAttribute): Deleted.
(WKPreferencesGetInlineMediaPlaybackRequiresPlaysInlineAttribute): Deleted.
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]): Deleted.
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]): Deleted.
(-[WKWebViewConfiguration copyWithZone:]): Deleted.
(-[WKWebViewConfiguration _inlineMediaPlaybackRequiresPlaysInlineAttribute]): Deleted.
(-[WKWebViewConfiguration _setInlineMediaPlaybackRequiresPlaysInlineAttribute:]): Deleted.
* UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences): Deleted.
2016-07-21 Chelsea Pugh <cpugh@apple.com>
[iOS] Apps using WKWebView will crash if they set the scroll view's delegate and don't nil it out later
https://bugs.webkit.org/show_bug.cgi?id=159980
rdar://problem/27450825
Reviewed by Dan Bernstein.
The root cause of this crash is that we are not abiding the UIScrollView API that the scroll view
delegate property should be weak. If setters of this delegate do not know that, since the WKWebView
exposes the scroll view as a UIScrollView, they may forget to nil out the delegate they set and will
then crash.
* UIProcess/ios/WKScrollView.mm:
(-[WKScrollViewDelegateForwarder methodSignatureForSelector:]): Get a RetainPtr holding the
external delegate and use where needed.
(-[WKScrollViewDelegateForwarder respondsToSelector:]): Ditto.
(-[WKScrollViewDelegateForwarder forwardInvocation:]): Ditto.
(-[WKScrollViewDelegateForwarder forwardingTargetForSelector:]): Ditto. When returning a reference
to the external delegate, get a retained and autoreleased reference so the caller needn't release
the object when done.
(-[WKScrollView delegate]): Ditto.
(-[WKScrollView _updateDelegate]): Get a RetainPtr holding the external delegate that can be
used throughout this method. Use the RetainPtr to get the external delegate for setting super's
delegate as well as creating the delegate forwarder.
(-[WKScrollView setDelegate:]): Get a RetainPtr holding the external delegate and use its value for
comparison to the object we are setting the external delegate to.
2016-07-21 Myles C. Maxfield <mmaxfield@apple.com>
[iPhone] Playing a video on tudou.com plays only sound, no video
https://bugs.webkit.org/show_bug.cgi?id=159967
<rdar://problem/26964090>
Reviewed by Jon Lee, Jeremy Jones, and Anders Carlsson.
Add the two preferences to WKWebViewConfiguration and WKPreferences to cover both
the Obj-C API and the C SPI.
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetAllowsInlineMediaPlaybackWithPlaysInlineAttribute):
(WKPreferencesGetAllowsInlineMediaPlaybackWithPlaysInlineAttribute):
(WKPreferencesSetAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute):
(WKPreferencesGetAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute):
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _allowsInlineMediaPlaybackWithPlaysInlineAttribute]):
(-[WKWebViewConfiguration _setAllowsInlineMediaPlaybackWithPlaysInlineAttribute:]):
(-[WKWebViewConfiguration _allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute]):
(-[WKWebViewConfiguration _setAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute:]):
* UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
2016-07-21 Yongjun Zhang <yongjun_zhang@apple.com>
WebBackForwardList's currentIndex could get out of bounds when filtering items.
https://bugs.webkit.org/show_bug.cgi?id=159986
When generating a new BackForwardListState object, if we filter out multiple items in the list, the currentIndex could get
out of bounds.
Reviewed by Dan Bernstein.
* UIProcess/WebBackForwardList.cpp:
(WebKit::WebBackForwardList::backForwardListState): Make currentIndex point to the last item if it is out of bounds.
2016-07-21 Joseph Pecoraro <pecoraro@apple.com>
Web Automation: Allow JavaScript evaluation to return an InvalidElementState error
https://bugs.webkit.org/show_bug.cgi?id=160015
<rdar://problem/27434529>
Reviewed by Brian Burg.
* UIProcess/Automation/Automation.json:
* WebProcess/Automation/WebAutomationSessionProxy.cpp:
(WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction):
2016-07-21 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK][Threaded Compositor] WTR generates fully white images for pixel tests most of the time
https://bugs.webkit.org/show_bug.cgi?id=160016
Reviewed by Žan Doberšek.
WTR sends a force repaint message to the web process before taking a snapshot of the web view. With the threaded
compositor, the UI process is notified about the force repaint callback before the contents have been actually
painted. We need to ensure that the contents are rendered before the UI process is notified.
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::forceRepaint): Synchronously render the layer tree.
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewRenderAcceleratedCompositingResults): Always mark the redirected window surface as dirty before
rendering, since it can be modified by the web process at any time.
* UIProcess/gtk/RedirectedXCompositeWindow.cpp:
(WebKit::XDamageNotifier::add):
(WebKit::RedirectedXCompositeWindow::RedirectedXCompositeWindow): Do not mark the surface as dirty on every
damage since the view will do it before rendering.
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:
(WebKit::ThreadedCoordinatedLayerTreeHost::forceRepaint): Call ThreadedCompositor::forceRepaint().
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
2016-07-21 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] White page when loaded tab is visited until it's hovered when AC mode is always on
https://bugs.webkit.org/show_bug.cgi?id=159512
Reviewed by Michael Catanzaro.
The redirected window is always mapped, but offscreen, to ensure that the web process can always render
there. When the web process renders something into the offscreen window, we receive a damage event in the UI
process and queue a redraw of the web view. However, when the web view is not mapped, even if we still receive
the damage events, the web view redraws are ignored until the view is mapped again (gtk_widget_queue_draw()
returns early when the widget is not visible). The redirected window updates its pixmap on demand when the
surface is requested, which happens when the web view draws its contents. So when the web view becames visible,
the redirected window creates a new pixmap and surface (the first time or if the web view was resized), that we
initialize to avoid artifacts when the web process hasn't render anything yet. That initialization is actually
overwriting anything rendered into the redirected window while the view was unmapped. That's why see white pages
the first time, and previous contents after a resize, and we don't see the actual contents until the web process
renders again and we reuse the existing pixmap. The white page didn't happen for tabs with accelerated content,
because in those cases the web process was rendering a new frame every 16ms, but instead there was a flickering
effect due to the current frame being overwritten when the view is mapped until the next frame.
So, instead of lazily create and initialize the redirected window pixmap and surface, we should always create
the new pixmap as soon as the window is created or resized (and not empty) This fixes the issues but also makes
resizing the window a bit smoother when AC mode is enabled.
* UIProcess/gtk/RedirectedXCompositeWindow.cpp:
(WebKit::RedirectedXCompositeWindow::RedirectedXCompositeWindow): Create the pixmap and surface if the window is
not empty.
(WebKit::RedirectedXCompositeWindow::resize): Ditto.
(WebKit::RedirectedXCompositeWindow::createNewPixampAndPixampSurface): Create the pixmap and surface.
(WebKit::RedirectedXCompositeWindow::surface): Deleted.
* UIProcess/gtk/RedirectedXCompositeWindow.h:
(WebKit::RedirectedXCompositeWindow::surface):
2016-07-21 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK][Threaded Compositor] Web view background colors don't work
https://bugs.webkit.org/show_bug.cgi?id=159465
Reviewed by Michael Catanzaro.
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::setDrawsBackground): Set m_drawsBackground in compositing thread and schedule a
layer flush.
(WebKit::ThreadedCompositor::renderLayerTree): Clear the area when not rendering backgrounds.
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:
(WebKit::ThreadedCoordinatedLayerTreeHost::pageBackgroundTransparencyChanged): Notify the compositor.
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
2016-07-21 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Web view background colors don't work in accelerated compositing mode
https://bugs.webkit.org/show_bug.cgi?id=159455
Reviewed by Michael Catanzaro.
In non AC mode it's the drawing area backing store the one drawing the background, and the web process just
renders into a transparent bitmap. In AC mode we need to make the redirected window pixmap transparent for the
web process to render there, and let the web view fill the background color before rendering the redirected
window pixmap on top. To be able to make the redirected window surface transparent, we need to ensure the parent
window has an RGBA visual, even when setting a fully opaque background, because we still need the web process
to render on the transparent xwindow.
* UIProcess/API/gtk/WebKitWebView.cpp: Update documentation of webkit_web_view_set_background_color() since now
it's required to set the RGBA visual even for opaque colors in case AC mode is enabled.
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewRenderAcceleratedCompositingResults): When a background color has been set, fill it before
rendering the redirected window surface.
* UIProcess/gtk/RedirectedXCompositeWindow.cpp:
(WebKit::RedirectedXCompositeWindow::RedirectedXCompositeWindow): Mark the surface as dirty after every damage
event, since the web process has modified it.
(WebKit::RedirectedXCompositeWindow::surface): Initialize the surface after creating it, to avoid flickering and
rendering artifacts when waiting for the first damage event from the web process.
* WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
(WebKit::LayerTreeHostGtk::compositeLayersToContext): Use a fully transparent color to clear the context when the page
is resized or when a view background color has been set.
2016-07-20 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Avoid the redirected window resize when the view is realized in AC mode
https://bugs.webkit.org/show_bug.cgi?id=159463
Reviewed by Michael Catanzaro.
We are always creating the redirected window at 1x1 and then resizing it if we are in AC mode. When the view is
realized and AC mode is already enabled, which happens for example when AC mode is forced, or when the threaded
compositor is enabled, we could just pass the initial size to the redirected window constructor to create the
XWindow at the right size.
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseResizeRedirectedWindow): We no longer need to pass the device scale factor, since the
RedirectedXCompositeWindow already knows it.
(webkitWebViewBaseRealize): Pass the WebPageProxy and an initial size to the RedirectedXCompositeWindow
constructor instead of the parent GdkWindow. If AC mode is disabled, the initial size will be empty. With the
WebPageProxy the redirected window has access to the device scale factor and view widget to get the parent
GdkWindow.
(deviceScaleFactorChanged): Resize the redirected window when device scale factor changes.
* UIProcess/gtk/RedirectedXCompositeWindow.cpp:
(WebKit::RedirectedXCompositeWindow::create):
(WebKit::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
(WebKit::RedirectedXCompositeWindow::resize):
(WebKit::RedirectedXCompositeWindow::surface):
(WebKit::RedirectedXCompositeWindow::~RedirectedXCompositeWindow):
* UIProcess/gtk/RedirectedXCompositeWindow.h:
2016-07-20 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK][Threaded Compositor] Web Process crash when the page is closed before the web view is realized
https://bugs.webkit.org/show_bug.cgi?id=159918
Reviewed by Michael Catanzaro.
When the web view is unrealized, we send a sync message to the web process to destroy the native surface handle
for compositing, and then we actually destroy the redirected window. But if the page is closed explicitly before
the web view is unrealized, the drawing area proxy is destroyed so that when the web view is unrealized we can't
notify the web process that keeps trying to render to a now deleted window handle. That produces a BadDrawable
X error and the web process crashes.
* UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::pageClosed): Call webkitWebViewBasePageClosed().
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBasePageClosed): If the web view is still realized, destroy the native surface handle and the
redirected window.
* UIProcess/API/gtk/WebKitWebViewBasePrivate.h: Add webkitWebViewBasePageClosed().
2016-07-20 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r203471.
https://bugs.webkit.org/show_bug.cgi?id=160003
many iOS-simulator tests are failing (Requested by litherum on
#webkit).
Reverted changeset:
"[iPhone] Playing a video on tudou.com plays only sound, no
video"
https://bugs.webkit.org/show_bug.cgi?id=159967
http://trac.webkit.org/changeset/203471
2016-07-20 Simon Fraser <simon.fraser@apple.com>
REGRESSION (r203189): Webpage snapshots are partially or fully blank when edge swiping back
https://bugs.webkit.org/show_bug.cgi?id=160000
rdar://problem/27455589
Reviewed by Zalan Bujtas.
r203189 triggered a call to -_updateContentRectsWithState: in the middle of a swipe,
during which we'd compute the visible rect of the view as having zero width, causing us
to not create tiles.
-_navigationGestureDidBegin already snapshots the visibleContentRect in _frozenVisibleContentRect,
but -_visibleContentRect then clipped that with ancestor views, causing the issue.
Fix by having -_visibleContentRect just return _frozenVisibleContentRect if we have one.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _visibleContentRect]):
2016-07-20 Myles C. Maxfield <mmaxfield@apple.com>
[iPhone] Playing a video on tudou.com plays only sound, no video
https://bugs.webkit.org/show_bug.cgi?id=159967
<rdar://problem/26964090>
Reviewed by Jon Lee.
Add the two preferences to WKWebViewConfiguration and WKPreferences to cover both
the Obj-C API and the C SPI.
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetAllowsInlineMediaPlaybackWithPlaysInlineAttribute):
(WKPreferencesGetAllowsInlineMediaPlaybackWithPlaysInlineAttribute):
(WKPreferencesSetAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute):
(WKPreferencesGetAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute):
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _allowsInlineMediaPlaybackWithPlaysInlineAttribute]):
(-[WKWebViewConfiguration _setAllowsInlineMediaPlaybackWithPlaysInlineAttribute:]):
(-[WKWebViewConfiguration _allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute]):
(-[WKWebViewConfiguration _setAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute:]):
* UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
2016-07-20 ChangSeok Oh <changseok@webkit.org>
Fix a linking failure caused by NetworkCache::Data::~Data()
https://bugs.webkit.org/show_bug.cgi?id=159931
Linking is failed with clang 3.6. It says WebKit::NetworkCache::Data::~Data is undefined.
It is fixed by adding a destructor for NetworkCache::Data.
Reviewed by Alex Christensen.
* NetworkProcess/cache/NetworkCacheData.h:
(WebKit::NetworkCache::Data::~Data):
2016-07-20 Tim Horton <timothy_horton@apple.com>
Explain the default value of WKWebViewConfiguration's ignoresViewportScaleLimits
https://bugs.webkit.org/show_bug.cgi?id=159978
<rdar://problem/27453189>
Reviewed by Dan Bernstein.
* UIProcess/API/Cocoa/WKWebViewConfiguration.h:
This defaults to NO.
2016-07-20 Carlos Garcia Campos <cgarcia@igalia.com>
[Linux] MemoryPressureMonitor fallback code to get memory available in older linux kernels doesn't work
https://bugs.webkit.org/show_bug.cgi?id=159970
Reviewed by Antonio Gomes.
We are failing to detect zones when parsing /proc/zoneinfo.
* UIProcess/linux/MemoryPressureMonitor.cpp:
(WebKit::lowWatermarkPages): Use strncmp since we want to know whether the line starts with "Node".
(WebKit::MemoryPressureMonitor::MemoryPressureMonitor): Stop the polling if we fail to get the memory available,
because that means it's not sopported in the system for whatever reason.
2016-07-20 Carlos Garcia Campos <cgarcia@igalia.com>
[Threaded Compositor] Web Process crash when the layer tree host is destroyed
https://bugs.webkit.org/show_bug.cgi?id=159922
Reviewed by Sergio Villar Senin.
It happens when the layer tree host is destroyed after the didChangeVisibleRect is scheduled to be run in the
main thread, but before it's actually dispatched. In that case the threaded compositor client points to a
deleted object and crashes when trying to dereference it.
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::~ThreadedCompositor): Add an assert to ensure invalidate is always called before
the object is deleted.
(WebKit::ThreadedCompositor::invalidate): Terminate the compositing thread and nullify the client.
(WebKit::ThreadedCompositor::didChangeVisibleRect): Return early if the client is null when the task is
dispatched in the main thread.
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h: Add invalidate().
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:
(WebKit::ThreadedCoordinatedLayerTreeHost::invalidate): Invalidate the ThreadedCompositor and chain up.
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
2016-07-19 Brian Burg <bburg@apple.com>
Web Automation: WebAutomationSessionProxy's HashMaps should support '0' as valid keys
https://bugs.webkit.org/show_bug.cgi?id=159957
<rdar://problem/27376446>
Reviewed by Joseph Pecoraro.
* WebProcess/Automation/WebAutomationSessionProxy.h:
Use UnsignedWithZeroKeyHashTraits to avoid problems with zero as a key.
2016-07-19 Anders Carlsson <andersca@apple.com>
Some payment authorization status values should keep the sheet active
https://bugs.webkit.org/show_bug.cgi?id=159936
rdar://problem/26756701
Reviewed by Tim Horton.
* UIProcess/ApplePay/WebPaymentCoordinatorProxy.cpp:
(WebKit::WebPaymentCoordinatorProxy::completePaymentSession):
If the status isn't a final state status, bounce the current state back to active.
* UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.h:
Rename the _authorized ivar to _didReachFinalState.
* UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
(-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewControllerDidFinish:]):
(WebKit::WebPaymentCoordinatorProxy::platformCompletePaymentSession):
Set _didReachFinalState based on the return value of isFinalStateStatus.
2016-07-18 Csaba Osztrogonác <ossy@webkit.org>
Fix the --minimal build fail in InjectedBundle.cpp
https://bugs.webkit.org/show_bug.cgi?id=159770
Reviewed by Benjamin Poulain.
* WebProcess/InjectedBundle/InjectedBundle.cpp:
2016-07-18 Alex Christensen <achristensen@webkit.org>
webbookmarksd needs to use the same AppCache directory as MobileSafari
https://bugs.webkit.org/show_bug.cgi?id=159912
<rdar://problem/27056844>
Reviewed by Alexey Proskuryakov.
* UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:
(API::WebsiteDataStore::defaultApplicationCacheDirectory):
Make webbookmarksd match MobileSafari by adding a matching runtime exception.
2016-07-18 Anders Carlsson <andersca@apple.com>
Don't null out the IPC::Connection's XPC connection
https://bugs.webkit.org/show_bug.cgi?id=159911
rdar://problem/27018065
Reviewed by Alex Christensen.
The function that nulls out the XPC connection, platformInvalidate(), is called from the connection queue,
whereas the XPC connection is normally accessed from the main thread leading to inconsistencies when the
connection is being invalidated while the main thread is trying to access it.
Fix this by simply never nulling out the XPC connection. It will be released when the IPC::Connection is destroyed anyway.
* Platform/IPC/mac/ConnectionMac.mm:
(IPC::Connection::platformInvalidate):
2016-07-18 Tim Horton <timothy_horton@apple.com>
Tapping on an apple.com tab in tab overview stutters when switching to it
https://bugs.webkit.org/show_bug.cgi?id=159904
<rdar://problem/27192350>
Reviewed by Simon Fraser.
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::waitForDidUpdateViewState):
In any case where we get to waitForDidUpdateViewState (usually a tab switch),
if we have an outstanding didUpdate message, the Web process will not commit
a new layer tree until it receives the didUpdate message. However, since
waitForDidUpdateViewState synchronously blocks the UI process, we also
won't *send* the didUpdate message, so we block for the full timeout duration.
Instead, if we get to waitForDidUpdateViewState, just send the didUpdate without
waiting for the DisplayLink or anything else, because calling rAF slightly too
quickly, once, is certainly better than blocking the UI process for a whole second.
2016-07-18 Carlos Alberto Lopez Perez <clopez@igalia.com>
[GTK] ENABLE_OPENGL=OFF build broken since r201802
https://bugs.webkit.org/show_bug.cgi?id=159909
Reviewed by Antonio Gomes.
* WebProcess/WebPage/LayerTreeHost.h: Add missing include.
2016-07-18 Anders Carlsson <andersca@apple.com>
WebKit nightly fails to build on macOS Sierra
https://bugs.webkit.org/show_bug.cgi?id=159902
rdar://problem/27365672
Reviewed by Tim Horton.
* Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
* UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.h:
* UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
* UIProcess/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm:
Use new PassKitSPI header.
2016-07-18 Tim Horton <timothy_horton@apple.com>
Mail contents are temporarily obscured by black rectangles when returning from suspend and in app switcher
https://bugs.webkit.org/show_bug.cgi?id=159894
<rdar://problem/26973202>
Reviewed by Simon Fraser.
* UIProcess/ApplicationStateTracker.h:
* UIProcess/ApplicationStateTracker.mm:
(WebKit::ApplicationStateTracker::ApplicationStateTracker):
(WebKit::ApplicationStateTracker::~ApplicationStateTracker):
(WebKit::ApplicationStateTracker::applicationDidCreateWindowContext):
* UIProcess/ios/WKContentView.mm:
(-[WKContentView didMoveToWindow]):
(-[WKContentView _applicationDidCreateWindowContext]):
(-[WKContentView _applicationWillEnterForeground]): Deleted.
* UIProcess/ios/WKPDFView.mm:
(-[WKPDFView didMoveToWindow]):
(-[WKPDFView _applicationDidCreateWindowContext]):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::applicationDidFinishSnapshottingAfterEnteringBackground):
Hide content at window context creation time, instead of when the application
becomes foregrounded. Otherwise, background snapshots (which create/destroy
window contexts, but do not bring the app into the foreground) can have
parented layers that have volatile surfaces in them. In the normal case,
we will subsequently get foregrounded and re-build the layer tree; in the
background snapshot case, we will just have an empty layer tree.
In the future, we should consider making ApplicationStateTracker use
window context creation/destruction to drive web process lifetime, so
that we can actually paint correctly for background snapshots.
2016-07-18 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.13.3 release.
* gtk/NEWS: Add release notes for 2.13.3.
2016-07-18 Csaba Osztrogonác <ossy@webkit.org>
[Mac][cmake] Unreviewed buildfix after r203338. Just for fun.
* PlatformMac.cmake:
2016-07-18 Carlos Garcia Campos <cgarcia@igalia.com>
MemoryPressureHandler doesn't work if cgroups aren't present in Linux
https://bugs.webkit.org/show_bug.cgi?id=155255
Reviewed by Sergio Villar Senin.
There's no way to get notifications about memory pressure in Linux without using cgroups that doesn't require a
manual polling. We can get that information from /proc/meminfo, but that's not pollable so it requires to
manually check its contents in a loop sleeping for a while between checks. This means we would be waking up the
process on every poll iteration, most of the times for nothing. That's specially problematic on devices running
on battery. And taking into account that there's a memory pressure handler in every secondary process (Web,
Network and Plugin), we would be waking up all those process all the time. However, not having a memory pressure
handler is even more problematic than the manual polling.
This patch adds a class MemoryPressureMonitor to the manual polling of /proc/meminfo, but runs in the UI
process, to avoid the weakups in all other secondary processes, and uses an eventFD to notify all other
processes. It's only used in case cgroups is not available. The eventFD descriptor is sent to all other
processes at startup, and passed to the MemoryPressureHandler before install() is called for the first
time. To minimize the wakeups even in the UI process, the poll interval is calculated from 1 to 5 seconds
depending on the current memory used, so in case of low memory level we sleep for a longer time.
It's also important to make the memory calculations as accurate as possible to avoid cleaning resources in the
secondary processes unnecessarily.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess): Pass the memory pressure monitor file descriptor to the MemoryPressureHandler.
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode): Encode memory pressure monitor handle.
(WebKit::NetworkProcessCreationParameters::decode): Decode memory pressure monitor handle.
* NetworkProcess/NetworkProcessCreationParameters.h:
* PlatformEfl.cmake: Add new file to compilation, and update include dirs.
* PlatformGTK.cmake: Ditto.
* PluginProcess/PluginProcess.cpp:
(WebKit::PluginProcess::initializePluginProcess): Pass the memory pressure monitor file descriptor to the MemoryPressureHandler.
* Shared/Plugins/PluginProcessCreationParameters.cpp:
(WebKit::PluginProcessCreationParameters::encode): Encode memory pressure monitor handle.
(WebKit::PluginProcessCreationParameters::decode): Decode memory pressure monitor handle.
* Shared/Plugins/PluginProcessCreationParameters.h:
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode): Encode memory pressure monitor handle.
(WebKit::WebProcessCreationParameters::decode): Decode memory pressure monitor handle.
* Shared/WebProcessCreationParameters.h:
* UIProcess/Plugins/PluginProcessProxy.cpp:
(WebKit::PluginProcessProxy::didFinishLaunching): Create the memory pressure monitor handle for the plugin
process if needed.
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess): Create the memory pressure monitor handle for the network
process if needed.
(WebKit::WebProcessPool::createNewWebProcess): Create the memory pressure monitor handle for the web process if
needed.
* UIProcess/linux/MemoryPressureMonitor.cpp: Added.
(WebKit::lowWatermarkPages):
(WebKit::systemPageSize):
(WebKit::calculateMemoryAvailable):
(WebKit::systemMemoryUsedAsPercentage):
(WebKit::pollIntervalForUsedMemoryPercentage):
(WebKit::isSystemdMemoryPressureMonitorAvailable):
(WebKit::MemoryPressureMonitor::isEnabled):
(WebKit::MemoryPressureMonitor::singleton):
(WebKit::MemoryPressureMonitor::MemoryPressureMonitor):
(WebKit::MemoryPressureMonitor::createHandle):
* UIProcess/linux/MemoryPressureMonitor.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess): Pass the memory pressure monitor file descriptor to the MemoryPressureHandler.
2016-07-17 Carlos Garcia Campos <cgarcia@igalia.com>
REGRESSION(r202855): [GTK] ASSERTION FAILED: m_webPage.bounds().contains(bounds)
https://bugs.webkit.org/show_bug.cgi?id=159806
Reviewed by Žan Doberšek.
The problem is that since r202855, in case of non accelerated mode, the dirty region is updated too late when
updating backing store state.
* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::updateBackingStoreState): Update the dirty region to the new size when not in
accelerated compositing mode.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setSize): Update the WebPage size before resizing the frame and calling setNeedsDisplay() to
ensure that any call to setNeedsDisplay() uses the new web page bounds. This is actually a regression introduced
in r143472, where setNeedsDisplay was changed to use the web page bounds as directy rectangle. Before r143472
the dirty rectangle was passed to setNeedsDisplay and it passed the right one.
2016-07-16 Sam Weinig <sam@webkit.org>
[WebKit API] Add SPI to track multiple navigations caused by a single user gesture
<rdar://problem/26554137>
https://bugs.webkit.org/show_bug.cgi?id=159856
Reviewed by Dan Bernstein.
* Shared/API/APIObject.h:
* Shared/Cocoa/APIObject.mm:
(API::Object::newObject):
* UIProcess/API/APIUserInitiatedAction.h: Added.
Add new APIObject type, UserInitiatedAction.
* UIProcess/API/Cocoa/WKNavigationAction.mm:
* UIProcess/API/Cocoa/WKNavigationActionPrivate.h:
Expose a _WKUserInitiatedAction on the WKNavigationAction.
* UIProcess/API/Cocoa/_WKUserInitiatedAction.h: Added.
* UIProcess/API/Cocoa/_WKUserInitiatedAction.mm: Added.
(-[_WKUserInitiatedAction consume]):
(-[_WKUserInitiatedAction isConsumed]):
(-[_WKUserInitiatedAction _apiObject]):
* UIProcess/API/Cocoa/_WKUserInitiatedActionInternal.h: Added.
Add new _WKUserInitiatedAction type wrapping API::UserInitiatedAction.
* Shared/NavigationActionData.cpp:
(WebKit::NavigationActionData::encode):
(WebKit::NavigationActionData::decode):
* Shared/NavigationActionData.h:
Store the userGestureTokenIdentifier (as determined from the WebProcess's map) rather
than just a single bit. This allows us to track if a user gesture is used for multiple navigations.
* UIProcess/API/APINavigationAction.h:
Add UserInitiatedAction member and re-implement isProcessingUserGesture in terms of it.
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageUIClient):
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::UIClient::createNewPage):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
Get the API::UserInitiatedAction from the WebProcessProxy (if it exists), and pass
it along to the API::NavigationAction.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::shutDown):
(WebKit::WebProcessProxy::userInitiatedActivity):
(WebKit::WebProcessProxy::didDestroyUserGestureToken):
* UIProcess/WebProcessProxy.h:
Keep a map of active userInitiatedActivity objects.
* UIProcess/WebProcessProxy.messages.in:
Add DidDestroyUserGestureToken message to manager API::UserInitiatedActivity lifetimes.
* WebKit2.xcodeproj/project.pbxproj:
Add new files.
* WebProcess/Notifications/WebNotificationManager.cpp:
(WebKit::WebNotificationManager::didClickNotification):
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::performFrameLoadURLRequest):
(WebKit::PluginView::evaluate):
* WebProcess/WebCoreSupport/WebContextMenuClient.cpp:
(WebKit::WebContextMenuClient::searchWithGoogle):
* WebProcess/cocoa/WebPlaybackSessionManager.mm:
(WebKit::WebPlaybackSessionManager::play):
(WebKit::WebPlaybackSessionManager::pause):
(WebKit::WebPlaybackSessionManager::togglePlayState):
(WebKit::WebPlaybackSessionManager::beginScrubbing):
(WebKit::WebPlaybackSessionManager::endScrubbing):
(WebKit::WebPlaybackSessionManager::seekToTime):
(WebKit::WebPlaybackSessionManager::fastSeek):
(WebKit::WebPlaybackSessionManager::beginScanningForward):
(WebKit::WebPlaybackSessionManager::beginScanningBackward):
(WebKit::WebPlaybackSessionManager::endScanning):
(WebKit::WebPlaybackSessionManager::selectAudioMediaOption):
(WebKit::WebPlaybackSessionManager::selectLegibleMediaOption):
Update for new UserGestureIndicator interface.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createWindow):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
Get an identifier for the UserGestureToken from the WebProcess singleton
to pass to the WebProcess.
* WebProcess/WebProcess.cpp:
(WebKit::nextUserGestureTokenIdentifier):
(WebKit::WebProcess::userGestureTokenIdentifier):
(WebKit::WebProcess::userGestureTokenDestroyed):
* WebProcess/WebProcess.h:
Track UserGestureToken lifetimes utilizing the destructionObserver mechanism
off the tokens to indicate destruction. When destroyed, notify the UIProcess
to avoid leaks.
2016-07-17 Ryosuke Niwa <rniwa@webkit.org>
Rename fastHasAttribute to hasAttributeWithoutSynchronization
https://bugs.webkit.org/show_bug.cgi?id=159864
Reviewed by Chris Dumez.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getAssistedNodeInformation):
2016-07-17 Jeremy Jones <jeremyj@apple.com>
REGRESSION (r191907): Maxthon Browser -After exit full screen video playback the browser window is blank with audio running
https://bugs.webkit.org/show_bug.cgi?id=159731
<rdar://problem/26674003>
Reviewed by Tim Horton.
Primarily written by Jer Noble <jer.noble@apple.com>.
When a view is removed from it's superview, and that superview's constraints property references
the removed superview, those constraints are removed as well. Make sure to save off a copy of
the superview's constraints before swapping in the placeholder view, and reapply those constraints
when swapping the web view back into its original superview.
* UIProcess/mac/WKFullScreenWindowController.h:
* UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController setSavedConstraints:]):
(-[WKFullScreenWindowController savedConstraints]):
(-[WKFullScreenWindowController enterFullScreen:]):
(-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]):
(-[WKFullScreenWindowController finishedExitFullScreenAnimation:]):
2016-07-16 Ryosuke Niwa <rniwa@webkit.org>
Rename fastGetAttribute to attributeWithoutSynchronization
https://bugs.webkit.org/show_bug.cgi?id=159852
Reviewed by Darin Adler.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getPositionInformation):
(WebKit::WebPage::performActionOnElement):
(WebKit::WebPage::getAssistedNodeInformation):
2016-07-15 Timothy Hatcher <timothy@apple.com>
Web Automation: Fix element and event coord space issues
https://bugs.webkit.org/show_bug.cgi?id=159851
rdar://problem/27375780
Reviewed by Brian Burg.
* UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::performMouseInteraction): Subtract topContentInset() before
it goes back out to WebDriver.
* WebProcess/Automation/WebAutomationSessionProxy.cpp:
(WebKit::WebAutomationSessionProxy::computeElementLayout): When using useViewportCoordinates,
subtract topContentInset() so it matches expectations.
2016-07-15 Beth Dakin <bdakin@apple.com>
Mac UI process needs to know about element focus and blur, much like iOS
https://bugs.webkit.org/show_bug.cgi?id=159843
-and corresponding-
rdar://problem/27229504
Reviewed by Tim Horton.
This patch makes the existing iOS machinery to handle focus and blurring of
elements cross-platform. Instead of using the existing iOS messages for
startAssistingNode/stopAssistingNode, this patch adds a new message that
require only a boolean parameter: setEditableElementIsFocused.
Now that more of this code is shared, this patch teases
m_hasFocusedDueToUserInteraction out into two variables. I realized that it
was being used to mean two slightly different things on Mac and iOS, which
was very confusing. Now we have m_isAssistingNodeDueToUserInteraction to
represent the way iOS was using the variable, and we have
m_hasEverFocusedElementDueToUserInteractionSincePageTransition to represent
how Mac was using the variable. There should not be any behavior changes with
this re-name, just added clarity.
WebViewImpl has a new member variable m_editableElementIsFocused.
* UIProcess/Cocoa/WebViewImpl.h:
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::setEditableElementIsFocused):
Pipe the new setEditableElementIsFocused message to WebViewImpl.
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setEditableElementIsFocused):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::setEditableElementIsFocused):
elementDidFocus() and elementDidBlur() are now PLATFORM(COCOA) instead of
PLATFORM(IOS)
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::elementDidFocus):
(WebKit::WebChromeClient::elementDidBlur):
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:
(WebKit::WebChromeClient::elementDidFocus): Deleted.
(WebKit::WebChromeClient::elementDidBlur): Deleted.
m_hasPendingBlurNotification is no longer iOS-only.
* WebProcess/WebPage/WebPage.cpp:
Use our two new bools m_isAssistingNodeDueToUserInteraction and
m_hasEverFocusedElementDueToUserInteractionSincePageTransition
(WebKit::WebPage::didStartPageTransition):
(WebKit::WebPage::didChangeSelection):
These functions are all newly cross-platform. The Messages they send are
still platform-specific, but otherwise the logic is the same. We
dispatch_async the blur messages so that the UI process features won’t be
flashy when the user is tapping, tabbing, or clicking through form fields.
(WebKit::WebPage::resetAssistedNodeForFrame):
(WebKit::WebPage::elementDidFocus):
(WebKit::WebPage::elementDidBlur):
resetAssistedNodeForFrame() is no longer iOS-only.
(WebKit::WebPage::didCommitLoad):
Move variables and functions around so that they are defined for the right
platform, and declare the two new bools in place of the old one.
* WebProcess/WebPage/WebPage.h:
These functions are now defined in WebPage.cpp
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::resetAssistedNodeForFrame): Deleted.
(WebKit::WebPage::elementDidFocus): Deleted.
(WebKit::WebPage::elementDidBlur): Deleted.
2016-07-15 Geoffrey Garen <ggaren@apple.com>
Added a makeRef<T> helper
https://bugs.webkit.org/show_bug.cgi?id=159835
Reviewed by Andreas Kling.
Anders told me to!
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFiles):
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::tryStoreAsCacheEntry):
* Platform/IPC/Connection.cpp:
(IPC::Connection::addWorkQueueMessageReceiver):
(IPC::Connection::removeWorkQueueMessageReceiver):
(IPC::Connection::invalidate):
(IPC::Connection::sendMessage):
(IPC::Connection::processIncomingMessage):
(IPC::Connection::postConnectionDidCloseOnConnectionWorkQueue):
(IPC::Connection::connectionDidClose):
(IPC::Connection::enqueueIncomingMessage):
* Platform/IPC/mac/ConnectionMac.mm:
(IPC::Connection::receiveSourceEventHandler):
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::setNativeSurfaceHandleForCompositing):
(WebKit::ThreadedCompositor::setDeviceScaleFactor):
(WebKit::ThreadedCompositor::didChangeViewportSize):
(WebKit::ThreadedCompositor::didChangeViewportAttribute):
(WebKit::ThreadedCompositor::didChangeContentsSize):
(WebKit::ThreadedCompositor::scrollTo):
(WebKit::ThreadedCompositor::scrollBy):
(WebKit::ThreadedCompositor::didChangeVisibleRect):
* UIProcess/API/APIUserContentExtensionStore.cpp:
(API::UserContentExtensionStore::lookupContentExtension):
(API::UserContentExtensionStore::compileContentExtension):
(API::UserContentExtensionStore::removeContentExtension):
* UIProcess/Launcher/ProcessLauncher.cpp:
(WebKit::ProcessLauncher::ProcessLauncher):
* UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
(WebKit::LocalStorageDatabaseTracker::LocalStorageDatabaseTracker):
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::createSessionStorageNamespace):
(WebKit::StorageManager::destroySessionStorageNamespace):
(WebKit::StorageManager::setAllowedSessionStorageNamespaceConnection):
(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):
* UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::readDataFromDiskIfNeeded):
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::fetchData):
* WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
(WebKit::NetscapePlugin::pluginThreadAsyncCall):
* WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::wheelEvent):
(WebKit::EventDispatcher::gestureEvent):
(WebKit::EventDispatcher::touchEvent):
* WebProcess/WebPage/ViewUpdateDispatcher.cpp:
(WebKit::ViewUpdateDispatcher::visibleContentRectUpdate):
2016-07-15 Chris Dumez <cdumez@apple.com>
Use fastGetAttribute() / setAttributeWithoutSynchronization() when possible
https://bugs.webkit.org/show_bug.cgi?id=159793
Reviewed by Ryosuke Niwa.
Use fastGetAttribute() / setAttributeWithoutSynchronization() when possible, for performance.
* WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm:
(WebKit::PDFPlugin::PDFPlugin):
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::createPasswordEntryForm):
* WebProcess/Plugins/PDF/PDFPluginAnnotation.mm:
(WebKit::PDFPluginAnnotation::attach):
* WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm:
(WebKit::PDFPluginChoiceAnnotation::createAnnotationElement):
2016-07-15 Ryosuke Niwa <rniwa@webkit.org>
Disable custom elements in Safari Tech Preview
https://bugs.webkit.org/show_bug.cgi?id=159829
Reviewed by Chris Dumez.
Disable custom elements API in Safari Technology Preview. Our implementation is so out of sync
with the latest spec that it's actively harmful to have this feature enabled.
* Shared/WebPreferencesDefinitions.h:
2016-07-15 Jer Noble <jer.noble@apple.com>
Full screen ePub embedded video is playing on 1/4 screen, cut off
https://bugs.webkit.org/show_bug.cgi?id=159737
<rdar://problem/26259404>
Reviewed by Tim Horton.
Set the fixedLayoutSize to CGSizeZero when disabling fixed layout due to the
WebView not supporting arbitrary layout modes, and reset to the saved value
when the view does begin supporting arbitrary layout modes.
* UIProcess/Cocoa/WebViewImpl.h:
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::setFixedLayoutSize):
(WebKit::WebViewImpl::updateSupportsArbitraryLayoutModes):
2016-07-14 Ryan Haddad <ryanhaddad@apple.com>
Unreviewed, rolling out r203248.
This change causes LayoutTests to crash and exit early
Reverted changeset:
"Use more Refs with WorkQueues"
https://bugs.webkit.org/show_bug.cgi?id=159792
http://trac.webkit.org/changeset/203248
2016-07-14 Chris Dumez <cdumez@apple.com>
Use emptyString() instead of "" when possible
https://bugs.webkit.org/show_bug.cgi?id=159789
Reviewed by Alex Christensen.
Use emptyString() instead of "" when possible to reduce String allocations.
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::pasteboardChangedOwner):
* WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
(WebKit::parseRFC822HeaderFields):
(WebKit::NPN_Status):
2016-07-14 Alex Christensen <achristensen@webkit.org>
Use more Refs with WorkQueues
https://bugs.webkit.org/show_bug.cgi?id=159792
Reviewed by Brady Eidson.
* NetworkProcess/CustomProtocols/CustomProtocolManager.h:
* Platform/IPC/Connection.cpp:
(IPC::Connection::setShouldExitOnSyncMessageSendFailure):
(IPC::Connection::addWorkQueueMessageReceiver):
* Platform/IPC/Connection.h:
* Shared/mac/SecItemShim.cpp:
(WebKit::SecItemShim::initializeConnection):
* UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
(WebKit::LocalStorageDatabaseTracker::create):
(WebKit::LocalStorageDatabaseTracker::LocalStorageDatabaseTracker):
* UIProcess/Storage/LocalStorageDatabaseTracker.h:
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::StorageArea::openDatabaseAndImportItemsIfNeeded):
(WebKit::StorageManager::StorageManager):
* UIProcess/Storage/StorageManager.h:
* UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::processWillOpenConnection):
(WebKit::WebResourceLoadStatisticsStore::processDidCloseConnection):
* UIProcess/mac/SecItemShimProxy.cpp:
(WebKit::SecItemShimProxy::initializeConnection):
(WebKit::SecItemShimProxy::secItemRequest):
* WebProcess/Plugins/PluginProcessConnectionManager.cpp:
(WebKit::PluginProcessConnectionManager::initializeConnection):
(WebKit::PluginProcessConnectionManager::getPluginProcessConnection):
* WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::initializeConnection):
(WebKit::EventDispatcher::wheelEvent):
* WebProcess/WebPage/ViewUpdateDispatcher.cpp:
(WebKit::ViewUpdateDispatcher::initializeConnection):
(WebKit::ViewUpdateDispatcher::visibleContentRectUpdate):
2016-07-14 Timothy Hatcher <timothy@apple.com>
Web Automation: FrameNotFound errors happen a lot for the main frame
https://bugs.webkit.org/show_bug.cgi?id=159777
rdar://problem/27224628
Send both pageID and frameID, and have the WebProcess side resolve the
mainFrame from 0 based on the known pageID. This avoids a race waiting
for the DidCreateMainFrame message.
Reviewed by Brian Burg.
* UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::webFrameIDForHandle):
(WebKit::WebAutomationSession::switchToBrowsingContext):
(WebKit::WebAutomationSession::evaluateJavaScriptFunction):
(WebKit::WebAutomationSession::resolveChildFrameHandle):
(WebKit::WebAutomationSession::resolveParentFrameHandle):
(WebKit::WebAutomationSession::computeElementLayout):
(WebKit::WebAutomationSession::getAllCookies):
(WebKit::WebAutomationSession::deleteSingleCookie):
(WebKit::WebAutomationSession::webFrameProxyForHandle): Deleted.
(WebKit::WebAutomationSession::webFrameIDForHandle): Added.
* UIProcess/Automation/WebAutomationSession.h:
* WebProcess/Automation/WebAutomationSessionProxy.cpp:
(WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction):
(WebKit::WebAutomationSessionProxy::resolveChildFrameWithOrdinal):
(WebKit::WebAutomationSessionProxy::resolveChildFrameWithNodeHandle):
(WebKit::WebAutomationSessionProxy::resolveChildFrameWithName):
(WebKit::WebAutomationSessionProxy::resolveParentFrame):
(WebKit::WebAutomationSessionProxy::focusFrame):
(WebKit::WebAutomationSessionProxy::computeElementLayout):
(WebKit::WebAutomationSessionProxy::takeScreenshot):
(WebKit::WebAutomationSessionProxy::getCookiesForFrame):
(WebKit::WebAutomationSessionProxy::deleteCookie):
* WebProcess/Automation/WebAutomationSessionProxy.h:
* WebProcess/Automation/WebAutomationSessionProxy.messages.in:
2016-07-14 Alex Christensen <achristensen@webkit.org>
Use SocketProvider to create SocketStreamHandles
https://bugs.webkit.org/show_bug.cgi?id=159774
Reviewed by Brady Eidson.
* WebProcess/Network/WebSocketProvider.cpp:
(WebKit::WebSocketProvider::createSocketStreamHandle):
(WebKit::WebSocketProvider::createWebSocketChannel): Deleted.
* WebProcess/Network/WebSocketProvider.h:
2016-07-14 Chris Dumez <cdumez@apple.com>
[WK2][iOS] Potential null dereference under ViewGestureController::beginSwipeGesture()
https://bugs.webkit.org/show_bug.cgi?id=159776
<rdar://problem/22467100>
Reviewed by Tim Horton.
Potential null dereference under ViewGestureController::beginSwipeGesture() of:
m_webPageProxy.backForwardList().currentItem()
The client side is expected to call ViewGestureController::canSwipeInDirection() but
this only guarantees that the m_alternateBackForwardListSourceView's currentItem is
non-null when m_alternateBackForwardListSourceView is non-null. It does not guarantee
that m_webPageProxy's currentItem is non-null.
* UIProcess/ios/ViewGestureControllerIOS.mm:
(WebKit::ViewGestureController::beginSwipeGesture):
2016-07-14 Csaba Osztrogonác <ossy@webkit.org>
Fix the !ENABLE(WEB_SOCKETS) build after r202930
https://bugs.webkit.org/show_bug.cgi?id=159768
Reviewed by Alex Christensen.
* WebProcess/Network/WebSocketProvider.h:
2016-07-14 Chris Dumez <cdumez@apple.com>
Possible crash under NavigationState::NavigationClient::processDidCrash()
https://bugs.webkit.org/show_bug.cgi?id=159773
<rdar://problem/19814215>
Reviewed by Anders Carlsson.
Add a m_navigationState.m_navigationDelegateMethods.webViewWebProcessDidCrash before
trying to call it to avoid crashing if the client does not implement it.
At the beginning of the method, we abort early only if both webViewWebContentProcessDidTerminate
and webViewWebProcessDidCrash are implemented. However, if webViewWebContentProcessDidTerminate
implemented but not webViewWebProcessDidCrash we can end up crashing as we fail to check later
on before trying to call it.
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::NavigationClient::processDidCrash):
2016-07-14 Csaba Osztrogonác <ossy@webkit.org>
Fix the DatabaseProcess build with disabled IDB
https://bugs.webkit.org/show_bug.cgi?id=159769
Reviewed by Alex Christensen.
* WebProcess/Databases/WebToDatabaseProcessConnection.cpp:
(WebKit::WebToDatabaseProcessConnection::didClose):
2016-07-14 Hyunjun Ko <zzoon@igalia.com>
[ThreadedCompositor] Build fails in debug mode after r202040
https://bugs.webkit.org/show_bug.cgi?id=159757
Reviewed by Michael Catanzaro.
Debug mode build failed due to call getter method, which is
removed, in ASSERT().
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::glContext): Deleted.
(WebKit::ThreadedCompositor::didChangeVisibleRect): Deleted.
(WebKit::ThreadedCompositor::renderLayerTree): Deleted.
2016-07-13 Alex Christensen <achristensen@webkit.org>
Modernize WebSocket handle
https://bugs.webkit.org/show_bug.cgi?id=159750
Reviewed by Brady Eidson.
* UIProcess/InspectorServer/soup/WebSocketServerSoup.cpp:
(WebKit::connectionCallback):
2016-07-13 Carlos Garcia Campos <cgarcia@igalia.com>
REGRESSION(r202273): [GTK] Redirected X window is resized to the previous size on size allocate
https://bugs.webkit.org/show_bug.cgi?id=159551
Reviewed by Michael Catanzaro.
In r202273 I added webkitWebViewBaseResizeRedirectedWindow() helper to remove duplicated code in all places
where we were resizing the redirected window to the current drawing area size. But on size allocate, we were
updating the redirected window first, and then the drawing area, to ensure that when the drawing area notifies
the web process the redirected window is already at the new size. This regression doesn't have any visual
effect, because we are ensure the right size always before rendering, but there's a small extra resize in this case.
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseSizeAllocate): Resize the redirected window before updating the drawing area size.
2016-07-13 Chris Dumez <cdumez@apple.com>
[WK2] Use more references for connections
https://bugs.webkit.org/show_bug.cgi?id=159739
Reviewed by Alex Christensen.
Use more references for connections to make it more obvious they cannot
be null.
* DatabaseProcess/DatabaseToWebProcessConnection.cpp:
(WebKit::DatabaseToWebProcessConnection::DatabaseToWebProcessConnection):
* DatabaseProcess/DatabaseToWebProcessConnection.h:
(WebKit::DatabaseToWebProcessConnection::connection):
* DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:
(WebKit::WebIDBConnectionToClient::messageSenderConnection):
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess):
(WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFiles):
* NetworkProcess/NetworkConnectionToWebProcess.h:
(WebKit::NetworkConnectionToWebProcess::connection):
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::messageSenderConnection):
* Shared/mac/CookieStorageShim.mm:
(WebKit::webKitCookieStorageCopyRequestHeaderFieldsForURL):
* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:
(WebKit::WebIDBConnectionToServer::messageSenderConnection):
(WebKit::preregisterSandboxExtensionsIfNecessary):
* WebProcess/Databases/WebToDatabaseProcessConnection.cpp:
(WebKit::WebToDatabaseProcessConnection::WebToDatabaseProcessConnection):
* WebProcess/Databases/WebToDatabaseProcessConnection.h:
(WebKit::WebToDatabaseProcessConnection::connection):
* WebProcess/FileAPI/BlobRegistryProxy.cpp:
(WebKit::BlobRegistryProxy::registerFileBlobURL):
(WebKit::BlobRegistryProxy::registerBlobURL):
(WebKit::BlobRegistryProxy::registerBlobURLOptionallyFileBacked):
(WebKit::BlobRegistryProxy::unregisterBlobURL):
(WebKit::BlobRegistryProxy::registerBlobURLForSlice):
(WebKit::BlobRegistryProxy::blobSize):
(WebKit::BlobRegistryProxy::writeBlobsToTemporaryFiles):
* WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::NetworkProcessConnection):
(WebKit::NetworkProcessConnection::writeBlobsToTemporaryFiles):
* WebProcess/Network/NetworkProcessConnection.h:
(WebKit::NetworkProcessConnection::connection):
* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::scheduleLoad):
(WebKit::WebLoaderStrategy::remove):
(WebKit::WebLoaderStrategy::setDefersLoading):
(WebKit::WebLoaderStrategy::loadResourceSynchronously):
(WebKit::WebLoaderStrategy::createPingHandle):
* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::messageSenderConnection):
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::cookiesForDOM):
(WebKit::WebPlatformStrategies::setCookiesFromDOM):
(WebKit::WebPlatformStrategies::cookiesEnabled):
(WebKit::WebPlatformStrategies::cookieRequestHeaderFieldValue):
(WebKit::WebPlatformStrategies::getRawCookies):
(WebKit::WebPlatformStrategies::deleteCookie):
(WebKit::WebPlatformStrategies::addCookie):
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::startDownload):
(WebKit::WebFrame::convertMainResourceLoadToDownload):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::ensureLegacyPrivateBrowsingSessionInNetworkProcess):
(WebKit::WebProcess::networkConnection):
(WebKit::WebProcess::prefetchDNS):
* WebProcess/WebProcess.h:
2016-07-13 Anders Carlsson <andersca@apple.com>
Move WKPreferencesRef functions to the correct file
https://bugs.webkit.org/show_bug.cgi?id=159741
Reviewed by Sam Weinig.
Also, get rid of WKPreferencesGetPaymentsEnabled and WKPreferencesSetPaymentsEnabled.
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesGetApplePayEnabled):
(WKPreferencesSetApplePayEnabled):
(WKPreferencesGetApplePayCapabilityDisclosureAllowed):
(WKPreferencesSetApplePayCapabilityDisclosureAllowed):
* UIProcess/API/C/WKPreferencesRef.h:
* UIProcess/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm:
(WKPreferencesGetApplePayEnabled): Deleted.
(WKPreferencesSetApplePayEnabled): Deleted.
(WKPreferencesGetApplePayCapabilityDisclosureAllowed): Deleted.
(WKPreferencesSetApplePayCapabilityDisclosureAllowed): Deleted.
(WKPreferencesGetPaymentsEnabled): Deleted.
(WKPreferencesSetPaymentsEnabled): Deleted.
2016-07-13 Anders Carlsson <andersca@apple.com>
Add _applePayCapabilityDisclosureAllowed SPI declaration
https://bugs.webkit.org/show_bug.cgi?id=159740
Reviewed by Dan Bernstein.
Also, delete an old method that is no longer used.
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration _paymentsEnabled]): Deleted.
(-[WKWebViewConfiguration _setPaymentsEnabled:]): Deleted.
2016-07-13 Zalan Bujtas <zalan@apple.com>
Blank news article on kottke.org
https://bugs.webkit.org/show_bug.cgi?id=159733
<rdar://problem/26743065>
Reviewed by Simon Fraser.
This patch ensures that we update the visible content rect, when Auto Layout moves the WKWebView around.
We normally expect setFrameRect to be called to position WKWebView. However Auto Layout relies on layoutSubviews,
and in order to always have up-to-date visible content rect, we need to override layoutSubviews in WKWebView.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView layoutSubviews]):
2016-07-13 Chris Dumez <cdumez@apple.com>
WebKit2 shouldn't signal custom protocol clients from the NSURLConnection loader thread.
https://bugs.webkit.org/show_bug.cgi?id=159725
<rdar://problem/27323131>
Reviewed by Andy Estes.
WebKit2 shouldn't signal custom protocol clients from the NSURLConnection
loader thread. Instead, use the RunLoop the WKCustomProtocol was initialized
on.
* NetworkProcess/CustomProtocols/Cocoa/CustomProtocolManagerCocoa.mm:
(-[WKCustomProtocol initWithRequest:cachedResponse:client:]):
(WebKit::dispatchOnInitializationRunLoop):
(WebKit::CustomProtocolManager::didFailWithError):
(WebKit::CustomProtocolManager::didLoadData):
(WebKit::CustomProtocolManager::didReceiveResponse):
(WebKit::CustomProtocolManager::didFinishLoading):
(WebKit::CustomProtocolManager::wasRedirectedToRequest):
(WebKit::dispatchOnResourceLoaderRunLoop): Deleted.
2016-07-13 Enrica Casucci <enrica@apple.com>
Update supported platforms in xcconfig files to match the sdk names.
https://bugs.webkit.org/show_bug.cgi?id=159728
Reviewed by Tim Horton.
* Configurations/Base.xcconfig:
2016-07-13 Carlos Garcia Campos <cgarcia@igalia.com>
[Coordinated Graphics] Remove toCoordinatedGraphicsLayer and use downcast instead
https://bugs.webkit.org/show_bug.cgi?id=159469
Reviewed by Michael Catanzaro.
* WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:
(WebKit::CompositingCoordinator::flushPendingLayerChanges):
(WebKit::CompositingCoordinator::initializeRootCompositingLayerIfNeeded):
(WebKit::CompositingCoordinator::mainContentsLayer):
2016-07-13 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] WebKitGtk+ uses too many file descriptors
https://bugs.webkit.org/show_bug.cgi?id=152316
Reviewed by Michael Catanzaro.
The problem is that we are keeping file descriptors open in SharedMemory objects. Those objects can be kept
alive for a long time, for example in case of cached resources sent from the network process as shareable
resources. The thing is that we keep the file descriptor in the SharedMemory object only to be able to create a
Handle, duplicating the file descriptor. However, we are also assuming that we create handles for SharedMemory
objects created by another handle which is wrong. SharedMemory objects are created to map a file or data and
then a handle is created to send it to another process, or to map an existing file or data for a given handle
received from another process. They can also be created to wrap another map, but in that case we don't own the
file descritor nor the mapped data. So, after mapping from a handle, we no longer need the file descriptor, and
it can be closed to release it, while the mapped memory data will still be alive until munmap() is called. This
drastically reduces the amount of file descriptors used by WebKitGTK+.
* Platform/IPC/unix/ConnectionUnix.cpp:
(IPC::readBytesFromSocket): Use setCloseOnExec().
(IPC::Connection::createPlatformConnection): Ditto.
* Platform/SharedMemory.h:
* Platform/unix/SharedMemoryUnix.cpp:
(WebKit::SharedMemory::map): Close the file descriptor right after mmap.
(WebKit::SharedMemory::~SharedMemory): Close the file descriptor only if it hasn't been closed yet.
(WebKit::SharedMemory::createHandle): Add an ASSERT to ensure we only try to create a handle for SharedMemory
objects having a valid file descriptor. Use dupCloseOnExec() to duplicate the handle and set the close on exec flag.
* UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
(WebKit::ProcessLauncher::launchProcess): Use setCloseOnExec().
2016-07-12 Simon Fraser <simon.fraser@apple.com>
[iOS WK2] After zooming and when under memory pressure, page tiles sometimes don't redraw while panning
https://bugs.webkit.org/show_bug.cgi?id=159697
rdar://problem/26314075
Reviewed by Benjamin Poulain.
When under memory pressure, and after pinching back to minimum scale, WebPage::updateVisibleContentRects()
would sometimes always bail under the "boundedScale != currentScale..." condition.
This happened because the visibleContentRectUpdateInfo.scale() is a double, but m_page->pageScaleFactor()
is a float, and the constraining between min and max scale (which are doubles) caused boundedScale
to be always different from currentScale.
Fix by using floats throughout.
No test because there's no way to simulate memory pressure for testing.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::updateVisibleContentRects):
2016-07-12 Chris Dumez <cdumez@apple.com>
[WK2][NetworkSession] Fix unsafe RunLoop::dispatch() in NetworkLoad constructor
https://bugs.webkit.org/show_bug.cgi?id=159691
Reviewed by Brady Eidson.
Remove unsafe RunLoop::dispatch() in NetworkLoad constructor. It captured |this| but there
was no guarantee the NetworkLoad would still be alive by the time the lambda gets executed.
Instead, the constructor now takes a NetworkSession& parameter so that the call sites
have to retrieve the NetworkSession for a given SessionID and deal with the fact that
there may be no such NetworkSession before constructing the NetworkLoad.
* NetworkProcess/Downloads/DownloadManager.cpp:
(WebKit::DownloadManager::startDownload):
* NetworkProcess/Downloads/PendingDownload.cpp:
(WebKit::PendingDownload::PendingDownload):
* NetworkProcess/Downloads/PendingDownload.h:
* NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::NetworkLoad):
* NetworkProcess/NetworkLoad.h:
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::startNetworkLoad):
* NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:
(WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad):
2016-07-12 Chris Dumez <cdumez@apple.com>
[WK2] Protect against bad database data in LocalStorageDatabase::importItems()
https://bugs.webkit.org/show_bug.cgi?id=159663
<rdar://problem/18995873>
Reviewed by Benjamin Poulain.
Protect against bad database data in LocalStorageDatabase::importItems(). We
crash if the database contains a null key or a null value so protect against
it given that we have evidence it can happen.
With this change, I can no longer reproduce the UIProcess crash on evernote.com
that is documented at <rdar://problem/18995873>.
* UIProcess/Storage/LocalStorageDatabase.cpp:
(WebKit::LocalStorageDatabase::importItems):
2016-07-12 Gyuyoung Kim <gyuyoung.kim@webkit.org>
Remove ENABLE_CSS3_TEXT_LINE_BREAK flag
https://bugs.webkit.org/show_bug.cgi?id=159671
Reviewed by Csaba Osztrogonác.
ENABLE_CSS3_TEXT_LINE_BREAK feature was implemented without guards.
https://bugs.webkit.org/show_bug.cgi?id=89235
So this guard can be removed in build scripts.
* Configurations/FeatureDefines.xcconfig:
2016-07-11 Gyuyoung Kim <gyuyoung.kim@webkit.org>
Purge PassRefPtr in platform/efl and platform/mac
https://bugs.webkit.org/show_bug.cgi?id=159548
Reviewed by Alex Christensen.
Remove all use of PassRefPtr and clean up unnecessary tabs and spaces.
WebKit2 codes are also changed because of setBufferForType()'s modification.
* UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:
(WebKit::WebPasteboardProxy::setPasteboardBufferForType):
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::setBufferForType):
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:
2016-07-11 Chris Dumez <cdumez@apple.com>
[WK2][iOS] Intermittent crash in [UIApplication beginBackgroundTaskWithName] expiration handler
https://bugs.webkit.org/show_bug.cgi?id=159648
<rdar://problem/27219361>
Reviewed by Anders Carlsson.
We see an intermittent crash in [UIApplication beginBackgroundTaskWithName] expiration handler.
From the traces, we noticed the expiration handler can get called on a non-main thread under
certain conditions, which our code is designed to deal with.
In particular, we get called on a non-main thread when UIKit fails to acquire the assertion.
Update our expiration handler to always notify the clients on the main thread.
* UIProcess/ios/ProcessAssertionIOS.mm:
(-[WKProcessAssertionBackgroundTaskManager _updateBackgroundTask]):
2016-07-11 Dan Bernstein <mitz@apple.com>
Tried to fix the macOS build.
* UIProcess/API/Cocoa/WKNavigationAction.mm:
(-[WKNavigationAction description]):
2016-07-11 Dan Bernstein <mitz@apple.com>
Cleaned up API availability.
Requested by Tim Horton.
* UIProcess/API/Cocoa/WKNavigationAction.mm:
* UIProcess/API/Cocoa/WKNavigationActionPrivate.h:
2016-07-11 Enrica Casucci <enrica@apple.com>
Add synthetic click origin to WKNavigationAction.
https://bugs.webkit.org/show_bug.cgi?id=159584
rdar://problem/25610422
Reviewed by Tim Horton.
Adds a private property to WKNavigationAction to retrieve
the origin of the synthetic click.
* Shared/NavigationActionData.cpp:
(WebKit::NavigationActionData::encode):
(WebKit::NavigationActionData::decode):
* Shared/NavigationActionData.h:
* Shared/WebEvent.h:
(WebKit::WebMouseEvent::button):
(WebKit::WebMouseEvent::menuTypeForEvent):
(WebKit::WebMouseEvent::force):
(WebKit::WebMouseEvent::syntheticClickType):
* Shared/WebMouseEvent.cpp:
(WebKit::WebMouseEvent::WebMouseEvent):
(WebKit::WebMouseEvent::encode):
(WebKit::WebMouseEvent::decode):
* Shared/mac/WebEventFactory.mm:
(WebKit::WebEventFactory::createWebMouseEvent):
(WebKit::WebEventFactory::createWebWheelEvent):
* UIProcess/API/APINavigationAction.h:
* UIProcess/API/Cocoa/WKNavigationAction.mm:
(toWKNavigationType):
(toWKSyntheticClickType):
(-[WKNavigationAction description]):
(-[WKNavigationAction sourceFrame]):
(-[WKNavigationAction request]):
(-[WKNavigationAction _syntheticClickType]):
(-[WKNavigationAction modifierFlags]):
* UIProcess/API/Cocoa/WKNavigationActionPrivate.h:
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _twoFingerSingleTapGestureRecognized:]):
(-[WKContentView _longPressRecognized:]):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::getSelectionContext):
(WebKit::WebPageProxy::handleTwoFingerTapAtPoint):
(WebKit::WebPageProxy::selectWithTwoTouches):
* WebProcess/InjectedBundle/InjectedBundleNavigationAction.cpp:
(WebKit::mouseButtonForMouseEvent):
(WebKit::syntheticClickTypeForMouseEvent):
(WebKit::InjectedBundleNavigationAction::modifiersForNavigationAction):
(WebKit::InjectedBundleNavigationAction::mouseButtonForNavigationAction):
(WebKit::InjectedBundleNavigationAction::syntheticClickTypeForNavigationAction):
(WebKit::InjectedBundleNavigationAction::create):
(WebKit::InjectedBundleNavigationAction::InjectedBundleNavigationAction):
* WebProcess/InjectedBundle/InjectedBundleNavigationAction.h:
(WebKit::InjectedBundleNavigationAction::navigationType):
(WebKit::InjectedBundleNavigationAction::modifiers):
(WebKit::InjectedBundleNavigationAction::mouseButton):
(WebKit::InjectedBundleNavigationAction::hitTestResult):
(WebKit::InjectedBundleNavigationAction::formElement):
(WebKit::InjectedBundleNavigationAction::syntheticClickType):
(WebKit::InjectedBundleNavigationAction::shouldOpenExternalURLs):
(WebKit::InjectedBundleNavigationAction::shouldTryAppLinks):
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createWindow):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::navigateToPDFLinkWithSimulatedClick):
(WebKit::WebPage::contextMenuAtPointInWindow):
(WebKit::WebPage::dragEnded):
(WebKit::WebPage::simulateMouseDown):
(WebKit::WebPage::simulateMouseUp):
(WebKit::WebPage::simulateMouseMotion):
(WebKit::WebPage::setCompositionForTesting):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::handleSyntheticClick):
(WebKit::WebPage::completePendingSyntheticClickForContentChangeObserver):
(WebKit::WebPage::completeSyntheticClick):
(WebKit::WebPage::sendTapHighlightForNodeIfNecessary):
(WebKit::WebPage::handleTwoFingerTapAtPoint):
(WebKit::WebPage::potentialTapAtPosition):
(WebKit::WebPage::inspectorNodeSearchMovedToPosition):
2016-07-11 Anders Carlsson <andersca@apple.com>
Able to open multiple payment sheets in Safari at the same time
https://bugs.webkit.org/show_bug.cgi?id=159637
rdar://problem/26411339
Reviewed by Beth Dakin.
* UIProcess/ApplePay/WebPaymentCoordinatorProxy.cpp:
(WebKit::WebPaymentCoordinatorProxy::showPaymentUI):
Add result out parameter. Set the result to false if isShowingPaymentUI is true, otherwise set isShowingPaymentUI to true.
(WebKit::WebPaymentCoordinatorProxy::didReachFinalState):
Set isShowingPaymentUI to false.
* UIProcess/ApplePay/WebPaymentCoordinatorProxy.h:
* UIProcess/ApplePay/WebPaymentCoordinatorProxy.messages.in:
* WebProcess/ApplePay/WebPaymentCoordinator.cpp:
(WebKit::WebPaymentCoordinator::showPaymentUI):
* WebProcess/ApplePay/WebPaymentCoordinator.h:
The showPaymentUI message and client functions now return booleans.
2016-07-11 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r203064.
https://bugs.webkit.org/show_bug.cgi?id=159642
This change causes LayoutTest crashes on WK1 ASan (Requested
by ryanhaddad on #webkit).
Reverted changeset:
"Use refs for ResourceLoaders"
https://bugs.webkit.org/show_bug.cgi?id=159592
http://trac.webkit.org/changeset/203064
2016-07-11 Nan Wang <n_wang@apple.com>
AX: WKWebView should have API to prevent pinch-to-zoom always being allowed
https://bugs.webkit.org/show_bug.cgi?id=158364
Reviewed by Anders Carlsson.
Added a property in WKWebViewConfiguration so that developers can toggle the ignoring
viewport scale limits setting.
Changes are covered in modified tests.
* Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode):
(WebKit::WebPageCreationParameters::decode):
* Shared/WebPageCreationParameters.h:
* UIProcess/API/C/WKPage.cpp:
(WKPageSetResourceCachingDisabled):
(WKPageSetIgnoresViewportScaleLimits):
* UIProcess/API/C/WKPagePrivate.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(shouldAllowPictureInPictureMediaPlayback):
(-[WKWebView _initializeWithConfiguration:]):
(-[WKWebView _navigationGestureDidEnd]):
(forceAlwaysUserScalableChangedCallback): Deleted.
(-[WKWebView _updateForceAlwaysUserScalable]): Deleted.
* UIProcess/API/Cocoa/WKWebViewConfiguration.h:
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration encodeWithCoder:]):
(-[WKWebViewConfiguration initWithCoder:]):
(-[WKWebViewConfiguration copyWithZone:]):
* UIProcess/API/Cocoa/WKWebViewInternal.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::creationParameters):
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::setViewportConfigurationMinimumLayoutSize):
(WebKit::WebPageProxy::setForceAlwaysUserScalable):
(WebKit::WebPageProxy::setMaximumUnobscuredSize):
(WebKit::WebPageProxy::updateForceAlwaysUserScalable): Deleted.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::disableInspectorNodeSearch):
(WebKit::WebPage::setForceAlwaysUserScalable):
(WebKit::innerFrameQuad):
(WebKit::WebPage::updateForceAlwaysUserScalable): Deleted.
2016-07-08 Alex Christensen <achristensen@webkit.org>
Use refs for ResourceLoaders
https://bugs.webkit.org/show_bug.cgi?id=159592
Reviewed by Chris Dumez.
* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::scheduleInternallyFailedLoad):
(WebKit::WebLoaderStrategy::internallyFailedLoadTimerFired):
(WebKit::WebLoaderStrategy::startLocalLoad):
(WebKit::WebLoaderStrategy::remove):
(WebKit::WebLoaderStrategy::setDefersLoading):
(WebKit::WebLoaderStrategy::crossOriginRedirectReceived):
* WebProcess/Network/WebLoaderStrategy.h:
2016-07-11 Antti Koivisto <antti@apple.com>
Update stable cache version in NetworkCache::Storage::deleteOldVersions()
https://bugs.webkit.org/show_bug.cgi?id=159618
rdar://problem/26715745
Reviewed by Chris Dumez.
NetworkCache::Storage::deleteOldVersions() keeps the previous shipped cache version (4) for Mac around so
development WebKit doesn’t clobber system Safari cache. Update this to the current version so old caches
go away in customer systems.
* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::deleteOldVersions):
* NetworkProcess/cache/NetworkCacheStorage.h:
Move lastStableVersion to header next to the current version.
2016-07-10 Beth Dakin <bdakin@apple.com>
Update mediaIcon.pdf
https://bugs.webkit.org/show_bug.cgi?id=159613
-and corresponding-
rdar://problem/27268111
Reviewed by Sam Weinig.
* Resources/mediaIcon.pdf: Replaced.
2016-07-10 Alex Christensen <achristensen@webkit.org>
Add self to WebKit2 Owners
https://bugs.webkit.org/show_bug.cgi?id=159499
Reviewed by Sam Weinig.
* Owners:
2016-07-10 Alex Christensen <achristensen@webkit.org>
Fix client certificate authentication after r200463
https://bugs.webkit.org/show_bug.cgi?id=159574
<rdar://problem/26931006>
Reviewed by Sam Weinig.
* Shared/Authentication/mac/AuthenticationManager.mac.mm:
(WebKit::leafCertificate):
(WebKit::chain):
Handle the different types of CertificateInfos.
2016-07-08 Yongjun Zhang <yongjun_zhang@apple.com>
When WKWebView prepares the session state blob, we should be able to filter it.
https://bugs.webkit.org/show_bug.cgi?id=159410
Add a SPI to WKWebView so that a client can decide how to filter backforward items
when WKWebView perparing session state.
Reviewed by Brady Eidson.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _sessionStateWithFilter:]): When preparing session state, check each
backforward item against the filter block.
* UIProcess/API/Cocoa/WKWebViewPrivate.h: Add the SPI _sessionStateWithFilter:
2016-07-08 Tim Horton <timothy_horton@apple.com>
Mail messages don't start loading until scrolling completes
https://bugs.webkit.org/show_bug.cgi?id=159585
<rdar://problem/27088405>
Reviewed by Andy Estes.
* UIProcess/Network/CustomProtocols/mac/CustomProtocolManagerProxyMac.mm:
(-[WKCustomProtocolLoader initWithCustomProtocolManagerProxy:customProtocolID:request:connection:]):
When scrolling, NSDefaultRunLoopMode isn't run, but NSRunLoopCommonModes are.
CFNetwork uses NSDefaultRunLoopMode if we tell NSURLConnection to "start immediately",
but we can instead schedule our NSURLConnection into NSRunLoopCommonModes
and start it ourselves, ensuring that it will be able to do work while scrolling is happening.
2016-07-08 Andy Estes <aestes@apple.com>
[Content Filtering] Load blocked pages more like other error pages are loaded
https://bugs.webkit.org/show_bug.cgi?id=159485
<rdar://problem/26014076>
Reviewed by Brady Eidson.
* Shared/API/c/WKErrorRef.h: Defined kWKErrorCodeFrameLoadBlockedByContentFilter.
* UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::platformPathsWithAssumedReadAccess): Added the resource directories
of WebCore.framework and WebKit.framework as paths with assumed read access.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::hasAssumedReadAccessToURL): Checked platformPathsWithAssumedReadAccess()
as well as m_localPathsWithAssumedReadAccess.
(WebKit::WebProcessProxy::platformPathsWithAssumedReadAccess): Added a non-Cocoa implementation.
* UIProcess/WebProcessProxy.h:
* WebProcess/WebCoreSupport/WebErrors.h:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::blockedByContentFilterError): Called WebKit::blockedByContentFilterError().
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
* WebProcess/WebCoreSupport/mac/WebErrorsMac.mm:
(WebKit::blockedByContentFilterError): Returned a ResourceError for kWKErrorCodeFrameLoadBlockedByContentFilter.
2016-07-08 Anders Carlsson <andersca@apple.com>
Fix 32-bit build.
* PluginProcess/mac/PluginProcessShim.mm:
2016-07-07 Anders Carlsson <andersca@apple.com>
REGRESSION (r196321): Adobe Reader DC + Safari : Zoom level pulldown is not displayed at the correct position
https://bugs.webkit.org/show_bug.cgi?id=159531
rdar://problem/26382579
Reviewed by Tim Horton.
There's code in the Adobe Acrobat framework that checks if the main bundle identifier is "com.apple.WebKit.PluginProcess"
and assumes that it's running inside the Adobe Reader app if it's something else. Since we're now using the XPC service
for all plug-ins, the bundle identifier is "com.apple.WebKit.Plugin.64", so the Acrobat framework assumes it's running in the app
and doesn't use any special tricks to show the popup menu.
Work around this by shimming CFStringCompare, and looking for the exact conditions when this can happen and return kCFCompareEqualTo
when all conditions are true.
* PluginProcess/mac/PluginProcessMac.mm:
(WebKit::isAdobeAcrobatAddress):
(WebKit::stringCompare):
(WebKit::initializeShim):
(WebKit::PluginProcess::platformInitializeProcess):
* PluginProcess/mac/PluginProcessShim.h:
* PluginProcess/mac/PluginProcessShim.mm:
(WebKit::shimCFStringCompare):
2016-07-08 Brady Eidson <beidson@apple.com>
Unreviewed: Fix case-sensitive filesystem build.
* UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
2016-07-08 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r202944.
https://bugs.webkit.org/show_bug.cgi?id=159570
caused some tests to crash under GuardMalloc (Requested by
estes on #webkit).
Reverted changeset:
"[Content Filtering] Load blocked pages more like other error
pages are loaded"
https://bugs.webkit.org/show_bug.cgi?id=159485
http://trac.webkit.org/changeset/202944
2016-07-08 Keith Rollin <krollin@apple.com>
Add always-on logging for downloads
https://bugs.webkit.org/show_bug.cgi?id=159521
<rdar://problem/26630645>
Reviewed by Alex Christensen.
Add logging statements that track when a download starts, when it
first receives data, and when the download is done (due to completion,
cancelation, or failure).
* NetworkProcess/Downloads/Download.cpp:
(WebKit::Download::Download):
(WebKit::Download::didReceiveResponse):
(WebKit::Download::didReceiveData):
(WebKit::Download::didFinish):
(WebKit::Download::didFail):
(WebKit::Download::didCancel):
(WebKit::Download::isAlwaysOnLoggingAllowed):
* NetworkProcess/Downloads/Download.h:
(WebKit::Download::Download):
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]):
2016-07-08 Brady Eidson <beidson@apple.com>
Clearing LocalStorage doesn't also delete -wal and -shm files.
<rdar://problem/27206772> and https://bugs.webkit.org/show_bug.cgi?id=159566
Reviewed by Brent Fulgham.
Also helpfully picked over by Andy "Never Forgets" Estes.
* UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
(WebKit::LocalStorageDatabaseTracker::removeDatabaseWithOriginIdentifier):
2016-07-07 Andy Estes <aestes@apple.com>
[Content Filtering] Load blocked pages more like other error pages are loaded
https://bugs.webkit.org/show_bug.cgi?id=159485
<rdar://problem/26014076>
Reviewed by Brady Eidson.
* Shared/API/c/WKErrorRef.h: Defined kWKErrorCodeFrameLoadBlockedByContentFilter.
* UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::platformPathsWithAssumedReadAccess): Added the resource directories
of WebCore.framework and WebKit.framework as paths with assumed read access.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::hasAssumedReadAccessToURL): Checked platformPathsWithAssumedReadAccess()
as well as m_localPathsWithAssumedReadAccess.
(WebKit::WebProcessProxy::platformPathsWithAssumedReadAccess): Added a non-Cocoa implementation.
* UIProcess/WebProcessProxy.h:
* WebProcess/WebCoreSupport/WebErrors.h:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::blockedByContentFilterError): Called WebKit::blockedByContentFilterError().
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
* WebProcess/WebCoreSupport/mac/WebErrorsMac.mm:
(WebKit::blockedByContentFilterError): Returned a ResourceError for kWKErrorCodeFrameLoadBlockedByContentFilter.
2016-07-07 Alex Christensen <achristensen@webkit.org>
Followup to r202939.
https://bugs.webkit.org/show_bug.cgi?id=159526
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didFailLoading):
We need the correct destination id when sending a message.
2016-07-07 Alex Christensen <achristensen@webkit.org>
Fix crash when sending failure message to closed WebProcess
https://bugs.webkit.org/show_bug.cgi?id=159526
<rdar://problem/26767037>
Reviewed by Brady Eidson.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didFailLoading):
Check to see if there is a connection before using it to send a message.
Sometimes it was null.
I think this could be tested if we had real network loading from TestWebKitAPI
by cancelling slow loads and closing WebProcesses around the same time, but no such infrastructure exists yet.
2016-07-07 Alex Christensen <achristensen@webkit.org>
Use SocketProvider to create WebSocketChannels
https://bugs.webkit.org/show_bug.cgi?id=158776
Reviewed by Brent Fulgham.
* CMakeLists.txt:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/Network/WebSocketProvider.cpp: Copied from Source/WebCore/Modules/websockets/ThreadableWebSocketChannel.cpp.
(WebKit::WebSocketProvider::createWebSocketChannel):
(WebCore::ThreadableWebSocketChannel::create): Deleted.
* WebProcess/Network/WebSocketProvider.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::m_shouldDispatchFakeMouseMoveEvents):
2016-07-07 Antoine Quint <graouts@apple.com>
<img> with a wide gamut PDF does not display using a wide gamut color space
https://bugs.webkit.org/show_bug.cgi?id=158983
<rdar://problem/25720247>
Reviewed by Dean Jackson.
ColorSpace parameters have been replaced with CGColorSpaceRef parameters for IOSurface.
* Shared/mac/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::decode):
(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _takeViewSnapshot]):
(-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):
2016-07-07 Anders Carlsson <andersca@apple.com>
Memory corruption destroying PaymentCoordinator
https://bugs.webkit.org/show_bug.cgi?id=159516
rdar://problem/27222517
Reviewed by Tim Horton.
Introduce a new MessageReceiverMap::removeMessageReceiver that takes a MessageReceiver
and removes all traces of it in the message receiver map. Use it in the WebPaymentCoordinator destructor.
* Platform/IPC/MessageReceiverMap.cpp:
(IPC::MessageReceiverMap::removeMessageReceiver):
* Platform/IPC/MessageReceiverMap.h:
* Shared/ChildProcess.cpp:
(WebKit::ChildProcess::removeMessageReceiver):
* Shared/ChildProcess.h:
* WebProcess/ApplePay/WebPaymentCoordinator.cpp:
(WebKit::WebPaymentCoordinator::~WebPaymentCoordinator):
2016-07-07 Csaba Osztrogonác <ossy@webkit.org>
[Mac][cmake] Unreviewed buildfix after r202889. Just for fun.
* PlatformMac.cmake:
2016-07-06 Tim Horton <timothy_horton@apple.com>
Some API tests started failing after r202889
https://bugs.webkit.org/show_bug.cgi?id=159498
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::loadHTMLString):
Fix a typo; this is a MIME type, not an encoding :|
2016-07-06 Tim Horton <timothy_horton@apple.com>
Email from June 1st containing text 'Today @ 7:10PM' is linkified, but shouldn't be
https://bugs.webkit.org/show_bug.cgi?id=159498
<rdar://problem/26719903>
Reviewed by Sam Weinig.
* Shared/Cocoa/LoadParametersCocoa.mm: Added.
(WebKit::LoadParameters::platformEncode):
(WebKit::LoadParameters::platformDecode):
* Shared/LoadParameters.cpp: Added.
(WebKit::LoadParameters::encode):
(WebKit::LoadParameters::decode):
* Shared/LoadParameters.h: Added.
Add a struct that knows how to encode all of the different parameters
to all of the Load* messages, including the platform-specific DataDetectors parameters.
* Shared/mac/ArgumentCodersMac.h:
* Shared/mac/ArgumentCodersMac.mm:
(IPC::typeFromObject):
(IPC::encode):
(IPC::decode):
Add NSURL coders that defer to the CFURL coders.
* UIProcess/API/APIUIClient.h:
(API::UIClient::dataDetectionContext):
* UIProcess/Cocoa/UIDelegate.h:
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::dataDetectionContext):
Add APIUIClient methods to retrieve the DataDetectors context dictionary.
* UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::addPlatformLoadParameters):
Add the DataDetectors context dictionary to the given LoadParameters.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dataDetectionContext):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::dataDetectionContext):
Store the dataDetectionContext on WebPage, and make it accessible to WebCore
via the FrameLoaderClient (it is used in FrameLoader when the load completes).
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::loadRequest):
(WebKit::WebPageProxy::loadFile):
(WebKit::WebPageProxy::loadData):
(WebKit::WebPageProxy::loadHTMLString):
(WebKit::WebPageProxy::loadAlternateHTMLString):
(WebKit::WebPageProxy::loadPlainTextString):
(WebKit::WebPageProxy::loadWebArchiveData):
* UIProcess/WebPageProxy.h:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::loadRequest):
(WebKit::WebPage::loadStringImpl):
(WebKit::WebPage::loadData):
(WebKit::WebPage::loadString):
(WebKit::WebPage::loadAlternateHTMLString):
(WebKit::WebPage::loadHTMLString): Deleted.
(WebKit::WebPage::loadPlainTextString): Deleted.
(WebKit::WebPage::loadWebArchiveData): Deleted.
* WebProcess/WebPage/WebPage.messages.in:
Adopt LoadParameters, taking this opportunity to reduce the number of very similar messages.
We can take this further (we should be able to get it down to just LoadRequest
and LoadData) in the future. When any load occurs, grab the client's DataDetectorse
context dictionary and send it along with the load request, storing it in WebPage.
2016-07-06 Chris Dumez <cdumez@apple.com>
[WK2][Cocoa] Disable ResourceResponse lazy initialization
https://bugs.webkit.org/show_bug.cgi?id=159497
<rdar://problem/27209066>
Reviewed by Alex Christensen.
Disable ResourceResponse lazy initialization for WebKit2 as
we always end up initializing all the fields anyway when
sending the response to the WebContent process via IPC.
Even worse, we always do a partial lazy initialization (common
fields only) before the IPC so we always do the initialization
in 2 steps. This normally would not be an issue but the 2 steps
actually have some overlap because both call
CFHTTPMessageCopyAllHeaderFields(), which is expensive (See
<rdar://problem/26796059>) to first get the common HTTP headers,
then ALL the HTTP headers.
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
2016-07-06 Chelsea Pugh <cpugh@apple.com>
[iOS] Text suggestions should be cleared when form input session is invalidated
https://bugs.webkit.org/show_bug.cgi?id=159477
Reviewed by Dan Bernstein.
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKFormInputSession invalidate]): Set input delegate's suggestions to nil when a form input session is
invalidated. This will set the keyboard QuickType suggestions back to their default values.
2016-07-06 Alex Christensen <achristensen@webkit.org>
Call continueCanAuthenticateAgainstProtectionSpace when cancelling loads waiting for the callback
https://bugs.webkit.org/show_bug.cgi?id=159492
<rdar://problem/26921670>
Reviewed by Brady Eidson.
* NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::~NetworkLoad):
(WebKit::NetworkLoad::canAuthenticateAgainstProtectionSpaceAsync):
(WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace):
* NetworkProcess/NetworkLoad.h:
2016-07-06 Myles C. Maxfield <mmaxfield@apple.com>
[RTL Scrollbars] RTL Scrollbars broken with clients creating Web Views via [WKView initWithFrame:contextRef:pageGroupRef:]
https://bugs.webkit.org/show_bug.cgi?id=159383
<rdar://problem/26921117>
Reviewed by Anders Carlsson.
The code which consults with the userInterfaceLayoutDirection of the view is
inside [WKWebView _initializeWithConfiguration:]. However, some clients create
Web Views via [WKView initWithFrame:contextRef:pageGroupRef:] which doesn't
call this code. Therefore, this codepath should do the same kind of direction
consulting.
* UIProcess/API/mac/WKView.mm:
(toUserInterfaceLayoutDirection):
(-[WKView initWithFrame:contextRef:pageGroupRef:relatedToPage:]):
2016-07-06 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r202867.
https://bugs.webkit.org/show_bug.cgi?id=159491
This change caused an existing LayoutTest to crash on ios-
simulator (Requested by ryanhaddad on #webkit).
Reverted changeset:
"<img> with a wide gamut PDF does not display using a wide
gamut color space"
https://bugs.webkit.org/show_bug.cgi?id=158983
http://trac.webkit.org/changeset/202867
2016-07-06 Enrica Casucci <enrica@apple.com>
Limit touch distance for two finger tap.
https://bugs.webkit.org/show_bug.cgi?id=159476
rdar://problem/26439052
Reviewed by Beth Dakin.
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView setupInteraction]):
* Platform/spi/ios/UIKitSPI.h
2016-07-06 Antoine Quint <graouts@apple.com>
<img> with a wide gamut PDF does not display using a wide gamut color space
https://bugs.webkit.org/show_bug.cgi?id=158983
<rdar://problem/25720247>
Reviewed by Tim Horton.
ColorSpace parameters have been replaced with CGColorSpaceRef parameters for IOSurface.
* Shared/mac/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::decode):
(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _takeViewSnapshot]):
(-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):
2016-07-06 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r202725.
https://bugs.webkit.org/show_bug.cgi?id=159473
didn't reduce coreui memory usage (Requested by kling on
#webkit).
Reverted changeset:
"[Mac] Get rid of the old timey rubber-banding linen pattern."
https://bugs.webkit.org/show_bug.cgi?id=159329
http://trac.webkit.org/changeset/202725
2016-07-06 Carlos Garcia Campos <cgarcia@igalia.com>
Duplicated code in DrawingAreaImpl and CoordinatedDrawingArea
https://bugs.webkit.org/show_bug.cgi?id=159259
Reviewed by Žan Doberšek.
It seems that CoordinatedDrawingArea is just a copy paste of DrawingAreaImpl with non-accelerated code path
removed. There's actually nothing (or very little) specific to coordinated graphics in the
CoordinatedDrawingArea implementation. This patch renames CoordinatedDrawingArea as AcceleratedDrawingArea and
makes DrawingAreaImpl inherit from it, so that in case of accelerated compositing the parent class is used, and
DrawingAreaImpl only adds the non accelerated code path.
* PlatformEfl.cmake:
* PlatformGTK.cmake:
* WebProcess/WebPage/AcceleratedDrawingArea.cpp: Renamed from Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp.
(WebKit::AcceleratedDrawingArea::~AcceleratedDrawingArea):
(WebKit::AcceleratedDrawingArea::AcceleratedDrawingArea):
(WebKit::AcceleratedDrawingArea::setNeedsDisplay):
(WebKit::AcceleratedDrawingArea::setNeedsDisplayInRect):
(WebKit::AcceleratedDrawingArea::scroll):
(WebKit::AcceleratedDrawingArea::pageBackgroundTransparencyChanged):
(WebKit::AcceleratedDrawingArea::setLayerTreeStateIsFrozen):
(WebKit::AcceleratedDrawingArea::forceRepaint):
(WebKit::AcceleratedDrawingArea::forceRepaintAsync):
(WebKit::AcceleratedDrawingArea::setPaintingEnabled):
(WebKit::AcceleratedDrawingArea::updatePreferences):
(WebKit::AcceleratedDrawingArea::mainFrameContentSizeChanged):
(WebKit::AcceleratedDrawingArea::layerHostDidFlushLayers):
(WebKit::AcceleratedDrawingArea::graphicsLayerFactory):
(WebKit::AcceleratedDrawingArea::setRootCompositingLayer):
(WebKit::AcceleratedDrawingArea::scheduleCompositingLayerFlush):
(WebKit::AcceleratedDrawingArea::scheduleCompositingLayerFlushImmediately):
(WebKit::AcceleratedDrawingArea::updateBackingStoreState):
(WebKit::AcceleratedDrawingArea::sendDidUpdateBackingStoreState):
(WebKit::AcceleratedDrawingArea::suspendPainting):
(WebKit::AcceleratedDrawingArea::resumePainting):
(WebKit::AcceleratedDrawingArea::enterAcceleratedCompositingMode):
(WebKit::AcceleratedDrawingArea::exitAcceleratedCompositingModeSoon):
(WebKit::AcceleratedDrawingArea::didReceiveCoordinatedLayerTreeHostMessage):
(WebKit::AcceleratedDrawingArea::viewStateDidChange):
(WebKit::AcceleratedDrawingArea::attachViewOverlayGraphicsLayer):
* WebProcess/WebPage/AcceleratedDrawingArea.h: Renamed from Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h.
(WebKit::AcceleratedDrawingArea::exitAcceleratedCompositingModePending):
(WebKit::AcceleratedDrawingArea::didUpdateBackingStoreState):
(WebKit::AcceleratedDrawingArea::exitAcceleratedCompositingMode):
* WebProcess/WebPage/DrawingArea.cpp:
(WebKit::DrawingArea::create):
* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::DrawingAreaImpl):
(WebKit::DrawingAreaImpl::setNeedsDisplay):
(WebKit::DrawingAreaImpl::setNeedsDisplayInRect):
(WebKit::DrawingAreaImpl::scroll):
(WebKit::DrawingAreaImpl::forceRepaint):
(WebKit::DrawingAreaImpl::setRootCompositingLayer):
(WebKit::DrawingAreaImpl::updateBackingStoreState):
(WebKit::DrawingAreaImpl::didUpdateBackingStoreState):
(WebKit::DrawingAreaImpl::sendDidUpdateBackingStoreState):
(WebKit::DrawingAreaImpl::suspendPainting):
(WebKit::DrawingAreaImpl::enterAcceleratedCompositingMode):
(WebKit::DrawingAreaImpl::~DrawingAreaImpl): Deleted.
(WebKit::DrawingAreaImpl::mainFrameContentSizeChanged): Deleted.
(WebKit::DrawingAreaImpl::updatePreferences): Deleted.
(WebKit::DrawingAreaImpl::didUpdate): Deleted.
(WebKit::DrawingAreaImpl::exitAcceleratedCompositingMode): Deleted.
(WebKit::DrawingAreaImpl::scheduleDisplay): Deleted.
(WebKit::DrawingAreaImpl::displayTimerFired): Deleted.
(WebKit::DrawingAreaImpl::display): Deleted.
(WebKit::shouldPaintBoundsRect): Deleted.
(WebKit::DrawingAreaImpl::setNativeSurfaceHandleForCompositing): Deleted.
* WebProcess/WebPage/DrawingAreaImpl.h:
2016-07-06 Youenn Fablet <youenn@apple.com>
Refactor NetworkResourceLoadParameters
https://bugs.webkit.org/show_bug.cgi?id=159402
Reviewed by Alex Christensen.
Making NetworkResourceLoadParameters derive from NetworkLoadParameters.
* CMakeLists.txt: Removed NetworkLoadParameters.cpp
* NetworkProcess/NetworkLoadParameters.cpp: Deleted.
* NetworkProcess/NetworkLoadParameters.h:
* NetworkProcess/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters): Deleted.
* NetworkProcess/NetworkResourceLoadParameters.h: Making it derive from NetworkLoadParameters.
* WebKit2.xcodeproj/project.pbxproj:
2016-07-05 Alex Christensen <achristensen@webkit.org>
Actually persist changes to cookie accept policy.
https://bugs.webkit.org/show_bug.cgi?id=159377
<rdar://problem/22774152>
Reviewed by Alexey Proskuryakov.
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSession::NetworkSession):
Added logging.
* UIProcess/mac/WebCookieManagerProxyMac.mm:
(WebKit::WebCookieManagerProxy::persistHTTPCookieAcceptPolicy):
When we persist the cookie accept policy, we want to call _saveCookies to actually write the
change to disk so that when we create a new process which reads from disk to determine its
cookie accept policy, it will read the new cookie accept policy. Before this patch it was
reading the old one in some cases where the changes had not yet been persisted to disk.
2016-07-04 Carlos Garcia Campos <cgarcia@igalia.com>
[Coordinated Graphics] Modernize and cleanup CompositingCoordinator
https://bugs.webkit.org/show_bug.cgi?id=159212
Reviewed by Žan Doberšek.
Changes done:
- Use references instead of pointers when possible.
- Add missing final/override keywords.
- Reduce the use of PassRefPtr
- Move member initializations to the declaration.
- Use nullptr instead of 0.
- Use HashMap::ensure() instead of complicated code with iterators.
- Avoid heap allocation when possible.
* Shared/CoordinatedGraphics/WebCoordinatedSurface.cpp:
(WebKit::WebCoordinatedSurface::paintToSurface):
* Shared/CoordinatedGraphics/WebCoordinatedSurface.h:
* Shared/CoordinatedGraphics/threadedcompositor/ThreadSafeCoordinatedSurface.cpp:
(WebKit::ThreadSafeCoordinatedSurface::paintToSurface):
* Shared/CoordinatedGraphics/threadedcompositor/ThreadSafeCoordinatedSurface.h:
* WebProcess/WebPage/CoordinatedGraphics/AreaAllocator.cpp:
(WebKit::GeneralAreaAllocator::expand):
(WebKit::GeneralAreaAllocator::splitNode):
(WebKit::GeneralAreaAllocator::release):
(WebKit::GeneralAreaAllocator::GeneralAreaAllocator): Deleted.
* WebProcess/WebPage/CoordinatedGraphics/AreaAllocator.h:
* WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:
(WebKit::CompositingCoordinator::CompositingCoordinator):
(WebKit::CompositingCoordinator::flushPendingLayerChanges):
(WebKit::CompositingCoordinator::createImageBackingIfNeeded):
(WebKit::CompositingCoordinator::updateImageBacking):
(WebKit::CompositingCoordinator::notifyFlushRequired):
(WebKit::CompositingCoordinator::paintContents):
(WebKit::CompositingCoordinator::createUpdateAtlas):
(WebKit::CompositingCoordinator::commitScrollOffset):
(WebKit::CompositingCoordinator::paintToSurface):
* WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h:
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::CoordinatedLayerTreeHost):
(WebKit::CoordinatedLayerTreeHost::setViewOverlayRootLayer):
(WebKit::CoordinatedLayerTreeHost::setRootCompositingLayer):
(WebKit::CoordinatedLayerTreeHost::invalidate):
(WebKit::CoordinatedLayerTreeHost::forceRepaint):
(WebKit::CoordinatedLayerTreeHost::sizeDidChange):
(WebKit::CoordinatedLayerTreeHost::setVisibleContentsRect):
(WebKit::CoordinatedLayerTreeHost::renderNextFrame):
(WebKit::CoordinatedLayerTreeHost::purgeBackingStores):
(WebKit::CoordinatedLayerTreeHost::layerFlushTimerFired):
(WebKit::CoordinatedLayerTreeHost::deviceOrPageScaleFactorChanged):
(WebKit::CoordinatedLayerTreeHost::graphicsLayerFactory):
(WebKit::CoordinatedLayerTreeHost::scheduleAnimation):
(WebKit::CoordinatedLayerTreeHost::commitScrollOffset):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
* WebProcess/WebPage/CoordinatedGraphics/UpdateAtlas.cpp:
(WebKit::UpdateAtlas::UpdateAtlas):
(WebKit::UpdateAtlas::~UpdateAtlas):
(WebKit::UpdateAtlas::buildLayoutIfNeeded):
(WebKit::UpdateAtlas::paintOnAvailableBuffer):
(WebKit::UpdateAtlasSurfaceClient::UpdateAtlasSurfaceClient): Deleted.
* WebProcess/WebPage/CoordinatedGraphics/UpdateAtlas.h:
2016-07-04 Brady Eidson <beidson@apple.com>
WebProcesses don't handle DatabaseProcess going away uncleanly..
https://bugs.webkit.org/show_bug.cgi?id=159371
Reviewed by Alex Christensen.
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::terminateDatabaseProcess): Deleted.
* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:
(WebKit::WebIDBConnectionToServer::connectionToServerLost):
* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
* WebProcess/Databases/WebToDatabaseProcessConnection.cpp:
(WebKit::WebToDatabaseProcessConnection::didReceiveMessage):
(WebKit::WebToDatabaseProcessConnection::didClose): Notify each connection
that the database server connection dropped.
2016-07-04 Fujii Hironori <Hironori.Fujii@sony.com>
[GTK] Null WebCore::Range dereference in WebEditorClient::updateGlobalSelection
https://bugs.webkit.org/show_bug.cgi?id=159341
Reviewed by Carlos Garcia Campos.
FrameSelection::toNormalizedRange() can return null. Null check is
needed.
Tests:
editing/input/set-value-on-input-and-delete.html
editing/selection/selection-in-iframe-removed-crash.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute.html
imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-after-content-change.html
imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-textarea.html
imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application.html
* WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:
(WebKit::WebEditorClient::updateGlobalSelection): Do not update
global selection if FrameSelection::toNormalizedRange() returns
null.
2016-07-04 Fujii Hironori <Hironori.Fujii@sony.com>
[GTK] ASSERTION_FAILED: m_key != PTHREAD_KEYS_MAX when defining WEBKIT2_PAUSE_WEB_PROCESS_ON_LAUNCH
https://bugs.webkit.org/show_bug.cgi?id=158149
Reviewed by Carlos Garcia Campos.
WTF::sleep can not be used at the beginning of web process because
WTF is not initialized at the moment yet.
* WebProcess/gtk/WebProcessMainGtk.cpp: Use g_usleep instead of WTF::sleep.
2016-07-03 Dan Bernstein <mitz@apple.com>
Follow-up to r202789.
Reviewed by Sam Weinig.
Ensure that API that isn’t available at all on a platform is declared under an appropriate
TARGET_OS_* conditional.
* Shared/API/Cocoa/_WKHitTestResult.h:
* Shared/API/Cocoa/_WKHitTestResult.mm:
* Shared/API/Cocoa/_WKHitTestResultInternal.h:
* UIProcess/API/Cocoa/WKOpenPanelParameters.h:
* UIProcess/API/Cocoa/WKOpenPanelParameters.mm:
* UIProcess/API/Cocoa/WKOpenPanelParametersInternal.h:
* UIProcess/API/Cocoa/WKPreviewActionItemIdentifiers.h:
* UIProcess/API/Cocoa/WKPreviewActionItemIdentifiers.mm:
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
2016-07-03 Dan Bernstein <mitz@apple.com>
[Cocoa] Adopt modern API availability macros
https://bugs.webkit.org/show_bug.cgi?id=159378
Reviewed by Sam Weinig.
iOS 10 and macOS Sierra introduce new macros for declaring API availability, defined in
CFAvailability.h, including API_AVAILABLE, API_DEPRECATED, and
API_DEPRECATED_WITH_REPLACEMENT. Rather than having positional parameters for macOS and iOS
versions, the new macros take a variable number of function-like parameters, where the
function specifies the platform to which it applies.
To have WebKit2’s postprocessed headers use the new macros, we make the following changes:
- Replace instances of WK_AVAILABLE(_mac, _ios) with WK_API_AVAILABLE(macosx(_mac), ios(_ios)),
eliding a platform if its current availability is NA.
- Change instances of WK_CLASS_AVAILABLE(_mac, _ios) to
WK_CLASS_AVAILABLE(macosx(_mac), ios(_ios)), eliding a platform if its current
availability is NA.
- Replace instances of WK_DEPRECATED(_macIntro, _macDep, _iosIntro, _iosDep, ...) with
WK_API_DEPRECATED_WITH_REPLACEMENT(_replacement, macosx(_macIntro, _macDep), ios(_iosIntro, _iosDep))
when there is a one-for-one replacement, and with
WK_API_DEPRECATED(_message, macosx(_macIntro, _macDep), ios(_iosIntro, _iosDep)) when the
replacement isn’t one-for-one. Again, if the API doesn’t apply to a platform, then it’s
elided.
- Replace instances of WK_CLASS_DEPRECATED with WK_CLASS_DEPRECATED_WITH_REPLACEMENT,
following the same rules.
- Replace instances of the WK_ENUM_* macros with corresponding WK_API_* macros, now that
all supported compilers support availability attributes on enum values.
* Configurations/WebKit.xcconfig: Disable header postprocessing when building for iOS 9.x,
which doesn’t have the new macros.
* mac/postprocess-framework-headers.sh: Handle the new WK_* macros: WK_API_AVAILABLE becomes
API_AVAILABLE; WK_API_DEPRECATED(_WITH_REPLACEMENT) become API_DEPRECATED(_WITH_REPLACEMENT);
WK_CLASS_AVAILABLE and WK_CLASS_DEPRECATED(_WITH_REPLACEMENT) change to the corresponding
API_ macros, prefixed with WK_EXTERN.
* Shared/API/Cocoa/WKFoundation.h: When header postprocessing is disabled, provide
definitions of the new WK_* macros we use.
* UIProcess/API/Cocoa/WKWebViewConfiguration.h: In addition to the above, changed one
instance of (iOS) 10_0 to WK_IOS_TBA.
Made the above changes in the following headers:
* Shared/API/Cocoa/WKBrowsingContextHandle.h:
* Shared/API/Cocoa/_WKFrameHandle.h:
* Shared/API/Cocoa/_WKHitTestResult.h:
* Shared/API/Cocoa/_WKRemoteObjectInterface.h:
* Shared/API/Cocoa/_WKRemoteObjectRegistry.h:
* Shared/API/Cocoa/_WKRenderingProgressEvents.h:
* Shared/API/Cocoa/_WKSameDocumentNavigationType.h:
* UIProcess/API/Cocoa/WKBackForwardList.h:
* UIProcess/API/Cocoa/WKBackForwardListItem.h:
* UIProcess/API/Cocoa/WKBrowsingContextController.h:
* UIProcess/API/Cocoa/WKBrowsingContextGroup.h:
* UIProcess/API/Cocoa/WKConnection.h:
* UIProcess/API/Cocoa/WKError.h:
* UIProcess/API/Cocoa/WKErrorPrivate.h:
* UIProcess/API/Cocoa/WKFrameInfo.h:
* UIProcess/API/Cocoa/WKFrameInfoPrivate.h:
* UIProcess/API/Cocoa/WKMenuItemIdentifiersPrivate.h:
* UIProcess/API/Cocoa/WKNavigation.h:
* UIProcess/API/Cocoa/WKNavigationAction.h:
* UIProcess/API/Cocoa/WKNavigationActionPrivate.h:
* UIProcess/API/Cocoa/WKNavigationData.h:
* UIProcess/API/Cocoa/WKNavigationDelegate.h:
* UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
* UIProcess/API/Cocoa/WKNavigationResponse.h:
* UIProcess/API/Cocoa/WKOpenPanelParameters.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/WKProcessGroup.h:
* UIProcess/API/Cocoa/WKProcessPool.h:
* UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
* UIProcess/API/Cocoa/WKScriptMessage.h:
* UIProcess/API/Cocoa/WKSecurityOrigin.h:
* UIProcess/API/Cocoa/WKTypeRefWrapper.h:
* UIProcess/API/Cocoa/WKUIDelegate.h:
* UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
* UIProcess/API/Cocoa/WKUserContentController.h:
* UIProcess/API/Cocoa/WKUserContentControllerPrivate.h:
* UIProcess/API/Cocoa/WKUserScript.h:
* UIProcess/API/Cocoa/WKUserScriptPrivate.h:
* UIProcess/API/Cocoa/WKViewPrivate.h:
* UIProcess/API/Cocoa/WKWebView.h:
* UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/API/Cocoa/WKWebsiteDataRecord.h:
* UIProcess/API/Cocoa/WKWebsiteDataRecordPrivate.h:
* UIProcess/API/Cocoa/WKWebsiteDataStore.h:
* UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
* UIProcess/API/Cocoa/WKWindowFeatures.h:
* UIProcess/API/Cocoa/_WKActivatedElementInfo.h:
* UIProcess/API/Cocoa/_WKAutomationSession.h:
* UIProcess/API/Cocoa/_WKContextMenuElementInfo.h:
* UIProcess/API/Cocoa/_WKDiagnosticLoggingDelegate.h:
* UIProcess/API/Cocoa/_WKDownload.h:
* UIProcess/API/Cocoa/_WKElementAction.h:
* UIProcess/API/Cocoa/_WKExperimentalFeature.h:
* UIProcess/API/Cocoa/_WKFindOptions.h:
* UIProcess/API/Cocoa/_WKFormInputSession.h:
* UIProcess/API/Cocoa/_WKInputDelegate.h:
* UIProcess/API/Cocoa/_WKLayoutMode.h:
* UIProcess/API/Cocoa/_WKOverlayScrollbarStyle.h:
* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
* UIProcess/API/Cocoa/_WKSessionState.h:
* UIProcess/API/Cocoa/_WKThumbnailView.h:
* UIProcess/API/Cocoa/_WKUserContentExtensionStore.h:
* UIProcess/API/Cocoa/_WKUserContentFilter.h:
* UIProcess/API/Cocoa/_WKUserContentWorld.h:
* UIProcess/API/Cocoa/_WKUserStyleSheet.h:
* UIProcess/API/Cocoa/_WKVisitedLinkProvider.h:
* UIProcess/API/Cocoa/_WKVisitedLinkStore.h:
* UIProcess/API/Cocoa/_WKWebsiteDataRecord.h:
* UIProcess/API/Cocoa/_WKWebsiteDataSize.h:
* UIProcess/API/Cocoa/_WKWebsiteDataStore.h:
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h:
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.h:
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInHitTestResult.h:
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.h:
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInPageGroup.h:
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInScriptWorld.h:
* WebProcess/InjectedBundle/API/mac/WKDOMDocument.h:
* WebProcess/InjectedBundle/API/mac/WKDOMElement.h:
* WebProcess/InjectedBundle/API/mac/WKDOMNode.h:
* WebProcess/InjectedBundle/API/mac/WKDOMRange.h:
* WebProcess/InjectedBundle/API/mac/WKDOMText.h:
* WebProcess/InjectedBundle/API/mac/WKDOMTextIterator.h:
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.h:
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.h:
2016-07-01 Hunseop Jeong <hs85.jeong@samsung.com>
[EFL] Many layout tests are timeout after r202532.
https://bugs.webkit.org/show_bug.cgi?id=159337
Reviewed by Gyuyoung Kim.
WebPageProxy::forceRepaint() wait for the next commit from the web process
after r202532, but WebPageProxy::callAfterNextPresentationUpdate() is not
implemented in CoordinatedDrawingAreaProxy.
* UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.cpp:
(WebKit::CoordinatedDrawingAreaProxy::contentsRect):
(WebKit::CoordinatedDrawingAreaProxy::dispatchAfterEnsuringDrawing):
(WebKit::CoordinatedDrawingAreaProxy::sizeDidChange):
* UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.h:
(WebKit::CoordinatedDrawingAreaProxy::page):
2016-07-01 Myles C. Maxfield <mmaxfield@apple.com>
REGRESSION(r189668): Notification tests are flakey
https://bugs.webkit.org/show_bug.cgi?id=159375
<rdar://problem/22760990>
Reviewed by Alexey Proskuryakov.
Implement WKNotificationManagerGetLocalID(). For more information, see the entry in Tools/ChangeLog.
* UIProcess/API/C/WKNotificationManager.cpp:
(WKNotificationManagerGetLocalID):
* UIProcess/Notifications/WebNotificationManagerProxy.cpp:
(WebKit::WebNotificationManagerProxy::notificationLocalIDForTesting):
* UIProcess/Notifications/WebNotificationManagerProxy.h:
* WebKit2.xcodeproj/project.pbxproj:
2016-07-01 Jer Noble <jer.noble@apple.com>
REGRESSION(r201405): Fullscreen video no longer enters low-power mode
https://bugs.webkit.org/show_bug.cgi?id=159220
<rdar://problem/26701056>
Reviewed by Beth Dakin.
In r201405, we removed the call to setTopContentInset(0) to avoid a flash
during repainting where the WebProcess still thought it had an inset and
the UIProcess did not, but the >0 inset breaks low power video playback
in fullscreen. So, instead, fix the repaint issue by setting a CALayer
fence which makes sure both the UIProcess and WebProcess paint simultaneously
after resizing and changing the top content inset.
This requires a new message from WebPageProxy -> WebPage: setTopContentInsetFenced().
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setTopContentInset):
* UIProcess/mac/WKFullScreenWindowController.h:
* UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController enterFullScreen:]):
(-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setTopContentInsetFenced):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
2016-07-01 Dan Bernstein <mitz@apple.com>
[Mac] Get rid of support for old SDKs
https://bugs.webkit.org/show_bug.cgi?id=159369
Reviewed by Anders Carlsson.
* Shared/API/Cocoa/WKFoundation.h: Removed the WK_ARRAY, WK_DICTIONARY, and WK_SET macros,
which were only needed for pre-10.11 SDKs.
* Shared/mac/WebEventFactory.mm:
(WebKit::mouseButtonForEvent): Removed checking for pre-10.10.3 SDKs.
(WebKit::globalPointForEvent): Ditto.
(WebKit::pointForEvent): Ditto.
(WebKit::WebEventFactory::createWebMouseEvent): Ditto.
* UIProcess/API/Cocoa/WKBackForwardList.h: Replaced WK_ARRAY(...) with NSArray<...>.
* UIProcess/API/Cocoa/WKPreferences.mm: Ditto.
(-[WKPreferences _setFixedPitchFontFamily:]):
(+[WKPreferences _experimentalFeatures]):
* UIProcess/API/Cocoa/WKPreferencesPrivate.h: Ditto.
* UIProcess/API/Cocoa/WKUIDelegate.h: Ditto.
* UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Ditto.
* UIProcess/API/Cocoa/WKUserContentController.h: Ditto.
* UIProcess/API/Cocoa/WKUserContentControllerPrivate.h: Ditto.
* UIProcess/API/Cocoa/WKUserScriptPrivate.h: Ditto.
* UIProcess/API/Cocoa/WKWebsiteDataRecord.h: Replaced WK_SET(...) with NSSet<...>.
* UIProcess/API/Cocoa/WKWebsiteDataStore.h: Ditto.
* UIProcess/API/Cocoa/WKWebsiteDataStore.mm: Ditto.
(-[WKWebsiteDataStore fetchDataRecordsOfTypes:completionHandler:]):
(-[WKWebsiteDataStore _fetchDataRecordsOfTypes:withOptions:completionHandler:]):
* UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: Ditto.
* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: Replaced WK_ARRAY(...) with NSArray<...>.
* UIProcess/API/Cocoa/_WKUserStyleSheet.h: Ditto.
* UIProcess/API/Cocoa/_WKUserStyleSheet.mm: Ditto.
(-[_WKUserStyleSheet initWithSource:forMainFrameOnly:]):
(-[_WKUserStyleSheet initWithSource:forMainFrameOnly:legacyWhitelist:legacyBlacklist:userContentWorld:]):
(-[_WKUserStyleSheet initWithSource:forMainFrameOnly:legacyWhitelist:legacyBlacklist:baseURL:userContentWorld:]):
* UIProcess/API/Cocoa/_WKWebsiteDataSize.h: Replaced WK_SET(...) with NSSet<...>.
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::pressureChangeWithEvent): Removed checking for pre-10.10.3 SDKs.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.h: Replaced WK_ARRAY(...) with
NSArray<...>.
* mac/postprocess-framework-headers.sh: Removed sed rules for WK_ARRAY, WK_DICTIONARY and
WK_SET.
2016-07-01 Chris Dumez <cdumez@apple.com>
[iOS] Possible null Range dereference under computeAutocorrectionContext()
https://bugs.webkit.org/show_bug.cgi?id=159328
<rdar://problem/26766720>
Reviewed by Benjamin Poulain.
The code in computeAutocorrectionContext() was checking Editor::hasComposition()
before dereferencing Editor::compositionRange(). However, compositionRange()
can also return null in other cases (e.g. compositionStart == compositionEnd).
Drop the check for hasComposition() and do a null check on the value returned
by compositionRange() instead.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::computeAutocorrectionContext):
2016-07-01 Brent Fulgham <bfulgham@apple.com>
Prevent crash when attempting to copy an image
https://bugs.webkit.org/show_bug.cgi?id=159288
<rdar://problem/23507828>
Reviewed by Brady Eidson.
WebKit could crash if the HTMLImageElement had a null cachedImage member.
A little investigation showed that the URL we retrieve from the cachedImage
is never used, so rather than adding a null check, let's just pass a
default argument. The actual URL gets read from elsewhere in the pasteboard
processing code.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::performActionOnElement): Don't bother passing the
unused URL argument to the pasteboard method.
2016-07-01 Brady Eidson <beidson@apple.com>
Blob content type not preserved when retrieving blobs from IndexedDB.
<rdar://problem/27057357> and https://bugs.webkit.org/show_bug.cgi?id=159360
Reviewed by Alex Christensen.
* NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:
(WebKit::NetworkBlobRegistry::registerBlobURLOptionallyFileBacked):
* NetworkProcess/FileAPI/NetworkBlobRegistry.h:
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::registerBlobURLOptionallyFileBacked):
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/NetworkConnectionToWebProcess.messages.in:
* WebProcess/FileAPI/BlobRegistryProxy.cpp:
(WebKit::BlobRegistryProxy::registerBlobURLOptionallyFileBacked):
* WebProcess/FileAPI/BlobRegistryProxy.h:
2016-07-01 Dan Bernstein <mitz@apple.com>
[Cocoa] Get rid of WK_NULLABLE_SPECIFIER now that all supported compilers understand _Nullable
https://bugs.webkit.org/show_bug.cgi?id=159361
Reviewed by Anders Carlsson.
* Shared/API/Cocoa/WKFoundation.h:
* UIProcess/API/Cocoa/WKNavigationDelegate.h:
* UIProcess/API/Cocoa/WKUIDelegate.h:
* UIProcess/API/Cocoa/WKWebView.h:
* mac/postprocess-framework-headers.sh:
2016-07-01 Youenn Fablet <youennf@gmail.com>
Add a runtime flag for DOM iterators
https://bugs.webkit.org/show_bug.cgi?id=159300
Reviewed by Alex Christensen.
* Shared/WebPreferencesDefinitions.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
2016-07-01 Andreas Kling <akling@apple.com>
[Mac] Get rid of the old timey rubber-banding linen pattern.
<https://webkit.org/b/159329>
Reviewed by Benjamin Poulain.
* Shared/mac/RemoteLayerTreePropertyApplier.mm:
(WebKit::updateCustomAppearance):
2016-06-30 Tina Liu <iting_liu@apple.com>
Add SPI to allow restoring session state without navigation in WKPage
https://bugs.webkit.org/show_bug.cgi?id=159326
Reviewed by Brady Eidson.
* UIProcess/API/C/WKPage.cpp:
(restoreFromSessionState):
Added a helper function that takes a bool parameter to specify whether
to navigate or not when restoring from the session state.
(WKPageRestoreFromSessionState):
Calling restoreFromSessionState, passing navigate = true.
(WKPageRestoreFromSessionStateWithoutNavigation):
Ditto but passing navigate = false.
* UIProcess/API/C/WKPagePrivate.h:
2016-06-30 Chris Dumez <cdumez@apple.com>
[iOS] WebContent processes do not exit promptly
https://bugs.webkit.org/show_bug.cgi?id=159301
<rdar://problem/26965488>
Reviewed by Anders Carlsson.
WebContent processes do not exit promptly, they hang around for 10 seconds
until the watchdog forcefully calls exit().
This patch addresses the issue by asking XPC to exit when clean. It also
fixes 2 XPC transactions that were leaking so that XPC can become clean.
* DatabaseProcess/EntryPoint/mac/XPCService/DatabaseServiceEntryPoint.mm:
(DatabaseServiceInitializer):
* NetworkProcess/EntryPoint/mac/XPCService/NetworkServiceEntryPoint.mm:
(NetworkServiceInitializer):
* PluginProcess/EntryPoint/mac/XPCService/PluginServiceEntryPoint.mm:
(PluginServiceInitializer):
* WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm:
(WebContentServiceInitializer):
Add extra priorityBoostMessage parameter which is then passed along to
ChildProcess via initialization parameters. ChildProcess is now in
charge of retaining the message for as long as it needs the priority
boost. In particular, ChildProcess now takes care of releasing the
boost message before existing to avoid leaking an XPC transaction.
* Shared/ChildProcess.cpp:
(WebKit::ChildProcess::initialize):
Retain priorityBoostMessage as a data member.
(WebKit::ChildProcess::stopRunLoop):
(WebKit::ChildProcess::platformStopRunLoop):
* Shared/ios/ChildProcessIOS.mm:
(WebKit::ChildProcess::platformStopRunLoop):
On iOS, call XPCServiceExit() to exit instead of RunLoop::main().stop()
which did not work.
* Shared/ChildProcess.h:
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h:
(WebKit::XPCServiceInitializer):
Set priorityBoostMessage on ChildProcessInitializationParameters.
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.mm:
(WebKit::XPCServiceExit):
Add XPCServiceExit() function which destroys the priority boost
message, calls xpc_transaction_end() to balance the
xpc_transaction_begin() in XPCServiceInitializer() and then call
xpc_transaction_exit_clean() to ask XPC to exit when clean.
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.mm:
(WebKit::XPCServiceEventHandler):
Leaking the "pre-bootstrap" event for priority boosting would cause us to
leak an XPC transaction, which would prevent XPC from becoming clean and
exiting. Instead, we now pass it along to the initialization function.
We then pass it to ChildProcess which manages the lifetime of this message
instead of leaking it.
2016-06-30 Brian Burg <bburg@apple.com>
REGRESSION(r202329): WebInspectorProxy's WKPagePolicyClient callbacks are not being called
https://bugs.webkit.org/show_bug.cgi?id=159308
<rdar://problem/27111764>
Reviewed by Tim Horton.
Adopt WKPageNavigationClient and ditch WKPolicyClient and WKPageLoaderClient.
After r202329, it's not possible to set a WKPolicyClient for a WKPage/WebPageProxy that backs a WKWebView.
* UIProcess/WebInspectorProxy.cpp:
(WebKit::isMainOrTestInspectorPage): Take a WebCore::ResourceRequest.
(WebKit::processDidCrash): Deleted.
(WebKit::webProcessDidCrash): Rename to match new client callback name.
(WebKit::decidePolicyForNavigationAction): Rework this to take new argument types.
(WebKit::WebInspectorProxy::eagerlyCreateInspectorPage):
Install a WKPageNavigationClient.
2016-06-30 Chris Dumez <cdumez@apple.com>
[iOS] Process suspension is prevented for 30 seconds after closing a tab
https://bugs.webkit.org/show_bug.cgi?id=159280
<rdar://problem/27014867>
Reviewed by Gavin Barraclough.
When closing a tab, ConnectionTerminationWatchdog takes a background
assertion on behalf of the WebContent process and only releases it
after 30 seconds, allowing for the WebContent process to exit cleanly
without worrying about getting suspended too early.
However, the child process normally exits much sooner than this and
we end up holding a process assertion for no reason for a full 30
seconds anyway. This patch addresses the issue by registering an
invalidation handler with the BKSProcessAssertion and releasing our
our assertion in such case. The invalidation handler gets called
as soon as the child process exits.
* Platform/spi/ios/AssertionServicesSPI.h:
* UIProcess/ProcessAssertion.cpp:
(WebKit::ProcessAssertion::ProcessAssertion):
* UIProcess/ProcessAssertion.h:
(WebKit::ProcessAssertion::ProcessAssertion):
(WebKit::ProcessAssertion::validity):
* UIProcess/ios/ProcessAssertionIOS.mm:
(WebKit::ProcessAssertion::ProcessAssertion):
(WebKit::ProcessAssertion::~ProcessAssertion):
(WebKit::ProcessAndUIAssertion::updateRunInBackgroundCount):
(WebKit::ProcessAndUIAssertion::ProcessAndUIAssertion):
(WebKit::ProcessAssertion::setState): Deleted.
2016-06-30 Tim Horton <timothy_horton@apple.com>
Keep track of when a WKWebView is blank before the initial non-empty layout
https://bugs.webkit.org/show_bug.cgi?id=159217
<rdar://problem/26071766>
Reviewed by Beth Dakin.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
(-[WKWebView _setIsBlankBeforeFirstNonEmptyLayout:]):
(-[WKWebView _didFirstVisuallyNonEmptyLayoutForMainFrame]):
* UIProcess/API/Cocoa/WKWebViewInternal.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::didFirstVisuallyNonEmptyLayoutForMainFrame):
2016-06-29 Gavin Barraclough <barraclough@apple.com>
Cleanup ProcessAssertion RunInBackground management
https://bugs.webkit.org/show_bug.cgi?id=159284
Reviewed by Chris Dumez.
Factor out code that handles taking a background assertion on the UI app into
ProcessAndUIAssertion::updateRunInBackgroundCount helper.
This patch just cleanup to enable a futher fix.
* UIProcess/ProcessAssertion.h:
(WebKit::ProcessAssertion::state):
- Added ProcessAndUIAssertion::updateRunInBackgroundCount
- Added ProcessAndUIAssertion::m_isHoldingBackgroundAssertionOnApp
* UIProcess/ios/ProcessAssertionIOS.mm:
(WebKit::ProcessAndUIAssertion::updateRunInBackgroundCount):
- helper to manage calls to incrementNeedsToRunInBackgroundCount/decrementNeedsToRunInBackgroundCount
(WebKit::ProcessAndUIAssertion::ProcessAndUIAssertion):
- call updateRunInBackgroundCount
(WebKit::ProcessAndUIAssertion::~ProcessAndUIAssertion):
changed to use m_isHoldingBackgroundAssertionOnApp
(WebKit::ProcessAndUIAssertion::setState):
- call updateRunInBackgroundCount
2016-06-30 Carlos Garcia Campos <cgarcia@igalia.com>
[Coordinated Graphics] Move CompositingCoordinator from platform to WebKit2 layer
https://bugs.webkit.org/show_bug.cgi?id=159209
Reviewed by Žan Doberšek.
Move CompositingCoordinator and its helper classes to the WebKit2 layer.
* PlatformEfl.cmake:
* PlatformGTK.cmake:
* WebProcess/WebPage/CoordinatedGraphics/AreaAllocator.cpp: Renamed from Source/WebCore/platform/graphics/texmap/coordinated/AreaAllocator.cpp.
(WebKit::AreaAllocator::AreaAllocator):
(WebKit::AreaAllocator::~AreaAllocator):
(WebKit::AreaAllocator::expand):
(WebKit::AreaAllocator::expandBy):
(WebKit::AreaAllocator::release):
(WebKit::AreaAllocator::overhead):
(WebKit::AreaAllocator::roundAllocation):
(WebKit::GeneralAreaAllocator::GeneralAreaAllocator):
(WebKit::GeneralAreaAllocator::~GeneralAreaAllocator):
(WebKit::GeneralAreaAllocator::freeNode):
(WebKit::GeneralAreaAllocator::expand):
(WebKit::fitsWithin):
(WebKit::GeneralAreaAllocator::allocate):
(WebKit::GeneralAreaAllocator::allocateFromNode):
(WebKit::GeneralAreaAllocator::splitNode):
(WebKit::GeneralAreaAllocator::updateLargestFree):
(WebKit::GeneralAreaAllocator::release):
(WebKit::GeneralAreaAllocator::overhead):
* WebProcess/WebPage/CoordinatedGraphics/AreaAllocator.h: Renamed from Source/WebCore/platform/graphics/texmap/coordinated/AreaAllocator.h.
(WebKit::nextPowerOfTwo):
(WebKit::AreaAllocator::size):
(WebKit::AreaAllocator::minimumAllocation):
(WebKit::AreaAllocator::setMinimumAllocation):
(WebKit::AreaAllocator::margin):
(WebKit::AreaAllocator::setMargin):
* WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp: Renamed from Source/WebCore/platform/graphics/texmap/coordinated/CompositingCoordinator.cpp.
(WebKit::CompositingCoordinator::CompositingCoordinator):
(WebKit::CompositingCoordinator::~CompositingCoordinator):
(WebKit::CompositingCoordinator::setRootCompositingLayer):
(WebKit::CompositingCoordinator::setViewOverlayRootLayer):
(WebKit::CompositingCoordinator::sizeDidChange):
(WebKit::CompositingCoordinator::flushPendingLayerChanges):
(WebKit::CompositingCoordinator::timestamp):
(WebKit::CompositingCoordinator::syncDisplayState):
(WebKit::CompositingCoordinator::nextAnimationServiceTime):
(WebKit::CompositingCoordinator::clearPendingStateChanges):
(WebKit::CompositingCoordinator::initializeRootCompositingLayerIfNeeded):
(WebKit::CompositingCoordinator::createRootLayer):
(WebKit::CompositingCoordinator::syncLayerState):
(WebKit::CompositingCoordinator::createImageBackingIfNeeded):
(WebKit::CompositingCoordinator::createImageBacking):
(WebKit::CompositingCoordinator::updateImageBacking):
(WebKit::CompositingCoordinator::clearImageBackingContents):
(WebKit::CompositingCoordinator::removeImageBacking):
(WebKit::CompositingCoordinator::flushPendingImageBackingChanges):
(WebKit::CompositingCoordinator::notifyAnimationStarted):
(WebKit::CompositingCoordinator::notifyFlushRequired):
(WebKit::CompositingCoordinator::paintContents):
(WebKit::CompositingCoordinator::createGraphicsLayer):
(WebKit::CompositingCoordinator::deviceScaleFactor):
(WebKit::CompositingCoordinator::pageScaleFactor):
(WebKit::CompositingCoordinator::createUpdateAtlas):
(WebKit::CompositingCoordinator::removeUpdateAtlas):
(WebKit::CompositingCoordinator::visibleContentsRect):
(WebKit::CompositingCoordinator::mainContentsLayer):
(WebKit::CompositingCoordinator::setVisibleContentsRect):
(WebKit::CompositingCoordinator::deviceOrPageScaleFactorChanged):
(WebKit::CompositingCoordinator::detachLayer):
(WebKit::CompositingCoordinator::commitScrollOffset):
(WebKit::CompositingCoordinator::renderNextFrame):
(WebKit::CompositingCoordinator::purgeBackingStores):
(WebKit::CompositingCoordinator::paintToSurface):
(WebKit::CompositingCoordinator::scheduleReleaseInactiveAtlases):
(WebKit::CompositingCoordinator::releaseInactiveAtlasesTimerFired):
* WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h: Renamed from Source/WebCore/platform/graphics/texmap/coordinated/CompositingCoordinator.h.
(WebKit::CompositingCoordinator::clearRootLayer):
(WebKit::CompositingCoordinator::rootLayer):
(WebKit::CompositingCoordinator::state):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
* WebProcess/WebPage/CoordinatedGraphics/UpdateAtlas.cpp: Renamed from Source/WebCore/platform/graphics/texmap/coordinated/UpdateAtlas.cpp.
(WebKit::UpdateAtlasSurfaceClient::UpdateAtlasSurfaceClient):
(WebKit::UpdateAtlas::UpdateAtlas):
(WebKit::UpdateAtlas::~UpdateAtlas):
(WebKit::UpdateAtlas::buildLayoutIfNeeded):
(WebKit::UpdateAtlas::didSwapBuffers):
(WebKit::UpdateAtlas::paintOnAvailableBuffer):
* WebProcess/WebPage/CoordinatedGraphics/UpdateAtlas.h: Renamed from Source/WebCore/platform/graphics/texmap/coordinated/UpdateAtlas.h.
(WebKit::UpdateAtlas::size):
(WebKit::UpdateAtlas::supportsAlpha):
(WebKit::UpdateAtlas::addTimeInactive):
(WebKit::UpdateAtlas::isInactive):
(WebKit::UpdateAtlas::isInUse):
2016-06-29 Hunseop Jeong <hs85.jeong@samsung.com>
Unreviewed, CMake build fix.
* PlatformMac.cmake:
2016-06-29 Beth Dakin <bdakin@apple.com>
Add media_icon to WebKit2
https://bugs.webkit.org/show_bug.cgi?id=159273
-and corresponding-
rdar://problem/27087714
Reviewed by Dean Jackson.
* Resources/mediaIcon.pdf: Added.
* WebKit2.xcodeproj/project.pbxproj:
2016-06-29 Anders Carlsson <andersca@apple.com>
Rename addressFields to contactFields
https://bugs.webkit.org/show_bug.cgi?id=159271
rdar://problem/27086955
Reviewed by Beth Dakin.
* Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
(IPC::ArgumentCoder<PaymentRequest>::encode):
(IPC::ArgumentCoder<PaymentRequest>::decode):
(IPC::ArgumentCoder<PaymentRequest::ContactFields>::encode):
(IPC::ArgumentCoder<PaymentRequest::ContactFields>::decode):
(IPC::ArgumentCoder<PaymentRequest::AddressFields>::encode): Deleted.
(IPC::ArgumentCoder<PaymentRequest::AddressFields>::decode): Deleted.
* Shared/WebCoreArgumentCoders.h:
* UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
(WebKit::toPKAddressField):
(WebKit::toPKPaymentRequest):
2016-06-29 Jer Noble <jer.noble@apple.com>
Adopt MediaRemote.
https://bugs.webkit.org/show_bug.cgi?id=159250
Reviewed by Eric Carlson.
Add a sandbox exception allowing access to the mediaremoted XPC service.
* WebProcess/com.apple.WebProcess.sb.in:
2016-06-29 Alex Christensen <achristensen@webkit.org>
WKWebView should ask WKNavigationDelegate about bad ssl certificates
https://bugs.webkit.org/show_bug.cgi?id=159176
rdar://problem/26864882
Reviewed by Sam Weinig.
This can be tested manually by visiting a site in MiniBrowser that has invalid ssl certificates, but we don't have proper ssl testing yet.
Before this change, we would just open the site as if nothing were invalid, now we call the WKNavigationDelegate's didReceiveAuthenticationChallenge
like we did before using NSURLSession, and we do not open the page, also like we did before using NSURLSession.
* NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace):
When using NSURLConnection and responding to canAuthenticateAgainstProtectionSpace with YES,
we get an NSURLAuthenticationChallenge when a bad ssl certificate is encountered in the handshake.
When using NSURLSession, we want to call webView:didReceiveAuthenticationChallenge:completionHandler: in this case.
The default implementation of NavigationState::NavigationClient::canAuthenticateAgainstProtectionSpace returns true
if there is an implementation of webView:didReceiveAuthenticationChallenge:completionHandler: in its WKNavigationDelegate.
Internal clients can implement _webView:canAuthenticateAgainstProtectionSpace:
and Safari uses canHandleHTTPSServerTrustEvaluation, so it will be unaffected.
2016-06-29 Beth Dakin <bdakin@apple.com>
Delete WKElementInfo since it's not used
https://bugs.webkit.org/show_bug.cgi?id=159265
Reviewed by Sam Weinig.
* Shared/API/Cocoa/WebKit.h:
* UIProcess/API/Cocoa/WKElementInfo.h: Removed.
* UIProcess/API/Cocoa/WKElementInfo.mm: Removed.
* UIProcess/API/Cocoa/WKElementInfoInternal.h: Removed.
* UIProcess/API/Cocoa/WKPreviewElementInfo.h:
* UIProcess/API/Cocoa/WKPreviewElementInfo.mm:
(-[WKPreviewElementInfo _initWithLinkURL:]):
(-[WKPreviewElementInfo copyWithZone:]):
(-[WKPreviewElementInfo linkURL]):
* UIProcess/API/Cocoa/WKPreviewElementInfoInternal.h:
* UIProcess/API/Cocoa/_WKContextMenuElementInfo.h:
* UIProcess/API/Cocoa/_WKContextMenuElementInfo.mm:
(-[_WKContextMenuElementInfo copyWithZone:]):
* WebKit2.xcodeproj/project.pbxproj:
2016-06-29 Jeremy Jones <jeremyj@apple.com>
Replace MPAudioVideoRoutingActionSheet with MPAVRoutingSheet.
https://bugs.webkit.org/show_bug.cgi?id=159161
<rdar://problem/26017691>
Reviewed by Sam Weinig.
MPAudioVideoRoutingActionSheet is being replaced by MPAVRoutingSheet,
with only minor changes to the interface.
* UIProcess/ios/forms/WKAirPlayRoutePicker.mm:
(-[WKAirPlayRoutePicker dealloc]):
(-[WKAirPlayRoutePicker showAirPlayPickerIPhone:]):
2016-06-29 Carlos Garcia Campos <cgarcia@igalia.com>
Too much duplicated code in LayerTreeHosts implementations
https://bugs.webkit.org/show_bug.cgi?id=159144
Reviewed by Žan Doberšek.
There's some code common and duplicated in all current LayerTreeHosts implementations (Gtk, Coordinated, and
ThreadedCoordinated). The thing is even worse in the case of ThreadedCoordinated and Coordinated, where the
former is actually a special case of the later, and it seems like code was copy pasted and then modified to add
ThreadedCoordinated specific code. The problem of that approach, apart from the code duplication, is that common
parts end up diverging too. This patch moves the common parts to the base class LayerTreeHost and makes
ThreadedCoordinatedLayerTreeHost inherit from CoordinatedLayerTreeHost, to share the common code and simply add
the specific one.
* PlatformGTK.cmake:
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h:
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::CoordinatedLayerTreeHost):
(WebKit::CoordinatedLayerTreeHost::scheduleLayerFlush):
(WebKit::CoordinatedLayerTreeHost::setViewOverlayRootLayer):
(WebKit::CoordinatedLayerTreeHost::setRootCompositingLayer):
(WebKit::CoordinatedLayerTreeHost::invalidate):
(WebKit::CoordinatedLayerTreeHost::sizeDidChange):
(WebKit::CoordinatedLayerTreeHost::layerFlushTimerFired):
(WebKit::CoordinatedLayerTreeHost::commitSceneState):
(WebKit::CoordinatedLayerTreeHost::createCoordinatedSurface):
(WebKit::CoordinatedLayerTreeHost::cancelPendingLayerFlush): Deleted.
(WebKit::CoordinatedLayerTreeHost::forceRepaint): Deleted.
(WebKit::CoordinatedLayerTreeHost::forceRepaintAsync): Deleted.
(WebKit::CoordinatedLayerTreeHost::didFlushRootLayer): Deleted.
(WebKit::CoordinatedLayerTreeHost::deviceOrPageScaleFactorChanged): Deleted.
(WebKit::CoordinatedLayerTreeHost::pageBackgroundTransparencyChanged): Deleted.
(WebKit::CoordinatedLayerTreeHost::graphicsLayerFactory): Deleted.
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:
(WebKit::ThreadedCoordinatedLayerTreeHost::ThreadedCoordinatedLayerTreeHost):
(WebKit::ThreadedCoordinatedLayerTreeHost::deviceOrPageScaleFactorChanged):
(WebKit::ThreadedCoordinatedLayerTreeHost::sizeDidChange):
(WebKit::ThreadedCoordinatedLayerTreeHost::setVisibleContentsRect):
(WebKit::ThreadedCoordinatedLayerTreeHost::commitSceneState):
(WebKit::ThreadedCoordinatedLayerTreeHost::create): Deleted.
(WebKit::ThreadedCoordinatedLayerTreeHost::scrollNonCompositedContents): Deleted.
(WebKit::ThreadedCoordinatedLayerTreeHost::contentsSizeChanged): Deleted.
(WebKit::ThreadedCoordinatedLayerTreeHost::didChangeViewportProperties): Deleted.
(WebKit::ThreadedCoordinatedLayerTreeHost::didScaleFactorChanged): Deleted.
(WebKit::ThreadedCoordinatedLayerTreeHost::setNativeSurfaceHandleForCompositing): Deleted.
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
* WebProcess/WebPage/DrawingArea.h:
(WebKit::DrawingArea::layerHostDidFlushLayers):
* WebProcess/WebPage/DrawingAreaImpl.h:
* WebProcess/WebPage/LayerTreeHost.cpp:
(WebKit::LayerTreeHost::~LayerTreeHost):
(WebKit::LayerTreeHost::setLayerFlushSchedulingEnabled):
(WebKit::LayerTreeHost::pauseRendering):
(WebKit::LayerTreeHost::resumeRendering):
(WebKit::LayerTreeHost::invalidate):
* WebProcess/WebPage/LayerTreeHost.h:
(WebKit::LayerTreeHost::layerTreeContext):
(WebKit::LayerTreeHost::setShouldNotifyAfterNextScheduledLayerFlush):
(WebKit::LayerTreeHost::setNonCompositedContentsNeedDisplay):
(WebKit::LayerTreeHost::setNonCompositedContentsNeedDisplayInRect):
(WebKit::LayerTreeHost::scrollNonCompositedContents):
(WebKit::LayerTreeHost::graphicsLayerFactory):
(WebKit::LayerTreeHost::contentsSizeChanged):
(WebKit::LayerTreeHost::didChangeViewportProperties):
(WebKit::LayerTreeHost::setNativeSurfaceHandleForCompositing):
(WebKit::LayerTreeHost::setViewOverlayRootLayer):
(WebKit::LayerTreeHost::forceRepaintAsync): Deleted.
* WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
(WebKit::LayerTreeHostGtk::invalidate):
(WebKit::LayerTreeHostGtk::setViewOverlayRootLayer):
(WebKit::LayerTreeHostGtk::LayerTreeHostGtk): Deleted.
(WebKit::LayerTreeHostGtk::setRootCompositingLayer): Deleted.
(WebKit::LayerTreeHostGtk::setNonCompositedContentsNeedDisplay): Deleted.
(WebKit::LayerTreeHostGtk::scrollNonCompositedContents): Deleted.
(WebKit::LayerTreeHostGtk::setNativeSurfaceHandleForCompositing): Deleted.
* WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
2016-06-28 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r202586 and r202595.
https://bugs.webkit.org/show_bug.cgi?id=159247
These changes broke the iOS build (Requested by ryanhaddad on
#webkit).
Reverted changesets:
"Keep track of when a WKWebView is blank before the initial
non-empty layout"
https://bugs.webkit.org/show_bug.cgi?id=159217
http://trac.webkit.org/changeset/202586
"Try to fix the build."
http://trac.webkit.org/changeset/202595
2016-06-28 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r202580.
https://bugs.webkit.org/show_bug.cgi?id=159245
Caused all WKTR tests to fail on GuardMalloc and Production
only for unknown reasons, investigating offline. (Requested by
brrian on #webkit).
Reverted changeset:
"RunLoop::Timer should use constructor templates instead of
class templates"
https://bugs.webkit.org/show_bug.cgi?id=159153
http://trac.webkit.org/changeset/202580
2016-06-28 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r202598.
https://bugs.webkit.org/show_bug.cgi?id=159244
broke the build. (Requested by keith_miller on #webkit).
Reverted changeset:
"Try to fix the build."
http://trac.webkit.org/changeset/202598
2016-06-28 Tim Horton <timothy_horton@apple.com>
Try to fix the build.
* UIProcess/API/Cocoa/WKWebView.mm:
(convertSystemLayoutDirection):
(-[WKWebView _setIsBlankBeforeFirstNonEmptyLayout:]):
(-[WKWebView _initializeWithConfiguration:]):
* UIProcess/API/Cocoa/WKWebViewInternal.h:
2016-06-28 Tim Horton <timothy_horton@apple.com>
Try to fix the build.
* UIProcess/API/Cocoa/WKWebView.mm:
* UIProcess/API/Cocoa/WKWebViewInternal.h:
2016-06-28 Tim Horton <timothy_horton@apple.com>
Keep track of when a WKWebView is blank before the initial non-empty layout
https://bugs.webkit.org/show_bug.cgi?id=159217
<rdar://problem/26071766>
Reviewed by Beth Dakin.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
(-[WKWebView _setIsBlankBeforeFirstNonEmptyLayout:]):
(-[WKWebView _didFirstVisuallyNonEmptyLayoutForMainFrame]):
* UIProcess/API/Cocoa/WKWebViewInternal.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::didFirstVisuallyNonEmptyLayoutForMainFrame):
2016-06-28 Anders Carlsson <andersca@apple.com>
PaymentMerchantSession should wrap a PKPaymentMerchantSession
https://bugs.webkit.org/show_bug.cgi?id=159218
rdar://problem/26872118
Reviewed by Tim Horton.
* Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
(IPC::ArgumentCoder<WebCore::PaymentMerchantSession>::encode):
(IPC::ArgumentCoder<WebCore::PaymentMerchantSession>::decode):
Use NSCoder.
* UIProcess/ApplePay/WebPaymentCoordinatorProxy.h:
PaymentMerchantSession is now a class.
* UIProcess/ApplePay/WebPaymentCoordinatorProxy.messages.in:
PaymentMerchantSession is now a class.
* UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
(WebKit::WebPaymentCoordinatorProxy::platformCompleteMerchantValidation):
Just get the underlying PKPaymentMerchantSession from the PaymentMerchantSession object.
(WebKit::toPKPaymentMerchantSession): Deleted.
2016-06-28 Brian Burg <bburg@apple.com>
RunLoop::Timer should use constructor templates instead of class templates
https://bugs.webkit.org/show_bug.cgi?id=159153
Reviewed by Alex Christensen.
Remove the RunLoop::Timer class template argument, and pass its constructor
a reference to `this` instead of a pointer to `this`.
* NetworkProcess/Downloads/soup/DownloadSoup.cpp:
* Platform/IPC/mac/ConnectionMac.mm:
(IPC::ConnectionTerminationWatchdog::ConnectionTerminationWatchdog):
* PluginProcess/PluginControllerProxy.cpp:
(WebKit::PluginControllerProxy::PluginControllerProxy):
* PluginProcess/PluginControllerProxy.h:
* PluginProcess/PluginProcess.cpp:
(WebKit::PluginProcess::PluginProcess):
* PluginProcess/PluginProcess.h:
* Shared/ChildProcess.cpp:
(WebKit::ChildProcess::ChildProcess):
* Shared/ChildProcess.h:
* Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h:
* UIProcess/API/Cocoa/APISerializedScriptValueCocoa.mm:
(API::SharedJSContext::SharedJSContext):
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(_WebKitWebViewBasePrivate::_WebKitWebViewBasePrivate):
* UIProcess/DrawingAreaProxy.cpp:
(WebKit::DrawingAreaProxy::DrawingAreaProxy):
* UIProcess/DrawingAreaProxy.h:
* UIProcess/DrawingAreaProxyImpl.cpp:
(WebKit::DrawingAreaProxyImpl::DrawingAreaProxyImpl):
* UIProcess/DrawingAreaProxyImpl.h:
* UIProcess/Plugins/gtk/PluginInfoCache.cpp:
(WebKit::PluginInfoCache::PluginInfoCache):
* UIProcess/Plugins/gtk/PluginInfoCache.h:
* UIProcess/ProcessThrottler.cpp:
(WebKit::ProcessThrottler::ProcessThrottler):
* UIProcess/ProcessThrottler.h:
* UIProcess/ResponsivenessTimer.cpp:
(WebKit::ResponsivenessTimer::ResponsivenessTimer):
* UIProcess/ResponsivenessTimer.h:
* UIProcess/ViewGestureController.cpp:
(WebKit::ViewGestureController::ViewGestureController):
(WebKit::ViewGestureController::SnapshotRemovalTracker::SnapshotRemovalTracker):
* UIProcess/VisitedLinkStore.cpp:
(WebKit::VisitedLinkStore::VisitedLinkStore):
* UIProcess/VisitedLinkStore.h:
* UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::WebInspectorProxy):
* UIProcess/WebInspectorProxy.h:
* UIProcess/WebProcessPool.cpp:
(WebKit::m_hiddenPageThrottlingTimer):
* UIProcess/WebProcessPool.h:
* UIProcess/gtk/GestureController.cpp:
(WebKit::GestureController::DragGesture::DragGesture):
(WebKit::GestureController::ZoomGesture::ZoomGesture):
* UIProcess/gtk/GestureController.h:
* UIProcess/gtk/WebPopupMenuProxyGtk.cpp:
(WebKit::WebPopupMenuProxyGtk::WebPopupMenuProxyGtk):
* UIProcess/gtk/WebPopupMenuProxyGtk.h:
* UIProcess/mac/ViewGestureController.h:
* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::WebLoaderStrategy):
* WebProcess/Network/WebLoaderStrategy.h:
* WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
(WebKit::NPRuntimeObjectMap::NPRuntimeObjectMap):
* WebProcess/Plugins/Netscape/NPRuntimeObjectMap.h:
* WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
(WebKit::NetscapePlugin::NetscapePlugin):
(WebKit::NetscapePlugin::Timer::Timer):
* WebProcess/Plugins/Netscape/NetscapePlugin.h:
* WebProcess/Plugins/Netscape/NetscapePluginStream.cpp:
(WebKit::NetscapePluginStream::NetscapePluginStream):
* WebProcess/Plugins/Netscape/NetscapePluginStream.h:
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::PluginView):
* WebProcess/Plugins/PluginView.h:
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp:
(WebKit::CoordinatedDrawingArea::CoordinatedDrawingArea):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h:
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:
(WebKit::ThreadedCoordinatedLayerTreeHost::ThreadedCoordinatedLayerTreeHost):
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::DrawingAreaImpl):
* WebProcess/WebPage/DrawingAreaImpl.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
(WebKit::LayerTreeHostGtk::RenderFrameScheduler::RenderFrameScheduler):
* WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
2016-06-28 Chris Dumez <cdumez@apple.com>
[WK2] Add some logging related to NetworkProcess suspension
https://bugs.webkit.org/show_bug.cgi?id=159178
Reviewed by Andreas Kling.
Add some logging related to NetworkProcess suspension to help debug
suspension issues.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::prepareToSuspend):
(WebKit::NetworkProcess::cancelPrepareToSuspend):
(WebKit::NetworkProcess::processDidResume):
2016-06-28 Chris Dumez <cdumez@apple.com>
Add some more UIProcess-side logging related to process assertions
https://bugs.webkit.org/show_bug.cgi?id=159188
Reviewed by Andreas Kling.
Add some more UIProcess-side logging related to process assertions
to help debug process suspension issues.
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::fetchWebsiteData):
(WebKit::NetworkProcessProxy::deleteWebsiteData):
(WebKit::NetworkProcessProxy::deleteWebsiteDataForOrigins):
* UIProcess/ProcessThrottler.cpp:
(WebKit::ProcessThrottler::updateAssertionNow):
(WebKit::ProcessThrottler::updateAssertion):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::updateActivityToken):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::fetchWebsiteData):
(WebKit::WebProcessProxy::deleteWebsiteData):
(WebKit::WebProcessProxy::deleteWebsiteDataForOrigins):
(WebKit::WebProcessProxy::didSetAssertionState):
2016-06-28 Chris Dumez <cdumez@apple.com>
[WK2] Do not suppress navigation snapshotting on session restore if we are not navigating right away
https://bugs.webkit.org/show_bug.cgi?id=159216
<rdar://problem/27058360>
Reviewed by Andreas Kling.
Do not suppress navigation snapshotting on session restore if we are not navigating
right away. The snapshot we already have may be outdated by the time we actually
navigate (e.g. Because the user scrolled) so we don't want to suppress snapshotting
in this case.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::restoreFromSessionState):
2016-06-27 Anders Carlsson <andersca@apple.com>
WebKit::WebPaymentCoordinator leak
https://bugs.webkit.org/show_bug.cgi?id=159168
rdar://problem/26929772
Reviewed by Beth Dakin.
Update for WebCore changes.
* WebProcess/ApplePay/WebPaymentCoordinator.cpp:
(WebKit::WebPaymentCoordinator::paymentCoordinatorDestroyed):
(WebKit::WebPaymentCoordinator::mainFrameDestroyed): Deleted.
* WebProcess/ApplePay/WebPaymentCoordinator.h:
2016-06-27 Simon Fraser <simon.fraser@apple.com>
Fix TestWebKitAPI crash introduced in r202532.
WebPageProxy::forceRepaint() could trigger a call to the didForceRepaintCallback()
after the WebPageProxy had been invalidated, causing a null de-ref of m_drawingArea.
Fix by checking for error and isValid().
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::forceRepaint):
2016-06-27 Simon Fraser <simon.fraser@apple.com>
[iOS] Make DumpRenderTree and WebKitTestRunner in the simulator use render server snapshotting
https://bugs.webkit.org/show_bug.cgi?id=159077
Reviewed by Tim Horton.
Fix WebPageProxy::forceRepaint() to correctly wait for the next commit from the web process,
which is necessary for UI-side compositing.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::forceRepaint):
2016-06-27 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: When modifying sessionStorage, localStorage gets updated
https://bugs.webkit.org/show_bug.cgi?id=159181
<rdar://problem/27043447>
Reviewed by Timothy Hatcher.
* WebProcess/Storage/StorageAreaMap.cpp:
(WebKit::StorageAreaMap::dispatchSessionStorageEvent):
This should be dispatching storage events.
2016-06-27 Alex Christensen <achristensen@webkit.org>
Fix flakiness on Sierra after r202511
https://bugs.webkit.org/show_bug.cgi?id=159071
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSession::clearCredentials):
Replacing the NSURLSessions immediately caused assertions because the tasks are not always all stopped immediately when tearing down a test.
Stopping an NSURLSession needs to be done asynchronously. I'll try a different testing technique for r202511.
2016-06-27 Alex Christensen <achristensen@webkit.org>
Send canAuthenticateAgainstProtectionSpace calls from NetworkProcess directly to UIProcess
https://bugs.webkit.org/show_bug.cgi?id=159071
Reviewed by Brady Eidson.
When CFNetwork asks the NetworkProcess if we can authenticate against this protection space, we used to ask
the WebProcess, which would call ResourceLoader::canAuthenticateAgainstProtectionSpace which would ask the FrameLoaderClient,
which would synchronously ask the UIProcess. Going directly from the NetworkProcess to the UIProcess gives us many advantages:
1. It reduces IPC because we ask fewer loads.
2. It reduces synchronous IPC because we are not using the same code path as WebKit1 any more.
3. It allows us to check if the NetworkProcess is still valid in sendToNetworkingProcess, possibly fixing rdar://problem/26825408
4. It allows us to ask the UIProcess when we get authentication challenges for synchronous xhr.
I added a new test http/tests/xmlhttprequest/sync-delegate-callbacks.html to verify the change in behavior of synchronous xhr.
In order to make this test not flaky on platforms using NSURLSession, we clear the NSURLSessions used by WebKitTestRunner
to make sure that the TLS session cache is cleared so we get NSURLAuthenticationChallenges corresponding to the NSURLConnection
canAuthenticateAgainstProtectionSpace callback when we initiate the first HTTPS connection to 127.0.0.1 with this session.
* NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::didReceiveChallenge):
(WebKit::NetworkLoad::didReceiveResponseNetworkSession):
(WebKit::NetworkLoad::canAuthenticateAgainstProtectionSpaceAsync):
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::clearCachedCredentials):
(WebKit::NetworkProcess::ensurePrivateBrowsingSession):
(WebKit::NetworkProcess::cancelDownload):
(WebKit::NetworkProcess::canAuthenticateAgainstProtectionSpace):
(WebKit::NetworkProcess::continueCanAuthenticateAgainstProtectionSpace):
(WebKit::NetworkProcess::continueCanAuthenticateAgainstProtectionSpaceDownload):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::canAuthenticateAgainstProtectionSpaceAsync):
* NetworkProcess/NetworkResourceLoader.h:
* NetworkProcess/NetworkResourceLoader.messages.in:
* NetworkProcess/NetworkSession.h:
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSession::networkStorageSession):
(WebKit::NetworkSession::clearCredentials):
(WebKit::NetworkSession::dataTaskForIdentifier):
* UIProcess/Downloads/DownloadProxy.cpp:
(WebKit::DownloadProxy::canAuthenticateAgainstProtectionSpace):
(WebKit::DownloadProxy::willSendRequest):
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::logSampledDiagnosticMessageWithValue):
(WebKit::NetworkProcessProxy::canAuthenticateAgainstProtectionSpace):
(WebKit::NetworkProcessProxy::sendProcessWillSuspendImminently):
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/Network/NetworkProcessProxy.messages.in:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::backForwardClear):
(WebKit::WebPageProxy::canAuthenticateAgainstProtectionSpace):
(WebKit::WebPageProxy::didReceiveAuthenticationChallenge):
(WebKit::WebPageProxy::canAuthenticateAgainstProtectionSpaceInFrame): Deleted.
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::didReceiveResource):
(WebKit::WebResourceLoader::isAlwaysOnLoggingAllowed):
(WebKit::WebResourceLoader::canAuthenticateAgainstProtectionSpace): Deleted.
* WebProcess/Network/WebResourceLoader.h:
* WebProcess/Network/WebResourceLoader.messages.in:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::canAuthenticateAgainstProtectionSpace):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::clearCachedCredentials):
(WebKit::WebProcess::focusedWebPage):
2016-06-27 Anders Carlsson <andersca@apple.com>
Discounted items are displayed with positive values
https://bugs.webkit.org/show_bug.cgi?id=159160
rdar://problem/26980772
Reviewed by Dean Jackson.
* UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
(WebKit::toDecimalNumber):
Add new helper function. Correctly compute the mantissa.
(WebKit::toPKPaymentSummaryItem):
(WebKit::toPKShippingMethod):
Use toDecimalNumber.
2016-06-27 Miguel Gomez <magomez@igalia.com>
[GTK][EFL] Build with threaded compositor enabled is broken
https://bugs.webkit.org/show_bug.cgi?id=159138
Reviewed by Carlos Garcia Campos.
Replace the usage of NoncopyableFunction with Function, to follow the changes in r202439.
* Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:
(WebKit::CompositingRunLoop::performTask):
(WebKit::CompositingRunLoop::performTaskSync):
* Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h:
2016-06-24 Brian Burg <bburg@apple.com>
REGRESSION(r201171): CRASH at WebKit::WebInspectorProxy::open() + 31 when running inspector layout tests
https://bugs.webkit.org/show_bug.cgi?id=159070
<rdar://problem/26768628>
Reviewed by Joseph Pecoraro.
We have been seeing a few crashes underneath WebInspectorProxy::bringToFront() on the bots.
Previously, this code didn't use m_inspectorPage so there was nothing to null-dereference.
However, it doesn't make sense that we would hit the null dereference here:
- The only caller of bringToFront() on the WebProcess side is InspectorController::show().
It only tries to bring to front if there is already a local frontend connection, which
shouldn't be the case if m_inspectorPage is null.
- It's guarded by m_underTest, which should have been set to true in createInspectorPage().
These clues lead me to believe that we may be improperly tearing down the inspector between tests.
For example, it seems possible that a local frontend connection is not being torn down, so
InspectorController never asks to create a inspector page when the next test calls showWebInspector.
Since this crash is not easy to reproduce, we don't have much to go on. For now, this patch
adds an early return in the case where m_inspectorPage is null when calling open().
* UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::open):
2016-06-24 Jer Noble <jer.noble@apple.com>
Vimeo.com videos do not get playback controls
https://bugs.webkit.org/show_bug.cgi?id=159082
<rdar://problem/26586630>
Reviewed by Eric Carlson.
When the HasAudioOrVideo media state changes, let the video controls recalculate
by calling videoControlsManagerDidChange().
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::isPlayingMediaDidChange):
2016-06-24 Beth Dakin <bdakin@apple.com>
Include enclosingListType in EditorState
https://bugs.webkit.org/show_bug.cgi?id=159102
-and corresponding-
rdar://problem/26932490
Reviewed by Enrica Casucci.
* Shared/EditorState.cpp:
(WebKit::EditorState::PostLayoutData::encode):
(WebKit::EditorState::PostLayoutData::decode):
* Shared/EditorState.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::editorState):
2016-06-24 Anders Carlsson <andersca@apple.com>
Inline more of the Apple Pay source code
https://bugs.webkit.org/show_bug.cgi?id=159099
Reviewed by Andreas Kling.
* Shared/Cocoa/WebCoreArgumentCodersCocoa.h: Removed.
* Shared/WebCoreArgumentCoders.h:
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _applePayCapabilityDisclosureAllowed]):
(-[WKPreferences _setApplePayCapabilityDisclosureAllowed:]):
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _applePayEnabled]):
(-[WKWebViewConfiguration _setApplePayEnabled:]):
(-[WKWebViewConfiguration _paymentsEnabled]):
(-[WKWebViewConfiguration _setPaymentsEnabled:]):
* UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::reattachToWebProcess):
(WebKit::WebPageProxy::resetState):
* UIProcess/WebPageProxy.h:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::m_userInterfaceLayoutDirection):
(WebKit::WebPage::updatePreferences):
2016-06-21 Anders Carlsson <andersca@apple.com>
Rename NoncopyableFunction to Function
https://bugs.webkit.org/show_bug.cgi?id=158354
Reviewed by Chris Dumez.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::fetchDiskCacheEntries):
(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::clearDiskCacheEntries):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::traverse):
* NetworkProcess/cache/NetworkCache.h:
* NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:
(WebKit::NetworkCache::runTaskInQueue):
* NetworkProcess/cache/NetworkCacheStorage.h:
2016-06-22 Anders Carlsson <andersca@apple.com>
Move WebKit2 Apple Pay code to the open source repository
https://bugs.webkit.org/show_bug.cgi?id=159041
Reviewed by Sam Weinig.
* DerivedSources.make:
* Shared/Cocoa/WebCoreArgumentCodersCocoa.h: Added.
* Shared/Cocoa/WebCoreArgumentCodersCocoa.mm: Added.
* UIProcess/ApplePay/WebPaymentCoordinatorProxy.cpp: Added.
* UIProcess/ApplePay/WebPaymentCoordinatorProxy.h: Added.
* UIProcess/ApplePay/WebPaymentCoordinatorProxy.messages.in: Added.
* UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.h: Added.
* UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm: Added.
* UIProcess/ApplePay/ios/WebPaymentCoordinatorProxyIOS.mm: Added.
* UIProcess/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm: Added.
* UIProcess/WebPageProxy.cpp:
* UIProcess/WebPageProxy.h:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/ApplePay/WebPaymentCoordinator.cpp: Added.
* WebProcess/ApplePay/WebPaymentCoordinator.h: Added.
* WebProcess/ApplePay/WebPaymentCoordinator.messages.in: Added.
2016-06-24 Chris Dumez <cdumez@apple.com>
[WK2] PageConfiguration.m_relatedPage keeps WebPageProxy alive after its WebView has been destroyed
https://bugs.webkit.org/show_bug.cgi?id=159080
<rdar://problem/26982642>
Reviewed by Anders Carlsson.
PageConfiguration.m_relatedPage keeps WebPageProxy alive after its WebView has been destroyed.
This leads to WebPageProxy object leaks when the client keeps chaining related views.
In this patch, we null our the PageConfiguration's relatedPage in WebPageProxy::close()
to break the chain and make sure we only keep alive 1 relatedPage rather than a chain of
them.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::close):
2016-06-24 Jer Noble <jer.noble@apple.com>
Playback controls refer to wrong element when playing multiple items in a page.
https://bugs.webkit.org/show_bug.cgi?id=159076
<rdar://problem/26953532>
Reviewed by Beth Dakin.
clearPlaybackControlsManager() no longer takes a parameter.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::clearPlaybackControlsManager):
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/cocoa/WebPlaybackSessionManager.h:
* WebProcess/cocoa/WebPlaybackSessionManager.mm:
(WebKit::WebPlaybackSessionManager::setUpPlaybackControlsManager): Make sure to removeClientForContext()
if the old context refers to a live media element.
(WebKit::WebPlaybackSessionManager::clearPlaybackControlsManager):
2016-06-24 Brady Eidson <beidson@apple.com>
IDB tests crashing attempting to register sandbox extensions for blob files.
https://bugs.webkit.org/show_bug.cgi?id=159094.
Reviewed by Sam Weinig.
Already tested by storage/indexeddb/modern/handle-user-delete.html
* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:
(WebKit::preregisterSandboxExtensionsIfNecessary): Check whether the IDBResultData actually contains
a getResult before trying to access it.
2016-06-23 Brady Eidson <beidson@apple.com>
Retrieving Blobs from IndexedDB using cursors fails in WK2 (Sandboxing)
https://bugs.webkit.org/show_bug.cgi?id=158991
Reviewed by Alex Christensen.
* CMakeLists.txt:
* WebKit2.xcodeproj/project.pbxproj:
* DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::getSandboxExtensionsForBlobFiles):
(WebKit::DatabaseProcess::didGetSandboxExtensionsForBlobFiles):
* DatabaseProcess/DatabaseProcess.h:
* DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:
(WebKit::WebIDBConnectionToClient::handleGetResult): Handle creation of sandbox extensions
for any result that might contain blob values.
(WebKit::WebIDBConnectionToClient::didGetRecord):
(WebKit::WebIDBConnectionToClient::didOpenCursor):
(WebKit::WebIDBConnectionToClient::didIterateCursor):
* DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h:
* Shared/Databases/IndexedDB/WebIDBResult.cpp: Added.
(WebKit::WebIDBResult::encode):
(WebKit::WebIDBResult::decode):
* Shared/Databases/IndexedDB/WebIDBResult.h: Added.
(WebKit::WebIDBResult::WebIDBResult):
(WebKit::WebIDBResult::resultData):
(WebKit::WebIDBResult::handles):
* Shared/SandboxExtension.h: Make SandboxExtension handles moveable.
* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:
(WebKit::preregisterSandboxExtensionsIfNecessary): Register sandbox extensions with the
Networking process for any result that might contain blob values.
(WebKit::WebIDBConnectionToServer::didGetRecord):
(WebKit::WebIDBConnectionToServer::didOpenCursor):
(WebKit::WebIDBConnectionToServer::didIterateCursor):
(WebKit::WebIDBConnectionToServer::didGetRecordWithSandboxExtensions): Deleted.
* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.messages.in:
2016-06-23 Alex Christensen <achristensen@webkit.org>
Remove unused didCancelAuthenticationChallenge
https://bugs.webkit.org/show_bug.cgi?id=158819
Reviewed by David Kilzer.
* NetworkProcess/Downloads/mac/DownloadMac.mm:
(-[WKDownloadAsDelegate download:didCancelAuthenticationChallenge:]): Deleted.
* NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::didCancelAuthenticationChallenge): Deleted.
* NetworkProcess/NetworkLoad.h:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidCancelAuthenticationChallenge): Deleted.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
2016-06-23 Benjamin Poulain <benjamin@webkit.org>
Specialize synchronous event tracking per event type
https://bugs.webkit.org/show_bug.cgi?id=158826
Reviewed by Simon Fraser.
* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<EventTrackingRegions>::encode):
(IPC::ArgumentCoder<EventTrackingRegions>::decode):
* UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
(WebKit::RemoteScrollingCoordinatorProxy::eventTrackingTypeForPoint):
* UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::mergeTrackingTypes):
(WebKit::WebPageProxy::updateTouchEventTracking):
(WebKit::WebPageProxy::touchEventTrackingType):
(WebKit::WebPageProxy::handleTouchEventSynchronously):
(WebKit::WebPageProxy::handleTouchEventAsynchronously):
(WebKit::WebPageProxy::handleTouchEvent):
(WebKit::WebPageProxy::resetState):
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::TouchEventTracking::isTrackingAnything):
(WebKit::WebPageProxy::TouchEventTracking::reset):
2016-06-23 Said Abou-Hallawa <sabouhallawa@apple.com>
requestFrameAnimation() callback timestamp should be very close to Performance.now()
https://bugs.webkit.org/show_bug.cgi?id=159038
Reviewed by Simon Fraser.
* WebProcess/WebPage/Cocoa/RemoteLayerTreeDisplayRefreshMonitor.mm:
(WebKit::RemoteLayerTreeDisplayRefreshMonitor::didUpdateLayers):
2016-06-23 Chris Dumez <cdumez@apple.com>
[iOS] A WebPageProxy in closed state should not be allowed to hold a process assertion
https://bugs.webkit.org/show_bug.cgi?id=159068
<rdar://problem/17665473>
Reviewed by Tim Horton.
A WebPageProxy in closed state should not be allowed to hold a process assertion. It
currently happens that WebPageProxy::close() gets called but that the WebPageProxy is
kept alive by Safari (e.g. In case of top-hit preloading). In such cases, we fail to
release the foreground process assertion that the WebPageProxy holds.
We should clear the foreground process assertion that the WebPageProxy holds as soon
as WebPageProxy::close() is called.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::close):
2016-06-23 Brent Fulgham <bfulgham@apple.com>
[OS X][WK2] Expand sandbox for new mach endpoints
https://bugs.webkit.org/show_bug.cgi?id=159040
<rdar://problem/25238336>
Reviewed by Alexey Proskuryakov.
Grant the WebContent and Networking processes the mach lookup capability for
various Security-related mach endpoints..
* NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
* WebProcess/com.apple.WebProcess.sb.in:
2016-06-23 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r201194.
https://bugs.webkit.org/show_bug.cgi?id=159059
Not needed for iOS (Requested by bfulgham on #webkit).
Reverted changeset:
"[OS X][WK2] Expand sandbox for new mach endpoints"
https://bugs.webkit.org/show_bug.cgi?id=157919
http://trac.webkit.org/changeset/201194
2016-06-23 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.13.2 release.
* gtk/NEWS: Add release notes for 2.13.2.
2016-06-22 Carlos Garcia Campos <cgarcia@igalia.com>
REGRESSION(r201880): WebSockets based remote inspector is broken since r201880
https://bugs.webkit.org/show_bug.cgi?id=158613
Reviewed by Michael Catanzaro.
In r201880 SocketStreamHandleClient was modified to receive references instead of
pointers. WebSocketServerConnection also implements SocketStreamHandleClient but since it's doesn't use
override, it was unnoticed and not updated, so we ended up using the default empty implementation instead of
the WebSocketServerConnection one.
* UIProcess/InspectorServer/WebSocketServerConnection.cpp:
(WebKit::WebSocketServerConnection::WebSocketServerConnection):
(WebKit::WebSocketServerConnection::setSocketHandle):
(WebKit::WebSocketServerConnection::shutdownNow):
(WebKit::WebSocketServerConnection::didCloseSocketStream):
(WebKit::WebSocketServerConnection::didReceiveSocketStreamData):
(WebKit::WebSocketServerConnection::didUpdateBufferedAmount):
(WebKit::WebSocketServerConnection::didFailSocketStream): Deleted.
* UIProcess/InspectorServer/WebSocketServerConnection.h:
2016-06-22 Brent Fulgham <bfulgham@apple.com>
[iOS][WK2] Expand sandbox to read voice services preferences
https://bugs.webkit.org/show_bug.cgi?id=159046
<rdar://problem/26926722>
Reviewed by Alexey Proskuryakov.
Expand the sandbox to permit read-only access to voice services preferences.
* Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
2016-06-22 Sam Weinig <sam@webkit.org>
Add SPI to allow creating a WKCertificateInfoRef from a SecTrustRef
https://bugs.webkit.org/show_bug.cgi?id=159025
Reviewed by Tim Horton.
* Shared/API/c/mac/WKCertificateInfoMac.h:
* Shared/API/c/mac/WKCertificateInfoMac.mm:
(WKCertificateInfoCreateWithServerTrust):
2016-06-22 Brady Eidson <beidson@apple.com>
DatabaseProcess doesn't handle WebProcesses going away uncleanly.
https://bugs.webkit.org/show_bug.cgi?id=158894
Reviewed by Alex Christensen.
* DatabaseProcess/DatabaseToWebProcessConnection.cpp:
(WebKit::DatabaseToWebProcessConnection::didClose):
* DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:
(WebKit::WebIDBConnectionToClient::disconnectedFromWebProcess): Actually unregister this connection
from the IDBServer so it can clean up.
(WebKit::WebIDBConnectionToClient::~WebIDBConnectionToClient):
2016-06-22 Chris Dumez <cdumez@apple.com>
Stop using PassRefPtr in ShareableResource
https://bugs.webkit.org/show_bug.cgi?id=159043
Reviewed by Alex Christensen.
Stop using PassRefPtr in ShareableResource.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::store):
* NetworkProcess/cache/NetworkCacheEntry.cpp:
(WebKit::NetworkCache::Entry::initializeShareableResourceHandleFromStorageRecord):
* Shared/ShareableResource.cpp:
(WebKit::shareableResourceDeallocate):
(WebKit::ShareableResource::wrapInSharedBuffer):
(WebKit::ShareableResource::Handle::tryWrapInSharedBuffer):
(WebKit::ShareableResource::create):
(WebKit::ShareableResource::map):
(WebKit::ShareableResource::ShareableResource):
* Shared/ShareableResource.h:
2016-06-17 Dean Jackson <dino@apple.com>
REGRESSION: Double tap to zoom does not work on yahoo finance
https://bugs.webkit.org/show_bug.cgi?id=158886
<rdar://problem/24917760>
Reviewed by Simon Fraser.
We shouldn't enable fast click on pages that have
had to shrink to fit. In other words, we should enable
double-tap-to-zoom if the page has already zoomed.
Test: fast/events/ios/viewport-shrink-to-fit-allows-double-tap.html
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _allowsDoubleTapGestures]):
2016-06-22 Brian Burg <bburg@apple.com>
Web Automation: Automation.inspectBrowsingContext should have an option to enable timeline auto-capturing
https://bugs.webkit.org/show_bug.cgi?id=159004
<rdar://problem/26931269>
Reviewed by Joseph Pecoraro.
Automation.inspectBrowsingContext was added to make it easier to hit breakpoints inside of
code evaluated using Automation.evaluateJavaScriptFunction. I recently changed the behavior
of this command to automatically start profiling the page as soon as the inspector attached
so that a full timeline recording could be obtained. However, starting a timeline recording
turns off the debugger, so this command is not so useful for debugging right now.
Add a new option, enableAutoCapturing, to the inspectBrowsingContext command. Don't toggle
profiling automatically unless this optional flag is present and set to true.
* UIProcess/Automation/Automation.json:
* UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::inspectBrowsingContext):
(WebKit::WebAutomationSession::inspectorFrontendLoaded): Deleted.
* UIProcess/Automation/WebAutomationSession.h:
2016-06-22 Tim Horton <timothy_horton@apple.com>
Mail snapshot has black webview in multitasking switcher
https://bugs.webkit.org/show_bug.cgi?id=159036
<rdar://problem/25972938>
Reviewed by Simon Fraser.
There is a window of time between an application going into the background
and SpringBoard's snapshotting mechanism completing where it is possible
(though difficult, timing-wise) for RemoteLayerBackingStoreCollection to
make still-needed surfaces volatile (and, even worse, for them to get emptied).
UIKit suggested instead waiting for the window context teardown notification,
which does indeed seem to fire after the snapshotting is complete.
This may have the convenient side effect of making the volatility timer
repeat fewer times in general, because it is now started closer to the
last time that the surfaces will be in-use.
* UIProcess/ApplicationStateTracker.h:
* UIProcess/ApplicationStateTracker.mm:
(WebKit::ApplicationStateTracker::ApplicationStateTracker):
(WebKit::ApplicationStateTracker::~ApplicationStateTracker):
(WebKit::ApplicationStateTracker::applicationDidFinishSnapshottingAfterEnteringBackground):
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WKContentView.mm:
(-[WKContentView didMoveToWindow]):
(-[WKContentView _applicationDidFinishSnapshottingAfterEnteringBackground]):
* UIProcess/ios/WKPDFView.mm:
(-[WKPDFView didMoveToWindow]):
(-[WKPDFView _applicationDidFinishSnapshottingAfterEnteringBackground]):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::applicationDidFinishSnapshottingAfterEnteringBackground):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::applicationDidEnterBackground):
(WebKit::WebPage::applicationDidFinishSnapshottingAfterEnteringBackground):
2016-06-22 Chris Dumez <cdumez@apple.com>
Add logging related to process assertions to help debug process suspension issues
https://bugs.webkit.org/show_bug.cgi?id=159001
Reviewed by Antti Koivisto.
Add logging related to process assertions to help debug process suspension issues.
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::didChangeIsLoading):
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::fetchWebsiteData):
(WebKit::NetworkProcessProxy::deleteWebsiteData):
(WebKit::NetworkProcessProxy::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcessProxy::setIsHoldingLockedFiles):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::updateActivityToken):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::setIsHoldingLockedFiles):
2016-06-21 Sam Weinig <sam@webkit.org>
WKWebView with no WKNavigationDelegate does not follow universal links
<rdar://problem/24374110>
https://bugs.webkit.org/show_bug.cgi?id=158997
Reviewed by Dan Bernstein.
API Test:
WKWebView.DefaultNavigationDelegate
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
When initializing the WKWebView, set a default navigation client.
2016-06-21 Chris Dumez <cdumez@apple.com>
Unreviewed, rolling out r202296.
Broke basic browsing in Safari
Reverted changeset:
"WKWebView with no WKNavigationDelegate does not follow
universal links"
https://bugs.webkit.org/show_bug.cgi?id=158997
http://trac.webkit.org/changeset/202296
2016-06-21 Anders Carlsson <andersca@apple.com>
Fix build.
* Configurations/FeatureDefines.xcconfig:
2016-06-21 Anders Carlsson <andersca@apple.com>
Begin moving the Apple Pay code to the open source repository
https://bugs.webkit.org/show_bug.cgi?id=158998
Reviewed by Tim Horton.
* Configurations/FeatureDefines.xcconfig:
Add ENABLE_APPLE_PAY.
2016-06-21 Said Abou-Hallawa <sabouhallawa@apple,com>
Add system tracing points for requestAnimationFrame() workflow
https://bugs.webkit.org/show_bug.cgi?id=158723
Reviewed by Simon Fraser.
Add trace points for requestAnimationFrame().
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
(WebKit::RemoteLayerTreeDrawingAreaProxy::didRefreshDisplay):
* WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:
(WebKit::RemoteLayerTreeContext::buildTransaction):
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::didUpdate):
(WebKit::RemoteLayerTreeDrawingArea::BackingStoreFlusher::flush):
2016-06-21 Sam Weinig <sam@webkit.org>
WKWebView with no WKNavigationDelegate does not follow universal links
<rdar://problem/24374110>
https://bugs.webkit.org/show_bug.cgi?id=158997
Reviewed by Dan Bernstein.
API Test:
WKWebView.DefaultNavigationDelegate
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
When initializing the WKWebView, set a default navigation client.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setLoaderClient):
Be sure to clear out a navigation client, if present, when setting a loader client,
as they are mutually exclusive.
2016-06-20 Simon Fraser <simon.fraser@apple.com>
Focus event dispatched in iframe causes parent document to scroll incorrectly
https://bugs.webkit.org/show_bug.cgi?id=158629
rdar://problem/26521616
Reviewed by Tim Horton.
Pass SelectionRevealMode::Reveal in existing code.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::centerSelectionInVisibleArea):
2016-06-21 Said Abou-Hallawa <sabouhallawa@apple,com>
[iOS][WK2] When an animation frame is missed, the UI process should immediately notify the Web process once a frame is committed
https://bugs.webkit.org/show_bug.cgi?id=158933
Reviewed by Simon Fraser.
When a frame is committed, the UI process schedules a CADisplayLink and waits until
the next didRefreshDisplay event is fired. This causes more delay in the scenario
where there are frames are dropped. didRefreshDisplay() should be called immediately
when commitLayerTree message is received and the last frame was dropped.
The fix is to have the CADisplayLink active all the times. It should be paused
only when we detect at least one frame is dropped. In this case we should not
send a message to the UI process since it has not sent the last requested LayerTree.
Also we should not waste the CPU time by scheduling a new CADisplayLink since we
have not processed the last event. We should resume CADisplayLink timer once a
commitLayerTree message is received.
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(-[WKOneShotDisplayLinkHandler pause]):
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
(WebKit::RemoteLayerTreeDrawingAreaProxy::didRefreshDisplay):
(-[WKOneShotDisplayLinkHandler displayLinkFired:]):
2016-06-21 Amir Alavi <aalavi@apple.com>
Upstream WKHTTPCookiesForURL from WebKitSystemInterface to OpenSource
https://bugs.webkit.org/show_bug.cgi?id=158967
Reviewed by Brent Fulgham.
* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface): Deleted.
2016-06-21 Dan Bernstein <mitz@apple.com>
Inlined some picture-in-picture code.
https://bugs.webkit.org/show_bug.cgi?id=158977
Reviewed by Eric Carlsson.
This code was written primarily by Ada Chan, and originally reviewed by Alex Christensen,
Anders Carlsson, Conrad Shultz, Dan Bernstein, Eric Carlson, Jer Noble, Jeremy Jones,
Jon Lee, Remy Demarest, and Zach Li.
* Shared/WebPreferencesStoreDefaultsAdditions.cpp:
Define and use DEFAULT_ALLOWS_PICTURE_IN_PICTURE_MEDIA_PLAYBACK.
* Shared/WebPreferencesStore.cpp:
(WebKit::defaults): Removed include of WebPreferencesStoreDefaultsAdditions.cpp now that the
default is defined correctly in WebPreferencesStoreDefaultsAdditions.cpp.
* UIProcess/API/C/WKPreferences.cpp: Inlined WKPreferencesAdditions.cpp.
* UIProcess/API/C/WKPreferencesRefPrivate.h: Ditto.
* WebProcess/cocoa/WebVideoFullscreenManager.mm: Inlined WebVideoFullscreenManagerSupportsVideoFullscreenMac.mm.
2016-06-21 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Web view is not redrawn when reparented in force compositing mode
https://bugs.webkit.org/show_bug.cgi?id=158689
Reviewed by Žan Doberšek.
When the web view is reparented in accelerated compositing mode, the UI process always exits the accelerated
mode when the view is unrealized, because the native surface handle for compositing is destroyed, but it doesn't
enter again when the view is realized and a new native surface handle for compositing is used. This happens
because the UI and Web processes are not in sync regarding whether the page is in accelerated compositing or
not. The Web process never exits accelerated mode when compositing mode is forced, but the UI process doesn't
check that setting at all.
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseResizeRedirectedWindow): Helper function to ensure the redirected window size is properly updated.
(webkitWebViewBaseRealize): Resize the redirected window if the view is already in AC mode when realized.
(webkitWebViewRenderAcceleratedCompositingResults): Use webkitWebViewBaseResizeRedirectedWindow().
(webkitWebViewBaseSizeAllocate): Ditto.
(webkitWebViewBaseWillEnterAcceleratedCompositingMode): Ditto.
* UIProcess/DrawingAreaProxyImpl.cpp:
(WebKit::DrawingAreaProxyImpl::alwaysUseCompositing): Return true in force compositing mode.
(WebKit::DrawingAreaProxyImpl::enterAcceleratedCompositingMode): Update assert.
(WebKit::DrawingAreaProxyImpl::exitAcceleratedCompositingMode): Do not exit AC mode compositing mode is always enabled.
* UIProcess/DrawingAreaProxyImpl.h:
(WebKit::DrawingAreaProxyImpl::isInAcceleratedCompositingMode): Return true also in force compositing mode.
* UIProcess/gtk/RedirectedXCompositeWindow.cpp:
(WebKit::RedirectedXCompositeWindow::surface): Ensure we never return an uninitialized surface to prevent
rendering artifacts in in force compositing mode when waiting for the first update on the redirected window.
2016-06-20 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r202243.
https://bugs.webkit.org/show_bug.cgi?id=158972
Broke Windows build and iOS tests (Requested by ap on
#webkit).
Reverted changeset:
"Focus event dispatched in iframe causes parent document to
scroll incorrectly"
https://bugs.webkit.org/show_bug.cgi?id=158629
http://trac.webkit.org/changeset/202243
2016-06-20 Brent Fulgham <bfulgham@apple.com>
Allow Spotlight suggestions to be read by any process
https://bugs.webkit.org/show_bug.cgi?id=158950
<rdar://problem/26865374>
Reviewed by Alexey Proskuryakov.
Extend sandbox to allow all web processes to read Spotlight results.
* Resources/PlugInSandboxProfiles/com.apple.WebKit.plugin-common.sb:
* WebProcess/com.apple.WebProcess.sb.in:
2016-06-20 Simon Fraser <simon.fraser@apple.com>
Focus event dispatched in iframe causes parent document to scroll incorrectly
https://bugs.webkit.org/show_bug.cgi?id=158629
rdar://problem/26521616
Reviewed by Tim Horton.
Pass SelectionRevealMode::Reveal in existing code.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::centerSelectionInVisibleArea):
2016-06-20 Keith Rollin <krollin@apple.com>
Remove RefPtr::release() and change calls sites to use WTFMove()
https://bugs.webkit.org/show_bug.cgi?id=158369
Reviewed by Chris Dumez.
RefPtr::release() releases its managed pointer awkwardly. It's more
direct and clearer to use WTFMove to transfer ownership of the managed
pointer.
As part of this cleanup, also change a lot of explicit data types to
'auto'.
* DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::createDatabaseToWebProcessConnection):
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::createNetworkConnectionToWebProcess):
* NetworkProcess/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::decode):
* NetworkProcess/cache/NetworkCacheEntry.cpp:
(WebKit::NetworkCache::Entry::initializeShareableResourceHandleFromStorageRecord):
* Platform/mac/SharedMemoryMac.cpp:
(WebKit::SharedMemory::allocate):
(WebKit::SharedMemory::create):
(WebKit::SharedMemory::map):
* PluginProcess/PluginProcess.cpp:
(WebKit::PluginProcess::createWebProcessConnection):
* Shared/API/Cocoa/WKRemoteObjectCoder.mm:
(encodeToObjectStream):
* Shared/API/c/WKImage.cpp:
(WKImageCreate):
* Shared/API/c/WKNumber.cpp:
(WKBooleanCreate):
(WKDoubleCreate):
(WKUInt64Create):
* Shared/API/c/WKSecurityOriginRef.cpp:
(WKSecurityOriginCreate):
* Shared/API/c/WKSerializedScriptValue.cpp:
(WKSerializedScriptValueCreate):
(WKSerializedScriptValueCreateWithInternalRepresentation):
* Shared/API/c/cairo/WKImageCairo.cpp:
(WKImageCreateFromCairoSurface):
* Shared/API/c/cg/WKImageCG.cpp:
(WKImageCreateFromCGImage):
* Shared/API/c/mac/WKCertificateInfoMac.mm:
(WKCertificateInfoCreateWithCertficateChain):
* Shared/API/c/mac/WKObjCTypeWrapperRef.mm:
(WKObjCTypeWrapperCreate):
* Shared/API/c/mac/WKWebArchive.cpp:
(WKWebArchiveCreate):
(WKWebArchiveCreateWithData):
(WKWebArchiveCreateFromRange):
(WKWebArchiveCopyMainResource):
(WKWebArchiveCopySubresources):
(WKWebArchiveCopySubframeArchives):
* Shared/API/c/mac/WKWebArchiveResource.cpp:
(WKWebArchiveResourceCreate):
* Shared/APIWebArchive.mm:
(API::WebArchive::WebArchive):
* Shared/Plugins/Netscape/NetscapePluginModule.cpp:
(WebKit::NetscapePluginModule::getOrCreate):
* Shared/ShareableBitmap.cpp:
(WebKit::ShareableBitmap::create):
* Shared/ShareableResource.cpp:
(WebKit::ShareableResource::map):
* Shared/gtk/ArgumentCodersGtk.cpp:
(IPC::ArgumentCoder<DragData>::decode):
* UIProcess/API/C/CoordinatedGraphics/WKView.cpp:
(WKViewCreate):
* UIProcess/API/C/WKBatteryStatus.cpp:
(WKBatteryStatusCreate):
* UIProcess/API/C/WKGeolocationPosition.cpp:
(WKGeolocationPositionCreate_b):
* UIProcess/API/C/WKGrammarDetail.cpp:
(WKGrammarDetailCreate):
* UIProcess/API/C/WKPage.cpp:
(WKPageCopySessionState):
* UIProcess/API/C/WKPageGroup.cpp:
(WKPageGroupCreateWithIdentifier):
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesCreate):
(WKPreferencesCreateWithIdentifier):
(WKPreferencesCreateCopy):
* UIProcess/API/C/WKSessionRef.cpp:
(WKSessionCreate):
* UIProcess/API/C/WKSessionStateRef.cpp:
(WKSessionStateCopyData):
* UIProcess/API/C/mac/WKContextPrivateMac.mm:
(WKContextCopyPlugInInfoForBundleIdentifier):
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView loadRequest:]):
(-[WKWebView loadFileURL:allowingReadAccessToURL:]):
(-[WKWebView loadData:MIMEType:characterEncodingName:baseURL:]):
(-[WKWebView goToBackForwardListItem:]):
(-[WKWebView goBack]):
(-[WKWebView goForward]):
(-[WKWebView reload]):
(-[WKWebView reloadFromOrigin]):
(-[WKWebView _loadData:MIMEType:characterEncodingName:baseURL:userData:]):
(-[WKWebView _reloadWithoutContentBlockers]):
(-[WKWebView _sessionStateData]):
(-[WKWebView _restoreSessionState:andNavigate:]):
* UIProcess/API/efl/ewk_database_manager.cpp:
(EwkDatabaseManager::createOriginList):
* UIProcess/API/efl/ewk_storage_manager.cpp:
(EwkStorageManager::createOriginList):
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkitWebViewCreateNewPage):
(webkitWebViewPrintFrame):
(getContentsAsMHTMLDataCallback):
* UIProcess/Cocoa/SessionStateCoding.mm:
(WebKit::encodeSessionState):
* UIProcess/GenericCallback.h:
(WebKit::CallbackMap::take):
* UIProcess/GeolocationPermissionRequestManagerProxy.cpp:
(WebKit::GeolocationPermissionRequestManagerProxy::createRequest):
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::didReceiveAuthenticationChallenge):
* UIProcess/Notifications/NotificationPermissionRequestManagerProxy.cpp:
(WebKit::NotificationPermissionRequestManagerProxy::createRequest):
* UIProcess/Plugins/PluginProcessManager.cpp:
(WebKit::PluginProcessManager::getOrCreatePluginProcess):
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::StorageArea::setItem):
(WebKit::StorageManager::StorageArea::removeItem):
(WebKit::StorageManager::createLocalStorageMap):
* UIProcess/WebBackForwardList.cpp:
(WebKit::WebBackForwardList::addItem):
(WebKit::WebBackForwardList::clear):
* UIProcess/WebCookieManagerProxy.cpp:
(WebKit::WebCookieManagerProxy::getHostnamesWithCookies):
(WebKit::WebCookieManagerProxy::getHTTPCookieAcceptPolicy):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::installViewStateChangeCompletionHandler):
* UIProcess/WebPreferences.cpp:
(WebKit::WebPreferences::createWithLegacyDefaults):
(WebKit::WebPreferences::copy):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::~WebProcessPool):
* UIProcess/mac/ViewSnapshotStore.mm:
(WebKit::ViewSnapshotStore::recordSnapshot):
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _webHitTestResult]):
* UIProcess/mac/WKPrintingView.mm:
(-[WKPrintingView _askPageToComputePageRects]):
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::setDragImage):
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:
(-[WKWebProcessPlugInFrame hitTest:]):
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInHitTestResult.mm:
(-[WKWebProcessPlugInHitTestResult nodeHandle]):
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm:
(+[WKWebProcessPlugInNodeHandle nodeHandleWithJSValue:inContext:]):
(-[WKWebProcessPlugInNodeHandle htmlIFrameElementContentFrame]):
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInScriptWorld.mm:
(+[WKWebProcessPlugInScriptWorld world]):
* WebProcess/InjectedBundle/API/c/WKBundle.cpp:
(WKBundlePostSynchronousMessage):
* WebProcess/InjectedBundle/API/c/WKBundleDOMWindowExtension.cpp:
(WKBundleDOMWindowExtensionCreate):
* WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp:
(WKBundleHitTestResultCopyNodeHandle):
(WKBundleHitTestResultCopyURLElementHandle):
* WebProcess/InjectedBundle/API/c/WKBundleNavigationAction.cpp:
(WKBundleNavigationActionCopyHitTestResult):
(WKBundleNavigationActionCopyFormElement):
* WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp:
(WKBundleNodeHandleCreate):
(WKBundleNodeHandleCopyDocument):
(WKBundleNodeHandleCopySnapshotWithOptions):
(WKBundleNodeHandleCopyVisibleRange):
(WKBundleNodeHandleCopyHTMLTableCellElementCellAbove):
(WKBundleNodeHandleCopyDocumentFrame):
(WKBundleNodeHandleCopyHTMLFrameElementContentFrame):
(WKBundleNodeHandleCopyHTMLIFrameElementContentFrame):
* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePageCreateSnapshotWithOptions):
(WKBundlePageCreateSnapshotInViewCoordinates):
(WKBundlePageCreateSnapshotInDocumentCoordinates):
(WKBundlePageCreateScaledSnapshotInDocumentCoordinates):
(WKBundlePagePostSynchronousMessageForTesting):
* WebProcess/InjectedBundle/API/c/WKBundleRangeHandle.cpp:
(WKBundleRangeHandleCreate):
(WKBundleRangeHandleCopySnapshotWithOptions):
* WebProcess/InjectedBundle/API/c/WKBundleScriptWorld.cpp:
(WKBundleScriptWorldCreateWorld):
* WebProcess/InjectedBundle/API/mac/WKDOMNode.mm:
(-[WKDOMNode _copyBundleNodeHandleRef]):
* WebProcess/InjectedBundle/API/mac/WKDOMRange.mm:
(-[WKDOMRange _copyBundleRangeHandleRef]):
* WebProcess/InjectedBundle/DOM/InjectedBundleCSSStyleDeclarationHandle.cpp:
(WebKit::InjectedBundleCSSStyleDeclarationHandle::getOrCreate):
* WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
(WebKit::imageForRect):
(WebKit::InjectedBundleNodeHandle::renderedImage):
* WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:
(WebKit::InjectedBundleRangeHandle::getOrCreate):
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::create):
* WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
(WebKit::NetscapePlugin::loadURL):
* WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm:
(WebKit::PDFPlugin::createScrollbar):
* WebProcess/Storage/StorageAreaMap.cpp:
(WebKit::StorageAreaMap::applyChange):
* WebProcess/WebCoreSupport/SessionStateConversion.cpp:
(WebKit::toFormData):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::createPlugin):
(WebKit::WebFrameLoaderClient::recreatePlugin):
(WebKit::WebFrameLoaderClient::createJavaAppletWidget):
(WebKit::WebFrameLoaderClient::createNetworkingContext):
* WebProcess/WebCoreSupport/WebInspectorClient.cpp:
(WebKit::WebInspectorClient::highlight):
* WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
(WebKit::convertImageToBitmap):
* WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::updateFindUIAfterPageScroll):
* WebProcess/WebPage/VisitedLinkTableController.cpp:
(WebKit::VisitedLinkTableController::getOrCreate):
(WebKit::VisitedLinkTableController::setVisitedLinkTable):
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::createWithCoreMainFrame):
(WebKit::WebFrame::createSubframe):
(WebKit::WebFrame::create):
(WebKit::WebFrame::createSelectionSnapshot):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::createPlugin):
(WebKit::WebPage::snapshotAtSize):
(WebKit::WebPage::snapshotNode):
(WebKit::WebPage::willPerformLoadDragDestinationAction):
(WebKit::WebPage::SandboxExtensionTracker::didStartProvisionalLoad):
(WebKit::WebPage::SandboxExtensionTracker::didCommitProvisionalLoad):
(WebKit::WebPage::drawRectToImage):
* WebProcess/WebPage/WebPageGroupProxy.cpp:
(WebKit::WebPageGroupProxy::create):
* WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:
(WebKit::PlatformCAAnimationRemote::Properties::decode):
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::create):
(WebKit::PlatformCALayerRemote::clone):
* WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:
(WebKit::PlatformCALayerRemoteCustom::create):
(WebKit::PlatformCALayerRemoteCustom::clone):
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::createDisplayRefreshMonitor):
2016-06-20 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r202179.
https://bugs.webkit.org/show_bug.cgi?id=158946
The test either fails or times out 100% of the time (Requested
by ap on #webkit).
Reverted changeset:
"REGRESSION: Double tap to zoom does not work on yahoo
finance"
https://bugs.webkit.org/show_bug.cgi?id=158886
http://trac.webkit.org/changeset/202179
2016-06-20 Tim Horton <timothy_horton@apple.com>
REGRESSION (r191499): Tab content "jumps" down when focusing tabs that load in the background
https://bugs.webkit.org/show_bug.cgi?id=158904
<rdar://problem/26025831>
Reviewed by Sam Weinig.
* UIProcess/Cocoa/WebViewImpl.h:
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::viewDidMoveToWindow):
During the large refactor that was r191499, we somehow ended up with two
different members for the same thing - one that got written, and one that
got read. We should only have one.
2016-06-20 Tim Horton <timothy_horton@apple.com>
Try to fix the iOS build after r202142 and r202224.
* Shared/mac/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer):
2016-06-19 Simon Fraser <simon.fraser@apple.com>
Fix erroneously commented line added in r202142.
* Shared/mac/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer):
2016-06-16 Enrica Casucci <enrica@apple.com>
Support configurable autocapitalization.
https://bugs.webkit.org/show_bug.cgi?id=158860
rdar://problem/26231403
Reviewed by Tim Horton.
The behavior of spellchecker should be configurable to avoid
unwanted autocapitalization.
* UIProcess/API/APIPageConfiguration.cpp:
(API::PageConfiguration::copy):
* UIProcess/API/APIPageConfiguration.h:
(API::PageConfiguration::initialCapitalizationEnabled):
(API::PageConfiguration::setInitialCapitalizationEnabled):
* UIProcess/API/C/WKPageConfigurationRef.cpp:
(WKPageConfigurationSetIntialCapitalizationEnabled):
* UIProcess/API/C/WKPageConfigurationRef.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _initialCapitalizationEnabled]):
(-[WKWebViewConfiguration _setInitialCapitalizationEnabled:]):
* UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
* UIProcess/TextChecker.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::checkTextOfParagraph):
(WebKit::WebPageProxy::getGuessesForWord):
* UIProcess/WebPageProxy.h:
* UIProcess/efl/TextCheckerEfl.cpp:
(WebKit::TextChecker::checkTextOfParagraph):
(WebKit::TextChecker::getGuessesForWord):
* UIProcess/gtk/TextCheckerGtk.cpp:
(WebKit::TextChecker::getGuessesForWord):
(WebKit::TextChecker::checkTextOfParagraph):
* UIProcess/ios/TextCheckerIOS.mm:
(WebKit::TextChecker::checkTextOfParagraph):
(WebKit::TextChecker::getGuessesForWord):
* UIProcess/mac/TextCheckerMac.mm:
(WebKit::TextChecker::checkTextOfParagraph):
(WebKit::TextChecker::getGuessesForWord):
2016-06-17 Chris Dumez <cdumez@apple.com>
Use WTF::NoncopyableFunction in NetworkDataTaskClient
https://bugs.webkit.org/show_bug.cgi?id=158887
Reviewed by Alex Christensen.
Use WTF::NoncopyableFunction in NetworkDataTaskClient instead of std::function
and consistently move it around. This avoids some unnecessary copying.
* NetworkProcess/Downloads/DownloadManager.cpp:
(WebKit::DownloadManager::willDecidePendingDownloadDestination):
(WebKit::DownloadManager::continueDecidePendingDownloadDestination):
* NetworkProcess/Downloads/DownloadManager.h:
* NetworkProcess/NetworkDataTask.h:
* NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::willPerformHTTPRedirection):
(WebKit::NetworkLoad::didReceiveChallenge):
(WebKit::NetworkLoad::didReceiveResponseNetworkSession):
(WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace):
* NetworkProcess/NetworkLoad.h:
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::findPendingDownloadLocation):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/PingLoad.h:
* NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTask::didReceiveChallenge):
(WebKit::NetworkDataTask::didReceiveResponse):
(WebKit::NetworkDataTask::willPerformHTTPRedirection):
(WebKit::NetworkDataTask::tryPasswordBasedAuthentication):
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
* Shared/Authentication/AuthenticationManager.cpp:
(WebKit::AuthenticationManager::addChallengeToChallengeMap):
(WebKit::AuthenticationManager::coalesceChallengesMatching):
(WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):
(WebKit::AuthenticationManager::tryUseCertificateInfoForChallenge):
(WebKit::AuthenticationManager::useCredentialForSingleChallenge):
* Shared/Authentication/AuthenticationManager.h:
* Shared/Authentication/mac/AuthenticationManager.mac.mm:
(WebKit::AuthenticationManager::tryUseCertificateInfoForChallenge):
2016-06-17 Antoine Quint <graouts@apple.com>
Web video playback controls should have RTL volume slider
https://bugs.webkit.org/show_bug.cgi?id=158856
<rdar://problem/25971769>
Reviewed by Tim Horton.
We now call setUserInterfaceLayoutDirection() on WebCore::Page to propagate
the user interface layout direction down to the Web content. To facilitate this,
the UserInterfaceLayoutDirection enum is now defined in WebCore.
* Shared/WebPageCreationParameters.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(convertSystemLayoutDirection):
(toUserInterfaceLayoutDirection):
* UIProcess/API/gtk/PageClientImpl.h:
* UIProcess/Cocoa/WebViewImpl.h:
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::toUserInterfaceLayoutDirection):
(WebKit::WebViewImpl::userInterfaceLayoutDirection):
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::userInterfaceLayoutDirection):
(WebKit::WebPageProxy::setUserInterfaceLayoutDirection):
* UIProcess/WebPageProxy.h:
* UIProcess/efl/WebView.h:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::userInterfaceLayoutDirection):
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::userInterfaceLayoutDirection):
* UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::PendingSwipeTracker::scrollEventCanBecomeSwipe):
(WebKit::ViewGestureController::isPhysicallySwipingLeft):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::m_userInterfaceLayoutDirection):
(WebKit::WebPage::setUserInterfaceLayoutDirection):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performNonEditingBehaviorForSelector):
2016-06-17 Dean Jackson <dino@apple.com>
REGRESSION: Double tap to zoom does not work on yahoo finance
https://bugs.webkit.org/show_bug.cgi?id=158886
<rdar://problem/24917760>
Reviewed by Simon Fraser.
We shouldn't enable fast click on pages that have
had to shrink to fit. In other words, we should enable
double-tap-to-zoom if the page has already zoomed.
Test: fast/events/ios/viewport-shrink-to-fit-allows-double-tap.html
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _allowsDoubleTapGestures]):
2016-06-16 Chris Dumez <cdumez@apple.com>
No need to ref connection in lambda inside NetworkResourceLoader::tryStoreAsCacheEntry()
https://bugs.webkit.org/show_bug.cgi?id=158862
Reviewed by Darin Adler.
No need to ref connection in lambda inside NetworkResourceLoader::tryStoreAsCacheEntry().
We already ref the NetworkResourceLoader which hold a ref to the connection. Also update
the lambda capture to use Ref<> for the NetworkResourceLoader instead of RefPtr<>.
Switch callback type from std::function to WTF::NoncopyableFunction so we can capture a
Ref<>.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::tryStoreAsCacheEntry):
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::store):
* NetworkProcess/cache/NetworkCache.h:
* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::WriteOperation::WriteOperation):
* NetworkProcess/cache/NetworkCacheStorage.h:
2016-06-16 Chris Dumez <cdumez@apple.com>
[WK2] Improve serialization of SubresourcesEntry to network disk cache
https://bugs.webkit.org/show_bug.cgi?id=158851
Reviewed by Antti Koivisto.
Improve serialization of SubresourcesEntry to network disk cache:
- Do not bother serializing SubresourceInfo's first party for cookies
and HTTP headers data members if the resource is transient. This is
because those are never used for transient resources. This patch also
makes it so that we do not even bother initializing those data members
if the transient flag is set.
- Update SubresourceInfo::encode() / decode() to encode and decode
the HTTPHeaderMap data member with the right NetworkCache::Coder
template specialization instead of using directly HTTPHeaderMap::decode()
and HTTPHeaderMap::encode(). HTTPHeaderMap::decode() / encode() is
unsafe in the disk cache case (see r200394).
Also update entry types as so:
- "resource" -> "Resource"
- "subresources" -> "SubResources"
These entry types are used a folder names in the disk cache and other
folder names were capitalized. Antti suggested this was a good time
to harmonize since we're bumping the cache version.
* NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
(WebKit::NetworkCache::constructRevalidationRequest):
(WebKit::NetworkCache::SpeculativeLoadManager::startSpeculativeRevalidation):
* NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h:
* NetworkProcess/cache/NetworkCacheStorage.h:
* NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp:
(WebKit::NetworkCache::SubresourceInfo::encode):
(WebKit::NetworkCache::SubresourceInfo::decode):
* NetworkProcess/cache/NetworkCacheSubresourcesEntry.h:
(WebKit::NetworkCache::SubresourceInfo::SubresourceInfo):
(WebKit::NetworkCache::SubresourceInfo::isTransient):
(WebKit::NetworkCache::SubresourceInfo::firstPartyForCookies):
(WebKit::NetworkCache::SubresourceInfo::requestHeaders):
2016-06-16 Anders Carlsson <andersca@apple.com>
Fix macOS Sierra build
https://bugs.webkit.org/show_bug.cgi?id=158849
Reviewed by Tim Horton.
Add WebCore:: qualifiers for IOSurface, to avoid conflicts with the IOSurface Objective-C class
and adopt IOSurface::asLayerContents().
* Shared/mac/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::decode):
(WebKit::RemoteLayerBackingStore::bytesPerPixel):
(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):
(WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer):
(WebKit::RemoteLayerBackingStore::setBufferVolatility):
(WebKit::RemoteLayerBackingStore::Buffer::discard):
* UIProcess/mac/ViewSnapshotStore.mm:
(WebKit::ViewSnapshot::create):
(WebKit::ViewSnapshot::ViewSnapshot):
(WebKit::ViewSnapshot::asLayerContents):
2016-06-16 Brady Eidson <beidson@apple.com>
When a WebsiteDataStore finds no ProcessPools and creates one from scratch, it should represent the data store's config.
rdar://problem/26586991 and https://bugs.webkit.org/show_bug.cgi?id=158844
Reviewed by Anders Carlsson.
* UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::createWithWebsiteDataStoreConfiguration):
* UIProcess/API/APIProcessPoolConfiguration.h:
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::WebsiteDataStore):
(WebKit::WebsiteDataStore::fetchData):
(WebKit::WebsiteDataStore::removeData):
(WebKit::WebsiteDataStore::processPools):
* UIProcess/WebsiteData/WebsiteDataStore.h:
2016-06-15 Simon Fraser <simon.fraser@apple.com>
[iOS WK2] On iPad, indirect focussing of a text field doesn't always scroll to the correct location
https://bugs.webkit.org/show_bug.cgi?id=158828
Reviewed by Enrica Casucci.
WebPage::getAssistedNodeInformation() unconditionally set information.selectionRect()
to a 1x1 rect at the last interaction location. This caused -[WKWebView _zoomToFocusRect:...]
to early return under the !forceScroll clause if the last interaction rect was visible, but
the elementRect was not. This would happen, for example, if a click in a <button> focussed
an input on some other portion of the page. This behavior is iPad-only, because forceScroll
is only NO there.
Fix by making getAssistedNodeInformation() only set the selectionRect to the last interaction
location if that is inside of the elementRect (this caters to the case where a tap is inside
an input which is larger than the screen). Otherwise, set it to the empty rect.
Make this testable by allowing a test to opt into the iPad-style scrolling/zooming behavior
in this code path (essentially, making forceScroll NO for testing), via testing SPI on WKWebView,
plumbed through to WKContentView.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView forceIPadStyleZoomOnInputFocus]):
(-[WKWebView setForceIPadStyleZoomOnInputFocus:]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _displayFormNodeInputView]):
(-[WKContentView requiresAccessoryView:]):
(-[WKContentView inputAccessoryView]):
(-[WKContentView forceIPadStyleZoomOnInputFocus]):
(-[WKContentView setForceIPadStyleZoomOnInputFocus:]):
(-[WKContentView requiresAccessoryView]): Remove redundant returns, and allow testing to
override the "isIPad" condition.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getAssistedNodeInformation):
2016-06-15 Sam Weinig <sam@webkit.org>
Forward/Back keyboard shortcuts need to flip for RTL
https://bugs.webkit.org/show_bug.cgi?id=158823
<rdar://problem/25975359>
Reviewed by Darin Adler.
Pipe the UserInterfaceLayoutDirection down to the WebContentProcess on initialization
and when it changes, and use it to flip the behavior of command-left and command-right
when in RTL mode.
Tests:
WebKit2_CommandBackForwardTestWKView.LTR
WebKit2_CommandBackForwardTestWKView.RTL
WebKit2_CommandBackForwardTestWKWebView.LTR
WebKit2_CommandBackForwardTestWKWebView.RTL
* Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode):
(WebKit::WebPageCreationParameters::decode):
* Shared/WebPageCreationParameters.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _webViewPrintFormatter]):
(-[WKWebView setSemanticContentAttribute:]):
(-[WKWebView _printOperationWithPrintInfo:forFrame:]):
(-[WKWebView setUserInterfaceLayoutDirection:]):
* UIProcess/API/mac/WKView.mm:
(-[WKView setUserInterfaceLayoutDirection:]):
* UIProcess/Cocoa/WebViewImpl.h:
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::windowIsFrontWindowUnderMouse):
(WebKit::toUserInterfaceLayoutDirection):
(WebKit::WebViewImpl::userInterfaceLayoutDirection):
(WebKit::WebViewImpl::setUserInterfaceLayoutDirection):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::creationParameters):
(WebKit::WebPageProxy::userInterfaceLayoutDirection):
(WebKit::WebPageProxy::setUserInterfaceLayoutDirection):
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::hasHadSelectionChangesFromUserInteraction):
* UIProcess/ios/WKContentView.mm:
(-[WKContentView _commonInitializationWithProcessPool:configuration:]):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::m_userInterfaceLayoutDirection):
(WebKit::WebPage::setResourceCachingDisabled):
(WebKit::WebPage::setUserInterfaceLayoutDirection):
(WebKit::m_shouldDispatchFakeMouseMoveEvents): Deleted.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performNonEditingBehaviorForSelector):
2016-06-15 Tim Horton <timothy_horton@apple.com>
Expose _shouldExpandContentToViewHeightForAutoLayout SPI on WKWebView
https://bugs.webkit.org/show_bug.cgi?id=158824
<rdar://problem/23713857>
Reviewed by Simon Fraser.
Test: TestWebKitAPI/WebKit2.AutoLayoutIntegration
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _shouldExpandContentToViewHeightForAutoLayout]):
(-[WKWebView _setShouldExpandContentToViewHeightForAutoLayout:]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
This property exists on WKView; expose it on WKWebView.
2016-06-15 Alex Christensen <achristensen@webkit.org>
Revert part of r196034
https://bugs.webkit.org/show_bug.cgi?id=158805
rdar://problem/26788138
Reviewed by Dan Bernstein.
* NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::~NetworkLoad):
If the WebResourceLoader was destroyed and received a canAuthenticateAgainstProtectionSpace
but did not send a continueCanAuthenticateAgainstProtectionSpace answer because there's no
core loader, then the NetworkLoad will be destroyed. When this happens, we still need to call
the callback for the challenge.
* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::canAuthenticateAgainstProtectionSpace):
If there's no core loader, we can't send IPC.
2016-06-13 Simon Fraser <simon.fraser@apple.com>
[iOS WK2] Make it possible to test the Next/Previous buttons in the keyboard accessory bar
https://bugs.webkit.org/show_bug.cgi?id=158714
Reviewed by Enrica Casucci.
Add UIScriptController.keyboardAccessoryBar{Next,Previous} and hook it up to the WKContentView
method that gets called from UIKit.
Add a test that exercises it.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView keyboardAssistantBarNext]):
(-[WKWebView keyboardAssistantBarPrevious]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
2016-06-15 Dean Jackson <dino@apple.com>
RTL <select> forms are misplaced
https://bugs.webkit.org/show_bug.cgi?id=158810
<rdar://problem/24847541>
Reviewed by Eric Carlson.
AppKit made a change in Sierra that causes popup menus
to snap to a different point when the system language is RTL.
We need to be more explicit about what directionality
we want, and override the location of the popup based
on the text direction.
I also made a small tweak to the fudge offsets we use
in order to make button text and menu text to be
more consistent.
Unfortunately since this is just about the location
of the popup menu, it's unable to be tested in our
current infrastructure.
* UIProcess/mac/WebPopupMenuProxyMac.mm:
(WebKit::WebPopupMenuProxyMac::showPopupMenu):
2016-06-15 Chris Dumez <cdumez@apple.com>
Drop some unnecessary header includes
https://bugs.webkit.org/show_bug.cgi?id=158788
Reviewed by Alexey Proskuryakov.
Drop some unnecessary header includes in headers to speed up build time.
* WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm:
* WebProcess/Plugins/PDF/PDFPluginAnnotation.mm:
* WebProcess/Plugins/PDF/PDFPluginPasswordField.mm:
* WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm:
* WebProcess/Plugins/PluginView.cpp:
* WebProcess/WebPage/WebPage.cpp:
2016-06-15 Romain Bellessort <romain.bellessort@crf.canon.fr>
Enabling Shadow DOM for all platforms
https://bugs.webkit.org/show_bug.cgi?id=158738
Reviewed by Ryosuke Niwa.
Removed Shadow DOM from options (enabled by default)
(comprises removal of corresponding preprocessor directives)
* Configurations/FeatureDefines.xcconfig:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
* WebProcess/WebPage/WebPage.cpp:
2016-06-15 Antti Koivisto <antti@apple.com>
Vary:Cookie validation doesn't work in private browsing
https://bugs.webkit.org/show_bug.cgi?id=158616
<rdar://problem/26755067>
Reviewed by Andreas Kling.
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::cookieRequestHeaderFieldValue):
Implement SessionID version of the function.
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:
2016-06-14 Chris Dumez <cdumez@apple.com>
Avoid constructing a AuthenticationChallenge unnecessarily in the NetworkLoad constructor
https://bugs.webkit.org/show_bug.cgi?id=158746
Reviewed by Darin Adler.
Avoid constructing a AuthenticationChallenge unnecessarily in the
NetworkLoad constructor by using WTF::Optional<> for this data
member.
* NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace):
* NetworkProcess/NetworkLoad.h:
2016-06-14 Chris Dumez <cdumez@apple.com>
Add missing WTFMove() in NetworkResourceLoader::didReceiveResponse()
https://bugs.webkit.org/show_bug.cgi?id=158745
Reviewed by Darin Adler.
Add missing WTFMove() in NetworkResourceLoader::didReceiveResponse()
to avoid copying the ResourceResponse.
* NetworkProcess/NetworkResourceLoader.cpp:
2016-06-14 Chris Dumez <cdumez@apple.com>
Reduce copying of NetworkLoadParameters
https://bugs.webkit.org/show_bug.cgi?id=158744
Reviewed by Alex Christensen.
Reduce copying of NetworkLoadParameters by moving it around instead.
* NetworkProcess/Downloads/DownloadManager.cpp:
(WebKit::DownloadManager::startDownload):
* NetworkProcess/Downloads/PendingDownload.cpp:
(WebKit::PendingDownload::PendingDownload):
* NetworkProcess/Downloads/PendingDownload.h:
* NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::NetworkLoad):
* NetworkProcess/NetworkLoad.h:
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::startNetworkLoad):
* NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:
(WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad):
2016-06-14 Carlos Garcia Campos <cgarcia@igalia.com>
[ThreadedCompositor] Opening the inspector in a window causes a crash.
https://bugs.webkit.org/show_bug.cgi?id=154444
Reviewed by Žan Doberšek.
The threaded compositor doesn't handle the case of changing or removing the native surface handle. When the web
view is reparented, the current native surface handle is destroyed when the view is removed from the parent, and
a new one is created when added to the new parent. We need to handle this case in the threaded compositor.
* Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:
(WebKit::CompositingRunLoop::stopUpdateTimer): Allow users to stop the update timer.
* Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h:
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::setNativeSurfaceHandleForCompositing): Use performTaskSync because this is called
from a synchronous IPC message and right after it returns, the current native surface is destroyed by the UI
process. So we need to ensure we finish all pending operations for the current native surface in the compositing
thread before it's destroyed. Then we enable or disable the scene depending on whether the native surface has
been created or destroyed and destroy the current context in case the new handle is 0.
(WebKit::ThreadedCompositor::tryEnsureGLContext): Just renamed to make it clear that it can fail.
(WebKit::ThreadedCompositor::glContext):
(WebKit::ThreadedCompositor::renderLayerTree): Return early if scene is not active.
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:
(WebKit::ThreadedCoordinatedLayerTreeHost::setNativeSurfaceHandleForCompositing): Schedule a new layer flush
after the native surface handle changed.
2016-06-14 Carlos Garcia Campos <cgarcia@igalia.com>
[Threaded Compositor] Modernize and simplify threaded compositor code
https://bugs.webkit.org/show_bug.cgi?id=158615
Reviewed by Žan Doberšek.
* Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:
(WebKit::CompositingRunLoop::performTask): Use NoncopyableFunction.
(WebKit::CompositingRunLoop::performTaskSync): Ditto.
(WebKit::CompositingRunLoop::startUpdateTimer): Just renamed to start instead of set.
(WebKit::CompositingRunLoop::run): Expose run/stop methods instead of the internal RunLoop object.
(WebKit::CompositingRunLoop::stop): Also stop the update timer instead of relying on the caller to do it.
(WebKit::CompositingRunLoop::setUpdateTimer): Deleted.
(WebKit::CompositingRunLoop::stopUpdateTimer): Deleted.
* Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h:
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::setNativeSurfaceHandleForCompositing): Protects this directly in lambda capture.
(WebKit::ThreadedCompositor::setDeviceScaleFactor): Ditto.
(WebKit::ThreadedCompositor::didChangeViewportSize): Ditto.
(WebKit::ThreadedCompositor::didChangeViewportAttribute): Ditto.
(WebKit::ThreadedCompositor::didChangeContentsSize): Ditto.
(WebKit::ThreadedCompositor::scrollTo): Ditto.
(WebKit::ThreadedCompositor::scrollBy): Ditto.
(WebKit::ThreadedCompositor::updateViewport): Use startUpdateTimer().
(WebKit::ThreadedCompositor::scheduleDisplayImmediately): Ditto.
(WebKit::ThreadedCompositor::didChangeVisibleRect): Improve lambda captures.
(WebKit::ThreadedCompositor::renderLayerTree): Use m_viewportController directly.
(WebKit::ThreadedCompositor::createCompositingThread): Use createThread() version that receives a function.
(WebKit::ThreadedCompositor::runCompositingThread): Use run method and don't stop the update timer when the run
loop finishes.
(WebKit::ThreadedCompositor::terminateCompositingThread): Use stop method.
(WebKit::ThreadedCompositor::ThreadedCompositor): Deleted.
(WebKit::ThreadedCompositor::compositingThreadEntry): Deleted.
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
(WebKit::ThreadedCompositor::viewportController): Deleted.
2016-06-14 Carlos Garcia Campos <cgarcia@igalia.com>
[Threaded Compositor] Flickering and rendering artifacts when resizing the web view
https://bugs.webkit.org/show_bug.cgi?id=154070
Reviewed by Žan Doberšek.
Resizing the web view is expected to be a sync operation, the UI process creates a new backing store state ID,
sends UpdateBackingStoreState message with the flag RespondImmediately to the web process and waits up to 500ms
for the reply (DidUpdateBackingStoreState message). When using the threaded compositor, we schedule a task in
the compositing thread to update the viewport size, and return immediately, so that we reply to the UI process
before the compositing thread has actually updated its size. There's a moment in which sizes are out of sync
causing the flickering and rendering artifacts, the UI process continues rendering at the new size, while the
web process is still rendering at the previous size. We can prevent this from happening just by making the
resize task synchronous in the threaded compositor.
* Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:
(WebKit::CompositingRunLoop::performTaskSync): Add sync version of performTask().
* Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h:
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::didChangeViewportSize): Use performTaskSync().
2016-06-14 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix Soup downloads after r201943.
This is a follow up of r201943. The DownloadClient used in DownloadSoup was not updated to the new API of the
ResourceHandleClient because it was not using override on the virtual methods, so it was unnoticed. That broke
the downloads soup implementation, because didReceiveResponse is no longer used in the DownloadClient. This
patch updates the DownloadClient to the new ResourceHandleClient API adding also override to all the virtual
methods to prevent this from happening in the future.
* NetworkProcess/Downloads/soup/DownloadSoup.cpp:
(WebKit::Download::start):
(WebKit::Download::startWithHandle):
(WebKit::DownloadClient::DownloadClient):
(WebKit::DownloadClient::downloadFailed):
(WebKit::DownloadClient::didReceiveResponse):
(WebKit::DownloadClient::didReceiveData):
(WebKit::DownloadClient::didFinishLoading):
(WebKit::DownloadClient::didFail):
(WebKit::DownloadClient::wasBlocked): Deleted.
(WebKit::DownloadClient::cannotShowURL): Deleted.
(WebKit::DownloadClient::cancel):
(WebKit::DownloadClient::handleResponse):
2016-06-13 Dan Bernstein <mitz@apple.com>
[Mac] Web Content service with a restricted entitlement may load arbitrary dylibs
https://bugs.webkit.org/show_bug.cgi?id=156668
<rdar://problem/26714558>
Reviewed by Anders Carlsson.
* Configurations/WebContentService.xcconfig: Enable library validation when the Web Content
service is given the XPC domain extension entitlement when targeting macOS Sierra or later.
2016-06-13 Alex Christensen <achristensen@webkit.org>
Add WebSocketProvider stub
https://bugs.webkit.org/show_bug.cgi?id=158702
Reviewed by Brady Eidson.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/Network/WebSocketProvider.h: Added.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::m_shouldDispatchFakeMouseMoveEvents):
2016-06-10 Ada Chan <adachan@apple.com>
Use the video element's video box when getting the inline video rect in WebVideoFullscreenManager
https://bugs.webkit.org/show_bug.cgi?id=158351
<rdar://problem/26567938>
Reviewed by Darin Adler.
* WebProcess/cocoa/WebVideoFullscreenManager.mm:
(WebKit::inlineVideoFrame):
(WebKit::WebVideoFullscreenManager::enterVideoFullscreenForVideoElement):
(WebKit::WebVideoFullscreenManager::exitVideoFullscreenForVideoElement):
(WebKit::WebVideoFullscreenManager::fullscreenMayReturnToInline):
(WebKit::WebVideoFullscreenManager::setVideoLayerFrameFenced):
(WebKit::clientRectForElement): Deleted.
2016-06-10 Benjamin Poulain <bpoulain@apple.com>
Add support for passive event listeners on touch events
https://bugs.webkit.org/show_bug.cgi?id=158601
Reviewed by Simon Fraser.
* Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
(ArgumentCoder<ScrollingStateFrameScrollingNode>::encode):
(ArgumentCoder<ScrollingStateFrameScrollingNode>::decode):
(WebKit::dump):
* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<EventTrackingRegions>::encode):
(IPC::ArgumentCoder<EventTrackingRegions>::decode):
* Shared/WebCoreArgumentCoders.h:
* UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
(WebKit::RemoteScrollingCoordinatorProxy::eventTrackingTypeForPoint):
(WebKit::RemoteScrollingCoordinatorProxy::isPointInNonFastScrollableRegion): Deleted.
* UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::touchEventTrackingType):
The type is the most restrictive type of all the touch points.
If any touch point needs synchronous tracking, everything has to be synchronous.
(WebKit::WebPageProxy::handleTouchEventSynchronously):
This is a very unfortunate design.
The upper layer dealing with UIKit knows about gesture and when something
can be dispatched asynchrnously because a gesture has started.
This layer knows about tracking and can use that extra inforamtion
to dispatch an event asynchrnously anyway.
In the future, we should refactor this to let WebPageProxy
always decide of the dispatch type. I am just concerned changing
the upper layer while we are stabilizing WebKit.
(WebKit::WebPageProxy::handleTouchEventAsynchronously):
(WebKit::WebPageProxy::handleTouchEvent):
(WebKit::WebPageProxy::resetState):
(WebKit::WebPageProxy::WebPageProxy): Deleted.
(WebKit::WebPageProxy::shouldStartTrackingTouchEvents): Deleted.
* UIProcess/WebPageProxy.h:
2016-06-10 Beth Dakin <bdakin@apple.com>
Add requestExitFullScreen to WKFullScreenWindowController
https://bugs.webkit.org/show_bug.cgi?id=158633
-and corresponding-
rdar://problem/26564036
Reviewed by Tim Horton.
* UIProcess/mac/WKFullScreenWindowController.h:
* UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController requestExitFullScreen]):
2016-06-10 Alex Christensen <achristensen@webkit.org>
Reduce ResourceResponse copying
https://bugs.webkit.org/show_bug.cgi?id=158232
Reviewed by Darin Adler.
* NetworkProcess/Downloads/PendingDownload.h:
* NetworkProcess/NetworkDataTask.h:
* NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::continueDidReceiveResponse):
(WebKit::NetworkLoad::sharedDidReceiveResponse):
(WebKit::NetworkLoad::sharedWillSendRedirectedRequest):
(WebKit::NetworkLoad::didReceiveChallenge):
(WebKit::NetworkLoad::didReceiveResponseNetworkSession):
(WebKit::NetworkLoad::didReceiveResponseAsync):
* NetworkProcess/NetworkLoad.h:
* NetworkProcess/NetworkLoadClient.h:
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::retrieveCacheEntry):
(WebKit::NetworkResourceLoader::abort):
* NetworkProcess/NetworkResourceLoader.h:
* NetworkProcess/PingLoad.h:
* NetworkProcess/cache/NetworkCacheCoders.h:
(WebKit::NetworkCache::Coder<Optional<T>>::encode):
(WebKit::NetworkCache::Coder<Optional<T>>::decode):
* NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:
(WebKit::NetworkCache::SpeculativeLoad::willSendRedirectedRequest):
* NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
* NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTask::didCompleteWithError):
(WebKit::NetworkDataTask::didReceiveResponse):
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::url):
(WebKit::WebFrame::certificateInfo):
(WebKit::WebFrame::innerText):
2016-06-09 Ryosuke Niwa <rniwa@webkit.org>
Add SPI to disable spellchecking on auto-fillable text fields
https://bugs.webkit.org/show_bug.cgi?id=158611
Reviewed by Anders Carlsson.
Added WKBundleNodeHandleSetHTMLInputElementSpellcheckEnabled to disable spellchecking on a text field.
This is used by WebKit2 client which desires to disable spellchecking and notably autocorrection on
login forms, etc... where such feature would interfere with user's actions.
* WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp:
(WKBundleNodeHandleSetHTMLInputElementSpellcheckEnabled): Added.
* WebProcess/InjectedBundle/API/c/WKBundleNodeHandlePrivate.h:
* WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
(WebKit::InjectedBundleNodeHandle::setHTMLInputElementSpellcheckEnabled): Added.
* WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h:
2016-06-10 Alex Christensen <achristensen@webkit.org>
Introduce WTF::UniqueRef
https://bugs.webkit.org/show_bug.cgi?id=158596
Reviewed by Brady Eidson.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::m_shouldDispatchFakeMouseMoveEvents):
2016-06-10 Anders Carlsson <andersca@apple.com>
Remove CommandLine class
https://bugs.webkit.org/show_bug.cgi?id=158628
Reviewed by Tim Horton.
* Shared/CommandLine.h: Removed.
(WebKit::CommandLine::operator[]): Deleted.
* Shared/posix/CommandLinePOSIX.cpp: Removed.
(WebKit::CommandLine::parse): Deleted.
* WebKit2.xcodeproj/project.pbxproj:
2016-06-10 Simon Fraser <simon.fraser@apple.com>
[iOS WK2] Rare RELEASE_ASSERT under RemoteLayerTreeDrawingArea::flushLayers()
https://bugs.webkit.org/show_bug.cgi?id=158622
rdar://problem/26609452
Reviewed by Tim Horton.
It's possible for a CADisplayLink to fire after being paused sometimes, possibly
when an app is running another CADisplayLink whose callback takes some time. When
this happens, RemoteLayerTreeDrawingAreaProxy could erroneously send a second
didUpdate() to the web process between commits, which would clear the m_waitingForBackingStoreSwap
flag too early, and allow a subsequent RemoteLayerTreeDrawingArea::flushLayers()
to proceed when the m_pendingBackingStoreFlusher was still flushing.
Fix by preventing two didUpdates from being sent from the UI process between
commits.
Not easily testable.
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
(WebKit::RemoteLayerTreeDrawingAreaProxy::didRefreshDisplay):
2016-06-10 Carlos Garcia Campos <cgarcia@igalia.com>
[Threaded Compositor] Content and viewport sizes are mixed
https://bugs.webkit.org/show_bug.cgi?id=158564
Reviewed by Žan Doberšek.
Make ThreadedCoordinatedLayerTreeHost::sizeDidChange() update the viewport size for consistency with all other
LayerTreeHost implementations and rename viewportSizeChanged() as contentsSizeChanged() and update the contents
size.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::contentsSizeChanged): Remove ifdefed code here, the drawing area is notified two lines below.
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp:
(WebKit::CoordinatedDrawingArea::mainFrameContentSizeChanged): Update the viewport size to the contents size
only when using a fixed layout here instead of in cross-platform code.
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:
(WebKit::ThreadedCoordinatedLayerTreeHost::contentsSizeChanged):
(WebKit::ThreadedCoordinatedLayerTreeHost::sizeDidChange):
(WebKit::ThreadedCoordinatedLayerTreeHost::viewportSizeChanged): Deleted.
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::mainFrameContentSizeChanged): Call LayerTreeHost::contentsSizeChanged().
(WebKit::DrawingAreaImpl::updateBackingStoreState): Remove ifdefed code for the threadecd compositor since it's
now consistent with all other LayerTreeHost implementations.
* WebProcess/WebPage/LayerTreeHost.h:
2016-06-10 Carlos Garcia Campos <cgarcia@igalia.com>
[Threaded Compositor] Make it clear that compositing thread operations are always scheduled from the main thread
https://bugs.webkit.org/show_bug.cgi?id=158562
Reviewed by Žan Doberšek.
The code is written as if the compositor thread could also call callOnCompositingRunLoop() which makes the code
confusing. This patch no longer checks if the task was scheduled in the compositing thread, and instead it adds
an ASSERT to ensure it's always called from the main thread as expected. It also adds some more ASSERTS to ensure
and clarify the methods are called from the expected thread.
* Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:
(WebKit::CompositingRunLoop::performTask):
(WebKit::CompositingRunLoop::callOnCompositingRunLoop): Deleted.
* Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h:
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::setNativeSurfaceHandleForCompositing):
(WebKit::ThreadedCompositor::setDeviceScaleFactor):
(WebKit::ThreadedCompositor::didChangeViewportSize):
(WebKit::ThreadedCompositor::didChangeViewportAttribute):
(WebKit::ThreadedCompositor::didChangeContentsSize):
(WebKit::ThreadedCompositor::scrollTo):
(WebKit::ThreadedCompositor::scrollBy):
(WebKit::ThreadedCompositor::glContext):
(WebKit::ThreadedCompositor::didChangeVisibleRect):
(WebKit::ThreadedCompositor::renderLayerTree):
(WebKit::ThreadedCompositor::updateSceneState):
(WebKit::ThreadedCompositor::callOnCompositingThread): Deleted.
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
2016-06-10 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Browser plugins crash under Wayland
https://bugs.webkit.org/show_bug.cgi?id=157605
Reviewed by Michael Catanzaro.
Fail the initialization of windowed plugins if we don't have a platform implementation.
* WebProcess/Plugins/Netscape/unix/NetscapePluginUnix.cpp:
(WebKit::NetscapePlugin::platformPostInitialize):
2016-06-09 Antoine Quint <graouts@apple.com>
[iOS] -webkit-overflow-scrolling: touch; ignores pointer-events: none;
https://bugs.webkit.org/show_bug.cgi?id=119839
<rdar://problem/9671514>
Reviewed by Simon Fraser.
Propagate a "userInteractionEnabled" flag from the Web process which is used to turn off
user interaction on a UIScrollView created for -webkit-overflow-scrolling: touch.
* Shared/mac/RemoteLayerTreePropertyApplier.mm:
(WebKit::RemoteLayerTreePropertyApplier::applyProperties):
* Shared/mac/RemoteLayerTreeTransaction.h:
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
(WebKit::dumpChangedLayers):
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::userInteractionEnabled):
(WebKit::PlatformCALayerRemote::setUserInteractionEnabled):
* WebProcess/WebPage/mac/PlatformCALayerRemote.h:
2016-06-09 Anders Carlsson <andersca@apple.com>
Remove OriginAndDatabases.cpp, it's unused
https://bugs.webkit.org/show_bug.cgi?id=158595
Reviewed by Sam Weinig.
* CMakeLists.txt:
* Shared/OriginAndDatabases.cpp: Removed.
(WebKit::OriginAndDatabases::encode): Deleted.
(WebKit::OriginAndDatabases::decode): Deleted.
* Shared/OriginAndDatabases.h: Removed.
* WebKit2.xcodeproj/project.pbxproj:
2016-06-09 Alex Christensen <achristensen@webkit.org>
Clean up EditorClient lifetime
https://bugs.webkit.org/show_bug.cgi?id=158588
Reviewed by Anders Carlsson.
* WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::generateTextCheckingRequestID):
(WebKit::WebEditorClient::shouldDeleteRange):
(WebKit::WebEditorClient::pageDestroyed): Deleted.
* WebProcess/WebCoreSupport/WebEditorClient.h:
(WebKit::WebEditorClient::WebEditorClient):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::m_shouldDispatchFakeMouseMoveEvents):
2016-06-09 Andy Estes <aestes@apple.com>
WKWebView does not render PDF pages in AirPrint
https://bugs.webkit.org/show_bug.cgi?id=151386
rdar://problem/22499157
Reviewed by Tim Horton.
_WKWebViewPrintFormatter originally attempted to handle PDFs, but the code path was never
properly tested since Safari prints PDFs by setting a printingItem on the
UIPrintInteractionController instead of going through a print formatter. The existing code
almost worked, if it weren't for CGContextScaleCTM() scaling each page into oblivion due to
_totalScaleFactor equaling 0.
This patch properly implements -[_WKWebViewPrintFormatter drawInRect:forPageAtIndex:] to
handle drawing both PDFs generated by WebKit and PDFs loaded in the main frame. It also
takes the opportunity to clean up a number of issues in the existing code:
- Handling of -[_WKWebViewPrintFormatter startPage] is now correct. I had previously assumed
this property represented the first page of output to print, but it actually represents
the first page in the overall print job that the print formatter renders. In other words,
regardless of -startPage, the print formatter should always print all its pages.
- Code specific to webpage and PDF printing was factored out into WKContentView and
WKPDFView, respectively. Each conforms to @protocol(_WKWebViewPrintProvider), and
_WKWebViewPrintFormatter accesses the provider via -[WKWebView _printProvider].
- Instead of piping the printed PDF data from WebPageProxy to WKWebView via PageClient, use
the GenericCallback mechanism to have WebPageProxy call a lambda specified by
WKContentView when the printed PDF is available.
- Removed _totalScaleFactor and used CGPDFPageGetDrawingTransform() to transform both
webpages and PDFs. For webpages, _totalScaleFactor will always equal the ratio of the
paper width to the PDF page width, so CGPDFPageGetDrawingTransform() will apply the same
scaling as CGContextScaleCTM(_totalScaleFactor, _totalScaleFactor) would.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _printProvider]): Added. Returns _currentContentView if it conforms to
@protocol(_WKWebViewPrintProvider).
(-[WKWebView _computePageCountAndStartDrawingToPDFForFrame:printInfo:firstPage:computedTotalScaleFactor:]):
Moved code to _wk_pageCountForPrintFormatter in WKContentView and WKPDFView.
(-[WKWebView _endPrinting]): Deleted.
(-[WKWebView _printedDocument]): Deleted.
(-[WKWebView _setPrintedDocument:]): Deleted.
* UIProcess/API/Cocoa/WKWebViewInternal.h: Declared the _printProvider property.
* UIProcess/PageClient.h: Removed didFinishDrawingPagesToPDF().
* UIProcess/WebPageProxy.h: Declared computePagesForPrintingAndDrawToPDF() and
drawToPDFCallback().
* UIProcess/WebPageProxy.messages.in: Renamed DidFinishDrawingPagesToPDF to
DrawToPDFCallback.
* UIProcess/_WKWebViewPrintFormatter.mm: Backed the frameToPrint property with a RetainPtr
ivar so that it doesn't need to be released manually in -dealloc; removed _totalScaleFactor
and _printInfo ivars and added a _printedDocument ivar; removed the property declaration for
webView.
(-[_WKWebViewPrintFormatter frameToPrint]): Added a custom getter for the frameToPrint
property.
(-[_WKWebViewPrintFormatter setFrameToPrint:]): Added a custom setter for the frameToPrint
property.
(-[_WKWebViewPrintFormatter _webView]): Renamed from webView; added an underscore since this
is a private method.
(-[_WKWebViewPrintFormatter _recalcPageCount]): Retrieved the page count from the print
provider and clamped its value to NSIntegerMax.
(-[_WKWebViewPrintFormatter drawInRect:forPageAtIndex:]): Retrieved the printed document
from the print provider if needed; modified the CTM transformations to work for both
webpages and PDFs.
(-[_WKWebViewPrintFormatter dealloc]): Deleted.
(-[_WKWebViewPrintFormatter webView]): Renamed to _webView.
(-[_WKWebViewPrintFormatter rectForPageAtIndex:]): Deleted.
* UIProcess/_WKWebViewPrintFormatterInternal.h: Added. Moved a UIPrintFormatter internal
method declaration to here and defined the _WKWebViewPrintProvider protocol.
* UIProcess/ios/PageClientImplIOS.h: Removed didFinishDrawingPagesToPDF().
* UIProcess/ios/PageClientImplIOS.mm: Ditto.
(WebKit::PageClientImpl::didFinishDrawingPagesToPDF): Deleted.
* UIProcess/ios/WKContentView.mm: Conformed to @protocol(_WKWebViewPrintProvider).
(-[WKContentView _wk_pageCountForPrintFormatter:]): Moved the code to compute page count
from WKWebView to here.
(-[WKContentView _wk_printedDocument]): Moved the code to get the printed document from
WKWebView to here.
* UIProcess/ios/WKPDFView.mm:
(-[WKPDFView _wk_pageCountForPrintFormatter:]): Moved the code to compute the page count
from WKWebView to here; added a call to CGPDFDocumentAllowsPrinting(), returning 0 if
printing is not allowed.
(-[WKPDFView _wk_printedDocument]): Moved the code to get the printed document from
WKWebView to here.
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::computePagesForPrintingAndDrawToPDF): Registered the callback with
m_callbacks and sent Messages::WebPage::ComputePagesForPrintingAndDrawToPDF; returned the
synchronously-returned page count.
(WebKit::WebPageProxy::drawToPDFCallback): Added to perform the callback when drawing to PDF
is complete.
(WebKit::WebPageProxy::didFinishDrawingPagesToPDF): Deleted.
* WebKit2.xcodeproj/project.pbxproj: Added _WKWebViewPrintFormatterInternal.h.
* WebProcess/WebPage/WebPage.h: Renamed computePagesForPrintingAndStartDrawingToPDF() to
computePagesForPrintingAndDrawToPDF().
* WebProcess/WebPage/WebPage.messages.in: Renamed
ComputePagesForPrintingAndStartDrawingToPDF to ComputePagesForPrintingAndDrawToPDF. Removed
the startPage parameter and added a callbackID.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::computePagesForPrintingAndDrawToPDF): Renamed from
computePagesForPrintingAndStartDrawingToPDF(). Added a call to endPrinting() after sending
Messages::WebPageProxy::DrawToPDFCallback.
(WebKit::WebPage::computePagesForPrintingAndStartDrawingToPDF): Renamed to
computePagesForPrintingAndDrawToPDF.
2016-06-09 Alex Christensen <achristensen@webkit.org>
Clean up WebSocket code
https://bugs.webkit.org/show_bug.cgi?id=158551
Reviewed by Darin Adler.
* WebProcess/FileAPI/BlobRegistryProxy.cpp:
(WebKit::BlobRegistryProxy::registerFileBlobURL):
* WebProcess/FileAPI/BlobRegistryProxy.h:
2016-06-09 David Kilzer <ddkilzer@apple.com>
Update properties for UIWKTextInteractionAssistant
<https://webkit.org/b/158559>
Reviewed by Darin Adler.
* Platform/spi/ios/UIKitSPI.h:
(UIWKTextInteractionAssistant.loupeGesture):
(UIWKTextInteractionAssistant.singleTapGesture):
Change from retain to assign since UIWKTextInteractionAssistant
is not responsible for their lifetime. Sort alphabetically.
2016-06-09 Michael Saboff <msaboff@apple.com>
WebKitTestRunner and DumpRenderTree do not handle dangling surrogate characters
https://bugs.webkit.org/show_bug.cgi?id=154863
Reviewed by Alexey Proskuryakov.
Added a non-strict verions of WKStringGetUTF8CString() that will handle dangling
surrogates called WKStringGetUTF8CStringNonStrict().
* Shared/API/c/WKString.cpp:
(WKStringGetUTF8CStringImpl):
(WKStringGetUTF8CString):
(WKStringGetUTF8CStringNonStrict):
* Shared/API/c/WKString.h:
2016-06-09 Carlos Garcia Campos <cgarcia@igalia.com>
[Threaded Compositor] Many layout tests crash when threaded compositor is enabled
https://bugs.webkit.org/show_bug.cgi?id=158560
Reviewed by Žan Doberšek.
This is because CoordinatedGraphicsLayer::notifyFlushRequired() assumes it has a valid compositor when it's
called. But the compositor is only present when GraphicsLayer::create() is called with a
GraphicsLayerFactory. When running the layout tests, layers are created without a factory because DrawingAreaImpl
is not entering AC mode as expected and the layer tree host is not created, making
DrawingAreaImpl::graphicsLayerFactory() always return nullptr. This happens because DrawingAreaImpl is checking
acceleratedDrawingEnabled setting to decide whether to always use compositing mode or not, and WTR sets that
setting to false (changing its default value). The thing is that acceleratedDrawingEnabled setting doesn't have
any effect in non-Mac ports, what we really want to check there is whether acceleratedCompositingEnabled is true
or false.
* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::updatePreferences):
2016-06-09 Carlos Garcia Campos <cgarcia@igalia.com>
[Threaded Compositor] Remove ThreadedCompositor::setNeedsDisplay()
https://bugs.webkit.org/show_bug.cgi?id=158523
Reviewed by Michael Catanzaro.
ThreadedCompositor::setNeedsDisplay() is always called from the main thread and schedules a task to the
compositing thread to schedule an immediate update. But RunLoop::Timer is thread-safe so we don't really need to
schedule a task to the update the timer in the compositing thread, we can do that directly in the main
thread. And that's exactly what scheduleDisplayImmediately() does, so we can use it instead of setNeedsDisplay().
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::setNeedsDisplay(): Deleted.
(WebKit::ThreadedCompositor::updateSceneState):
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
2016-06-08 Antti Koivisto <antti@apple.com>
Increase disk cache capacity when there is lots of free space
https://bugs.webkit.org/show_bug.cgi?id=158526
Reviewed by Chris Dumez.
Our maximum disk cache capacity has been 175MB for a very long time. Meanwhile the average resource size has grown
massively. 175MB is now enough for cacheable resources of a few dozen sites at most. Using bigger caches when there is
room for it can reduce network traffic, reduce disk writes, save battery and speed up page loading.
This patch changes cache size for PrimaryWebBrowser cache model
>=16GB free: 175MB -> 500MB
8-16GB free: 150MB -> 250MB
and modestly for DocumentBrowser
>=16GB free: 50MB -> 75MB
Note that if system (on Cocoa platforms) really needs disk space it will wipe out caches so this doesn't reduce
available disk space in scenarios like software installation.
* Shared/CacheModel.cpp:
(WebKit::calculateCacheSizes):
2016-06-08 Youenn Fablet <youenn.fablet@crf.canon.fr>
Introduce ResourceErrorBase::type
https://bugs.webkit.org/show_bug.cgi?id=158299
Reviewed by Alex Christensen.
* Shared/soup/WebCoreArgumentCodersSoup.cpp:
(IPC::ArgumentCoder<ResourceError>::encodePlatformData):
(IPC::ArgumentCoder<ResourceError>::decodePlatformData):
2016-06-08 Beth Dakin <bdakin@apple.com>
_web_didAddMediaControlsManager should take a controlsManager as a parameter
https://bugs.webkit.org/show_bug.cgi?id=158545
Reviewed by Tim Horton.
* UIProcess/Cocoa/WebViewImpl.h:
2016-06-06 Antti Koivisto <antti@apple.com>
WebKit memory cache doesn't respect Vary header
https://bugs.webkit.org/show_bug.cgi?id=71509
<rdar://problem/26651033>
Reviewed by Sam Weinig.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::makeCacheKey):
(WebKit::NetworkCache::cachePolicyAllowsExpired):
(WebKit::NetworkCache::makeUseDecision):
(WebKit::NetworkCache::Cache::retrieve):
(WebKit::NetworkCache::Cache::store):
(WebKit::NetworkCache::Cache::storeRedirect):
(WebKit::NetworkCache::Cache::update):
(WebKit::NetworkCache::headerValueForVary): Deleted.
(WebKit::NetworkCache::collectVaryingRequestHeaders): Deleted.
(WebKit::NetworkCache::verifyVaryingRequestHeaders): Deleted.
These move to WebCore.
2016-06-08 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix GTK+ build with threaded compositor enabled after r201802.
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:
(WebKit::ThreadedCoordinatedLayerTreeHost::create):
2016-06-08 Carlos Garcia Campos <cgarcia@igalia.com>
LayerTreeHost should be created with a WebPage reference instead of a pointer
https://bugs.webkit.org/show_bug.cgi?id=158520
Reviewed by Žan Doberšek.
We are indeed creating the LayerTreeHost always from a WebPage reference but getting its address to pass it to
the LayerTreeHost create() function.
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp:
(WebKit::CoordinatedDrawingArea::enterAcceleratedCompositingMode):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::create):
(WebKit::CoordinatedLayerTreeHost::CoordinatedLayerTreeHost):
(WebKit::CoordinatedLayerTreeHost::didFlushRootLayer):
(WebKit::CoordinatedLayerTreeHost::performScheduledLayerFlush):
(WebKit::CoordinatedLayerTreeHost::commitSceneState):
(WebKit::CoordinatedLayerTreeHost::deviceOrPageScaleFactorChanged):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:
(WebKit::ThreadedCoordinatedLayerTreeHost::create):
(WebKit::ThreadedCoordinatedLayerTreeHost::ThreadedCoordinatedLayerTreeHost):
(WebKit::ThreadedCoordinatedLayerTreeHost::deviceOrPageScaleFactorChanged):
(WebKit::ThreadedCoordinatedLayerTreeHost::compositorDidFlushLayers):
(WebKit::ThreadedCoordinatedLayerTreeHost::didScaleFactorChanged):
(WebKit::ThreadedCoordinatedLayerTreeHost::setVisibleContentsRect):
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::enterAcceleratedCompositingMode):
* WebProcess/WebPage/LayerTreeHost.cpp:
(WebKit::LayerTreeHost::create):
(WebKit::LayerTreeHost::LayerTreeHost):
* WebProcess/WebPage/LayerTreeHost.h:
* WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
(WebKit::LayerTreeHostGtk::create):
(WebKit::LayerTreeHostGtk::LayerTreeHostGtk):
(WebKit::LayerTreeHostGtk::makeContextCurrent):
(WebKit::LayerTreeHostGtk::deviceOrPageScaleFactorChanged):
(WebKit::LayerTreeHostGtk::paintContents):
(WebKit::LayerTreeHostGtk::deviceScaleFactor):
(WebKit::LayerTreeHostGtk::pageScaleFactor):
(WebKit::LayerTreeHostGtk::flushPendingLayerChanges):
(WebKit::LayerTreeHostGtk::flushAndRenderLayers):
(WebKit::LayerTreeHostGtk::pageBackgroundTransparencyChanged):
(WebKit::LayerTreeHostGtk::initialize): Deleted.
* WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
2016-06-07 Sam Weinig <sam@webkit.org>
Fix 10.10 build.
* WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:
(WebKit::addAnimationToLayer):
2016-06-06 Alex Christensen <achristensen@webkit.org>
Modernize loading code
https://bugs.webkit.org/show_bug.cgi?id=158332
Reviewed by Darin Adler.
* NetworkProcess/Downloads/PendingDownload.h:
* NetworkProcess/NetworkDataTask.h:
(WebKit::NetworkDataTask::client):
* NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::didReceiveResponseNetworkSession):
(WebKit::NetworkLoad::didReceiveData):
(WebKit::NetworkLoad::didReceiveBuffer):
* NetworkProcess/NetworkLoad.h:
* NetworkProcess/NetworkLoadClient.h:
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didReceiveBuffer):
(WebKit::NetworkResourceLoader::didFinishLoading):
* NetworkProcess/NetworkResourceLoader.h:
* NetworkProcess/PingLoad.h:
* NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:
(WebKit::NetworkCache::SpeculativeLoad::didReceiveBuffer):
* NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
* NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTask::didReceiveResponse):
(WebKit::NetworkDataTask::didReceiveData):
* Shared/WebHitTestResultData.cpp:
* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::didReceiveResource):
2016-06-05 Sam Weinig <sam@webkit.org>
Add experimental support for spring based CSS animations
https://bugs.webkit.org/show_bug.cgi?id=158403
Reviewed by Dean Jackson.
* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<StepsTimingFunction>::decode):
(IPC::ArgumentCoder<SpringTimingFunction>::encode):
(IPC::ArgumentCoder<SpringTimingFunction>::decode):
(IPC::ArgumentCoder<FloatPoint>::encode):
* Shared/WebCoreArgumentCoders.h:
* Shared/WebPreferencesDefinitions.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
* WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:
(WebKit::PlatformCAAnimationRemote::Properties::encode):
(WebKit::PlatformCAAnimationRemote::Properties::decode):
(WebKit::addAnimationToLayer):
Pipe through support for the Spring animation.
2016-06-07 Michael Catanzaro <mcatanzaro@igalia.com>
[GTK] Hide GTK+ 2 plugins if GTK+ 2 plugin process was built but is not installed
https://bugs.webkit.org/show_bug.cgi?id=158419
Reviewed by Carlos Garcia Campos.
Patch by Alberto Garcia <berto@igalia.com>
* UIProcess/Plugins/unix/PluginInfoStoreUnix.cpp:
(WebKit::PluginInfoStore::getPluginInfo):
* UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp:
(WebKit::PluginProcessProxy::scanPlugin):
2016-06-06 Antoine Quint <graouts@apple.com>
Position of WebGL <canvas> on iOS is incorrect with CSS borders
https://bugs.webkit.org/show_bug.cgi?id=156790
Reviewed by Simon Fraser.
WebGL layers on iOS are hosted by a WKRemoteView, which applies a transform scaling
its content by the inverse of the device pixel ratio, which affects how positions are
applied to the WebGL layer. The container layer of the layer hosted by a WKRemoteView
then has an inverse transform applied to it in the PlatformCALayerRemoteCustom
constructor. However, the position of a CALayer is not affected by its transform.
The fix for <rdar://problem/18316542> should be specific to video, so we only apply the
scaling in the case of a LayerTypeAVPlayerLayer.
* UIProcess/ios/RemoteLayerTreeHostIOS.mm:
(-[WKRemoteView initWithFrame:contextID:]):
(WebKit::RemoteLayerTreeHost::createLayer):
(-[WKRemoteView initWithFrame:contextID:hostingDeviceScaleFactor:]): Deleted.
* WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:
(WebKit::PlatformCALayerRemoteCustom::PlatformCALayerRemoteCustom):
2016-06-06 Brady Eidson <beidson@apple.com>
Fix build after r201717
Unreviewed.
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFiles):
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::grantSandboxExtensionsToDatabaseProcessForBlobs):
* NetworkProcess/NetworkProcess.h:
2016-06-06 Brady Eidson <beidson@apple.com>
Modern IDB: Crash seen in IDBConnectionProxy::putOrAdd on GuardMalloc bot
https://bugs.webkit.org/show_bug.cgi?id=158124
Reviewed by Darin Adler.
* NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:
(WebKit::NetworkBlobRegistry::writeBlobsToTemporaryFiles):
* NetworkProcess/FileAPI/NetworkBlobRegistry.h:
* WebProcess/FileAPI/BlobRegistryProxy.cpp:
(WebKit::BlobRegistryProxy::writeBlobsToTemporaryFiles):
* WebProcess/FileAPI/BlobRegistryProxy.h:
* WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::didClose):
(WebKit::NetworkProcessConnection::writeBlobsToTemporaryFiles):
* WebProcess/Network/NetworkProcessConnection.h:
2016-06-06 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r201706.
https://bugs.webkit.org/show_bug.cgi?id=158427
This change broke the Yosemite build and its LayoutTest is
failing on Mac and iOS testers (Requested by ryanhaddad on
#webkit).
Reverted changeset:
"Add experimental support for spring based CSS animations"
https://bugs.webkit.org/show_bug.cgi?id=158403
http://trac.webkit.org/changeset/201706
2016-06-06 Alex Christensen <achristensen@webkit.org>
Reduce ResourceRequest copying in loading code
https://bugs.webkit.org/show_bug.cgi?id=158251
Reviewed by Darin Adler.
* NetworkProcess/Downloads/DownloadManager.cpp:
(WebKit::DownloadManager::continueCanAuthenticateAgainstProtectionSpace):
(WebKit::DownloadManager::continueWillSendRequest):
(WebKit::DownloadManager::willDecidePendingDownloadDestination):
* NetworkProcess/Downloads/DownloadManager.h:
* NetworkProcess/Downloads/PendingDownload.cpp:
(WebKit::PendingDownload::PendingDownload):
(WebKit::PendingDownload::willSendRedirectedRequest):
(WebKit::PendingDownload::continueWillSendRequest):
(WebKit::PendingDownload::canAuthenticateAgainstProtectionSpaceAsync):
* NetworkProcess/Downloads/PendingDownload.h:
* NetworkProcess/NetworkDataTask.h:
(WebKit::NetworkDataTask::firstRequest):
* NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::cancel):
(WebKit::NetworkLoad::continueWillSendRequest):
(WebKit::NetworkLoad::sharedDidReceiveResponse):
(WebKit::NetworkLoad::sharedWillSendRedirectedRequest):
(WebKit::NetworkLoad::setPendingDownload):
(WebKit::NetworkLoad::willPerformHTTPRedirection):
(WebKit::NetworkLoad::didReceiveChallenge):
(WebKit::NetworkLoad::didFail):
(WebKit::NetworkLoad::willSendRequestAsync):
* NetworkProcess/NetworkLoad.h:
(WebKit::NetworkLoad::currentRequest):
(WebKit::NetworkLoad::clearCurrentRequest):
(WebKit::NetworkLoad::pendingDownloadID):
* NetworkProcess/NetworkLoadClient.h:
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::continueCanAuthenticateAgainstProtectionSpace):
(WebKit::NetworkProcess::continueWillSendRequest):
(WebKit::NetworkProcess::pendingDownloadCanceled):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didFailLoading):
(WebKit::NetworkResourceLoader::willSendRedirectedRequest):
(WebKit::NetworkResourceLoader::continueWillSendRequest):
(WebKit::NetworkResourceLoader::continueDidReceiveResponse):
* NetworkProcess/NetworkResourceLoader.h:
* NetworkProcess/PingLoad.h:
(WebKit::PingLoad::PingLoad):
* NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:
(WebKit::NetworkCache::SpeculativeLoad::~SpeculativeLoad):
(WebKit::NetworkCache::SpeculativeLoad::willSendRedirectedRequest):
* NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
* NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTask::didBecomeDownload):
(WebKit::NetworkDataTask::willPerformHTTPRedirection):
* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::detachFromCoreLoader):
(WebKit::WebResourceLoader::willSendRequest):
* WebProcess/Network/WebResourceLoader.h:
2016-06-05 Sam Weinig <sam@webkit.org>
Add experimental support for spring based CSS animations
https://bugs.webkit.org/show_bug.cgi?id=158403
Reviewed by Dean Jackson.
* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<StepsTimingFunction>::decode):
(IPC::ArgumentCoder<SpringTimingFunction>::encode):
(IPC::ArgumentCoder<SpringTimingFunction>::decode):
(IPC::ArgumentCoder<FloatPoint>::encode):
* Shared/WebCoreArgumentCoders.h:
* Shared/WebPreferencesDefinitions.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
* WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:
(WebKit::PlatformCAAnimationRemote::Properties::encode):
(WebKit::PlatformCAAnimationRemote::Properties::decode):
(WebKit::addAnimationToLayer):
Pipe through support for the Spring animation.
2016-06-05 Yusuke Suzuki <utatane.tea@gmail.com>
Change ProxyObject.[[Get]] not to use custom accessor
https://bugs.webkit.org/show_bug.cgi?id=157080
Reviewed by Darin Adler.
* WebProcess/Plugins/Netscape/JSNPObject.cpp:
(WebKit::JSNPObject::propertyGetter):
(WebKit::JSNPObject::methodGetter):
* WebProcess/Plugins/Netscape/JSNPObject.h:
2016-06-05 Brady Eidson <beidson@apple.com>
Unreviewed, rolling out r201694.
201693
Reverted changeset:
"Fix the build after r201693."
https://bugs.webkit.org/show_bug.cgi?id=158394
http://trac.webkit.org/changeset/201694
2016-06-05 Brady Eidson <beidson@apple.com>
Fix the build after r201693.
https://bugs.webkit.org/show_bug.cgi?id=158394
Reviewed by NOBODY (Build fix).
r201693 landed without the Source/WebKit2 changes, and I didn't have EWS/CQ available to check myself. *sigh*
* NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:
(WebKit::NetworkBlobRegistry::writeBlobsToTemporaryFiles):
* NetworkProcess/FileAPI/NetworkBlobRegistry.h:
* WebProcess/FileAPI/BlobRegistryProxy.cpp:
(WebKit::BlobRegistryProxy::writeBlobsToTemporaryFiles):
* WebProcess/FileAPI/BlobRegistryProxy.h:
* WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::didClose):
(WebKit::NetworkProcessConnection::writeBlobsToTemporaryFiles):
* WebProcess/Network/NetworkProcessConnection.h:
2016-06-03 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r201663.
https://bugs.webkit.org/show_bug.cgi?id=158374
Broke the Windows build (Requested by andersca on #webkit).
Reverted changeset:
"Rename NoncopyableFunction to Function"
https://bugs.webkit.org/show_bug.cgi?id=158354
http://trac.webkit.org/changeset/201663
2016-06-03 Anders Carlsson <andersca@apple.com>
Rename NoncopyableFunction to Function
https://bugs.webkit.org/show_bug.cgi?id=158354
Reviewed by Chris Dumez.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::fetchDiskCacheEntries):
(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::clearDiskCacheEntries):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::traverse):
* NetworkProcess/cache/NetworkCache.h:
* NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:
(WebKit::NetworkCache::runTaskInQueue):
* NetworkProcess/cache/NetworkCacheStorage.h:
2016-06-03 Chris Dumez <cdumez@apple.com>
Unreviewed, roll out r196633 as it broke PageCache on iOS for WebKit.org
<rdar://problem/26521101>
* WebProcess/WebPage/VisitedLinkTableController.cpp:
(WebKit::VisitedLinkTableController::setVisitedLinkTable):
(WebKit::VisitedLinkTableController::visitedLinkStateChanged):
(WebKit::VisitedLinkTableController::allVisitedLinkStateChanged):
(WebKit::VisitedLinkTableController::removeAllVisitedLinks):
2016-06-03 Csaba Osztrogonác <ossy@webkit.org>
Fix the !ENABLE(INDEXED_DATABASE) build after r201575
https://bugs.webkit.org/show_bug.cgi?id=158346
Reviewed by Brady Eidson.
* DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::fetchWebsiteData):
(WebKit::DatabaseProcess::deleteWebsiteData):
(WebKit::DatabaseProcess::deleteWebsiteDataForOrigins):
2016-06-02 Chris Dumez <cdumez@apple.com>
Crash under WebProcess::registerWithStateDumper()
https://bugs.webkit.org/show_bug.cgi?id=158304
<rdar://problem/25329276>
Reviewed by Anders Carlsson.
The issue is that the block in registerWithStateDumper() was executed in
a background thread and is iterating over m_pageMap HashMap. The crash
occurs when a page gets removed from the m_pageMap HashMap while the
block is iterating over this same HashMap in another thread.
The solution proposed is to execute the registerWithStateDumper()'s
block in the main thread.
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::registerWithStateDumper):
2016-06-02 Brady Eidson <beidson@apple.com>
Overhaul cross-thread use of ResourceRequest, ResourceResponse, and ResourceError.
https://bugs.webkit.org/show_bug.cgi?id=158293
Reviewed by Darin Adler.
* NetworkProcess/cache/NetworkCacheEntry.cpp:
(WebKit::NetworkCache::Entry::Entry):
2016-06-02 Chris Dumez <cdumez@apple.com>
Modernize various lambda captures
https://bugs.webkit.org/show_bug.cgi?id=158292
Reviewed by Brady Eidson.
Modernize various lambda captures, especially the ones unnecessarily
allocating objects on the heap and destroying them in the lambda.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::fetchDiskCacheEntries):
(WebKit::clearDiskCacheEntries):
(WebKit::NetworkProcess::fetchWebsiteData): Deleted.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::traverse):
* NetworkProcess/cache/NetworkCache.h:
* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::TraverseOperation::TraverseOperation):
* NetworkProcess/cache/NetworkCacheStorage.h:
2016-06-02 Chris Dumez <cdumez@apple.com>
Speculative revalidated request returns 200 instead of 304
https://bugs.webkit.org/show_bug.cgi?id=158256
Reviewed by Antti Koivisto and Carlos Garcia Campos.
Already conditional requests coming from WebCore should bypass the
SpeculativeLoadManager. This is because the validation is requested
by WebCore (usually the memory cache) and not our network cache. As
a result, we need to pipe the revalidation response (e.g. 304 status
code) back to WebCore instead of resolving it as disk cache level.
This should fix the /webkit2/WebKitWebResource/response unit test.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::retrieve):
* NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
(WebKit::NetworkCache::requestsHeadersMatch):
2016-06-02 Youenn Fablet <youenn.fablet@crf.canon.fr>
Use more references in ResourceLoader related code
https://bugs.webkit.org/show_bug.cgi?id=158222
Reviewed by Darin Adler.
* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::loadResource):
(WebKit::WebLoaderStrategy::schedulePluginStreamLoad):
(WebKit::WebLoaderStrategy::scheduleLoad):
(WebKit::WebLoaderStrategy::scheduleInternallyFailedLoad):
(WebKit::WebLoaderStrategy::startLocalLoad):
(WebKit::WebLoaderStrategy::networkProcessCrashed):
* WebProcess/Network/WebLoaderStrategy.h:
* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::create):
(WebKit::WebResourceLoader::WebResourceLoader):
* WebProcess/Network/WebResourceLoader.h:
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::Stream::start):
2016-06-01 Yongjun Zhang <yongjun_zhang@apple.com>
Notify client immediately if network session doesn't exist for a synchronous XHR load.
https://bugs.webkit.org/show_bug.cgi?id=158239
<rdar://problem/26344251>
Reviewed by Brady Eidson.
For a synchronous XHR load, if the network session doesn't exist, we should notify NetworkLoadClient.
Otherwise the Web process could hang when waiting for the synchronous load to finish.
* NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::NetworkLoad):
2016-05-31 Brian Burg <bburg@apple.com>
REGRESSION(r191907): Can't enter combining diacritic marks in Web Inspector fields
https://bugs.webkit.org/show_bug.cgi?id=158227
<rdar://problem/26232464>
Reviewed by Darin Adler and Alexey Proskuryakov.
Web Inspector uses a WKWebView subclass for the inspector frontend interface.
Since r191907, WKWebView does not have an inner WKView, and instead shares
a WebViewImpl to implement the same methods as WKView. So, WKView is no longer
involved at all when delivering keystrokes to the Web Inspector interface.
This caused a subtle regression where some keystrokes were not being interpreted
in the same way by AppKit because WKWebView does not conform to NSTextInputClient
but WKView does. AppKit won't automatically create a NSTextInputContext for a NSView
unless the subclass is declared as conforming to NSTextInputClient. Thus, the keystroke
never goes through NSTextInputContext machinery which converts the keystroke into
a combining diacritic character.
This regression is covered by a new API test.
* UIProcess/API/Cocoa/WKWebView.mm: mark WKWebView as conforming to NSTextInputClient.
2016-06-01 Dan Bernstein <mitz@apple.com>
Try to fix ENABLE(IOS_TOUCH_EVENTS) builds.
* WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::touchEvent):
2016-05-31 Darin Adler <darin@apple.com>
Audit RenderObject casts and fix problems and style issues found
https://bugs.webkit.org/show_bug.cgi?id=158221
Reviewed by Chris Dumez.
* Shared/WebRenderObject.cpp:
(WebKit::WebRenderObject::WebRenderObject): Tightened up the code that
builds the tree of objects; fewer local variables.
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::invalidateRect): Cast to RenderEmbeddedObject since
that is the class used for plug-ins.
(WebKit::PluginView::pluginProcessCrashed): Ditto.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::createPlugin): Ditto.
(WebKit::WebPage::plugInIsPrimarySize): Check the renderer for null here.
Did not change this to RenderEmbeddedObject, though, because I wasn't
absolute certain this is only called with that type of renderer.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::rangeForWebSelectionAtPosition): Tweaked.
2016-06-01 Brady Eidson <beidson@apple.com>
Modernize lambda usage for all callers of RunLoop::dispatch() (take 2).
https://bugs.webkit.org/show_bug.cgi?id=158277
Reviewed by Chris Dumez.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::deleteDumpFile):
* Platform/IPC/Connection.cpp:
(IPC::Connection::addWorkQueueMessageReceiver):
(IPC::Connection::removeWorkQueueMessageReceiver):
(IPC::Connection::invalidate):
(IPC::Connection::sendMessage):
(IPC::Connection::processIncomingMessage):
(IPC::Connection::postConnectionDidCloseOnConnectionWorkQueue):
* UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
(WebKit::LocalStorageDatabaseTracker::LocalStorageDatabaseTracker):
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::createSessionStorageNamespace):
(WebKit::StorageManager::destroySessionStorageNamespace):
(WebKit::StorageManager::setAllowedSessionStorageNamespaceConnection):
(WebKit::StorageManager::cloneSessionStorageNamespace):
(WebKit::StorageManager::processDidCloseConnection):
* UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::readDataFromDiskIfNeeded):
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::fetchData):
(WebKit::WebsiteDataStore::removeData):
2016-06-01 Chris Dumez <cdumez@apple.com>
[iOS] Regression(r200972): Crash under WebKit::WebPage::selectTextWithGranularityAtPoint()
https://bugs.webkit.org/show_bug.cgi?id=158284
<rdar://problem/26573954>
Reviewed by Ryosuke Niwa.
range can be null but r200972 started dereferencing it without null
check. This patch adds a null check for range and uses the pre-r200972
code path if range is null.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::selectTextWithGranularityAtPoint):
2016-06-01 Brady Eidson <beidson@apple.com>
Modernize lambda usage for all callers of RunLoop::dispatch().
https://bugs.webkit.org/show_bug.cgi?id=158265
Reviewed by Chris Dumez.
* DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::fetchWebsiteData):
(WebKit::DatabaseProcess::deleteWebsiteData):
(WebKit::DatabaseProcess::deleteWebsiteDataForOrigins):
* NetworkProcess/NetworkProcess.cpp:
(WebKit::fetchDiskCacheEntries):
(WebKit::NetworkProcess::fetchWebsiteData):
* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::remove):
(WebKit::NetworkCache::retrieveFromMemory):
* Platform/IPC/Connection.cpp:
(IPC::Connection::SyncMessageState::processIncomingMessage):
(IPC::Connection::processIncomingMessage):
(IPC::Connection::connectionDidClose):
(IPC::Connection::enqueueIncomingMessage):
* Platform/IPC/mac/ConnectionMac.mm:
(IPC::Connection::receiveSourceEventHandler):
* Shared/mac/CookieStorageShim.mm:
(-[WKNSURLSessionLocal _getCookieHeadersForTask:completionHandler:]):
* UIProcess/API/APIUserContentExtensionStore.cpp:
(API::UserContentExtensionStore::lookupContentExtension):
(API::UserContentExtensionStore::compileContentExtension):
(API::UserContentExtensionStore::removeContentExtension):
* UIProcess/Launcher/ProcessLauncher.cpp:
(WebKit::ProcessLauncher::ProcessLauncher):
* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::connectToService):
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::getSessionStorageOrigins):
(WebKit::StorageManager::deleteSessionStorageOrigins):
(WebKit::StorageManager::deleteSessionStorageEntriesForOrigins):
(WebKit::StorageManager::getLocalStorageOrigins):
(WebKit::StorageManager::getLocalStorageOriginDetails):
(WebKit::StorageManager::deleteLocalStorageEntriesForOrigin):
(WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince):
(WebKit::StorageManager::deleteLocalStorageEntriesForOrigins):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::isWebProcessResponsive):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::isResponsive):
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::fetchData):
* WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
(WebKit::NetscapePlugin::pluginThreadAsyncCall):
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::unprotectPluginFromDestruction):
* WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::wheelEvent):
(WebKit::EventDispatcher::gestureEvent):
(WebKit::EventDispatcher::touchEvent):
* WebProcess/WebPage/ViewUpdateDispatcher.cpp:
(WebKit::ViewUpdateDispatcher::visibleContentRectUpdate):
2016-05-31 Yusuke Suzuki <utatane.tea@gmail.com>
Unreviewed, roll out r201481, r201523: 0.3% regression in Octane code-load
https://bugs.webkit.org/show_bug.cgi?id=158249
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:
2016-05-31 Beth Dakin <bdakin@apple.com>
Add two optional items to WebViewImplDelegate
https://bugs.webkit.org/show_bug.cgi?id=158242
-and corresponding-
rdar://problem/26473095
Reviewed by Tim Horton.
* UIProcess/Cocoa/WebViewImpl.h:
2016-05-31 Jer Noble <jer.noble@apple.com>
REGRESSION (r201405): trailers.apple.com HUD is missing in fullscreen
https://bugs.webkit.org/show_bug.cgi?id=158156
<rdar://problem/26519589>
Reviewed by Darin Adler.
Only increase the frame of the webView (to account for top content inset) in one dimension.
* UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController enterFullScreen:]):
2016-05-31 Chris Dumez <cdumez@apple.com>
[iOS] Better deal with WebProcess suspension due to screen locking
https://bugs.webkit.org/show_bug.cgi?id=158229
<rdar://problem/17665473>
<rdar://problem/26554699>
Reviewed by Tim Horton.
When locking the screen while MobileSafari is front-most, we would try keep
trying to mark IOSurfaces as volatile until the 30 seconds timeout was
reached. This patch deals more cleanly with this situation by only trying
to mark IOSurfaces as volatile once if the suspension is due to screen
locking. In such case, it is apparently expected that some IOSurfaces cannot
be marked as volatile so it is enough to try once and let ourselves get
suspended.
This patch also reduces the timeout from 30 seconds to ~3 seconds in the
other suspension cases (e.g. homing out of MobileSafari). If we fail to mark
them as purgeable for 3 seconds for a reason or another, it is no use in
retrying, it is simply not going to happen and there is no reason to delay
process suspension any further.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::callVolatilityCompletionHandlers):
(WebKit::WebPage::layerVolatilityTimerFired):
(WebKit::WebPage::markLayersVolatileImmediatelyIfPossible):
(WebKit::WebPage::markLayersVolatile):
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::markLayersVolatile):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::applicationDidEnterBackground):
(WebKit::WebPage::applicationWillEnterForeground):
2016-05-31 Brady Eidson <beidson@apple.com>
Make createCrossThreadTask() functions return on the stack instead of the heap.
https://bugs.webkit.org/show_bug.cgi?id=158215
Reviewed by Darin Adler.
* DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::postDatabaseTask):
(WebKit::DatabaseProcess::performNextDatabaseTask):
(WebKit::DatabaseProcess::fetchWebsiteData):
* DatabaseProcess/DatabaseProcess.h:
2016-05-31 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.13.1 release.
* gtk/NEWS: Add release notes for 2.13.1.
2016-05-31 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix GTK+ clean build after r201504.
* DatabaseProcess/DatabaseProcess.cpp: Add missing include.
2016-05-30 Brady Eidson <beidson@apple.com>
Move CrossThreadCopier/CrossThreadTask to WTF.
https://bugs.webkit.org/show_bug.cgi?id=158207
Reviewed by Alex Christensen.
* CMakeLists.txt:
* WebKit2.xcodeproj/project.pbxproj:
* DatabaseProcess/DatabaseProcess.cpp:
* DatabaseProcess/DatabaseProcess.h:
* Shared/WebCrossThreadCopier.cpp: Removed.
* Shared/WebCrossThreadCopier.h: Removed.
2016-05-28 Chris Dumez <cdumez@apple.com>
Templatize NoncopyableFunction class similarly to std::function
https://bugs.webkit.org/show_bug.cgi?id=158185
Reviewed by Darin Adler.
Templatize NoncopyableFunction class similarly to std::function, so
that it can be used as a std::function replacement in more places.
Previously, NoncopyableFunction could only support "void()" lambdas.
* NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:
(WebKit::NetworkCache::runTaskInQueue):
2016-05-28 Alexey Proskuryakov <ap@apple.com>
Fix the build with newer clang and other custom configuration options
https://bugs.webkit.org/show_bug.cgi?id=158161
Reviewed by Dan Bernstein.
* NetworkProcess/ios/NetworkProcessIOS.mm: -setAllowsSpecificHTTPSCertificate:forHost:
is now in CFNetworkSPI.h
* NetworkProcess/mac/NetworkProcessMac.mm: Ditto.
* Shared/mac/CookieStorageShimLibrary.cpp:
(WebKit::WebKitCookieStorageShimInitialize): Use more portable std::call_once.
2016-05-28 Chris Dumez <cdumez@apple.com>
Modernize lambda captures in the network disk cache implementation
https://bugs.webkit.org/show_bug.cgi?id=158179
Reviewed by Darin Adler.
Modernize lambda captures in the network disk cache implementation.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::retrieve):
(WebKit::NetworkCache::Cache::store):
(WebKit::NetworkCache::Cache::traverse):
* NetworkProcess/cache/NetworkCache.h:
* NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:
(WebKit::NetworkCache::inputStreamReadReadyCallback):
(WebKit::NetworkCache::outputStreamWriteReadyCallback):
* NetworkProcess/cache/NetworkCacheStatistics.cpp:
(WebKit::NetworkCache::Statistics::initialize):
(WebKit::NetworkCache::Statistics::shrinkIfNeeded):
(WebKit::NetworkCache::Statistics::queryWasEverRequested):
* NetworkProcess/cache/NetworkCacheStatistics.h:
* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::updateFileModificationTime):
(WebKit::NetworkCache::Storage::clear):
2016-05-27 Caitlin Potter <caitp@igalia.com>
[JSC] implement async functions proposal
https://bugs.webkit.org/show_bug.cgi?id=156147
Reviewed by Yusuke Suzuki.
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:
2016-05-27 Chris Dumez <cdumez@apple.com>
Improve lambda capture in NetworkCache::Storage::synchronize()
https://bugs.webkit.org/show_bug.cgi?id=158176
Reviewed by Brady Eidson.
Improve lambda capture in NetworkCache::Storage::synchronize(). We can
now capture the std::unique_ptr<> variables directly thanks to:
1. C++14's support for initializer's in lambda captures
2. RunLoop::dispatch() now takes a NoncopyableFunction in instead of
a std::function, allowing us to capture non-copyable variables.
* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::synchronize):
2016-05-27 Jeremy Jones <jeremyj@apple.com>
Decrease flicker when changing video presentation mode.
https://bugs.webkit.org/show_bug.cgi?id=158148
rdar://problem/24476949
Reviewed by Tim Horton.
Prevent flicker by using setVideoFullscreenLayer with a completion handler to delay
enter fullscreen and cleanup fullscreen until the video layer has completely been
installed or removed.
* WebProcess/cocoa/WebVideoFullscreenManager.mm:
(WebKit::WebVideoFullscreenManager::didSetupFullscreen):
(WebKit::WebVideoFullscreenManager::didExitFullscreen):
2016-05-27 Chris Dumez <cdumez@apple.com>
WorkQueue::dispatch() / RunLoop::dispatch() should not copy captured lambda variables
https://bugs.webkit.org/show_bug.cgi?id=158111
Reviewed by Darin Adler.
WorkQueue::dispatch() / RunLoop::dispatch() should not copy captured lambda variables.
These are often used cross-thread and copying the captured lambda variables can be
dangerous (e.g. we do not want to copy a String after calling isolatedCopy() upon
capture).
* NetworkProcess/NetworkProcess.cpp:
(WebKit::clearDiskCacheEntries):
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::clear):
* NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:
(WebKit::NetworkCache::runTaskInQueue):
* Platform/IPC/Connection.cpp:
(IPC::Connection::processIncomingMessage):
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::getSessionStorageOrigins):
(WebKit::StorageManager::deleteSessionStorageOrigins):
(WebKit::StorageManager::deleteSessionStorageEntriesForOrigins):
(WebKit::StorageManager::getLocalStorageOrigins):
(WebKit::StorageManager::getLocalStorageOriginDetails):
(WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince):
(WebKit::StorageManager::deleteLocalStorageEntriesForOrigins):
* UIProcess/Storage/StorageManager.h:
2016-05-27 Alex Christensen <achristensen@webkit.org>
Expose content extension failure error codes in SPI
https://bugs.webkit.org/show_bug.cgi?id=158095
rdar://problem/26475651
Reviewed by Anders Carlsson.
* UIProcess/API/APIUserContentExtensionStore.cpp:
(API::UserContentExtensionStore::synchronousRemoveAllContentExtensions):
(API::UserContentExtensionStore::invalidateContentExtensionVersion):
Added for testing.
(API::userContentExtensionStoreErrorCategory):
* UIProcess/API/APIUserContentExtensionStore.h:
* UIProcess/API/Cocoa/_WKUserContentExtensionStore.h:
Added the new enum, _WKUserContentExtensionStoreErrorCode.
* UIProcess/API/Cocoa/_WKUserContentExtensionStore.mm:
(-[_WKUserContentExtensionStore compileContentExtensionForIdentifier:encodedContentExtension:completionHandler:]):
Sometimes the error code returned by UserContentExtensionStore::compileContentExtension has the error code from compileRuleList.
When this happens, we want to get the message from the internal compiler error, but we want the NSError's code to always be CompileFailed.
(-[_WKUserContentExtensionStore lookupContentExtensionForIdentifier:completionHandler:]):
(-[_WKUserContentExtensionStore removeContentExtensionForIdentifier:completionHandler:]):
(-[_WKUserContentExtensionStore _removeAllContentExtensions]):
(-[_WKUserContentExtensionStore _invalidateContentExtensionVersionForIdentifier:]):
* UIProcess/API/Cocoa/_WKUserContentExtensionStorePrivate.h:
Added new invalidator for testing.
2016-05-27 Zalan Bujtas <zalan@apple.com>
Regression(r200972): Webcore::Range::collectSelectionsRects() asserts in startContainer() while selecting text.
https://bugs.webkit.org/show_bug.cgi?id=158155
<rdar://problem/26502712>
Reviewed by Chris Dumez.
This patch ensures that we still have a valid paragraphRange after returning from enclosingTextUnitOfGranularity().
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::selectTextWithGranularityAtPoint):
2016-05-26 Brady Eidson <beidson@apple.com>
Certain NetworkResourceLoader callbacks can deref a null m_networkLoad.
https://bugs.webkit.org/show_bug.cgi?id=158134
Reviewed by Alex Christensen.
It's legit for m_networkLoad to be null in these callbacks.
We need null checks, just like we have in many other callbacks in this class.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::continueWillSendRequest):
(WebKit::NetworkResourceLoader::continueCanAuthenticateAgainstProtectionSpace):
2016-05-26 Darin Adler <darin@apple.com>
Media queries and platform screen modernization and streamlining
https://bugs.webkit.org/show_bug.cgi?id=158067
Reviewed by Alex Christensen.
* Shared/mac/WebEventFactory.mm:
(WebKit::screenForWindow): Deleted.
(WebKit::flipScreenPoint): Deleted.
(WebKit::globalPoint): Deleted.
(WebKit::globalPointForEvent): Use globalPoint function from WebCore so we don't need
copies of everything in here.
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::windowDidChangeScreen): Removed unneeded type cast.
(WebKit::WebViewImpl::draggedImage): Added type cast since globalPoint now returns an
NSPoint rather than an IntPoint.
* UIProcess/WebPageProxy.h: Use pragma once. Add a WebCore prefix to a use of
PlatformDisplayID, since that is now inside the WebCore namespace.
* WebProcess/WebCoreSupport/WebChromeClient.h: Ditto.
* WebProcess/WebPage/Cocoa/RemoteLayerTreeDisplayRefreshMonitor.h: Ditto.
* WebProcess/WebPage/DrawingArea.h: Ditto.
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h: Ditto.
2016-05-26 Gyuyoung Kim <gyuyoung.kim@webkit.org>
Purge PassRefPtr in Modules/battery
https://bugs.webkit.org/show_bug.cgi?id=157062
Reviewed by Darin Adler.
Use RefPtr<>& to reduce uses of PassRefPtr in WebKit.
* WebProcess/Battery/WebBatteryManager.cpp:
(WebKit::WebBatteryManager::didChangeBatteryStatus):
(WebKit::WebBatteryManager::updateBatteryStatus):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::m_shouldDispatchFakeMouseMoveEvents):
2016-05-26 Myles C. Maxfield <mmaxfield@apple.com>
Build fix
Rubber stamped by Lucas Forschler.
* Configurations/DebugRelease.xcconfig:
2016-05-25 Jer Noble <jer.noble@apple.com>
Flashiness and jumpiness when entering fullscreen
https://bugs.webkit.org/show_bug.cgi?id=158087
Reviewed by Beth Dakin.
Multiple independant sources of jumpiness and flashiness are addressed here:
- Setting the top content inset on the WKView cause a vertical jump during fullscreen
transition. Instead of setting the content inset to 0, take the existing inset into account
when placing the WKView in the NSWindow.
- The enter fullscreen transition causes a white flash due to the NSWindow needing
display before ordering onscreen. Ensure the window has a backing by calling -displayIfNeeded
before entering fullscreen mode.
- The exit fullscreen transition causes a white background color flash for an unknown
reason, but is solved by not making the window's content view layer-backed. Rather than
directly animating the contentView's background color, create a specific background view
and animate it's background color instead.
* UIProcess/mac/WKFullScreenWindowController.h:
* UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController initWithWindow:webView:page:]):
(-[WKFullScreenWindowController enterFullScreen:]):
(-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]):
(-[WKFullScreenWindowController finishedExitFullScreenAnimation:]):
(-[WKFullScreenWindowController _startEnterFullScreenAnimationWithDuration:]):
(-[WKFullScreenWindowController _startExitFullScreenAnimationWithDuration:]):
* WebProcess/FullScreen/WebFullScreenManager.cpp:
(WebKit::WebFullScreenManager::saveScrollPosition): Deleted.
(WebKit::WebFullScreenManager::restoreScrollPosition): Deleted.
2016-05-25 Alex Christensen <achristensen@webkit.org>
Fix CMake build.
* PlatformMac.cmake:
2016-05-25 Chris Dumez <cdumez@apple.com>
Simplify a few lambda captures in the network cache code
https://bugs.webkit.org/show_bug.cgi?id=158076
Reviewed by Antti Koivisto.
Simplify a few lambda captures in the network cache code by WTFMoving
upon capture.
* NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
(WebKit::NetworkCache::SpeculativeLoadManager::retrieve):
(WebKit::NetworkCache::SpeculativeLoadManager::retrieveEntryFromStorage):
(WebKit::NetworkCache::SpeculativeLoadManager::retrieveSubresourcesEntry):
* NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h:
* NetworkProcess/cache/NetworkCacheStatistics.cpp:
(WebKit::NetworkCache::Statistics::bootstrapFromNetworkCache):
(WebKit::NetworkCache::Statistics::recordNotUsingCacheForRequest):
(WebKit::NetworkCache::Statistics::recordRetrievalFailure):
(WebKit::NetworkCache::Statistics::writeTimerFired):
(WebKit::NetworkCache::Statistics::addHashesToDatabase):
(WebKit::NetworkCache::Statistics::addStoreDecisionsToDatabase):
* NetworkProcess/cache/NetworkCacheStatistics.h:
2016-05-25 Fujii Hironori <Hironori.Fujii@sony.com>
[Unix] Potential buffer overrun of m_fileDescriptors in readBytesFromSocket of ConnectionUnix.cpp
https://bugs.webkit.org/show_bug.cgi?id=158058
Reviewed by Carlos Garcia Campos.
Memcpy does not check the boundary of m_fileDescriptors in
readBytesFromSocket of ConnectionUnix.cpp. This is not a problem
in normal cases, but in the case when Web process is hijacked and
malicious IPC packets were sent. WTF::Vector already has two
members m_capacity and m_size. There is no need to have a
separate member m_fileDescriptorsSize to remember the number of
remaining data.
* Platform/IPC/Connection.h: Remove members m_readBufferSize and
m_fileDescriptorsSize.
* Platform/IPC/unix/ConnectionUnix.cpp:
(IPC::Connection::platformInitialize): Removed initialization of
m_readBufferSize and m_fileDescriptorsSize. Reserve initial
capacity for m_readBuffer and m_fileDescriptors.
(IPC::Connection::processMessage): Replace m_readBufferSize and
m_fileDescriptorsSize with m_readBuffer.size() and
m_fileDescriptors.size(). Use Vector::shrink() to reset the
number of remaining data in the buffers.
(IPC::readBytesFromSocket) : Change argument types to WTF::Vector
instead of pointers and sizes.
(IPC::Connection::readyReadHandler): Call new readBytesFromSocket
2016-05-25 Chris Dumez <cdumez@apple.com>
Update constructRevalidationRequest() to stop returning a unique_ptr<ResourceRequest>
https://bugs.webkit.org/show_bug.cgi?id=158046
Reviewed by Darin Adler.
Update constructRevalidationRequest() to stop returning a unique_ptr<ResourceRequest>
and to return a ResourceRequest instead. There is no reason for it to return a
pointer.
* NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
(WebKit::NetworkCache::constructRevalidationRequest):
(WebKit::NetworkCache::SpeculativeLoadManager::PreloadedEntry::PreloadedEntry):
(WebKit::NetworkCache::SpeculativeLoadManager::PreloadedEntry::revalidationRequest):
(WebKit::NetworkCache::SpeculativeLoadManager::addPreloadedEntry):
(WebKit::NetworkCache::SpeculativeLoadManager::revalidateEntry):
* NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h:
2016-05-25 Antoine Quint <graouts@apple.com>
Elements with backdrop-filter cannot be clipped with clip-path or mask
https://bugs.webkit.org/show_bug.cgi?id=142662
<rdar://problem/20150192>
Reviewed by Dean Jackson.
Ensure layer clones are set up with the same shape path as their original layer.
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::updateClonedLayerProperties):
2016-05-24 Chris Dumez <cdumez@apple.com>
Simplify a couple of lambda captures in the network cache code
https://bugs.webkit.org/show_bug.cgi?id=158053
Reviewed by Brady Eidson.
* NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
(WebKit::NetworkCache::SpeculativeLoadManager::preloadEntry):
Just capture subResourceInfo instead of allocating a new copy
on the heap. There is no reason we cannot simply capture
subResourceInfo here.
* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::clear):
Use new C++14 capture with initialization to make the code a
bit nicer.
2016-05-24 Conrad Shultz <conrad_shultz@apple.com>
_WKThumbnailView should expose its snapshot size
https://bugs.webkit.org/show_bug.cgi?id=158049
Reviewed by Tim Horton.
* UIProcess/API/Cocoa/_WKThumbnailView.h:
* UIProcess/API/Cocoa/_WKThumbnailView.mm:
(-[_WKThumbnailView _didTakeSnapshot:]):
Update the new snapshotSize property in a KVO-compliant manner.
2016-05-24 Ryan Haddad <ryanhaddad@apple.com>
Unreviewed, rolling out r201349.
This change caused compositing tests to assert on iOS
simulator
Reverted changeset:
"Elements with backdrop-filter cannot be clipped with clip-
path or mask"
https://bugs.webkit.org/show_bug.cgi?id=142662
http://trac.webkit.org/changeset/201349
2016-05-24 Ryan Haddad <ryanhaddad@apple.com>
Unreviewed, rolling out r201341.
This change may have caused LayoutTests to crash on Mac and
iOS
Reverted changeset:
"Use lambda capture with initializer instead of StringCapture"
https://bugs.webkit.org/show_bug.cgi?id=158010
http://trac.webkit.org/changeset/201341
2016-05-24 Alex Christensen <achristensen@webkit.org>
Fix null pointer dereferencing in WebViewImpl::inputContext
https://bugs.webkit.org/show_bug.cgi?id=158026
rdar://problem/25994093
Reviewed by Tim Horton.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView inputContext]):
this was null sometimes in WebViewImpl::inputContext.
2016-05-24 Antoine Quint <graouts@apple.com>
Elements with backdrop-filter cannot be clipped with clip-path or mask
https://bugs.webkit.org/show_bug.cgi?id=142662
<rdar://problem/20150192>
Reviewed by Dean Jackson.
Ensure layer clones are set up with the same shape path as their original layer.
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::updateClonedLayerProperties):
2016-05-24 Chelsea Pugh <cpugh@apple.com>
[iOS] Allow clients to override the type of an input field
https://bugs.webkit.org/show_bug.cgi?id=157995
Reviewed by Dan Bernstein.
* UIProcess/API/Cocoa/_WKFormInputSession.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKFormInputSession textContentType]): Getter for textContentType.
(-[WKFormInputSession setTextContentType:]): Set the textContentType and reload
input views.
(contentTypeFromFieldName): Factor out switch statement to get text content type
from autofill field name into its own function.
(-[WKContentView textInputTraits]): If the client has set a text content type,
set the traits' content type to that. Otherwise, set the text content type if
there is one based on the assisted node information's autofill field name. If
neither the form input session nor the assisted node info yields a text content
type, set the text content type to nil, its default value.
2016-05-24 Chris Dumez <cdumez@apple.com>
Use lambda capture with initializer instead of StringCapture
https://bugs.webkit.org/show_bug.cgi?id=158010
Reviewed by Antti Koivisto.
Use lambda capture with initializer instead of StringCapture now that
we support C++14.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::deleteDumpFile):
* NetworkProcess/cache/NetworkCacheStatistics.cpp:
(WebKit::NetworkCache::Statistics::initialize):
(WebKit::NetworkCache::Statistics::shrinkIfNeeded):
* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::updateFileModificationTime):
(WebKit::NetworkCache::Storage::clear):
* UIProcess/API/APIUserContentExtensionStore.cpp:
(API::UserContentExtensionStore::lookupContentExtension):
(API::UserContentExtensionStore::compileContentExtension):
(API::UserContentExtensionStore::removeContentExtension):
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::fetchData):
(WebKit::WebsiteDataStore::removeData):
2016-05-24 Chris Dumez <cdumez@apple.com>
Use auto for some of our lambda function parameters
https://bugs.webkit.org/show_bug.cgi?id=158001
Reviewed by Darin Adler.
Use auto for some of our lambda function parameters now that we build with c++14.
* DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:
(WebKit::WebIDBConnectionToClient::didGetRecord):
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFiles):
* NetworkProcess/NetworkProcess.cpp:
(WebKit::fetchDiskCacheEntries):
(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::clearDiskCacheEntries):
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::retrieveCacheEntry):
(WebKit::NetworkResourceLoader::tryStoreAsCacheEntry):
* NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:
(WebKit::NetworkCache::SpeculativeLoad::didFinishLoading):
* NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
(WebKit::NetworkCache::SpeculativeLoadManager::registerLoad):
(WebKit::NetworkCache::SpeculativeLoadManager::retrieveEntryFromStorage):
(WebKit::NetworkCache::SpeculativeLoadManager::revalidateEntry):
(WebKit::NetworkCache::SpeculativeLoadManager::preloadEntry):
(WebKit::NetworkCache::SpeculativeLoadManager::retrieveSubresourcesEntry):
* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::removeFromPendingWriteOperations):
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:_schemeUpgraded:completionHandler:]):
* Shared/API/Cocoa/_WKRemoteObjectInterface.mm:
(-[_WKRemoteObjectInterface debugDescription]):
* UIProcess/API/C/WKApplicationCacheManager.cpp:
(WKApplicationCacheManagerGetApplicationCacheOrigins):
* UIProcess/API/C/WKKeyValueStorageManager.cpp:
(WKKeyValueStorageManagerGetKeyValueStorageOrigins):
(WKKeyValueStorageManagerGetStorageDetailsByOrigin):
* UIProcess/API/C/WKResourceCacheManager.cpp:
(WKResourceCacheManagerGetCacheOrigins):
* UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _fetchDataRecordsOfTypes:withOptions:completionHandler:]):
* UIProcess/UserContent/WebUserContentControllerProxy.cpp:
(WebKit::WebUserContentControllerProxy::removeAllUserScripts):
(WebKit::WebUserContentControllerProxy::removeAllUserStyleSheets):
(WebKit::WebUserContentControllerProxy::removeAllUserMessageHandlers):
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::removeAnimationForKey):
2016-05-23 Yusuke Suzuki <utatane.tea@gmail.com>
Assertion failure for Reflect.get with Proxy and primitive value as explicit receiver
https://bugs.webkit.org/show_bug.cgi?id=157080
Reviewed by Saam Barati.
* WebProcess/Plugins/Netscape/JSNPObject.cpp:
(WebKit::JSNPObject::propertyGetter):
(WebKit::JSNPObject::methodGetter):
* WebProcess/Plugins/Netscape/JSNPObject.h:
2016-05-23 Chris Dumez <cdumez@apple.com>
Generate bindings code for EventTarget.addEventListener() / removeEventListener()
https://bugs.webkit.org/show_bug.cgi?id=157882
Reviewed by Darin Adler.
Generate bindings code for EventTarget.addEventListener() / removeEventListener()
instead of hardcoding them in the bindings generator.
* WebProcess/Plugins/PDF/PDFPluginAnnotation.h:
* WebProcess/Plugins/PDF/PDFPluginAnnotation.mm:
(WebKit::PDFPluginAnnotation::attach):
(WebKit::PDFPluginAnnotation::~PDFPluginAnnotation):
* WebProcess/Plugins/PDF/PDFPluginPasswordField.mm:
(WebKit::PDFPluginPasswordField::~PDFPluginPasswordField):
(WebKit::PDFPluginPasswordField::createAnnotationElement):
* WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm:
(WebKit::PDFPluginTextAnnotation::~PDFPluginTextAnnotation):
(WebKit::PDFPluginTextAnnotation::createAnnotationElement):
2016-05-23 Beth Dakin <bdakin@apple.com>
Need SPI for clients to require a user action to get an editing controls
manager
https://bugs.webkit.org/show_bug.cgi?id=157992
-and corresponding-
rdar://problem/26379927
Reviewed by Tim Horton.
New SPI _setRequiresUserActionForEditingControlsManager. The SPI defaults to
False, which means that by default there is no user action requirement to
have an editing controls manager. The SPI is on WKViewPrivate and
WKWebViewConfigurationPrivate, and it’s implemented in WebViewImpl.
* UIProcess/API/Cocoa/WKViewPrivate.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _requiresUserActionForEditingControlsManager]):
(-[WKWebViewConfiguration _setRequiresUserActionForEditingControlsManager:]):
* UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
* UIProcess/API/mac/WKView.mm:
(-[WKView _requiresUserActionForEditingControlsManager]):
(-[WKView _setRequiresUserActionForEditingControlsManager:]):
* UIProcess/Cocoa/WebViewImpl.h:
(WebKit::WebViewImpl::setRequiresUserActionForEditingControlsManager):
(WebKit::WebViewImpl::requiresUserActionForEditingControlsManager):
New message allows the WebProcess to tell the UI process whether the current
web page has had any selection changes based on user interaction.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setHasHadSelectionChangesFromUserInteraction):
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::hasHadSelectionChangesFromUserInteraction):
* UIProcess/WebPageProxy.messages.in:
m_userIsInteracting m_hasFocusedDueToUserInteraction used to be iOS only, but
now we want to track them for Mac as well.
* WebProcess/WebPage/WebPage.cpp:
Handling mouse events and key events will toggle m_userIsInteracting.
(WebKit::WebPage::mouseEvent):
(WebKit::WebPage::keyEvent):
m_userIsInteracting is no longer iOS-only.
(WebKit::WebPage::setInitialFocus):
Send a message to the UI process on page transition to re-set
hasHadSelectionChangesFromUserInteraction to false.
(WebKit::WebPage::didStartPageTransition):
Send a message to the UI process if this is the first selection change to
happen as a result of a user action.
(WebKit::WebPage::didChangeSelection):
* WebProcess/WebPage/WebPage.h:
2016-05-23 Alex Christensen <achristensen@webkit.org>
Add logging for NSURLSession calls
https://bugs.webkit.org/show_bug.cgi?id=157996
Reviewed by Brady Eidson.
* NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTask::NetworkDataTask):
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(toNSURLSessionResponseDisposition):
(-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:_schemeUpgraded:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:willCacheResponse:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:didCompleteWithError:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveData:]):
* Platform/Logging.h:
2016-05-23 Chris Fleizach <cfleizach@apple.com>
AX: iOS: when bringing focus to a text field we may zoom the page even if author wanted max scale = 1
https://bugs.webkit.org/show_bug.cgi?id=157771
Reviewed by Tim Horton.
* Shared/AssistedNodeInformation.cpp:
(WebKit::AssistedNodeInformation::encode):
(WebKit::AssistedNodeInformation::decode):
* Shared/AssistedNodeInformation.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _displayFormNodeInputView]):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getAssistedNodeInformation):
2016-05-23 Miguel Gomez <magomez@igalia.com>
[ThreadedCompositor] Ensure that the BitmapTexture used by CoordinatedBackingStoreTile matches the opacity of the painted surface
https://bugs.webkit.org/show_bug.cgi?id=157942
Reviewed by Žan Doberšek.
* Shared/CoordinatedGraphics/CoordinatedBackingStore.cpp:
(WebKit::CoordinatedBackingStoreTile::swapBuffers):
Reset the BitmapTexture if it doesn't match the opacity required by the surface
that's being painted.
2016-05-22 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Disk cache: enable speculative revalidation
https://bugs.webkit.org/show_bug.cgi?id=157125
Reviewed by Sergio Villar Senin.
* NetworkProcess/soup/NetworkProcessSoup.cpp:
(WebKit::NetworkProcess::platformInitializeNetworkProcess):
* UIProcess/API/gtk/WebKitWebContext.cpp:
(webkitWebContextConstructed):
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
* config.h:
2016-05-22 Brady Eidson <beidson@apple.com>
Move to C++14.
https://bugs.webkit.org/show_bug.cgi?id=157948
Reviewed by Michael Catanzaro.
* Configurations/Base.xcconfig:
Replace time literal suffixes that have underscores to the forms without
(e.g. 0_ms becomes 0ms):
* NetworkProcess/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters):
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::startNetworkLoad):
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::responseHasExpired):
(WebKit::NetworkCache::responseNeedsRevalidation):
(WebKit::NetworkCache::makeStoreDecision):
* NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
(WebKit::NetworkCache::responseNeedsRevalidation):
* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::dispatchReadOperation):
(WebKit::NetworkCache::Storage::store):
(WebKit::NetworkCache::computeRecordWorth):
* Shared/mac/RemoteLayerBackingStoreCollection.mm:
* UIProcess/ViewGestureController.cpp:
* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::maximumBufferingTime):
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::scheduleCompositingLayerFlushImmediately):
(WebKit::RemoteLayerTreeDrawingArea::scheduleCompositingLayerFlush):
2016-05-21 Andy Estes <aestes@apple.com>
REGRESSION (r188642): All pages are blank when printing a webpage in iOS Safari
https://bugs.webkit.org/show_bug.cgi?id=157924
rdar://problem/22524550
Reviewed by Sam Weinig.
When UIPrintInteractionController asks WKWebView to print a webpage, it does so in several phases. First we're
asked to compute the page count, followed later by a series of messages asking us to draw each page into a
provided CGContext.
When asked for the page count, we send a message to the Web process instructing it to compute and
return the page count synchronously and then immediately start drawing the page for printing. If the drawing has
finished by the time we're asked to print the first page, then we can do so without waiting. But if it hasn't
then we block by calling Connection::waitForMessage(), passing std::chromo::milliseconds::max() as the relative
timeout.
Prior to r188642, Connection::waitForMessage() called std::condition_variable::wait_for(), which takes a
relative timeout value. r188642 replaced this with WTF::Condition::waitUntil(), which takes an absolute timeout
instead. To convert from relative to absolute, this line was added to Connection::waitForMessage():
Condition::Clock::time_point absoluteTimeout = Condition::Clock::now() + timeout;
std::chrono will convert both operands to a common duration type before performing the addition. When timeout
equals something very large, like milliseconds::max(), this conversion results in signed integer overflow,
giving absoluteTimeout a value less than Clock::now() and making waitForMessage time out immediately.
To fix this, compute how many milliseconds remain on our clock, and add the smaller of that and the timeout
value to Clock::now() to arrive at an absolute timeout.
* Platform/IPC/Connection.cpp:
(IPC::Connection::waitForMessage):
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _printedDocument]): Removed an unnecessary nanoseconds-to-milliseconds conversion.
2016-05-20 Enrica Casucci <enrica@apple.com>
Drag cannot start if no drag data or custom data is available in the Pasteboard.
https://bugs.webkit.org/show_bug.cgi?id=157911
rdar://problem/24577706
Reviewed by Tim Horton.
We need to make sure there is always one item in common between source and target
of the drag and drop operation.
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::dragImageForView):
2016-05-20 John Wilander <wilander@apple.com>
Remove unnecessary PageOverlay client function pageOverlayDestroyed
https://bugs.webkit.org/show_bug.cgi?id=157388
<rdar://problem/25471523>
Reviewed by Tim Horton.
Remove dead PageOverlay code. Almost all of these overrides were empty and
never called. In the case of WebPageOverlay it was never called but had a
function body, causing confusion. There was a fear of dangling pointers in
WebPageOverlay's static hash map between PageOverlays and WebPageOverlays.
Only WebPageOverlay's constructor creates its PageOverlay object and adds it
to the hash map. Its client object is kept in a unique pointer member which
is automatically deleted when the WebPageOverlay object itself is deleted.
This explains why PageOverlayClientImpl::pageOverlayDestroyed in
WKBundlePageOverlay can safely be removed. Finally, WebPageOverlay's
destructor clears the hash map entry for its PageOverlay object. Thus, there
is no need to call WebPageOverlay::pageOverlayDestroyed nor a need for
WebPageOverlay's destructor to call pageOverlayDestroyed on its client.
No new tests. I tried to come up with a WebKit API test for this but I
wasn't able to test presence/absence of WebPageOverlay's map entries since
the map is not exposed.
* WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:
(WebKit::PageOverlayClientImpl::pageOverlayDestroyed): Deleted.
* WebProcess/Plugins/PDF/PDFPlugin.h:
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::HUD::pageOverlayDestroyed): Deleted.
* WebProcess/WebCoreSupport/WebInspectorClient.cpp:
* WebProcess/WebCoreSupport/WebInspectorClient.h:
(WebKit::WebInspectorClient::pageOverlayDestroyed): Deleted.
* WebProcess/WebPage/FindController.cpp:
* WebProcess/WebPage/FindController.h:
(WebKit::FindController::pageOverlayDestroyed): Deleted.
* WebProcess/WebPage/WebPageOverlay.cpp:
* WebProcess/WebPage/WebPageOverlay.h:
(WebKit::WebPageOverlay::pageOverlayDestroyed): Deleted.
* WebProcess/WebPage/ios/FindIndicatorOverlayClientIOS.h:
(WebKit::FindIndicatorOverlayClientIOS::pageOverlayDestroyed): Deleted.
2016-05-19 Chris Dumez <cdumez@apple.com>
Improve compile-time assertions in is<>() / downcast<>()
https://bugs.webkit.org/show_bug.cgi?id=157817
Reviewed by Darin Adler.
Add missing includes.
* WebProcess/WebPage/WebFrame.cpp:
* WebProcess/WebPage/WebPage.cpp:
2016-05-19 Tim Horton <timothy_horton@apple.com>
Mail crashes under TiledCoreAnimationDrawingAreaProxy::createFenceForGeometryUpdate() when the Web process crashes
https://bugs.webkit.org/show_bug.cgi?id=157927
<rdar://problem/24793374>
Reviewed by Dean Jackson.
* UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
(WebKit::TiledCoreAnimationDrawingAreaProxy::createFence):
With just the right combination of layout mechanisms and Web Content process
crash timing, it is possible to get a frame change underneath WebPageProxy::processDidCrash,
before the DrawingArea has been nulled out but after the Connection has.
This can lead to a null dereference. I had a lot of trouble writing a API
test for this, though I'm certain it's possible.
2016-05-16 Enrica Casucci <enrica@apple.com>
No candidate punctuation when typing punctuation in WK2 text field.
https://bugs.webkit.org/show_bug.cgi?id=157773
rdar://problem/23084603
Reviewed by Sam Weinig.
We need to adopt the new addInputString:withFlags:withInputManagerHint function
for this to work propertly.
* Platform/spi/ios/UIKitSPI.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _interpretKeyEvent:isCharEvent:]):
2016-05-19 Brady Eidson <beidson@apple.com>
Finishing off: Modern IDB: Website data store management.
https://bugs.webkit.org/show_bug.cgi?id=157626
Reviewed by Alex Christensen.
* DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::deleteWebsiteDataForOrigins):
(WebKit::removeAllDatabasesForOriginPath): Deleted.
(WebKit::DatabaseProcess::deleteIndexedDatabaseEntriesForOrigins): Deleted.
(WebKit::DatabaseProcess::deleteIndexedDatabaseEntriesModifiedSince): Deleted.
* DatabaseProcess/DatabaseProcess.h:
2016-05-19 Brent Fulgham <bfulgham@apple.com>
[OS X][WK2] Expand sandbox for new mach endpoints
https://bugs.webkit.org/show_bug.cgi?id=157919
<rdar://problem/25238336>
Reviewed by Alexey Proskuryakov.
Grant the WebContent and Networking processes the mach lookup capability for
various Security-related mach endpoints..
* Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
* Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
2016-05-19 Brian Burg <bburg@apple.com>
Web Inspector: CRASH when closing a page while element selection mode is enabled via Develop menu
https://bugs.webkit.org/show_bug.cgi?id=157925
<rdar://problem/26259618>
Reviewed by Joseph Pecoraro.
* WebProcess/WebCoreSupport/WebInspectorClient.cpp:
(WebKit::WebInspectorClient::elementSelectionChanged):
Null-check m_page->inspector() since it will return nullptr if the page
is closed but not yet destructed. This is triggered by teardown code
in InspectorDOMAgent::willDestroyFrontendAndBackend.
2016-05-19 Enrica Casucci <enrica@apple.com>
Drag cannot start if no drag data is available in the Pasteboard.
https://bugs.webkit.org/show_bug.cgi?id=157911
rdar://problem/24577706
Reviewed by Tim Horton.
Setting dummy data to allow drag to start.
* Shared/mac/PasteboardTypes.h:
* Shared/mac/PasteboardTypes.mm:
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::registerDraggedTypes):
(WebKit::WebViewImpl::dragImageForView):
2016-05-19 Jer Noble <jer.noble@apple.com>
[IOS] Add setting to allow playback to continue inline after exiting fullscreen.
https://bugs.webkit.org/show_bug.cgi?id=157912
Reviewed by Eric Carlson.
Add a preference and configuration property to control whether media should be allowed to continue
playing inline when exiting fullscreen.
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration encodeWithCoder:]):
(-[WKWebViewConfiguration initWithCoder:]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _allowsInlineMediaPlaybackAfterFullscreen]):
(-[WKWebViewConfiguration _setAllowsInlineMediaPlaybackAfterFullscreen:]):
* UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
* UIProcess/mac/WKFullScreenWindowController.mm:
(disableScreenUpdates):
(enableScreenUpdates):
(-[WKFullScreenWindowController enterFullScreen:]):
(-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]):
(-[WKFullScreenWindowController exitFullScreen]):
(-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:finalFrame:]):
(-[WKFullScreenWindowController finishedExitFullScreenAnimation:]):
(-[WKFullScreenWindowController completeFinishExitFullScreenAnimationAfterRepaint]):
(-[WKFullScreenWindowController _startEnterFullScreenAnimationWithDuration:]):
(-[WKFullScreenWindowController _startExitFullScreenAnimationWithDuration:]):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
2016-05-19 Brian Burg <bburg@apple.com>
Web Inspector: timelines should not update via requestAnimationFrame unless Web Inspector is visible
https://bugs.webkit.org/show_bug.cgi?id=157897
<rdar://problem/26330802>
Reviewed by Timothy Hatcher.
The UIProcess needs to notify the Inspector frontend when it is truly visible.
The frontend can't use document.visibilityState because it doesn't seem to work
if the inspector frontend's WKWebView is created but not attached to a window.
* UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::open):
(WebKit::WebInspectorProxy::didClose):
Send visibility updates to the inspector process when the inspector becomes
"visible" or "not visible". It becomes visible if it is attached to the
inspected page's window, or gets its own native window.
* WebProcess/WebPage/WebInspectorUI.cpp:
(WebKit::WebInspectorUI::frontendLoaded):
(WebKit::WebInspectorUI::setDockingUnavailable):
(WebKit::WebInspectorUI::setIsVisible):
Call InspectorFrontendAPI.updateVisibilityState to let the frontend know.
* WebProcess/WebPage/WebInspectorUI.h:
* WebProcess/WebPage/WebInspectorUI.messages.in:
Add new message.
2016-05-19 Brian Burg <bburg@apple.com>
Web Inspector: use a consistent prefix for injected scripts
https://bugs.webkit.org/show_bug.cgi?id=157715
<rdar://problem/26287188>
Reviewed by Timothy Hatcher.
* CMakeLists.txt:
* DerivedSources.make:
* WebProcess/Automation/WebAutomationSessionProxy.js:
2016-05-18 Anders Carlsson <andersca@apple.com>
Add WKPreferencesRef getter/setter pair to set RTL mode
https://bugs.webkit.org/show_bug.cgi?id=157873
rdar://problem/26329970
Reviewed by Tim Horton.
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetUserInterfaceDirectionPolicy):
(WKPreferencesGetUserInterfaceDirectionPolicy):
* UIProcess/API/C/WKPreferencesRef.h:
2016-05-18 Alex Christensen <achristensen@webkit.org>
Clean up CSS code
https://bugs.webkit.org/show_bug.cgi?id=157808
Reviewed by Chris Dumez.
* UIProcess/Cocoa/WebViewImpl.mm:
2016-05-18 Jer Noble <jer.noble@apple.com>
Disable default user gesture requirement for audio playback on Mac
https://bugs.webkit.org/show_bug.cgi?id=157820
Reviewed by Sam Weinig.
Disable the WebPreferences and matching WKWebViewConfiguration.mediaTypesRequiringUserActionForPlayback
settings on Mac (and other non-iOS ports).
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
2016-05-18 Alex Christensen <achristensen@webkit.org>
Build fix when not using CredentialStorage with NetworkSession.
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSession::clearCredentials):
2016-05-18 Brady Eidson <beidson@apple.com>
Fix null-deref crash sporadically seen after http://trac.webkit.org/changeset/201098
No review.
* DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::deleteWebsiteData): Don't access m_idbServer directly, as calling
the idbServer() accessor is how you actually get your IDBServer created for you.
2016-05-18 Brian Burg <bburg@apple.com>
Web Inspector: InspectorFrontendAPI.setTimelineProfilingEnabled should not implicitly show Timelines tab
https://bugs.webkit.org/show_bug.cgi?id=157846
Reviewed by Timothy Hatcher.
Add a separate ShowTimelines message to WebInspector and WebInspectorUI. Have the
start/stop profiling methods in public APIs explicitly call showTimelines() rather than
relying on InspectorFrontendAPI to do it.
* UIProcess/API/C/WKInspector.cpp:
(WKInspectorTogglePageProfiling):
* UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::showTimelines):
* UIProcess/WebInspectorProxy.h:
* WebProcess/InjectedBundle/API/c/WKBundleInspector.cpp:
(WKBundleInspectorSetPageProfilingEnabled):
* WebProcess/WebPage/WebInspector.cpp:
(WebKit::WebInspector::showTimelines):
* WebProcess/WebPage/WebInspector.h:
* WebProcess/WebPage/WebInspector.messages.in:
* WebProcess/WebPage/WebInspectorUI.cpp:
(WebKit::WebInspectorUI::showTimelines):
* WebProcess/WebPage/WebInspectorUI.h:
* WebProcess/WebPage/WebInspectorUI.messages.in:
2016-05-18 Brady Eidson <beidson@apple.com>
Modern IDB: Add support for server side closing of open database connections.
https://bugs.webkit.org/show_bug.cgi?id=157843
Reviewed by Alex Christensen.
- Implement the required IDB delegate code.
- Make DatabaseProcess::deleteWebsiteData call the right method in IDB server.
* DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::deleteWebsiteData):
* DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:
(WebKit::WebIDBConnectionToClient::didGetRecord):
(WebKit::WebIDBConnectionToClient::didCloseFromServer):
(WebKit::WebIDBConnectionToClient::confirmDidCloseFromServer):
* DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h:
* DatabaseProcess/IndexedDB/WebIDBConnectionToClient.messages.in:
* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:
(WebKit::WebIDBConnectionToServer::confirmDidCloseFromServer):
(WebKit::WebIDBConnectionToServer::didStartTransaction):
(WebKit::WebIDBConnectionToServer::didCloseFromServer):
* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.messages.in:
2016-05-18 Brady Eidson <beidson@apple.com>
Modern IDB: Make TestRunner.clearAllDatabases also delete IndexedDB databases (once doing so is supported).
https://bugs.webkit.org/show_bug.cgi?id=157823
Reviewed by Alex Christensen.
* CMakeLists.txt:
* UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreRemoveAllIndexedDatabases):
* UIProcess/API/C/WKWebsiteDataStoreRef.h:
2016-05-18 Brian Burg <bburg@apple.com>
REGRESSION(r200959): "Start Timeline Recording" menu item doesn't start recording
https://bugs.webkit.org/show_bug.cgi?id=157821
<rdar://problem/26335429>
Reviewed by Timothy Hatcher.
In r200959, WebInspectorProxy started sending start/stop profiling
messages directly to the frontend process to avoid the inspected page
process from implicitly showing the frontend. To compensate, the WebKit
API layer was changed to call show() in togglePageProfiling().
Unfortunately, this fix was not quite right, because the ordering of
the Show and StartPageProfiling messages is undefined. The latter has to bounce
from UI to inspected to inspector processes, so the frontend may try
to start profiling before the frontend is shown, causing it to be ignored.
This patch takes a different approach: just remove all implicit show()
calls in the inspected page processes, and bounce both the Show and
StartPageProfiling messages through the inspected page process to ensure
they are handled in order by the frontend process.
* UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::togglePageProfiling):
Revert to sending to the inspected page process.
* WebProcess/InjectedBundle/API/c/WKBundleInspector.cpp:
(WKBundleInspectorSetPageProfilingEnabled):
Add a call to show() now that the implementation doesn't do it implicitly.
* WebProcess/WebPage/WebInspector.cpp:
(WebKit::WebInspector::startPageProfiling):
(WebKit::WebInspector::stopPageProfiling):
Don't implicitly show the inspector. These methods are only called
through the WKBundleInspector API and via IPC from WebInspectorProxy.
2016-05-17 Beth Dakin <bdakin@apple.com>
Make handleAcceptedCandidate a public function
https://bugs.webkit.org/show_bug.cgi?id=157763
-and corresponding-
rdar://problem/26206397
Reviewed by Tim Horton.
This patch makes handleAcceptedCandidate a public member of WebViewImpl
instead of a private member.
* UIProcess/Cocoa/WebViewImpl.h:
(WebKit::WebViewImpl::createWeakPtr):
2016-05-17 Dean Jackson <dino@apple.com>
Remove ES6_GENERATORS flag
https://bugs.webkit.org/show_bug.cgi?id=157815
<rdar://problem/26332894>
Reviewed by Geoffrey Garen.
This flag isn't needed. Generators are enabled everywhere and
part of a stable specification.
* Configurations/FeatureDefines.xcconfig:
2016-05-17 Dean Jackson <dino@apple.com>
Temporarily enable Experimental Features
https://bugs.webkit.org/show_bug.cgi?id=157810
<rdar://problem/26330804>
Reviewed by Anders Carlsson.
We currently don't have good UI for enabling these features,
which would mean Safari Technology Preview users would
never be able to turn them on… unless we enable them by
default temporarily.
* Shared/WebPreferencesDefinitions.h:
2016-05-17 Filip Pizlo <fpizlo@apple.com>
WTF should know about Language
https://bugs.webkit.org/show_bug.cgi?id=157756
Reviewed by Geoffrey Garen and Alexey Proskuryakov.
Rewires a bunch of includes/imports.
* Shared/mac/RemoteLayerTreePropertyApplier.mm:
* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
* UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
* WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:
2016-05-17 Jer Noble <jer.noble@apple.com>
Unreviewed GTK+ and EFL bulid fix; make the audio playback user gesture requirement
Cocoa-only.
* Shared/WebPreferencesDefinitions.h:
2016-05-16 Anders Carlsson <andersca@apple.com>
Add a WKA extension point for WKPreferences SPI
https://bugs.webkit.org/show_bug.cgi?id=157762
rdar://problem/24529203
Reviewed by Sam Weinig.
* UIProcess/API/Cocoa/WKPreferences.mm:
2016-05-16 David Kilzer <ddkilzer@apple.com>
Action sheets don’t work in presented view controllers
<https://webkit.org/b/157754>
<rdar://problem/26304845>
Reviewed by Anders Carlsson.
* UIProcess/ios/WKActionSheet.mm:
(-[WKActionSheet presentSheetFromRect:]):
(-[WKActionSheet willRotate]):
- Call SPI to get the presenting view controller, since it may
not always be the root view controller.
2016-05-13 Enrica Casucci <enrica@apple.com>
Text selection is basically impossible on plain text pages.
https://bugs.webkit.org/show_bug.cgi?id=157681
rdar://problem/26065660
Reviewed by Darin Adler.
When dealing with a plain text file, the rules for deciding whether
a position is selectable should be different and we should never
switch to block selection.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::shouldSwitchToBlockModeForHandle):
(WebKit::rectIsTooBigForSelection): Added helper function.
(WebKit::WebPage::selectTextWithGranularityAtPoint):
(WebKit::WebPage::getPositionInformation):
2016-05-16 Chelsea Pugh <cpugh@apple.com>
[iOS] Remove dispatch_after in -[WKFormInputSession setSuggestions:]
https://bugs.webkit.org/show_bug.cgi?id=157745
Reviewed by Dan Bernstein.
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKFormInputSession setSuggestions:]): Remove the dispatch_after since
there is no longer a chance of keyboard suggestions replacing the
suggestions set here.
2016-05-16 Brian Burg <bburg@apple.com>
Crash simulating keystrokes at WebKit::WebAutomationSession::platformSimulateKeyStroke
https://bugs.webkit.org/show_bug.cgi?id=157737
<rdar://problem/26292946>
Reviewed by Timothy Hatcher.
* UIProcess/Cocoa/WebAutomationSessionCocoa.mm:
(WebKit::WebAutomationSession::platformSimulateKeyStroke):
AppKit expects characters passed to [NSEvent keyEventWithType:...]
to be non-nil even if there are no characters. Initialize characters
to the empty string @"". It will be overwritten if the keystroke should
produce any unicode characters.
2016-05-16 Brian Burg <bburg@apple.com>
Web Automation: Automation.inspectBrowsingContext should automatically start page profiling
https://bugs.webkit.org/show_bug.cgi?id=157739
Reviewed by Timothy Hatcher.
* UIProcess/API/C/WKInspector.cpp:
(WKInspectorTogglePageProfiling):
Implicitly show the Web Inspector in the C API command to preserve existing behavior.
* UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::inspectorFrontendLoaded):
If the frontend loaded, it was either because the user opened Web Inspector (and
turning on page profiling is harmless), or it was loaded but not shown by the
inspectBrowsingContext command. For the latter, we want to start page profiling
before processing any additional commands so subsequent execution is captured.
* UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::togglePageProfiling):
Send the start/stop profiling messages directly to the WebInspectorUI process instead of
bouncing through the inspected page's process, which does an implicit show() we don't want.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::inspector): Make it const.
* UIProcess/WebPageProxy.h:
2016-05-16 Conrad Shultz <conrad_shultz@apple.com>
Fix some deprecation warnings.
* UIProcess/mac/WKPrintingView.mm:
(-[WKPrintingView _drawPDFDocument:page:atPoint:]):
* WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm:
(WebKit::PDFPlugin::setActiveAnnotation):
(WebKit::PDFPlugin::lookupTextAtLocation):
* WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.h:
* WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm:
(WebKit::PDFPluginChoiceAnnotation::createAnnotationElement):
* WebProcess/Plugins/PDF/PDFPluginTextAnnotation.h:
* WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm:
(WebKit::PDFPluginTextAnnotation::createAnnotationElement):
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::drawPDFPage):
2016-04-06 Jer Noble <jer.noble@apple.com>
[WK2] Add API to WKWebViewConfiguration to control autoplay policy.
https://bugs.webkit.org/show_bug.cgi?id=156312
Reviewed by Dan Bernstein.
Add a new API to WKWebViewConfiguration to allow fine-grained control over when media is allowed
to play without a user gesture, and simultaneously deprecate the existing, all-or-nothing API,
and deprecated the equivalent SPIs.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
* UIProcess/API/Cocoa/WKWebViewConfiguration.h:
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration encodeWithCoder:]):
(-[WKWebViewConfiguration initWithCoder:]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _requiresUserActionForVideoPlayback]):
(-[WKWebViewConfiguration _setRequiresUserActionForVideoPlayback:]):
(-[WKWebViewConfiguration _requiresUserActionForAudioPlayback]):
(-[WKWebViewConfiguration _setRequiresUserActionForAudioPlayback:]):
(-[WKWebViewConfiguration requiresUserActionForMediaPlayback]):
(-[WKWebViewConfiguration setRequiresUserActionForMediaPlayback:]):
* UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
2016-05-16 Brian Burg <bburg@apple.com>
Web Automation: WebAutomationSessionProxy.js gets injected more than once sometimes
https://bugs.webkit.org/show_bug.cgi?id=157716
<rdar://problem/26287306>
Reviewed by Timothy Hatcher.
Whenever a script was injected into a non-normal world by a WebKit client,
the WebProcess's WebAutomationSessionProxy singleton would get a
notification that the window was cleared from the relevant frame.
This notification happens when creating the world's window shell for
the first time.
This code should ignore such notifications that originate from non-main world
contexts. Web Inspector's instrumentation already ignored this, but
the automation session notification comes in via a different WebKit2 layer.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidClearWindowObjectInWorld):
2016-05-13 Dean Jackson <dino@apple.com>
Fix iOS Build.
* Shared/AssistedNodeInformation.h:
(WebKit::OptionItem::OptionItem):
2016-05-13 Sam Weinig <sam@webkit.org>
REGRESSION (r200463): Autofill Credit Card expected but got Autofill Contact
<rdar://problem/26251538>
https://bugs.webkit.org/show_bug.cgi?id=157701
Reviewed by Dan Bernstein.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:
(-[WKWebProcessPlugInFrame _certificateChain]):
We need to do a retain-autorelease here now because the CertificateInfo's that contain the
cached certificate chain, are being destroyed, and therefore destroying the chain, before this
function returns. This used to work when the chain wasn't just a cache, because there was still
a strong reference to it being held by the ResourceResponse's CertificateInfo copy, but now
there is none.
2016-05-13 Dean Jackson <dino@apple.com>
[iOS] <select> elements popover should render right-aligned when in RTL mode
https://bugs.webkit.org/show_bug.cgi?id=157699
<rdar://problem/26282319>
Reviewed by Simon Fraser.
Some follow-up changes as suggested by Darin in review.
* Shared/AssistedNodeInformation.h: Use initializers so we can
remove the constructors.
(WebKit::OptionItem::OptionItem): Deleted.
(WebKit::AssistedNodeInformation::AssistedNodeInformation): Deleted.
* UIProcess/ios/forms/WKFormSelectPopover.mm: Add a comment to explain
why we are explicitly setting the language.
(-[WKSelectTableViewController initWithView:hasGroups:]):
2016-05-13 Chris Dumez <cdumez@apple.com>
[NetworkCache] Avoid having to re-parse URLs after deserializing them
https://bugs.webkit.org/show_bug.cgi?id=157660
Reviewed by Darin Adler.
* NetworkProcess/cache/NetworkCacheCoders.cpp:
(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::encode): Deleted.
(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::decode): Deleted.
* NetworkProcess/cache/NetworkCacheCoders.h:
Drop template specializations used by our network cache for encoding
/ decoding URLs as Strings. This causes us to now rely on
URL::encode() / URL::decode() instead.
* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<BlobPart>::decode):
Fix bug in BlobPart encoding / decoding. It was encoding the url member
as a URL but decoding it as a String.
2016-05-13 Dan Bernstein <mitz@apple.com>
Try to fix some non-iOS builds.
* mac/postprocess-framework-headers.sh:
2016-05-13 Ryan Haddad <ryanhaddad@apple.com>
Attempt to fix the iOS build after r200874
Unreviewed build fix.
* UIProcess/API/Cocoa/WKWebViewConfiguration.h:
2016-05-13 Sam Weinig <sam@webkit.org>
Rename WKDataDetectorTypeSpotlightSuggestion to WKDataDetectorTypeLookupSuggestion
<rdar://problem/26269611>
Reviewed by Dan Bernstein and Enrica Casucci.
* Shared/API/Cocoa/WKFoundation.h:
* Shared/API/c/WKDeclarationSpecifiers.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(fromWKDataDetectorTypes):
* UIProcess/API/Cocoa/WKWebViewConfiguration.h:
* mac/postprocess-framework-headers.sh:
2016-05-13 Beth Dakin <bdakin@apple.com>
Add dyldSPI.h for linked on or after checks, and add one for link preview
https://bugs.webkit.org/show_bug.cgi?id=157401
Reviewed by Darin Adler.
Set _allowsLinkPreview to YES for programs linked on or after
firstSDKVersionWithLinkPreviewEnabledByDefault.
* UIProcess/API/Cocoa/WKWebView.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
2016-05-13 Jer Noble <jer.noble@apple.com>
Fullscreen view attempts to resize when in 2-up mode
https://bugs.webkit.org/show_bug.cgi?id=157558
Reviewed by Darin Adler.
No need to react to NSApplicationDidChangeScreenParametersNotification to resize the
fullscreen window when the screen parameters change; the NSWindow fullscreen machinery
will do that on our behalf.
* UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController windowDidLoad]): Deleted.
(-[WKFullScreenWindowController applicationDidChangeScreenParameters:]): Deleted.
2016-05-13 Antoine Quint <graouts@apple.com>
[iOS] <select> elements popover should render right-aligned when in RTL mode
https://bugs.webkit.org/show_bug.cgi?id=157672
<rdar://problem/26193442>
Reviewed by Darin Adler.
Add a new isRTL field to the AssistedNodeInformation as specified by the assisted
node's render style and account for it when displaying the table view shown in the
popover attached to the assisted node using the UIView semanticContentAttribute
property.
* Shared/AssistedNodeInformation.cpp:
(WebKit::AssistedNodeInformation::encode):
(WebKit::AssistedNodeInformation::decode):
* Shared/AssistedNodeInformation.h:
(WebKit::AssistedNodeInformation::AssistedNodeInformation):
* UIProcess/ios/forms/WKFormSelectPopover.mm:
(-[WKSelectTableViewController initWithView:hasGroups:]):
(-[WKSelectTableViewController tableView:cellForRowAtIndexPath:]):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getAssistedNodeInformation):
2016-05-13 Tina Liu <iting_liu@apple.com>
Revert r199691.
https://bugs.webkit.org/show_bug.cgi?id=157645
<rdar://problem/26235373>
Reviewed by Darin Adler.
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode): Deleted.
(WebKit::WebProcessCreationParameters::decode): Deleted.
* Shared/WebProcessCreationParameters.h:
* UIProcess/API/C/mac/WKContextPrivateMac.h:
* UIProcess/API/C/mac/WKContextPrivateMac.mm:
(WKContextSetPrivateBrowsingPluginLoadClientPolicy): Deleted.
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::setPluginLoadClientPolicy):
(WebKit::WebProcessPool::createNewWebProcess): Deleted.
(WebKit::WebProcessPool::setPluginLoadClientPolicyForPrivateBrowsing): Deleted.
(WebKit::WebProcessPool::setPrivateBrowsingPluginLoadClientPolicy): Deleted.
(WebKit::WebProcessPool::clearPluginClientPolicies): Deleted.
* UIProcess/WebProcessPool.h:
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::setPluginLoadClientPolicy):
(WebKit::WebPlatformStrategies::longestMatchedWildcardHostForHost):
(WebKit::WebPlatformStrategies::replaceHostWithMatchedWildcardHost):
(WebKit::WebPlatformStrategies::pluginLoadClientPolicyForHost):
(WebKit::WebPlatformStrategies::populatePluginCache):
(WebKit::WebPlatformStrategies::setPluginLoadClientPolicyForPrivateBrowsing): Deleted.
(WebKit::WebPlatformStrategies::setPrivateBrowsingPluginLoadClientPolicy): Deleted.
(WebKit::WebPlatformStrategies::clearPluginClientPolicies): Deleted.
(WebKit::WebPlatformStrategies::pluginLoadClientPolicyForHostForPrivateBrowsing): Deleted.
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::setPluginLoadClientPolicies): Deleted.
(WebKit::WebProcess::setPrivateBrowsingPluginLoadClientPolicy): Deleted.
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:
2016-05-12 Daniel Bates <dabates@apple.com>
Use SecTask SPI to retrieve code signing identifier for user directory suffix
https://bugs.webkit.org/show_bug.cgi?id=157570
<rdar://problem/25706517>
Reviewed by Darin Adler.
It is sufficient to make use of the SecTask SPI to retrieve the code signing
identifier of the embedding client for use in the user directory suffix. This
avoids the need to allow Code Signing Services to have access to the bundle
of the embedding client.
* Shared/mac/ChildProcessMac.mm:
(WebKit::ChildProcess::initializeSandbox): Use the code signing identifier of the
embedding client as part of the user directory suffix if available.
* Shared/mac/CodeSigning.h: Update comment and include header wtf/spi/darwin/XPCSPI.h
for the definition of xpc_connection_t. Renamed codeSigningIdentifier() to codeSigningIdentifierForCurrentProcess()
to convey that it returns the code signing identifier for the current process. Repurposed
the name codeSigningIdentifier for the variant of this function that takes a xpc_connection_t.
* Shared/mac/CodeSigning.mm:
(WebKit::codeSigningIdentifier): Added. Uses the audit token associated with the specified
XPC connection to get the code signing identifier for the embedding client.
(WebKit::codeSigningIdentifierForCurrentProcess): Renamed; formerly named codeSigningIdentifier.
Implemented in terms of the SecTask API.
(WebKit::secCodeForCurrentProcess): Deleted.
(WebKit::secCodeForProcess): Deleted.
(WebKit::secCodeSigningInformation): Deleted.
(WebKit::appleSignedOrMacAppStoreSignedOrAppleDeveloperSignedRequirement): Deleted.
(WebKit::secCodeSigningIdentifier): Deleted.
(WebKit::codeSigningIdentifierForProcess): Deleted.
* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::connectToService): Update code due to renaming.
2016-05-12 Konstantin Tokarev <annulen@yandex.ru>
Use reference instead of pointer in FrameLoaderClient::saveViewStateToItem.
https://bugs.webkit.org/show_bug.cgi?id=157624
Reviewed by Darin Adler.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::saveViewStateToItem):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
2016-05-12 Csaba Osztrogonác <ossy@webkit.org>
Remove ENABLE(ES6_ARROWFUNCTION_SYNTAX) guards
https://bugs.webkit.org/show_bug.cgi?id=157564
Reviewed by Darin Adler.
* Configurations/FeatureDefines.xcconfig:
2016-05-11 Anders Carlsson <andersca@apple.com>
We have two different types of contextual menus in iBooks
https://bugs.webkit.org/show_bug.cgi?id=157587
rdar://problem/25904169
Reviewed by Darin Adler.
Give clients the option to bypass the WebKit context menu machinery.
* UIProcess/mac/WebContextMenuProxyMac.mm:
(WebKit::WebContextMenuProxyMac::showContextMenu):
2016-05-10 Brian Burg <bburg@apple.com>
Web Automation: add command to asynchronously load the Web Inspector frontend in the background
https://bugs.webkit.org/show_bug.cgi?id=157509
Reviewed by Timothy Hatcher and Joseph Pecoraro.
In order to make it easier to debug code that executes as a result of an automation
command, this patch adds a new Automation command to asynchronously load the debugger
and Inspector frontend. It is designed for use by automation clients to implement an
auto-inspection feature to aid in debugging automation scripts.
* UIProcess/Automation/Automation.json: Add new command.
* UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::inspectBrowsingContext): Added.
(WebKit::WebAutomationSession::inspectorFrontendLoaded): Added.
This message is forwarded by WebInspectorProxy to the inspected page's session.
* UIProcess/Automation/WebAutomationSession.h:
* UIProcess/Cocoa/WebAutomationSessionCocoa.mm:
(WebKit::WebAutomationSession::sendSynthesizedEventsToPage):
Force the active automation window to become key and bring to front prior to
sending each NSEvent. This way, if the Inspector pauses while a command executes,
the automation window will get back focus when the Inspector unpauses just before
the next synthesized mouse or keyboard NSEvent is sent to its NSWindow.
* UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::frontendLoaded):
Forward to the inspected page's session.
* UIProcess/WebInspectorProxy.h:
* UIProcess/WebInspectorProxy.messages.in: Add notification of the frontend's load.
* WebProcess/WebPage/WebInspectorUI.cpp:
(WebKit::WebInspectorUI::frontendLoaded):
Kick off notifying the automation session in UIProcess that the inspector loaded.
(WebKit::WebInspectorUI::closeWindow):
In some circumstances, the Web Inspector can be loaded without showing
the window. If this hidden page closes, make sure the frontend host gets
a chance to disconnect its InspectorFrontendClient. Normally this happens
when the window closes, but unshown Inspectors do not get window instances.
2016-05-11 Chris Dumez <cdumez@apple.com>
Update Node::appendChild() / replaceChild() / removeChild() / insertBefore() to take references instead of pointers
https://bugs.webkit.org/show_bug.cgi?id=157556
Reviewed by Darin Adler.
* WebProcess/InjectedBundle/API/mac/WKDOMNode.mm:
(-[WKDOMNode insertNode:before:]):
(-[WKDOMNode appendChild:]):
(-[WKDOMNode removeChild:]):
* WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm:
(WebKit::PDFPlugin::PDFPlugin):
* WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm:
(WebKit::PDFPluginChoiceAnnotation::createAnnotationElement):
2016-05-11 Brady Eidson <beidson@apple.com>
Modern IDB: IDBOpenDBRequests that are stop()'ed don't notify the IDBServer of that fact.
https://bugs.webkit.org/show_bug.cgi?id=157448
Reviewed by Alex Christensen.
* DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:
(WebKit::WebIDBConnectionToClient::didFinishHandlingVersionChangeTransaction):
(WebKit::WebIDBConnectionToClient::openDBRequestCancelled):
* DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h:
* DatabaseProcess/IndexedDB/WebIDBConnectionToClient.messages.in:
* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:
(WebKit::WebIDBConnectionToServer::didFinishHandlingVersionChangeTransaction):
(WebKit::WebIDBConnectionToServer::openDBRequestCancelled):
* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
2016-05-11 Myles C. Maxfield <mmaxfield@apple.com>
Fix a typo in r200330
Unreviewed.
* UIProcess/API/Cocoa/WKWebViewConfiguration.h:
2016-05-10 Sam Weinig <sam@webkit.org>
Only expose WKDataDetectorTypes and -[WKWebViewConfiguration dataDetectorTypes] on iOS
for now, since we don't have it fully implemented on Mac.
Reviewed by Tim Horton.
* UIProcess/API/Cocoa/WKWebView.mm:
(fromWKDataDetectorTypes):
(-[WKWebView _initializeWithConfiguration:]):
* UIProcess/API/Cocoa/WKWebViewConfiguration.h:
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration encodeWithCoder:]):
(-[WKWebViewConfiguration initWithCoder:]):
(-[WKWebViewConfiguration copyWithZone:]):
2016-05-10 Sam Weinig <sam@webkit.org>
Add SPI for Data Detectors to get ranges of text around an existing range.
<rdar://problem/26009749>
Reviewed by Enrica Casucci.
* WebProcess/InjectedBundle/API/mac/WKDOMRange.h:
* WebProcess/InjectedBundle/API/mac/WKDOMRange.mm:
(-[WKDOMRange rangeByExpandingToWordBoundaryByCharacters:inDirection:]):
2016-05-10 Enrica Casucci <enrica@apple.com>
Numerous block selection issues on iOS.
https://bugs.webkit.org/show_bug.cgi?id=157490
rdar://problem/25717977
rdar://problem/23042215
Reviewed by Tim Horton.
This patch fixes a number of issues with block selection on iOS.
We no longer eagerly choose block selection vs text selection and we
make sure we are capable of switching back to text selection from block
under every circumstance. The patch also fixes the logic used to decide
when to switch to block selection. It now computes the rectangle for the
paragraph containing the initial text selection to decide when we are
actually dragging outside the boundaries of the paragraph block.
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/ios/WKContentViewInteraction.mm:
(selectionChangedWithGesture):
(selectionChangedWithTouch):
(-[WKContentView changeSelectionWithTouchAt:withSelectionTouch:baseIsStart:]):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::gestureCallback):
(WebKit::WebPageProxy::touchesCallback):
(WebKit::WebPageProxy::autocorrectionDataCallback):
(WebKit::WebPageProxy::selectWithGesture):
(WebKit::WebPageProxy::updateSelectionWithTouches):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::selectionBoxForRange):
(WebKit::canShrinkToTextSelection):
(WebKit::hasCustomLineHeight):
(WebKit::WebPage::rangeForWebSelectionAtPosition):
(WebKit::WebPage::contractedRangeFromHandle):
(WebKit::WebPage::updateBlockSelectionWithTouch):
(WebKit::WebPage::clearSelection):
(WebKit::WebPage::switchToBlockSelectionAtPoint):
(WebKit::WebPage::shouldSwitchToBlockModeForHandle):
(WebKit::WebPage::updateSelectionWithTouches):
(WebKit::WebPage::selectWithTwoTouches):
2016-05-10 Alex Christensen <achristensen@webkit.org>
Handle _schemeUpgraded delegate callbacks in NSURLSessionDataDelegate
https://bugs.webkit.org/show_bug.cgi?id=157354
rdar://problem/25842107
Reviewed by Darin Adler.
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:task:_schemeUpgraded:completionHandler:]):
When we make a request to a http url and CFNetwork determines that that url would have redirected to an HSTS site
and it is going to change the request to an https request, this delegate callback is called. We need to call the
redirection code to have the same behavior as the NSURLConnection-based loader.
2016-05-10 Csaba Osztrogonác <ossy@webkit.org>
Fix the !ENABLE(VIDEO) build
https://bugs.webkit.org/show_bug.cgi?id=157518
Reviewed by Alex Christensen.
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::fetchData):
(WebKit::WebsiteDataStore::removeData):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
2016-05-10 Anders Carlsson <andersca@apple.com>
Fix more deprecation warnings.
* NetworkProcess/EntryPoint/mac/XPCService/NetworkServiceEntryPoint.mm:
(NetworkServiceInitializer):
* PluginProcess/EntryPoint/mac/XPCService/PluginServiceEntryPoint.mm:
(PluginServiceInitializer):
* WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm:
(WebContentServiceInitializer):
2016-05-10 Chris Dumez <cdumez@apple.com>
[SpeculativeValidation] Do not start a preload if there is already one pending
https://bugs.webkit.org/show_bug.cgi?id=157522
<rdar://problem/26156083>
Reviewed by Alex Christensen.
Do not start a preload if there is already one pending. We failed to check in
SpeculativeLoadManager::preloadEntry() if there was already a pending preload.
As a result, we would sometimes cancel an already pending preload and start
one from scratch which is inefficient. It would also sometimes lead to hitting
an assertion in the SpeculativeLoad destructor because we could destroy the
SpeculativeLoad without finishing or cancelling the load.
* NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
(WebKit::NetworkCache::SpeculativeLoadManager::preloadEntry):
2016-05-10 Anders Carlsson <andersca@apple.com>
Fix a deprecation warning.
* DatabaseProcess/EntryPoint/mac/XPCService/DatabaseServiceEntryPoint.mm:
(DatabaseServiceInitializer):
2016-05-10 Tim Horton <timothy_horton@apple.com>
Clicks do not work in Safari after pressing the Track package button in Gmail
https://bugs.webkit.org/show_bug.cgi?id=157508
<rdar://problem/22646404>
Reviewed by Anders Carlsson.
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::viewDidMoveToWindow):
Explicitly cancel the force-click animation when we're removing the gesture
recognizer due to the WK*View being unparented. This works around a bug
where we don't get the cancellation callback in this situation, causing
Safari to be left in an inconsistent and unexpected state.
2016-05-10 Michael Catanzaro <mcatanzaro@igalia.com>
[Linux] Remove seccomp filters support
https://bugs.webkit.org/show_bug.cgi?id=157380
Reviewed by Darin Adler.
* NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode): Deleted.
(WebKit::NetworkProcessCreationParameters::decode): Deleted.
* NetworkProcess/NetworkProcessCreationParameters.h:
* PlatformEfl.cmake:
* PlatformGTK.cmake:
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode): Deleted.
(WebKit::WebProcessCreationParameters::decode): Deleted.
* Shared/WebProcessCreationParameters.h:
* Shared/linux/SeccompFilters/OpenSyscall.cpp: Removed.
* Shared/linux/SeccompFilters/OpenSyscall.h: Removed.
* Shared/linux/SeccompFilters/SeccompBroker.cpp: Removed.
* Shared/linux/SeccompFilters/SeccompBroker.h: Removed.
* Shared/linux/SeccompFilters/SeccompFilters.cpp: Removed.
* Shared/linux/SeccompFilters/SeccompFilters.h: Removed.
* Shared/linux/SeccompFilters/SigactionSyscall.cpp: Removed.
* Shared/linux/SeccompFilters/SigactionSyscall.h: Removed.
* Shared/linux/SeccompFilters/SigprocmaskSyscall.cpp: Removed.
* Shared/linux/SeccompFilters/SigprocmaskSyscall.h: Removed.
* Shared/linux/SeccompFilters/Syscall.cpp: Removed.
* Shared/linux/SeccompFilters/Syscall.h: Removed.
* Shared/linux/SeccompFilters/SyscallPolicy.cpp: Removed.
* Shared/linux/SeccompFilters/SyscallPolicy.h: Removed.
* Shared/linux/SeccompFilters/XDGBaseDirectory.h: Removed.
* Shared/linux/SeccompFilters/XDGBaseDirectoryGLib.cpp: Removed.
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess): Deleted.
(WebKit::WebProcessPool::createNewWebProcess): Deleted.
(WebKit::WebProcessPool::cookieStorageDirectory): Deleted.
* UIProcess/WebProcessPool.h:
* WebProcess/efl/SeccompFiltersWebProcessEfl.cpp: Removed.
* WebProcess/efl/SeccompFiltersWebProcessEfl.h: Removed.
* WebProcess/gtk/SeccompFiltersWebProcessGtk.cpp: Removed.
* WebProcess/gtk/SeccompFiltersWebProcessGtk.h: Removed.
* WebProcess/soup/WebProcessSoup.cpp:
(WebKit::WebProcess::platformInitializeWebProcess): Deleted.
2016-05-09 Tim Horton <timothy_horton@apple.com>
REGRESSION (r191922): Zoom in/Zoom Out is not working for PDFs
https://bugs.webkit.org/show_bug.cgi?id=157503
<rdar://problem/23736297>
Reviewed by Anders Carlsson.
* WebProcess/Plugins/PDF/DeprecatedPDFPlugin.h:
Restore a requiresUnifiedScaleFactor that was lost in r191922.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::mainFramePluginHandlesPageScaleGestureDidChange):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::didInitializePlugin):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
Separate mainFramePluginHandlesPageScaleGesture changes out from didCommitLoadForFrame,
because the PluginView doesn't exist at this point, so it can't answer
the handlesPageScaleGesture question correctly (or at all).
Instead, we'll send the message when the main-frame PluginView is initialized.
2016-05-09 Simon Fraser <simon.fraser@apple.com>
[iOS] visibility:hidden -webkit-overflow-scrolling: touch divs can interfere with page scrolling
https://bugs.webkit.org/show_bug.cgi?id=157496
rdar://problem/22963278
Reviewed by Tim Horton.
UIScrollViews are constructed in the UI process for visibility:hidden scrollable elements
with -webkit-overflow-scrolling: touch, and these intercept user events when they should not.
Fix by propagating a "contentsHidden" flag from the web process which is used to turn off
user interaction on these views.
* Shared/mac/RemoteLayerTreePropertyApplier.mm:
(WebKit::RemoteLayerTreePropertyApplier::applyProperties):
* Shared/mac/RemoteLayerTreeTransaction.h:
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
(WebKit::dumpChangedLayers):
* UIProcess/ios/RemoteLayerTreeHostIOS.mm:
(-[UIView _recursiveFindDescendantScrollViewAtPoint:withEvent:]): Our custom hit
test needs to take view.isUserInteractionEnabled into account.
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::setHidden):
(WebKit::PlatformCALayerRemote::contentsHidden):
(WebKit::PlatformCALayerRemote::setContentsHidden):
* WebProcess/WebPage/mac/PlatformCALayerRemote.h:
2016-05-09 Ada Chan <adachan@apple.com>
Introduce WebVideoFullscreenInterfaceMac::isPlayingVideoInEnhancedFullscreen() and use it in WebVideoFullscreenManagerProxy::isPlayingVideoInEnhancedFullscreen()
https://bugs.webkit.org/show_bug.cgi?id=157493
Reviewed by Dan Bernstein.
* UIProcess/Cocoa/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenManagerProxy::isPlayingVideoInEnhancedFullscreen):
2016-05-06 Ada Chan <adachan@apple.com>
Add WKPageRef SPI to tell whether there's a video playing in enhanced fullscreen
https://bugs.webkit.org/show_bug.cgi?id=157434
Reviewed by Darin Adler.
* UIProcess/API/C/mac/WKPagePrivateMac.h:
* UIProcess/API/C/mac/WKPagePrivateMac.mm:
(WKPageIsPlayingVideoInEnhancedFullscreen):
* UIProcess/Cocoa/WebVideoFullscreenManagerProxy.h:
* UIProcess/Cocoa/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenManagerProxy::isPlayingVideoInEnhancedFullscreen):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::isPlayingVideoInEnhancedFullscreen):
* UIProcess/WebPageProxy.h:
2016-05-09 Anders Carlsson <andersca@apple.com>
Add injected bundle SPI for getting favicon and touch icon URLs
https://bugs.webkit.org/show_bug.cgi?id=157435
Reviewed by Darin Adler.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.h:
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:
(collectIcons):
New helper function that calls into the WebCore LinkCollector.
(-[WKWebProcessPlugInFrame appleTouchIconURLs]):
Call collectIcons.
(-[WKWebProcessPlugInFrame faviconURLs]):
Ditto.
2016-05-06 Simon Fraser <simon.fraser@apple.com>
[iOS WK2] Font size increases on some pages after navigating then going back
https://bugs.webkit.org/show_bug.cgi?id=157441
rdar://problem/22873240
Reviewed by Darin Adler.
There's an ordering dependency between setting the viewport configuration and doing
layouts when going back to a page from the page cache that is incorrectly handled.
In FrameLoader::commitProvisionalLoad(), CachedPage::restore() triggers a layout under
updateContentsSize(), but this happens before dispatchDidCommitLoad() which updates
the viewport arguments via ViewportConfiguration::setViewportArguments().
This issue is not addressed by the current commit. But a second problem is:
if the inputs to text autosizing change, we need to invalidate the autosizing state.
The relevant input here is the fixed layout width (which is determined from the viewport
configuration).
The current code invalidated text autosizing when m_viewportConfiguration.minimumLayoutSize()
changed, but the correct behavior is to invalidate based on fixed layout size changing.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::sendViewportAttributesChanged):
(WebKit::WebPage::setFixedLayoutSize):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::resetTextAutosizing):
(WebKit::WebPage::dynamicViewportSizeUpdate):
(WebKit::WebPage::viewportConfigurationChanged):
(WebKit::WebPage::setViewportConfigurationMinimumLayoutSize): Deleted.
(WebKit::WebPage::resetTextAutosizingBeforeLayoutIfNeeded): Deleted.
2016-05-09 Alex Christensen <achristensen@webkit.org>
Don't use DiskCache for media resource loads
https://bugs.webkit.org/show_bug.cgi?id=157405
Reviewed by Darin Adler.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::makeRetrieveDecision):
(WebKit::NetworkCache::makeStoreDecision):
* NetworkProcess/cache/NetworkCache.h:
* NetworkProcess/cache/NetworkCacheStatistics.cpp:
(WebKit::NetworkCache::retrieveDecisionToDiagnosticKey):
2016-05-08 Myles C. Maxfield <mmaxfield@apple.com>
[OS X] Migrate our Font classes entirely off of NSFont
https://bugs.webkit.org/show_bug.cgi?id=157464
Reviewed by Darin Adler.
* WebProcess/WebCoreSupport/mac/WebPopupMenuMac.mm:
(WebKit::WebPopupMenu::setUpPlatformData):
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::fontAtSelection):
2016-05-06 Joseph Pecoraro <pecoraro@apple.com>
Rename HitTestRequest DisallowShadowContent to DisallowUserAgentShadowContent
https://bugs.webkit.org/show_bug.cgi?id=157447
Reviewed by Ryosuke Niwa.
* WebProcess/WebPage/CoordinatedGraphics/WebPageCoordinatedGraphics.cpp:
(WebKit::WebPage::findZoomableAreaForPoint):
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::hitTest):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::determinePrimarySnapshottedPlugIn):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::rangeForWebSelectionAtPosition):
(WebKit::WebPage::rangeForBlockAtPoint):
(WebKit::WebPage::getPositionInformation):
2016-05-06 Simon Fraser <simon.fraser@apple.com>
Enable IOS_TEXT_AUTOSIZING on Mac and make it testable
https://bugs.webkit.org/show_bug.cgi?id=157432
rdar://problem/16406720
Reviewed by Dean Jackson.
Enable IOS_TEXT_AUTOSIZING on Mac so it can be tested.
Make the setTextAutosizingEnabled() Setting work, and plumb it through WK1 and WK2
preferences for WTR and DRT. Make textAutosizingWindowSizeOverride() work, for layout tests.
These two settings are shared with TEXT_AUTOSIZING.
Add a TextAutosizing log channel, which is useful for generated -expected.html results.
Move adjustComputedFontSizesOnBlocks() and related code from RenderObject to RenderElement
without changes.
An implication of this set of changes is that the way clients enable text autosizing
has changed. Previously, they set the "MinimumZoomFontSize" preference to 0.
Settings::defaultMinimumZoomFontSize() used to do this in order to enable text autosizing
on iPhone only, not iPad.
Now the preferred technique is to leave minimumZoomFontSize alone, and to use textAutosizingEnabled()
instead. Settings::defaultTextAutosizingEnabled() now does the check for iPhone.
UIWebView calls WebKitGetMinimumZoomFontSize() to setup the default minimum font zoom size,
which will now always return 15, but had no other code that toggled this. So it's safe to just rely
on Settings::defaultTextAutosizingEnabled() doing the right thing for iPhone/iPad.
* Configurations/FeatureDefines.xcconfig:
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _textAutosizingEnabled]):
(-[WKPreferences _setTextAutosizingEnabled:]):
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
2016-05-06 Dean Jackson <dino@apple.com>
Regions, Shapes and Tracks don't need runtime features
https://bugs.webkit.org/show_bug.cgi?id=157426
<rdar://problem/26146262>
Reviewed by Simon Fraser.
The following RuntimeEnabledFeatures can be removed since
we have no need to disable them (they are stable and have
shipped for a while):
- CSS Regions
- CSS Shapes
- Media tracks
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetCSSRegionsEnabled): Deleted.
(WKPreferencesGetCSSRegionsEnabled): Deleted.
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): Deleted.
(WebKit::InjectedBundle::setCSSRegionsEnabled): Deleted.
(WebKit::InjectedBundle::setCSSCompositingEnabled): Deleted.
* WebProcess/InjectedBundle/InjectedBundle.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences): Deleted.
2016-05-05 Ada Chan <adachan@apple.com>
Create a fence in WebVideoFullscreenManagerProxy::setVideoLayerFrame() to pass to the web process
https://bugs.webkit.org/show_bug.cgi?id=157409
Reviewed by Tim Horton.
* UIProcess/Cocoa/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenManagerProxy::setVideoLayerFrame):
Create a fence by calling DrawingAreaProxy::createFence() and pass it when sending the
WebVideoFullscreenManager::SetVideoLayerFrameFenced message.
* UIProcess/DrawingAreaProxy.cpp:
(WebKit::DrawingAreaProxy::createFence):
Stub implementation. Assert not to be reached here since it's only implemented on Mac so far.
* UIProcess/DrawingAreaProxy.h:
* UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:
* UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
(WebKit::TiledCoreAnimationDrawingAreaProxy::createFence):
Renamed from createFenceForGeometryUpdate() since we are using it for more than just updating geometry.
(WebKit::TiledCoreAnimationDrawingAreaProxy::sendUpdateGeometry):
Update due to method rename.
2016-05-05 Brady Eidson <beidson@apple.com>
Modern IDB (Workers): Get everything to the right threads.
https://bugs.webkit.org/show_bug.cgi?id=157398
Reviewed by Alex Christensen.
* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:
(WebKit::WebIDBConnectionToServer::putOrAdd):
* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
2016-05-05 Manuel Rego Casasnovas <rego@igalia.com>
[GTK] Remove "region based columns" runtime feature remainings
https://bugs.webkit.org/show_bug.cgi?id=157393
The runtime feature was removed in r168978,
and the usage in WebKitSettings.cpp in r168988.
However it was still around in ExperimentalFeatures class.
Reviewed by Michael Catanzaro.
* UIProcess/gtk/ExperimentalFeatures.cpp: Remove runtime feature.
* UIProcess/gtk/ExperimentalFeatures.h: Ditto.
2016-05-05 Manuel Rego Casasnovas <rego@igalia.com>
[GTK] Add CSS Grid Layout as experimental feature
https://bugs.webkit.org/show_bug.cgi?id=157391
Reviewed by Michael Catanzaro.
Now that we've a runtime feature again for CSS Grid Layout (r200215),
we can recover the old patch (r162215) that allows to enable/disable
CSS Grid Layout through the environment variable
WEBKITGTK_EXPERIMENTAL_FEATURES.
Example: WEBKITGTK_EXPERIMENTAL_FEATURES="CSS_GRID_LAYOUT=1"
* UIProcess/API/gtk/WebKitSettings.cpp:
(webKitSettingsConstructed): Use new experimental feature to enable
or disable CSS Grid Layout.
* UIProcess/gtk/ExperimentalFeatures.cpp: Add new experimental feature.
* UIProcess/gtk/ExperimentalFeatures.h: Ditto.
2016-05-05 Jer Noble <jer.noble@apple.com>
[WK2] Media controls don't update if controller is created after the interface is created
https://bugs.webkit.org/show_bug.cgi?id=157376
Reviewed by Beth Dakin.
Implement the new getter methods on WebPlaybackSessionModelContext by caching the values
passed through WebPlaybackSessionManagerProxy.
* UIProcess/Cocoa/WebPlaybackSessionManagerProxy.h:
* UIProcess/Cocoa/WebPlaybackSessionManagerProxy.mm:
(WebKit::WebPlaybackSessionManagerProxy::setCurrentTime):
(WebKit::WebPlaybackSessionManagerProxy::setBufferedTime):
(WebKit::WebPlaybackSessionManagerProxy::setSeekableRangesVector):
(WebKit::WebPlaybackSessionManagerProxy::setCanPlayFastReverse):
(WebKit::WebPlaybackSessionManagerProxy::setAudioMediaSelectionOptions):
(WebKit::WebPlaybackSessionManagerProxy::setLegibleMediaSelectionOptions):
(WebKit::WebPlaybackSessionManagerProxy::setExternalPlaybackProperties):
(WebKit::WebPlaybackSessionManagerProxy::setWirelessVideoPlaybackDisabled):
(WebKit::WebPlaybackSessionManagerProxy::setDuration):
(WebKit::WebPlaybackSessionManagerProxy::setRate):
* UIProcess/Cocoa/WebVideoFullscreenManagerProxy.h:
* UIProcess/Cocoa/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenModelContext::requestFullscreenMode): Deleted.
(WebKit::WebVideoFullscreenModelContext::setVideoLayerFrame): Deleted.
(WebKit::WebVideoFullscreenModelContext::setVideoLayerGravity): Deleted.
(WebKit::WebVideoFullscreenModelContext::fullscreenModeChanged): Deleted.
(WebKit::WebVideoFullscreenModelContext::isVisible): Deleted.
(WebKit::WebVideoFullscreenModelContext::didSetupFullscreen): Deleted.
(WebKit::WebVideoFullscreenModelContext::didEnterFullscreen): Deleted.
(WebKit::WebVideoFullscreenModelContext::didExitFullscreen): Deleted.
(WebKit::WebVideoFullscreenModelContext::didCleanupFullscreen): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::WebVideoFullscreenManagerProxy): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::~WebVideoFullscreenManagerProxy): Deleted.
2016-05-05 Dean Jackson <dino@apple.com>
Shadow DOM should not be experimental
https://bugs.webkit.org/show_bug.cgi?id=157384
<rdar://problem/26123254>
Reviewed by Anders Carlsson.
Shadow DOM is not an experimental feature. We want
it enabled by default.
This fixes the timeout in:
WebKit2.InjectedBundleMakeAllShadowRootOpenTest
* Shared/WebPreferencesDefinitions.h: Move the Shadow
DOM preference out of Experimental.
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
2016-05-05 Simon Fraser <simon.fraser@apple.com>
Revert r200390, thus putting r199259 and r200161 and back.
* Shared/VisibleContentRectUpdateInfo.cpp:
(WebKit::VisibleContentRectUpdateInfo::encode):
(WebKit::VisibleContentRectUpdateInfo::decode):
* Shared/VisibleContentRectUpdateInfo.h:
(WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo):
(WebKit::VisibleContentRectUpdateInfo::enclosedInScrollableAncestorView):
(WebKit::operator==):
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _didInvokeUIScrollViewDelegateCallback]):
(-[WKWebView _didFinishScrolling]):
(-[WKWebView scrollViewDidScroll:]):
(-[WKWebView scrollViewDidZoom:]):
(-[WKWebView scrollViewDidEndZooming:withView:atScale:]):
(-[WKWebView _scrollViewDidInterruptDecelerating:]):
(-[WKWebView _visibleRectInEnclosingScrollView:]):
(-[WKWebView _visibleContentRect]):
(-[WKWebView _didScroll]):
(-[WKWebView _enclosingScrollerScrollingEnded:]):
(-[WKWebView _frameOrBoundsChanged]):
(-[WKWebView _updateVisibleContentRects]):
(-[WKWebView _updateVisibleContentRectAfterScrollInView:]):
(scrollViewCanScroll):
(-[WKWebView _updateContentRectsWithState:]):
* UIProcess/API/Cocoa/WKWebViewInternal.h:
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WKContentView.h:
* UIProcess/ios/WKContentView.mm:
(-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:obscuredInset:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollableAncestorView:]):
(-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:obscuredInset:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:]): Deleted.
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::updateVisibleContentRects):
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::indicatorLocation):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::updateVisibleContentRects):
2016-05-02 Sam Weinig <sam@webkit.org>
On platforms that support it, use a SecTrustRef as the basis of CertificateInfo instead of a chain of SecCertificateRefs.
https://bugs.webkit.org/show_bug.cgi?id=157220
Reviewed by Darin Adler.
* Shared/Authentication/mac/AuthenticationManager.mac.mm:
(WebKit::leafCertificate):
(WebKit::chain):
(WebKit::AuthenticationManager::tryUseCertificateInfoForChallenge):
When supported, get the SecCertificateRef from the SecTrustRef rather than the
stored certificate chain.
* Shared/cf/ArgumentCodersCF.cpp:
(IPC::typeFromCFTypeRef):
(IPC::encode):
(IPC::decode):
* Shared/cf/ArgumentCodersCF.h:
Add support for encoding/decoding SecTrustRef objects.
* Shared/mac/WebCoreArgumentCodersMac.mm:
(IPC::ArgumentCoder<CertificateInfo>::encode):
(IPC::ArgumentCoder<CertificateInfo>::decode):
Add support for encoding/decoding CertificateInfo's that contain SecTrustRef objects.
(IPC::encodeNSError):
(IPC::decodeNSError):
Simplify error encoding/decoding by not using an addition CertificateInfo object for encoding
the peerCertificateChain. Also, add the peerTrust to the userInfo that get's encoded/decoded.
* UIProcess/API/Cocoa/WKWebView.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView serverTrust]):
(-[WKWebView certificateChain]):
Add new serverTrust API and deprecate certificateChain.
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::willChangeCertificateInfo):
(WebKit::NavigationState::didChangeCertificateInfo):
Add support for KVO of -[WKWebView serverTrust].
2016-05-05 Daniel Bates <dabates@apple.com>
Remove workaround added in r200391 (rdar://problem/25992976)
https://bugs.webkit.org/show_bug.cgi?id=157378
<rdar://problem/26118503>
Reviewed by Anders Carlsson.
Following the fix for <rdar://problem/26075714> we can remove the workaround added in r200391 (rdar://problem/25992976).
* Shared/mac/CodeSigning.mm:
(WebKit::secCodeSigningIdentifier):
2016-05-04 Dean Jackson <dino@apple.com>
Experimental Features don't need an "Experimental" prefix
https://bugs.webkit.org/show_bug.cgi?id=157363
<rdar://problem/26100630>
Reviewed by Anders Carlsson.
Since we're not persisting the value of the experimental
features, it's unlikely there will ever be the case
where we move a Preference from experimental to normal
and use a stored value.
* Shared/WebPreferencesDefinitions.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
2016-05-04 Dean Jackson <dino@apple.com>
Experimental features should toggle runtime flags
https://bugs.webkit.org/show_bug.cgi?id=157353
<rdar://problem/23621603>
Reviewed by Anders Carlsson.
Hook up the experimental WebPreferences to RuntimeEnabledFeatures.
In the process I removed the general preference for WebGL 2 (we
already had an experimental feature for it) and moved Custom
Elements and Shadow DOM to experimental.
I also removed the C versions of the preferences, since experimental
features only need the ObjC API (which is generated automatically).
* Shared/WebPreferencesDefinitions.h: Move/remove some features and
make the experimental section more clear.
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetWebGL2Enabled): Deleted.
(WKPreferencesGetWebGL2Enabled): Deleted.
(WKPreferencesSetShadowDOMEnabled): Deleted.
(WKPreferencesGetShadowDOMEnabled): Deleted.
(WKPreferencesSetCustomElementsEnabled): Deleted.
(WKPreferencesGetCustomElementsEnabled): Deleted.
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* UIProcess/WebPreferences.cpp:
(WebKit::WebPreferences::updateBoolValueForExperimentalFeatureKey): A
version of updateBoolValueForKey that doesn't call the platform
function (e.g. doesn't save to NSUserDefaults).
* UIProcess/WebPreferences.h:
* UIProcess/mac/WebPreferencesMac.mm:
(WebKit::WebPreferences::platformInitializeStore): Deleted.
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
2016-05-04 Dean Jackson <dino@apple.com>
TestRunner should always enable all the experimental features
https://bugs.webkit.org/show_bug.cgi?id=157360
<rdar://problem/26099748>
Reviewed by Anders Carlsson.
Experimental features are disabled by default, but it is
a pain to enable them in every test. Instead, have the
test runner turn them all on.
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesEnableAllExperimentalFeatures):
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* UIProcess/WebPreferences.cpp:
(WebKit::WebPreferences::enableAllExperimentalFeatures):
* UIProcess/WebPreferences.h:
2016-05-04 Gyuyoung Kim <gyuyoung.kim@webkit.org>
Add WKPreference for SelectionPaintingWithoutSelectionGaps
https://bugs.webkit.org/show_bug.cgi?id=156900
Reviewed by Michael Catanzaro.
Unlike other browsers WebKit has been drawing selection gaps
between render blocks during the text selection. This often
cause text selection screen looks messy.
This patch adds a setting method to disable the functionality,
and EFL port disables it by default.
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetSelectionPaintingWithoutSelectionGapsEnabled):
(WKPreferencesGetSelectionPaintingWithoutSelectionGapsEnabled):
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
2016-05-04 Zan Dobersek <zdobersek@igalia.com>
[CoordGraphics] CompositingCoordinator should hande root compositing and view overlay layers separately
https://bugs.webkit.org/show_bug.cgi?id=157305
Reviewed by Carlos Garcia Campos.
Update CoordinatedLayerTreeHost and ThreadCoordinatedLayerTreeHost to
correctly use setRootCompositingLayer() and setViewOverlayRootLayer()
methods on the CompositingCoordinator object.
CoordinatedLayerTreeHost doesn't have to keep a pointer to the root
compositing layer anymore. updateRootLayers() can be removed.
ThreadCoordinatedLayerTreeHost doen't have to keep a pointer to both
the root compositing and the view overlay layers anymore. Similarly,
updateRootLayers() can be removed.
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::setViewOverlayRootLayer):
(WebKit::CoordinatedLayerTreeHost::setRootCompositingLayer):
(WebKit::CoordinatedLayerTreeHost::CoordinatedLayerTreeHost): Deleted.
(WebKit::CoordinatedLayerTreeHost::updateRootLayers): Deleted.
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:
(WebKit::ThreadedCoordinatedLayerTreeHost::setRootCompositingLayer):
(WebKit::ThreadedCoordinatedLayerTreeHost::setViewOverlayRootLayer):
(WebKit::ThreadedCoordinatedLayerTreeHost::ThreadedCoordinatedLayerTreeHost): Deleted.
(WebKit::ThreadedCoordinatedLayerTreeHost::updateRootLayers): Deleted.
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
2016-05-03 Beth Dakin <bdakin@apple.com>
Add VideoControlsManager tests
https://bugs.webkit.org/show_bug.cgi?id=157332
-and corresponding-
rdar://problem/24358431
Reviewed by Sam Weinig.
Expose _hasActiveVideoForControlsManager on WKWebViewPrivate for the sake of
testing.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _hasActiveVideoForControlsManager]):
(-[WKWebView _doAfterNextPresentationUpdate:]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
2016-05-03 Jer Noble <jer.noble@apple.com>
[iOS][WK2] Allow WKWebView to play local filesystem media when created with -loadFileURL:allowingReadAccessToURL:
https://bugs.webkit.org/show_bug.cgi?id=156875
<rdar://problem/24281444>
Reviewed by Alexey Proskuryakov.
Grant AVFoundation the right to issue file read sandbox extensions from the WebContent process to the mediaserverd
process, so that it can play back local media files.
* Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
2016-05-03 Jiewen Tan <jiewen_tan@apple.com>
File Upload: Photo upload name is always generic (image.jpg)
https://bugs.webkit.org/show_bug.cgi?id=157291
<rdar://problem/12353008>
Reviewed by Darin Adler.
Use the original filename as the name of an uploaded image instead of
a generic name, i.e. image.jpg.
* Platform/spi/ios/PhotosSPI.h: Added.
* UIProcess/ios/forms/WKFileUploadPanel.mm:
(-[WKFileUploadPanel _uploadItemForImage:withAssetURL:successBlock:failureBlock:]):
* WebKit2.xcodeproj/project.pbxproj:
2016-05-03 Chris Dumez <cdumez@apple.com>
[WK2][DiskCache] Store common HTTP header names as strings
https://bugs.webkit.org/show_bug.cgi?id=157326
<rdar://problem/26073498>
Reviewed by Antti Koivisto.
Store common HTTP header names as strings in the disk cache instead of
using their value in the HTTPHeaderName enumeration. Having the disk
cache rely in the HTTPHeaderName enumeration is risky becomes it means
the cached data would become invalid every time someone updates
HTTPHeaderNames.in in WebCore. If someone were to update
HTTPHeaderNames.in without bumping the disk cache version, we would end
up with wrongly recognized HTTP header names after loading responses
from the cache.
* NetworkProcess/cache/NetworkCacheCoders.cpp:
(WebKit::NetworkCache::Coder<WebCore::HTTPHeaderMap>::encode):
(WebKit::NetworkCache::Coder<WebCore::HTTPHeaderMap>::decode):
* NetworkProcess/cache/NetworkCacheCoders.h:
* NetworkProcess/cache/NetworkCacheStorage.h:
2016-05-03 Daniel Bates <dabates@apple.com>
Temporary workaround for Apple Internal builds
<rdar://problem/25992976>
For Apple Internal builds treat error code errSecCSGuestInvalid as if it were error code errSecCSUnsigned.
We will look to remove this workaround in the fix for <rdar://problem/26075714>.
* Shared/mac/CodeSigning.mm:
(WebKit::secCodeSigningIdentifier):
2016-05-03 Chris Dumez <cdumez@apple.com>
Unreviewed, rolling out r199259 and r200161.
Seems to have caused a ~1.2% PLT regression on iOS
Reverted changesets:
"[iOS WK2] WKWebViews should consult ancestor UIScrollViews to
determine tiling area"
https://bugs.webkit.org/show_bug.cgi?id=156429
http://trac.webkit.org/changeset/199259
"[iOS WK2] When determining tile size, check whether ancestor
UIScrollViews are actually scrollable"
https://bugs.webkit.org/show_bug.cgi?id=157107
http://trac.webkit.org/changeset/200161
2016-05-03 Dean Jackson <dino@apple.com>
CSS Grid should be an experimental feature flag
https://bugs.webkit.org/show_bug.cgi?id=157327
<rdar://problem/26075147>
Reviewed by Anders Carlsson.
The CSS Grid Layout runtime flag was exposed by
a WebKit preference. It was in the experimental
section but was missing the "Experimental" prefix.
It was also missing the human readable description.
Lastly, there is no need for the C API for experimental
features.
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetCSSGridLayoutEnabled): Deleted.
(WKPreferencesGetCSSGridLayoutEnabled): Deleted.
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
2016-05-03 Alex Christensen <achristensen@webkit.org>
Remove firing assertion when redirecting
https://bugs.webkit.org/show_bug.cgi?id=155800
rdar://25299194
Reviewed by Sam Weinig.
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:willCacheResponse:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:didCompleteWithError:]):
With NSURLConnection, we stopped getting delegate callbacks once the delegate is destroyed, and everything was cancelled.
With NSURLSession we continue getting delegate callbacks because the session's delegate is not destroyed after each load.
As documented in NSURLSession.h: "In some cases, the task may signal other work before it acknowledges the cancelation."
In the cases where we cancel a load, delete the NetworkLoad and corresponding NetworkDataTask, we want to call all
completion handlers indicating that we really want to cancel instead of asserting.
2016-05-02 Darin Adler <darin@apple.com>
Change IDL enumerations to be nested in their C++ class instead of at WebCore namespace level
https://bugs.webkit.org/show_bug.cgi?id=157257
Reviewed by Chris Dumez.
* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::loadResource): Updated since we changed
ReferrerHeaderPolicy back to ReferrerPolicy.
(WebKit::WebLoaderStrategy::schedulePluginStreamLoad): Ditto.
2016-05-02 Brady Eidson <beidson@apple.com>
Const-ify some IDB code.
https://bugs.webkit.org/show_bug.cgi?id=157287
Reviewed by Alex Christensen.
* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:
(WebKit::WebIDBConnectionToServer::deleteDatabase):
(WebKit::WebIDBConnectionToServer::openDatabase):
(WebKit::WebIDBConnectionToServer::abortTransaction):
(WebKit::WebIDBConnectionToServer::commitTransaction):
(WebKit::WebIDBConnectionToServer::didFinishHandlingVersionChangeTransaction):
* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
2016-05-02 Simon Fraser <simon.fraser@apple.com>
Sort the project file.
* WebKit2.xcodeproj/project.pbxproj:
2016-05-02 Simon Fraser <simon.fraser@apple.com>
Fix shouldUpdateScrollLayerPositionSynchronously() for non-main frames. Remove updatesScrollLayerPositionOnMainThread()
https://bugs.webkit.org/show_bug.cgi?id=157277
Reviewed by Dean Jackson, Tim Horton.
Remove updatesScrollLayerPositionOnMainThread() which is unused by all ports.
* WebProcess/Plugins/PDF/DeprecatedPDFPlugin.h:
2016-05-02 Alex Christensen <achristensen@webkit.org>
Crash if a certificate chain has null certificates
https://bugs.webkit.org/show_bug.cgi?id=157206
Reviewed by Alexey Proskuryakov.
* NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::certificatesMatch):
SecTrustGetCertificateAtIndex can return null.
If this ever happens, something has gone horribly wrong in the security code and we should crash.
See rdar://problem/21723172
2016-05-02 Myles C. Maxfield <mmaxfield@apple.com>
Addressing post-review comments after r200116
https://bugs.webkit.org/show_bug.cgi?id=157228
Reviewed by Anders Carlsson.
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
* UIProcess/API/Cocoa/WKWebViewConfiguration.h:
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration encodeWithCoder:]):
(-[WKWebViewConfiguration initWithCoder:]):
(-[WKWebViewConfiguration copyWithZone:]):
* UIProcess/WebPageProxy.cpp:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
2016-05-02 Daniel Bates <dabates@apple.com>
DatabaseTracker::closeAllDatabases calls Database::close from the wrong thread
https://bugs.webkit.org/show_bug.cgi?id=147672
<rdar://problem/22357464>
Reviewed by Brady Eidson.
Call DatabaseTracker::closeAllDatabases() with CurrentQueryBehavior::Interrupt so that we abort
a long running query and close the database immediately to avoid holding a locked file when the
process is suspended.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::processWillSuspendImminently):
2016-05-01 Darin Adler <darin@apple.com>
Update Fetch to use enum class instead of string for enumerations
https://bugs.webkit.org/show_bug.cgi?id=157241
Reviewed by Chris Dumez.
* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::loadResource): Updated for the change where I
renamed ReferrerPolicy to ReferrerHeaderPolicy, at least for now.
(WebKit::WebLoaderStrategy::schedulePluginStreamLoad): Ditto.
2016-05-01 Konstantin Tokarev <annulen@yandex.ru>
Fixed build with !ENABLED(DATABASE_PROCESS).
Unreviewed build fix.
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::grantSandboxExtensionsToDatabaseProcessForBlobs):
2016-04-29 Chris Dumez <cdumez@apple.com>
Drop useless check in SpeculativeLoadManager::registerLoad()
https://bugs.webkit.org/show_bug.cgi?id=157204
Reviewed by Antti Koivisto.
Drop useless check in SpeculativeLoadManager::registerLoad(). There is
no way to end up this code path with a non-HTTP family request.
* NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
(WebKit::NetworkCache::SpeculativeLoadManager::registerLoad):
2016-04-29 Brian Burg <bburg@apple.com>
Web Automation: add SPI to mark an existing NSEvent as synthesized for automation
https://bugs.webkit.org/show_bug.cgi?id=157221
<rdar://problem/26019356>
Reviewed by Timothy Hatcher.
In cases where an NSEvent is duplicated, clients need to re-mark an NSEvent
as synthesized for automation if the original NSEvent was marked as such.
* UIProcess/API/Cocoa/_WKAutomationSession.h:
* UIProcess/API/Cocoa/_WKAutomationSession.mm:
(-[_WKAutomationSession markEventAsSynthesizedForAutomation:]):
* UIProcess/Automation/WebAutomationSession.h:
* UIProcess/Cocoa/WebAutomationSessionCocoa.mm:
(WebKit::WebAutomationSession::sendSynthesizedEventsToPage):
(WebKit::WebAutomationSession::markEventAsSynthesizedForAutomation):
2016-04-29 Brian Burg <bburg@apple.com>
Web Automation: use a magic eventNumber as a fallback for detecting NSEvents synthesized for automation
https://bugs.webkit.org/show_bug.cgi?id=157222
Reviewed by Timothy Hatcher.
Sometimes events are copied and redelivered in a way that can't be reliably intercepted,
so use eventNumber as an alternate means of detecting synthesized mouse NSEvents.
* UIProcess/Cocoa/WebAutomationSessionCocoa.mm:
(WebKit::WebAutomationSession::wasEventSynthesizedForAutomation):
If it's a mouse-related event, check the eventNumber if the associated object was missing.
(WebKit::WebAutomationSession::platformSimulateMouseInteraction):
Most real events from input devices fill in eventNumber with a non-zero value.
In my testing, using zero did not seem to adversely affect event delivery.
2016-04-29 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Issues inspecting the inspector, pausing on breakpoints causes content to not load
https://bugs.webkit.org/show_bug.cgi?id=157198
<rdar://problem/26011049>
Reviewed by Timothy Hatcher.
* WebProcess/WebPage/WebInspectorFrontendAPIDispatcher.h:
* WebProcess/WebPage/WebInspectorFrontendAPIDispatcher.cpp:
(WebKit::WebInspectorFrontendAPIDispatcher::reset):
(WebKit::WebInspectorFrontendAPIDispatcher::frontendLoaded):
(WebKit::WebInspectorFrontendAPIDispatcher::suspend):
(WebKit::WebInspectorFrontendAPIDispatcher::unsuspend):
(WebKit::WebInspectorFrontendAPIDispatcher::dispatchCommand):
(WebKit::WebInspectorFrontendAPIDispatcher::dispatchMessageAsync):
(WebKit::WebInspectorFrontendAPIDispatcher::evaluateOrQueueExpression):
(WebKit::WebInspectorFrontendAPIDispatcher::evaluateQueuedExpressions):
Avoid evaluating expressions when the page is paused. Generalize the
message queueing and dispatching for pause/suspend that we already
had for waiting for the frontend page to be loaded.
* WebProcess/WebPage/WebInspectorUI.h:
* WebProcess/WebPage/WebInspectorUI.cpp:
(WebKit::WebInspectorUI::pagePaused):
(WebKit::WebInspectorUI::pageUnpaused):
When the frontend page pauses/unpauses, suspend/resume the dispatcher.
2016-04-29 Chris Dumez <cdumez@apple.com>
Remove unnecessary isolated String copying from one of NetworkCache::Key's constructor
https://bugs.webkit.org/show_bug.cgi?id=157207
Reviewed by Antti Koivisto.
Remove unnecessary isolated String copying from one of NetworkCache::Key's
constructor. We are anyway going to create isolated copies if the Key ends
up getting copied.
* NetworkProcess/cache/NetworkCacheKey.cpp:
(WebKit::NetworkCache::Key::Key):
2016-04-29 Brian Burg <bburg@apple.com>
Web Automation: performMouseInteraction command computes mouse event coordinates incorrectly
https://bugs.webkit.org/show_bug.cgi?id=157218
<rdar://problem/26018230>
Reviewed by Timothy Hatcher.
This patch fixes two issues: the min/max clamp was in the wrong order,
and the y-value did not account for the window's top content inset.
* UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::performMouseInteraction):
2016-04-29 Dean Jackson <dino@apple.com>
RTL <select> popup menu is in the wrong location
https://bugs.webkit.org/show_bug.cgi?id=157159
<rdar://problem/25894451>
Reapply http://trac.webkit.org/changeset/200217
but with changes that will allow it to build on Yosemite.
* UIProcess/mac/WebPopupMenuProxyMac.mm:
(WebKit::WebPopupMenuProxyMac::showPopupMenu):
2016-04-28 Ada Chan <adachan@apple.com>
Indicate we are processing user gesture when handling messages from WebPlaybackSessionManagerProxy to WebPlaybackSessionManager
https://bugs.webkit.org/show_bug.cgi?id=157151
Reviewed by Jer Noble.
Messages from WebPlaybackSessionManagerProxy to WebPlaybackSessionManager are triggered by
user actions, so add a UserGestureIndicator in the methods that handle those messages.
* WebProcess/cocoa/WebPlaybackSessionManager.mm:
(WebKit::WebPlaybackSessionManager::play):
(WebKit::WebPlaybackSessionManager::pause):
(WebKit::WebPlaybackSessionManager::togglePlayState):
(WebKit::WebPlaybackSessionManager::beginScrubbing):
(WebKit::WebPlaybackSessionManager::endScrubbing):
(WebKit::WebPlaybackSessionManager::seekToTime):
(WebKit::WebPlaybackSessionManager::fastSeek):
(WebKit::WebPlaybackSessionManager::beginScanningForward):
(WebKit::WebPlaybackSessionManager::beginScanningBackward):
(WebKit::WebPlaybackSessionManager::endScanning):
(WebKit::WebPlaybackSessionManager::selectAudioMediaOption):
(WebKit::WebPlaybackSessionManager::selectLegibleMediaOption):
2016-04-29 Brady Eidson <beidson@apple.com>
Add a default ".isolatedCopy()" specialization to CrossThreadCopier, and other small cleanup.
https://bugs.webkit.org/show_bug.cgi?id=157185
Reviewed by Anders Carlsson.
* Shared/WebCrossThreadCopier.cpp:
(WebCore::Vector<char>>::copy): reserveInitialCapacity() before creating the copy.
(WebCore::Vector<int64_t>>::copy): Ditto.
(WebCore::Vector<uint8_t>>::copy): Ditto.
(WebCore::Vector<Vector<IDBKeyData>>>::copy): Deleted dead code.
* Shared/WebCrossThreadCopier.h:
2016-04-29 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r200217.
https://bugs.webkit.org/show_bug.cgi?id=157183
This change broke the Yosemite build. (Requested by ryanhaddad
on #webkit).
Reverted changeset:
"RTL <select> popup menu is in the wrong location"
https://bugs.webkit.org/show_bug.cgi?id=157159
http://trac.webkit.org/changeset/200217
2016-04-29 Claudio Saavedra <csaavedra@igalia.com>
[GTK] Move WK2 shareable code out from gtk directories
https://bugs.webkit.org/show_bug.cgi?id=157135
Reviewed by Darin Adler.
Both NetworkProcessMain and InjectedBundle can go out from their respective gtk directories.
* NetworkProcess/gtk/NetworkProcessMainGtk.cpp:
(WebKit::NetworkProcessMainUnix): Deleted.
* NetworkProcess/soup/NetworkProcessMainSoup.cpp: Renamed from Source/WebKit2/NetworkProcess/gtk/NetworkProcessMainGtk.cpp.
(WebKit::NetworkProcessMainUnix):
* PlatformGTK.cmake: Update.
* WebProcess/InjectedBundle/glib/InjectedBundleGlib.cpp: Renamed from Source/WebKit2/WebProcess/InjectedBundle/gtk/InjectedBundleGtk.cpp.
(WebKit::InjectedBundle::initialize):
(WebKit::InjectedBundle::setBundleParameter):
(WebKit::InjectedBundle::setBundleParameters):
* WebProcess/InjectedBundle/gtk/InjectedBundleGtk.cpp:
(WebKit::InjectedBundle::initialize): Deleted.
(WebKit::InjectedBundle::setBundleParameter): Deleted.
(WebKit::InjectedBundle::setBundleParameters): Deleted.
2016-04-28 Dean Jackson <dino@apple.com>
RTL <select> popup menu is in the wrong location
https://bugs.webkit.org/show_bug.cgi?id=157159
<rdar://problem/25894451>
Reviewed by Simon Fraser.
Make sure the NSPopupMenu takes the text direction
into account, and offset the position
of the menu slightly if we're in RTL mode.
Unfortunately our test infrastructure is unable to exercise
this because it runs without a window, and the popup menu
is not captured in the screenshot.
* UIProcess/mac/WebPopupMenuProxyMac.mm:
(WebKit::WebPopupMenuProxyMac::showPopupMenu):
2016-04-28 Manuel Rego Casasnovas <rego@igalia.com>
[css-grid] Add CSS Grid Layout runtime flag
https://bugs.webkit.org/show_bug.cgi?id=157134
Reviewed by Simon Fraser.
Add CSS Grid Layout runtime flag based on preferences,
enabled by default.
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetCSSGridLayoutEnabled):
(WKPreferencesGetCSSGridLayoutEnabled):
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
2016-04-28 Daniel Bates <dabates@apple.com>
Fix the Apple Internal OS X build
* UIProcess/mac/WKPrintingView.mm:
(-[WKPrintingView _drawPDFDocument:page:atPoint:]): Ignore deprecation warning for -[PDFPage drawWithBox:].
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::drawPDFPage): Ditto.
2016-04-28 Manuel Rego Casasnovas <rego@igalia.com>
Fix mistake in custom elements runtime flag
https://bugs.webkit.org/show_bug.cgi?id=157130
Reviewed by Chris Dumez.
The methods for the custom elements runtime flag were using
the Shadow DOM flag instead.
These methods were introduced in r197921,
it seems it was just a copy&paste mistake.
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetCustomElementsEnabled):
(WKPreferencesGetCustomElementsEnabled):
2016-04-28 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Add missing files to the compilation of GTK+ inspector.
* PlatformGTK.cmake:
2016-04-27 Dan Bernstein <mitz@apple.com>
<rdar://problem/25915253> REGRESSION (r199628): Netflix playback fails in Safari Technology Preview with error code S7363-1260-FFFF58D8
Rubber-stamped by Tim Horton.
Reverted r199628.
* Configurations/WebContentService.xcconfig:
2016-04-27 Brady Eidson <beidson@apple.com>
Modern IDB: Implement native IDBFactory.getAllDatabaseNames for WebInspector.
https://bugs.webkit.org/show_bug.cgi?id=157072
Reviewed by Alex Christensen.
Handle the process hop for the new getAllDatabaseNames call.
* DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:
(WebKit::WebIDBConnectionToClient::didGetAllDatabaseNames):
(WebKit::WebIDBConnectionToClient::getAllDatabaseNames):
* DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h:
* DatabaseProcess/IndexedDB/WebIDBConnectionToClient.messages.in:
* Shared/WebCrossThreadCopier.cpp:
(WebCore::SecurityOriginData>::copy): Deleted, as its in WebCore now.
* Shared/WebCrossThreadCopier.h:
* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:
(WebKit::WebIDBConnectionToServer::getAllDatabaseNames):
(WebKit::WebIDBConnectionToServer::didGetAllDatabaseNames):
* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.messages.in:
2016-04-27 Simon Fraser <simon.fraser@apple.com>
[iOS WK2] When determining tile size, check whether ancestor UIScrollViews are actually scrollable
https://bugs.webkit.org/show_bug.cgi?id=157107
rdar://problem/25943577
Reviewed by Tim Horton.
We should only fall back to 512x512 tiles if the WKWebView has a UIScrollView ancestor,
and that UIScrollView actually scrolls. This avoids falling back to small tiles in
MobileSafari.
Rename "enclosedInScrollView" to "enclosedInScrollableAncestorView" everywhere.
* Shared/VisibleContentRectUpdateInfo.cpp:
(WebKit::VisibleContentRectUpdateInfo::encode):
(WebKit::VisibleContentRectUpdateInfo::decode):
* Shared/VisibleContentRectUpdateInfo.h:
(WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo):
(WebKit::VisibleContentRectUpdateInfo::enclosedInScrollableAncestorView):
(WebKit::operator==):
(WebKit::VisibleContentRectUpdateInfo::enclosedInScrollView): Deleted.
* UIProcess/API/Cocoa/WKWebView.mm:
(scrollViewCanScroll):
(-[WKWebView _updateContentRectsWithState:]):
* UIProcess/ios/WKContentView.h:
* UIProcess/ios/WKContentView.mm:
(-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:obscuredInset:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollableAncestorView:]):
(-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:obscuredInset:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollView:]): Deleted.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::updateVisibleContentRects):
2016-04-26 Ada Chan <adachan@apple.com>
Set WebVideoFullscreenInterfaceMac up as a client of WebPlaybackSessionInterfaceMac to listen for playback state changes
https://bugs.webkit.org/show_bug.cgi?id=157008
Reviewed by Jer Noble.
Since WebVideoFullscreenInterfaceMac holds onto WebPlaybackSessionInterfaceMac, we can't let
WebPlaybackSessionManagerProxy unregister the context for that media element while
WebVideoFullscreenInterfaceMac is still using it. WebVideoFullscreenInterfaceMac should add
to the client count for that WebPlaybackSession context.
* UIProcess/Cocoa/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenManagerProxy::createModelAndInterface):
When the context for the media element is created with the WebVideoFullscreenManagerProxy, it should
add one to the client count for the media element context in WebPlaybackSessionManagerProxy.
(WebKit::WebVideoFullscreenManagerProxy::removeClientForContext):
When WebVideoFullscreenManagerProxy unregisters the context for this media element, it should
subtract one from the client count for the media element context in WebPlaybackSessionManagerProxy.
* WebProcess/cocoa/WebPlaybackSessionManager.mm:
(WebKit::WebPlaybackSessionManager::clearPlaybackControlsManager):
Bail early if m_controlsManagerContextId is zero. Otherwise, we'd end up sending a
ClearPlaybackControlsManager message to the UI process inadvertently.
(WebKit::WebPlaybackSessionManager::contextIdForMediaElement):
Make sure the model element for the context ID is set to the media element.
* WebProcess/cocoa/WebVideoFullscreenManager.mm:
(WebKit::WebVideoFullscreenManager::createModelAndInterface):
When the context for the media element is created with the WebVideoFullscreenManager, it should
add one to the client count for the media element context in WebPlaybackSessionManager.
(WebKit::WebVideoFullscreenManager::removeContext):
When WebVideoFullscreenManager unregisters the context for this media element, it should
subtract one from the client count for the media element context in WebPlaybackSessionManager.
2016-04-27 Alex Christensen <achristensen@webkit.org>
Remove download message receiver when NetworkProcess crashes
https://bugs.webkit.org/show_bug.cgi?id=157102
<rdar://problem/25550106>
Reviewed by Anders Carlsson.
* UIProcess/Downloads/DownloadProxyMap.cpp:
(WebKit::DownloadProxyMap::processDidClose):
When the NetworkProcess crashes during a download, we want to remove the message receiver from the map
so we don't get an assertion in ~MessageReceiver in the UIProcess so we do not have a freed
message receiver in the map.
2016-04-27 Alex Christensen <achristensen@webkit.org>
Fix client certificate authentication with NSURLSession on iOS
https://bugs.webkit.org/show_bug.cgi?id=157094
<rdar://problem/25946859>
Reviewed by Darin Adler.
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
We only want to create a non-persistent credential with the given user and password
and store the user and password in the CredentialStorage if there is a user and password.
We previously only skipped this if we were doing server trust evaluation, in which case
we will have a credential from serverTrustCredential which has no user or password.
When doing client certificate authentication on iOS, this completion handler is called with
a credential with session persistence and also no user or password, so we need to do the same thing.
The reason this was never hit on Mac was because the credential came from tryUseCertificateInfoForChallenge,
which always had persistence none.
2016-04-27 Claudio Saavedra <csaavedra@igalia.com>
[GTK][EFL] Move WK2 platform code to a common place
https://bugs.webkit.org/show_bug.cgi?id=157069
Reviewed by Carlos Garcia Campos.
Logging implementation can be shared between EFL and GTK, so move it to unix.
The GTK Module implementation doesn't depend on GTK anyhow so move it to glib.
* Platform/efl/LoggingEfl.cpp: Removed.
(WebKit::logLevelString): Deleted.
* Platform/glib/ModuleGlib.cpp: Renamed from Source/WebKit2/Platform/gtk/ModuleGtk.cpp.
(WebKit::Module::load):
(WebKit::Module::unload):
(WebKit::Module::platformFunctionPointer):
* Platform/gtk/LoggingGtk.cpp:
(WebKit::logLevelString): Deleted.
* Platform/gtk/ModuleGtk.cpp:
(WebKit::Module::load): Deleted.
(WebKit::Module::unload): Deleted.
(WebKit::Module::platformFunctionPointer): Deleted.
* Platform/unix/LoggingUnix.cpp: Renamed from Source/WebKit2/Platform/gtk/LoggingGtk.cpp.
(WebKit::logLevelString):
* PlatformEfl.cmake: Update.
* PlatformGTK.cmake: Update
2016-04-27 Alex Christensen <achristensen@webkit.org>
Fix assertion when downloading with NSURLSession after r198955
https://bugs.webkit.org/show_bug.cgi?id=157051
Reviewed by Brady Eidson.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::continueDecidePendingDownloadDestination):
2016-04-27 Carlos Garcia Campos <cgarcia@igalia.com>
REGRESSION(r200094): [FreeType] Vertical text is broken after r200094
https://bugs.webkit.org/show_bug.cgi?id=157066
Reviewed by Martin Robinson.
Add Source/WebCore/platform/graphics/freetype to the list of include dirs, because now FontPlatformData.h
includes FcUniquePtr.h.
* PlatformEfl.cmake:
* PlatformGTK.cmake:
2016-04-26 Joseph Pecoraro <pecoraro@apple.com>
Uncaught Exception: SecurityError: DOM Exception 18: An attempt was made to break through the security policy of the user agent.
https://bugs.webkit.org/show_bug.cgi?id=156991
<rdar://problem/25913475>
Reviewed by Timothy Hatcher.
* UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
Explicitly always allow access to storage for Web Inspector content just
in case, as we already allow universal file access.
2016-04-26 Myles C. Maxfield <mmaxfield@apple.com>
[WK2] [OS X] Create API for switching RTL scrollbar policy
https://bugs.webkit.org/show_bug.cgi?id=156948
<rdar://problem/25707757>
Reviewed by Darin Adler.
Add the new API.
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
* UIProcess/API/Cocoa/WKWebViewConfiguration.h:
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration encodeWithCoder:]):
(-[WKWebViewConfiguration initWithCoder:]):
(-[WKWebViewConfiguration copyWithZone:]):
* UIProcess/WebPageProxy.cpp:
* WebProcess/Plugins/PDF/DeprecatedPDFPlugin.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
2016-04-26 Beth Dakin <bdakin@apple.com>
Check to make sure shouldRequestCandidates() before requesting candidates
https://bugs.webkit.org/show_bug.cgi?id=157038
-and corresponding-
rdar://problem/25910418
Reviewed by Tim Horton.
This patch limits requesting and showing candidates to cases where
shouldRequestCandidates() is true. This patch also caches the sequence number
returned by [NSSpellChecker requestCandidatesForSelectedRange:] to make sure
it is equal to the sequence number sent to the callback handler so that we do
not show candidates for old requests.
* UIProcess/Cocoa/WebViewImpl.h:
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::updateWebViewImplAdditions):
(WebKit::WebViewImpl::shouldRequestCandidates):
(WebKit::WebViewImpl::showCandidates):
(WebKit::WebViewImpl::requestCandidatesForSelectionIfNeeded):
(WebKit::WebViewImpl::handleRequestedCandidates):
2016-04-26 Gyuyoung Kim <gyuyoung.kim@webkit.org>
[EFL] Update expectation result in ewk_context_preferred_languages API test
https://bugs.webkit.org/show_bug.cgi?id=157027
Reviewed by Carlos Garcia Campos.
platformLanguage() has been returning lower case value since r199815. Thus existing expected result
needs to be updated together.
* UIProcess/API/efl/tests/test_ewk2_context.cpp: Change en-US with en-us.
(TEST_F):
2016-04-26 Zan Dobersek <zdobersek@igalia.com>
Mark two methods in the CoordinatedGraphicsScene and the
ThreadedCoordinatedLayerTreeHost classes as overrides, fixing
the compiler warnings.
Rubber-stamped by Carlos Garcia Campos.
* Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
2016-04-25 Ryosuke Niwa <rniwa@webkit.org>
Remove the build flag for template elements
https://bugs.webkit.org/show_bug.cgi?id=157022
Reviewed by Daniel Bates.
* Configurations/FeatureDefines.xcconfig:
2016-04-25 Chris Dumez <cdumez@apple.com>
Crash under -[WKWebView _mayAutomaticallyShowVideoPictureInPicture] + 32 (WKWebView.mm:309)
https://bugs.webkit.org/show_bug.cgi?id=156990
<rdar://problem/25904376>
Reviewed by Jer Noble.
In case of WebProcess crash, WebPageProxy::processDidCrash() will call resetState() which
will nullify WebPageProxy::m_videoFullscreenManager. In WebPageProxy::reattachToWebProcess(),
we then call updateViewState() before re-initializing m_videoFullscreenManager, and
updateViewState() ends up calling [WKWebView _mayAutomaticallyShowVideoPictureInPicture]
which dereferences WebPageProxy::m_videoFullscreenManager without null check. This patch
adds a null check for m_videoFullscreenManager in _mayAutomaticallyShowVideoPictureInPicture.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _mayAutomaticallyShowVideoPictureInPicture]):
2016-04-25 Dan Bernstein <mitz@apple.com>
Fix a couple of mistakes from r199700.
Rubber-stamped by Anders Carlsson.
* UIProcess/API/Cocoa/WKPreferencesPrivate.h: Added availability attributes to new properties.
* WebKit2.xcodeproj/project.pbxproj: Demoted _WKExperimentalFeatureInternal.h from Private to Project.
2016-04-24 Hunseop Jeong <hs85.jeong@samsung.com>
[EFL] Update the ewk_settings_offline_web_application_cache_enabled_get() expected value after r199854.
https://bugs.webkit.org/show_bug.cgi?id=156968
Reviewed by Gyuyoung Kim.
* UIProcess/API/C/WKPreferencesRef.h: Update the comment.
* UIProcess/API/efl/tests/test_ewk2_settings.cpp:
(TEST_F):
2016-04-23 Andy Estes <aestes@apple.com>
Fix issues found by the clang static analyzer
https://bugs.webkit.org/show_bug.cgi?id=156956
Reviewed by Alexey Proskuryakov.
* UIProcess/API/Cocoa/WKPreviewActionItem.mm:
(-[WKPreviewAction dealloc]): Added to release _identifier.
* UIProcess/_WKWebViewPrintFormatter.mm:
(-[_WKWebViewPrintFormatter dealloc]): Released _frameToPrint.
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView inputView]): -createPeripheralWithView: returned a retained object, but the method name did not
match Cocoa conventions. Called -initWithView: instead.
(-[WKContentView _showAttachmentSheet]): Stored the _WKActivatedElementInfo in a RetainPtr.
(-[WKContentView _dataForPreviewItemController:atPosition:type:]): Ditto.
(+[WKAutocorrectionContext autocorrectionContextWithData:markedText:selectedText:afterText:selectedRangeInMarkedText:]):
The properties contextBeforeSelection, selectedText, markedText, and contextAfterSelection have the 'copy'
annotation in UIWKAutocorrectionContext, so the additional copy made here would be leaked. Removed the extra copy.
(-[WKAutocorrectionContext dealloc]): Deleted.
* UIProcess/ios/forms/WKFormInputControl.h: Removed -createPeripheralWithView: and declared -initWithView:.
* UIProcess/ios/forms/WKFormInputControl.mm:
(-[WKFormInputControl initWithView:]): Changed to return instancetype.
(+[WKFormInputControl createPeripheralWithView:]): Deleted.
* UIProcess/ios/forms/WKFormSelectControl.h: Removed -createPeripheralWithView: and declared -initWithView:.
* UIProcess/ios/forms/WKFormSelectControl.mm:
(+[WKFormSelectControl createPeripheralWithView:]): Deleted.
* UIProcess/mac/LegacySessionStateCoding.cpp:
(WebKit::decodeLegacySessionState): If dynamic_cf_cast returned nullptr, the result of
CFPropertyListCreateWithData would leak. Stored the CFPropertyListRef in a RetainPtr before calling dynamic_cf_cast.
* UIProcess/mac/ServicesController.mm:
(WebKit::ServicesController::refreshExistingServices): Used a RetainPtr for attachment and cell.
* UIProcess/mac/WebContextMenuProxyMac.mm:
(WebKit::WebContextMenuProxyMac::setupServicesMenu): Used a RetainPtr for groupEntry.
2016-04-23 Chris Dumez <cdumez@apple.com>
Tie the DiagnosticLoggingClient's lifetime to the Page
https://bugs.webkit.org/show_bug.cgi?id=156938
<rdar://problem/25851499>
Reviewed by Antti Koivisto.
* WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp:
(WebKit::WebDiagnosticLoggingClient::pageDestroyed):
(WebKit::WebDiagnosticLoggingClient::mainFrameDestroyed): Deleted.
* WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::willStartUserTriggeredZooming):
2016-04-23 Dan Bernstein <mitz@apple.com>
<rdar://problem/25893246> WebKit2 has failed to build: error: use of undeclared identifier 'm_playbackSessionManager'
Fixed the non-AVKit build.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _isShowingVideoPictureInPicture]):
(-[WKWebView _mayAutomaticallyShowVideoPictureInPicture]):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::fullScreenManager):
(WebKit::WebPageProxy::playbackSessionManager):
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::applicationDidBecomeActive):
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createScrollingCoordinator):
(WebKit::WebChromeClient::supportsVideoFullscreen):
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::inspectorUI):
(WebKit::WebPage::playbackSessionManager):
* WebProcess/WebPage/WebPage.h:
* WebProcess/cocoa/WebVideoFullscreenManager.h:
* WebProcess/cocoa/WebVideoFullscreenManager.mm:
2016-04-22 Ryan Haddad <ryanhaddad@apple.com>
Fixing a typo in my last commit.
Unreviewed build fix.
* UIProcess/Cocoa/WebVideoFullscreenManagerProxy.messages.in:
* WebProcess/cocoa/WebVideoFullscreenManager.messages.in:
2016-04-22 Ryan Haddad <ryanhaddad@apple.com>
Missed some macros to fix builds that do not support AVKit.
Unreviewed build fix.
* UIProcess/Cocoa/WebVideoFullscreenManagerProxy.messages.in:
* WebProcess/cocoa/WebVideoFullscreenManager.messages.in:
2016-04-22 Ryan Haddad <ryanhaddad@apple.com>
Fix builds that do not support AVKit
Unreviewed build fix.
* UIProcess/WebPageProxy.h:
2016-04-22 Ryan Haddad <ryanhaddad@apple.com>
Take 2 for fixing builds that do not support AVKit
Unreviewed build fix.
* UIProcess/Cocoa/WebVideoFullscreenManagerProxy.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::resetState):
2016-04-22 Anders Carlsson <andersca@apple.com>
WKWebView WebSQL is not enabled
https://bugs.webkit.org/show_bug.cgi?id=156928
rdar://problem/19029603
Reviewed by Beth Dakin.
Give databases a default quota of 50 MB, matching what we have in UIWebView.
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::UIClient::exceededDatabaseQuota):
2016-04-22 Ryan Haddad <ryanhaddad@apple.com>
Fix builds that do not support AVKit
Unreviewed build fix.
* UIProcess/Cocoa/WebVideoFullscreenManagerProxy.h:
* UIProcess/Cocoa/WebVideoFullscreenManagerProxy.mm:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::reattachToWebProcess):
(WebKit::WebPageProxy::viewDidLeaveWindow):
* UIProcess/ios/WebPageProxyIOS.mm:
2016-04-22 Brady Eidson <beidson@apple.com>
Modern IDB: Rework the ownership/RefCounting model of IDBConnectionToServer and IDBConnectionProxy.
https://bugs.webkit.org/show_bug.cgi?id=156916
Reviewed by Tim Horton.
* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:
(WebKit::WebIDBConnectionToServer::WebIDBConnectionToServer):
2016-04-22 Zan Dobersek <zdobersek@igalia.com>
NetworkCacheIOChannelSoup: detach the newly-created IOChannel::readSync thread
https://bugs.webkit.org/show_bug.cgi?id=156907
Reviewed by Carlos Garcia Campos.
* NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:
(WebKit::NetworkCache::IOChannel::readSyncInThread): Detach the new thread,
ensuring the resources are released after the thread exits. Next step is
to set up a thread pool and use that, avoiding thread re-creation.
2016-04-21 Dean Jackson <dino@apple.com>
Backdrop Filter should not be visible if element has visibility:hidden
https://bugs.webkit.org/show_bug.cgi?id=149318
<rdar://problem/22749780>
Reviewed by Simon Fraser.
Add the isHidden method to PlatformCALayerRemote.
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::isHidden):
* WebProcess/WebPage/mac/PlatformCALayerRemote.h:
2016-04-21 Anders Carlsson <andersca@apple.com>
WKWebView HTML5 AppCache not working
https://bugs.webkit.org/show_bug.cgi?id=156887
rdar://problem/17944162
Reviewed by Tim Horton.
* Shared/WebPreferencesDefinitions.h:
Set the offlineWebApplicationCacheEnabled property to true by default.
* UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:
(API::WebsiteDataStore::defaultDataStoreConfiguration):
Set the default applicationCacheFlatFileSubdirectoryName to "Files".
2016-04-21 Anders Carlsson <andersca@apple.com>
Get rid of the last uses of ApplicationCacheStorage::singleton() from WebKit2
https://bugs.webkit.org/show_bug.cgi?id=156876
Reviewed by Tim Horton.
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
Add and encode and decode a applicationCacheFlatFileSubdirectoryName.
* UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::createWithLegacyOptions):
Set m_applicationCacheFlatFileSubdirectoryName to "ApplicationCache".
(API::ProcessPoolConfiguration::ProcessPoolConfiguration):
Set m_applicationCacheFlatFileSubdirectoryName to "Files".
(API::ProcessPoolConfiguration::copy):
Copy m_applicationCacheFlatFileSubdirectoryName.
* UIProcess/API/APIProcessPoolConfiguration.h:
Add getter for applicationCacheFlatFileSubdirectoryName.
* UIProcess/WebProcessPool.cpp:
(WebKit::legacyWebsiteDataStoreConfiguration):
Initialize applicationCacheFlatFileSubdirectoryName from the process pool configuration.
(WebKit::WebProcessPool::createNewWebProcess):
Initialize parameters.applicationCacheFlatFileSubdirectoryName. Remove a call to
ApplicationCacheStorage::singleton().setDefaultOriginQuota since it had no effect (it was called in the UI process).
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::WebsiteDataStore):
Initialize m_applicationCacheFlatFileSubdirectoryName.
(WebKit::WebsiteDataStore::fetchData):
(WebKit::WebsiteDataStore::removeData):
Pass m_applicationCacheFlatFileSubdirectoryName when creating the application cache storage.
* UIProcess/WebsiteData/WebsiteDataStore.h:
Add new members.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
Set the application cache storage.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
Initialize the application cache storage.
* WebProcess/WebProcess.h:
(WebKit::WebProcess::applicationCacheStorage):
Add new getter.
2016-04-21 Anders Carlsson <andersca@apple.com>
Remove two uses of ApplicationCacheStorage::singleton() from WebKit2
https://bugs.webkit.org/show_bug.cgi?id=156873
Reviewed by Beth Dakin.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::reachedApplicationCacheOriginQuota):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::clearApplicationCache): Deleted.
* WebProcess/WebProcess.h:
2016-04-21 Beth Dakin <bdakin@apple.com>
showCandidates() should take a range and the string should be the whole
paragraph
https://bugs.webkit.org/show_bug.cgi?id=156813
-and corresponding-
rdar://problem/25760533
Reviewed by Tim Horton.
* UIProcess/Cocoa/WebViewImpl.h:
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::updateWebViewImplAdditions):
(WebKit::WebViewImpl::showCandidates):
(WebKit::WebViewImpl::requestCandidatesForSelectionIfNeeded):
(WebKit::WebViewImpl::handleRequestedCandidates):
2016-04-21 Chelsea Pugh <cpugh@apple.com>
[iOS] Allow clients to hide the accessory view on a form input session
https://bugs.webkit.org/show_bug.cgi?id=155574
Reviewed by Dan Bernstein.
* UIProcess/API/Cocoa/_WKFormInputSession.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKFormInputSession accessoryViewShouldNotShow]): Getter for accessoryViewShouldNotShow.
(-[WKFormInputSession setAccessoryViewShouldNotShow:]): Set accessoryViewShouldNotShow and reload input views.
(-[WKContentView requiresAccessoryView]): If the accessory view should be not be shown, do not require
the accessory view.
2016-04-21 Chris Dumez <cdumez@apple.com>
Drop [UsePointersEvenForNonNullableObjectArguments] from Range
https://bugs.webkit.org/show_bug.cgi?id=156805
Reviewed by Youenn Fablet.
* WebProcess/InjectedBundle/API/mac/WKDOMRange.mm:
(-[WKDOMRange setStart:offset:]):
(-[WKDOMRange setEnd:offset:]):
(-[WKDOMRange selectNode:]):
(-[WKDOMRange selectNodeContents:]):
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::contentsAsString):
2016-04-21 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] WebKitWebView should claim the contents size as its natural size
https://bugs.webkit.org/show_bug.cgi?id=156835
Reviewed by Žan Doberšek.
And keep claiming 0 as its minimum size since it's scrollable.
* UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::didChangeContentSize): Call webkitWebViewBaseSetContentsSize().
* UIProcess/API/gtk/PageClientImpl.h:
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseGetPreferredWidth): Return the contents width as natural width.
(webkitWebViewBaseGetPreferredHeight): Return the contents height as natural height.
(webkit_web_view_base_class_init): Add implementations of get_preferred_width/height.
(webkitWebViewBaseSetContentsSize): Save the contents size.
* UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
2016-04-21 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] WebKitWebView should propagate wheel events not handled by the web process
https://bugs.webkit.org/show_bug.cgi?id=156834
Reviewed by Žan Doberšek.
We are currently swallowing all wheel events unconditionally, not allowing applications to handle wheel events
when not handled by us. Since the GTK+ event propagation system is synchronous, and our events are handled
asynchronously, we need to do something similar to what we do for key events, not propagate the event the first
time and if not handled by the web process, re-inject it in the event loop and then just propagate it.
* Shared/NativeWebWheelEvent.h:
(WebKit::NativeWebWheelEvent::nativeEvent): Remove useless const.
* UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::wheelEventWasNotHandledByWebCore): Tell the web view to propagate the next wheel event,
and re-inject the event not handled by the web process in the event loop.
* UIProcess/API/gtk/PageClientImpl.h:
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseScrollEvent): Propagate the event if shouldForwardNextWheelEvent is true.
(webkitWebViewBaseForwardNextWheelEvent): Set shouldForwardNextWheelEvent to true.
* UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didReceiveEvent): Remove ifdef.
* UIProcess/efl/WebView.h:
2016-04-20 Dustin Falgout <dustin@falgout.us>
[GTK] Expose AllowUniversalAccessFromFileURLs preference now that calling localStorage.getItem() results in SecurityError: DOM Exception 18
Reviewed by Michael Catanzaro.
As of r197858 JavaScript loaded in the context of a file scheme url cannot access local storage. That is a major
breaking change as many applications that serve files locally rely on having access to local storage. The point
of that security fix is to avoid cases of downloaded HTML content (such as e-mail attachments or JS injected
into local contexts) from having access to your local file system and arbitrary local storage. If you are serving
local files in your applications, you can use the WebKitAllowUniversalAccessFromFileURLs preference key to tell
Webkit that you are approve of these kinds of interactions.
https://bugs.webkit.org/show_bug.cgi?id=156651
* UIProcess/API/gtk/WebKitSettings.cpp:
(webKitSettingsSetProperty):
(webKitSettingsGetProperty):
(webkit_settings_class_init):
(webkit_settings_get_allow_universal_access_from_file_urls):
(webkit_settings_set_allow_universal_access_from_file_urls):
* UIProcess/API/gtk/WebKitSettings.h:
* UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
2016-04-20 Brady Eidson <beidson@apple.com>
Modern IDB (Workers): Enable INDEXED_DATABASE_IN_WORKERS compile time flag, but disabled in RuntimeEnabledFeatures.
https://bugs.webkit.org/show_bug.cgi?id=156782
Reviewed by Alex Christensen.
* Configurations/FeatureDefines.xcconfig:
2016-04-20 Brent Fulgham <bfulgham@apple.com>
[WK2][Mac][iOS] WebContent crash when using special file:// URI scheme @ WebKit::resolveSymlinksInPath(WTF::CString const&) + 159
https://bugs.webkit.org/show_bug.cgi?id=156747
<rdar://problem/24648176>
Reviewed by Alexey Proskuryakov.
FileSystemCF::fileSystemRepresentation return a null string when presented with a file URL that contains embedded nulls. When
this happens, SandboxExtension::createHandle attempts to pass a null string to 'resolveSymlinksInPath', which attemps to call
'strrchr' on the null pointer, causing a crash.
Test: fast/url/file-uri-with-embedded-null-no-crash.html
* Shared/mac/SandboxExtensionMac.mm:
(WebKit::SandboxExtension::createHandle): If 'fileSystemRepresentation' is null, return early with an error.
2016-04-19 Alex Christensen <achristensen@webkit.org>
Fix CMake build.
* CMakeLists.txt:
Don't compile a file that doesn't exist.
* PlatformMac.cmake:
Put the XPCServices in the right place.
2016-04-19 Chris Dumez <cdumez@apple.com>
Crash under WebKit::PluginView::pluginSnapshotTimerFired
https://bugs.webkit.org/show_bug.cgi?id=156754
<rdar://problem/22566764>
Reviewed by Beth Dakin.
Add null check for frame() before trying to access the frame settings,
similarly to what is done earlier in this function. This fixes a top
crasher.
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::pluginSnapshotTimerFired):
2016-04-19 Dean Jackson <dino@apple.com>
New SPI to export a dictionary of runtime features
https://bugs.webkit.org/show_bug.cgi?id=156645
<rdar://problem/23621666>
Reviewed by Anders Carlsson.
Mark the new SPI as WK_MAC_TBA, WK_IOS_TBA.
* UIProcess/API/Cocoa/_WKExperimentalFeature.h:
2016-04-19 Dean Jackson <dino@apple.com>
New SPI to export a dictionary of runtime features
https://bugs.webkit.org/show_bug.cgi?id=156645
<rdar://problem/23621666>
Post commit follow-up. Darin gave review comments that
I didn't address in my original commit - I was waiting
on some advice.
* UIProcess/WebPreferences.cpp:
(WebKit::WebPreferences::isEnabledForFeature): Change the macro
to generate a static list of function pointers, rather than
a lot of conditional statements.
(WebKit::WebPreferences::setEnabledForFeature): Ditto.
2016-04-19 Chris Dumez <cdumez@apple.com>
Mark more classes as WTF_MAKE_FAST_ALLOCATED
https://bugs.webkit.org/show_bug.cgi?id=156732
Reviewed by Darin Adler.
* NetworkProcess/Downloads/Download.h:
* NetworkProcess/Downloads/PendingDownload.h:
* NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h:
* Shared/API/Cocoa/RemoteObjectInvocation.h:
2016-04-19 Alex Christensen <achristensen@webkit.org>
Build fix.
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::preregisterSandboxExtensionsForOptionallyFileBackedBlob):
result is unused.
2016-04-19 Brady Eidson <beidson@apple.com>
Modern IDB: ObjectStore Blob Support.
https://bugs.webkit.org/show_bug.cgi?id=143193
Reviewed by Alex Christensen.
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::preregisterSandboxExtensionsForOptionallyFileBackedBlob): Don't ASSERT that
this is the first we've heard of this path - The Connection now remembers all extensions.
(WebKit::NetworkConnectionToWebProcess::getBlobDataFileReferenceForPath): Don't take - Just get.
2016-04-19 Antti Koivisto <antti@apple.com>
Try to fix iOS build.
* UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
2016-04-19 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r199658.
https://bugs.webkit.org/show_bug.cgi?id=156736
It broke all EFL layout tests (Requested by KaL on #webkit).
Reverted changeset:
"[UNIX] Initialize WebKit before the platform initializations"
https://bugs.webkit.org/show_bug.cgi?id=156622
http://trac.webkit.org/changeset/199658
2016-04-18 Alex Christensen <achristensen@webkit.org>
Build fix after r199700
* PlatformMac.cmake:
2016-04-18 Brady Eidson <beidson@apple.com>
Modern IDB (Blob support): When reading Blobs from the database, grant the Networking process sandbox access to the files.
https://bugs.webkit.org/show_bug.cgi?id=156640
Reviewed by Alex Christensen.
* DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::getSandboxExtensionsForBlobFiles): Utility function to ask the UI process for
SandboxExtensions for a list of files.
(WebKit::DatabaseProcess::didGetSandboxExtensionsForBlobFiles): Take the SandboxExtensions from the UI process
and pass them along to the completion handler.
* DatabaseProcess/DatabaseProcess.h:
* DatabaseProcess/DatabaseProcess.messages.in:
* DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:
(WebKit::WebIDBConnectionToClient::didGetRecord): If the value returned from the database doesn't have Blob files,
pass the result directly on to WebCore. If it does, ask the UI process for SandboxExtensions first.
* NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:
(WebKit::NetworkBlobRegistry::registerBlobURLOptionallyFileBacked): Grab the BlobDataFileReference from the
NetworkConnectionToWebProcess to pass along to the BlobRegistry.
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::preregisterSandboxExtensionsForOptionallyFileBackedBlob): Add this message
so the WebProcess can preflight the creation of some blob URLs by passing along the SandboxExtensions for their files.
(WebKit::NetworkConnectionToWebProcess::takeBlobDataFileReferenceForPath):
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/NetworkConnectionToWebProcess.messages.in:
* UIProcess/Databases/DatabaseProcessProxy.cpp:
(WebKit::DatabaseProcessProxy::getSandboxExtensionsForBlobFiles): Create SandboxExtensions for the passed in files and
return them to the DatabaseProcess.
* UIProcess/Databases/DatabaseProcessProxy.h:
* UIProcess/Databases/DatabaseProcessProxy.messages.in:
* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:
(WebKit::WebIDBConnectionToServer::didGetRecordWithSandboxExtensions): New form of "didGetRecord" that handles passing
the SandboxExtensions to the Networking process before they are needed.
* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.messages.in:
* WebProcess/FileAPI/BlobRegistryProxy.cpp:
(WebKit::BlobRegistryProxy::registerBlobURLOptionallyFileBacked):
* WebProcess/FileAPI/BlobRegistryProxy.h:
2016-04-18 Dean Jackson <dino@apple.com>
New SPI to export a dictionary of runtime features
https://bugs.webkit.org/show_bug.cgi?id=156645
<rdar://problem/23621666>
Trying to fix GTK and EFL builds. I forgot to add files
to CMake.
* CMakeLists.txt:
* PlatformMac.cmake:
2016-04-18 Dean Jackson <dino@apple.com>
New SPI to export a dictionary of runtime features
https://bugs.webkit.org/show_bug.cgi?id=156645
<rdar://problem/23621666>
Reviewed by Darin Adler.
Add a new type of Preference for experimental features so that we
can dynamically toggle them from a WebKit2 host. These are special
keys that are tied to runtime flags. The host process can ask WebKit
for the list of keys, each with a small description, in order to
display UI.
- Add HumanReadableName and HumanReadableDescription parameters to our
macros, which are used when building a ExperimentalFeature.
These are both empty strings for the existing preferences. At some
point we should probably move all this to code generation rather
than macros, so that we don't have to carry around unused parameters.
- I've included two sample experimental features: WebGL2 and ShadowDOM.
They are not actually hooked up to the runtime settings yet, but its
pretty clear how that will happen. Note that these are new preferences
that have an "Experimental" prefix. This is so toggling an experimental
feature to off won't cause the feature to not work once it becomes
stable enough to enable by default. In other words, when it moves
out of the experimental stage, the experimental feature flag will be
removed, and you'll no longer check for values with that key.
- The ExperimentalFeature object is what the host process
will read in order to show some UI. It contains the human readable info,
as well as the actual key that can be used to query and toggle the
experimental feature.
* Shared/API/APIObject.h: Add the ExperimentalFeature.
* Shared/Cocoa/APIObject.mm:
(API::Object::newObject): Exposes a wrapper around a _WKExperimentalFeature ObjC type.
* Shared/WebPreferencesDefinitions.h: Change all the existing macros to take the new
parameters, and add the initial experimental keys.
* Shared/WebPreferencesKeys.cpp: Add new parameters to existing macros.
* Shared/WebPreferencesKeys.h: Ditto.
* Shared/WebPreferencesStore.cpp: Ditto.
(WebKit::defaults):
* UIProcess/API/APIExperimentalFeature.cpp: The API side of the ExperimentalFeature.
(API::ExperimentalFeature::create):
(API::ExperimentalFeature::ExperimentalFeature):
(API::ExperimentalFeature::~ExperimentalFeature):
* UIProcess/API/APIExperimentalFeature.h:
* UIProcess/API/Cocoa/WKPreferences.mm: The actual implementation of the SPI.
(+[WKPreferences _experimentalFeatures]): Create and return a list of feature descriptors.
(-[WKPreferences _isEnabledForFeature:]): Get the value.
(-[WKPreferences _setEnabled:forFeature:]): Set the value.
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:
* UIProcess/API/Cocoa/_WKExperimentalFeature.h: The ObjC version.
* UIProcess/API/Cocoa/_WKExperimentalFeature.mm:
(-[_WKExperimentalFeature dealloc]):
(-[_WKExperimentalFeature description]):
(-[_WKExperimentalFeature name]):
(-[_WKExperimentalFeature key]):
(-[_WKExperimentalFeature details]):
(-[_WKExperimentalFeature _apiObject]):
* UIProcess/API/Cocoa/_WKExperimentalFeatureInternal.h: Implementation of the wrapper.
(WebKit::wrapper):
* UIProcess/WebPreferences.cpp: The C++ implementation that provides the data for the ObjC API.
(WebKit::globalExperimentalFeatures):
(WebKit::WebPreferences::ExperimentalFeatures):
(WebKit::WebPreferences::isEnabledForFeature):
(WebKit::WebPreferences::setEnabledForFeature):
* UIProcess/WebPreferences.h:
* UIProcess/mac/WebPreferencesMac.mm: Update some macros.
(WebKit::WebPreferences::platformInitializeStore):
* WebProcess/WebPage/WebPage.cpp: Ditto
(WebKit::WebPage::updatePreferences):
* WebKit2.xcodeproj/project.pbxproj: Add the new files.
2016-04-18 Tim Horton <timothy_horton@apple.com>
Swipe view gesture should be reversed in right-to-left contexts
https://bugs.webkit.org/show_bug.cgi?id=156714
Reviewed by Anders Carlsson.
* UIProcess/API/gtk/PageClientImpl.h:
* UIProcess/PageClient.h:
* UIProcess/UserInterfaceLayoutDirection.h: Added.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::userInterfaceLayoutDirection):
* UIProcess/WebPageProxy.h:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::userInterfaceLayoutDirection):
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::userInterfaceLayoutDirection):
Plumb RTL-ness through to WebPageProxy.
We look at the WK(Web)View's UI layout direction.
For other platforms, we just assume LTR.
* UIProcess/mac/ViewGestureController.h:
* UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::PendingSwipeTracker::scrollEventCanBecomeSwipe):
Decide which way to swipe (and which way to look for back-forward items)
based on the WebPageProxy's reported RTLness.
(WebKit::ViewGestureController::isPhysicallySwipingLeft):
"Back" means "swiping left" in LTR and "swiping right" in RTL.
(WebKit::ViewGestureController::trackSwipeGesture):
(WebKit::ViewGestureController::determineLayerAdjacentToSnapshotForParent):
(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::handleSwipeGesture):
Make things that were equating "back" with "left" instead check isPhysicallySwipingLeft.
2016-04-18 Anders Carlsson <andersca@apple.com>
Fix build with newer versions of clang.
rdar://problem/25749769
* UIProcess/Cocoa/WebViewImpl.mm:
* UIProcess/mac/WebPageProxyMac.mm:
Forward declare some AppKit IPI.
2016-04-18 Tina Liu <iting_liu@apple.com>
Implement functions to set plug-in load policies for private browsing mode
https://bugs.webkit.org/show_bug.cgi?id=156540
Reviewed by Anders Carlsson.
This patch implements API and wrappers for clients to set policies to use when using
private browsing. WebPlatformStrategies would return which policies to use depending
on whether the page is in private browsing mode.
* Shared/WebProcessCreationParameters.h:
Add a hash map for plug-in load policies for private browsing.
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):
* UIProcess/API/C/mac/WKContextPrivateMac.h:
* UIProcess/API/C/mac/WKContextPrivateMac.mm:
(WKContextSetPrivateBrowsingPluginLoadClientPolicy):
Add a wrapper.
* UIProcess/WebProcessPool.h:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::createNewWebProcess):
Set the WebProcessCreationParameters's pluginLoadClientPoliciesForPrivateBrowsing.
(WebKit::WebProcessPool::setPluginLoadClientPolicyForBrowsingMode):
A helper function that sets plug-in policies to the corresponding instance variable:
m_pluginLoadClientPolicies for general browsing and m_pluginLoadClientPoliciesForPrivateBrowsing
for private browsing. The logic is extracted from the original setPluginLoadClientPolicy.
While we are here, get rid of the .contains() lookup as .get() will just return a
constructed object if the key is not found.
(WebKit::WebProcessPool::setPluginLoadClientPolicy):
Switch to use the helper function to set policies.
(WebKit::WebProcessPool::setPrivateBrowsingPluginLoadClientPolicy):
Ditto. Also send a message to the WebProcess for setting policies for private browsing.
(WebKit::WebProcessPool::clearPluginClientPolicies):
Clear plug-ins' private browsing policies.
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::setPluginLoadClientPolicyForBrowsingMode):
Ditto as WebProcessPool::setPluginLoadClientPolicyForBrowsingMode.
(WebKit::WebPlatformStrategies::setPluginLoadClientPolicy):
Switch to use setPluginLoadClientPolicyForBrowsingMode to set policies.
(WebKit::WebPlatformStrategies::setPrivateBrowsingPluginLoadClientPolicy):
Use setPluginLoadClientPolicyForBrowsingMode to set policies for private browsing.
(WebKit::WebPlatformStrategies::clearPluginClientPolicies):
Clear plug-ins' private browsing policies.
(WebKit::WebPlatformStrategies::longestMatchedWildcardHostForHost):
Add an argument for private browsing. Read from the corresponding ivar.
(WebKit::WebPlatformStrategies::replaceHostWithMatchedWildcardHost):
Ditto.
(WebKit::WebPlatformStrategies::pluginLoadClientPolicyForHost): Deleted.
Renamed this function as pluginLoadClientPolicyForHostForBrowsingMode.
(WebKit::WebPlatformStrategies::pluginLoadClientPolicyForHostForBrowsingMode):
Ditto.
(WebKit::WebPlatformStrategies::populatePluginCache):
Get the plug-in load policies for a specific host based on the page's session status. If the page
is using ephemeral session, use the private browsing policies.
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
Switch to call the helper function setPluginLoadClientPolicyFromCreationParameters.
(WebKit::WebProcess::setPluginLoadClientPolicies):
Logic moved from initializeWebProcess. Call PluginStrategy::setPluginLoadClientPolicy or
PluginStrategy::setPrivateBrowsingPluginLoadClientPolicy depending on the input argument.
(WebKit::WebProcess::setPrivateBrowsingPluginLoadClientPolicy):
Add a wrapper to call PluginStrategy::setPrivateBrowsingPluginLoadClientPolicy.
* WebProcess/WebProcess.messages.in:
Declare an entry for setPrivateBrowsingPluginLoadClientPolicy.
2016-04-18 Chris Dumez <cdumez@apple.com>
[WK2][iOS] Only adjust network responses' MIME type for QuickLook in the context of a main resource load
https://bugs.webkit.org/show_bug.cgi?id=156639
<rdar://problem/25765848>
Reviewed by Alex Christensen.
* NetworkProcess/NetworkDataTask.h:
(WebKit::NetworkDataTask::firstRequest):
Add getter to return the first request.
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
Pass flag to adjustMIMETypeIfNecessary() indicated if this is a main resource load.
2016-04-18 Brian Burg <bburg@apple.com>
Web Automation: provide detailed error messages when an automation command fails
https://bugs.webkit.org/show_bug.cgi?id=156635
<rdar://problem/25754051>
Reviewed by Darin Adler and Timothy Hatcher.
Fill in lots of missing error message details now that the remote end knows
how to parse error strings with predefined error names and details.
* UIProcess/Automation/WebAutomationSession.cpp:
Rearrange the error message macros. Make it possible to pass a ErrorMessage
variable or just the enum value name and get out an encoded error message
that optionally includes a free-form details string. The predefined error
name and the details string are joined together with a semicolon.
(WebKit::WebAutomationSession::getBrowsingContext):
(WebKit::WebAutomationSession::createBrowsingContext):
(WebKit::WebAutomationSession::closeBrowsingContext):
(WebKit::WebAutomationSession::switchToBrowsingContext):
(WebKit::WebAutomationSession::resizeWindowOfBrowsingContext):
(WebKit::WebAutomationSession::moveWindowOfBrowsingContext):
(WebKit::WebAutomationSession::navigateBrowsingContext):
(WebKit::WebAutomationSession::goBackInBrowsingContext):
(WebKit::WebAutomationSession::goForwardInBrowsingContext):
(WebKit::WebAutomationSession::reloadBrowsingContext):
(WebKit::WebAutomationSession::evaluateJavaScriptFunction):
(WebKit::WebAutomationSession::didEvaluateJavaScriptFunction):
(WebKit::WebAutomationSession::resolveChildFrameHandle):
(WebKit::WebAutomationSession::didResolveChildFrame):
(WebKit::WebAutomationSession::resolveParentFrameHandle):
(WebKit::WebAutomationSession::didResolveParentFrame):
(WebKit::WebAutomationSession::computeElementLayout):
(WebKit::WebAutomationSession::didComputeElementLayout):
(WebKit::WebAutomationSession::isShowingJavaScriptDialog):
(WebKit::WebAutomationSession::dismissCurrentJavaScriptDialog):
(WebKit::WebAutomationSession::acceptCurrentJavaScriptDialog):
(WebKit::WebAutomationSession::messageOfCurrentJavaScriptDialog):
(WebKit::WebAutomationSession::setUserInputForCurrentJavaScriptPrompt):
(WebKit::WebAutomationSession::getAllCookies):
(WebKit::WebAutomationSession::didGetCookiesForFrame):
(WebKit::WebAutomationSession::deleteSingleCookie):
(WebKit::WebAutomationSession::didDeleteCookie):
(WebKit::WebAutomationSession::addSingleCookie):
(WebKit::WebAutomationSession::deleteAllCookies):
(WebKit::WebAutomationSession::performMouseInteraction):
(WebKit::WebAutomationSession::performKeyboardInteractions):
(WebKit::WebAutomationSession::takeScreenshot):
(WebKit::WebAutomationSession::didTakeScreenshot):
Audit almost all early exits and provide a relevant error details message
if the error itself is ambiguous. Make sure to format asynchronous errors.
2016-04-18 Brent Fulgham <bfulgham@apple.com>
CSP: Remove stubs for dynamically-added favicons (via link rel="icon")
https://bugs.webkit.org/show_bug.cgi?id=153151
<rdar://problem/24383176>
Reviewed by Darin Adler.
Remove the unused dynamic favicon code and tests.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidChangeIcons): Deleted.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
2016-04-18 Jer Noble <jer.noble@apple.com>
REGRESSION( r199603): Pandora crashes WebKit in WebPlaybackSessionManager::removeClientForContext
https://bugs.webkit.org/show_bug.cgi?id=156648
Reviewed by Darin Adler.
Follow up patch to r199615; avoid a double hash lookup by using a .find() pattern instead of
.contains() & .get().
* WebProcess/cocoa/WebPlaybackSessionManager.mm:
(WebKit::WebPlaybackSessionManager::setUpPlaybackControlsManager):
(WebKit::WebPlaybackSessionManager::clearPlaybackControlsManager):
2016-04-18 Chris Dumez <cdumez@apple.com>
Unreviewed, rolling out r199644.
Seems to have caused a 1-2% regression on warm PLT
Reverted changeset:
"[WK2][iOS] Do not dlopen() QuickLook in the NetworkProcess"
https://bugs.webkit.org/show_bug.cgi?id=156639
http://trac.webkit.org/changeset/199644
2016-04-18 Carlos Garcia Campos <cgarcia@igalia.com>
Pending API Request URL is wrong after reloading
https://bugs.webkit.org/show_bug.cgi?id=139342
Reviewed by Darin Adler.
It happens when reloading a web view loaded with anything but a
URL, because the bf list is not updated for those cases and
WebPageProxy::reload() is setting the current bf list item URL as
pending API request URL. This also causes that progress is
reported wrongly, because
WebPageProxy::decidePolicyForNavigationAction() resets the pending
API request URL when it's different than the requested URL. The
page load transaction causes the progress to be changed, reporting
1.0 (the previous one), but later something < 1.0 is reported
again by the progress tracker.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::reload): Use the current active URL as
pending API request URL, falling back to the current bf list item
URL when empty.
2016-04-18 Carlos Garcia Campos <cgarcia@igalia.com>
Pending API request URL no set when loading Data, Alternate HTML or plain text
https://bugs.webkit.org/show_bug.cgi?id=136916
Reviewed by Darin Adler.
Set pending API request URL for all load methods in
WebPageProxy. This ensures that right after calling those methods,
the active URL is the requested one and that
PageLoadState::isLoading() returns true.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::loadAlternateHTMLString):
(WebKit::WebPageProxy::loadPlainTextString):
(WebKit::WebPageProxy::loadWebArchiveData):
2016-04-18 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r199660.
https://bugs.webkit.org/show_bug.cgi?id=156691
It broke the iOS build (Requested by KaL on #webkit).
Reverted changeset:
"Pending API request URL no set when loading Data, Alternate
HTML or plain text"
https://bugs.webkit.org/show_bug.cgi?id=136916
http://trac.webkit.org/changeset/199660
2016-04-18 Carlos Garcia Campos <cgarcia@igalia.com>
Pending API request URL no set when loading Data, Alternate HTML or plain text
https://bugs.webkit.org/show_bug.cgi?id=136916
Reviewed by Darin Adler.
Set pending API request URL for all load methods in
WebPageProxy. This ensures that right after calling those methods,
the active URL is the requested one and that
PageLoadState::isLoading() returns true.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::loadAlternateHTMLString):
(WebKit::WebPageProxy::loadPlainTextString):
(WebKit::WebPageProxy::loadWebArchiveData):
2016-04-18 Carlos Garcia Campos <cgarcia@igalia.com>
[UNIX] Initialize WebKit before the platform initializations
https://bugs.webkit.org/show_bug.cgi?id=156622
Reviewed by Michael Catanzaro.
The platform specific initialization might use something that would require WebKit2 to be initialized. For
example, in debug mode, the GTK+ port uses WTF::sleep that requires the threading to be initialized.
* Shared/unix/ChildProcessMain.h:
(WebKit::ChildProcessMain): Move InitializeWebKit2() before platformInitialize().
2016-04-18 Jeremy Huddleston Sequoia <jeremyhu@apple.com>
Fix incorrect assumption that APPLE implies Mac.
https://bugs.webkit.org/show_bug.cgi?id=156679
Addresses build failure introduced in r198947
Reviewed by Alex Christensen.
* CMakeLists.txt:
2016-04-17 Yoav Weiss <yoav@yoav.ws>
Initial Link preload support
https://bugs.webkit.org/show_bug.cgi?id=156334
Reviewed by Darin Adler.
* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::maximumBufferingTime): Added LinkPreload as a possible CachedResource::type.
2016-04-17 Chris Dumez <cdumez@apple.com>
[WK2][iOS] Do not dlopen() QuickLook in the NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=156639
Reviewed by Darin Adler.
* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::didReceiveResponse):
Move checks for main resource load and for MIME type inside of
QuickLookHandle::createIfNecessary(), for consistency with the
other QuickLookHandle factory functions.
2016-04-16 Dan Bernstein <mitz@apple.com>
[Mac] Web Content service with a restricted entitlement may load arbitrary dylibs
https://bugs.webkit.org/show_bug.cgi?id=156668
<rdar://problem/25429784>
Reviewed by Anders Carlsson.
* Configurations/WebContentService.xcconfig: Enable library validation when the Web Content
service is given the XPC domain extension entitlement.
2016-04-15 Dan Bernstein <mitz@apple.com>
[Mac] WebContent, Networking and Databases services have i386 slices that are never used
https://bugs.webkit.org/show_bug.cgi?id=156654
Reviewed by Alexey Proskuryakov.
* Configurations/BaseXPCService.xcconfig: Set VALID_ARCHS to ARCHS_STANDARD when not building only
for the active architecture.
* Configurations/PluginService.32.xcconfig: Removed now-redundant definitions.
* Configurations/PluginService.64.xcconfig: Ditto.
2016-04-15 Sam Weinig <sam@webkit.org>
Need a way to specify a script name to show in the inspector for scripts injected via WKUserScript
<rdar://problem/25626662>
https://bugs.webkit.org/show_bug.cgi?id=156653
Reviewed by Tim Horton.
* UIProcess/API/Cocoa/WKUserScript.mm:
(-[WKUserScript _initWithSource:injectionTime:forMainFrameOnly:legacyWhitelist:legacyBlacklist:associatedURL:userContentWorld:]):
* UIProcess/API/Cocoa/WKUserScriptPrivate.h:
Add a new initializer that takes an associate URL that is used to represent the user script.
2016-04-15 Darin Adler <darin@apple.com>
Reduce use of Deprecated::ScriptXXX classes
https://bugs.webkit.org/show_bug.cgi?id=156632
Reviewed by Alex Christensen.
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::performJavaScriptURLRequest): Use JSValue.
* WebProcess/WebPage/WebInspectorUI.cpp:
(WebKit::WebInspectorUI::windowObjectCleared): Use references.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::runJavaScriptInMainFrame): Use JSValue.
2016-04-15 Jer Noble <jer.noble@apple.com>
REGRESSION( r199603): Pandora crashes WebKit in WebPlaybackSessionManager::removeClientForContext
https://bugs.webkit.org/show_bug.cgi?id=156648
<rdar://problem/25758117>
Reviewed by Beth Dakin.
Mistakenly checked in a reversed condition check, which causes a subsequent assert and crash.
* WebProcess/cocoa/WebPlaybackSessionManager.mm:
(WebKit::WebPlaybackSessionManager::clearPlaybackControlsManager):
2016-04-15 Chris Dumez <cdumez@apple.com>
Mark NetworkLoad as FastAllocated
https://bugs.webkit.org/show_bug.cgi?id=156628
Reviewed by Alex Christensen.
Mark NetworkLoad as FastAllocated for performance.
* NetworkProcess/NetworkLoad.h:
2016-04-14 Jer Noble <jer.noble@apple.com>
Allow WebVideoFullscreenManager and Proxy to be used by audio elements.
https://bugs.webkit.org/show_bug.cgi?id=156564
Reviewed by Beth Dakin.
Tease apart WebVideoFullscreenManager and …Proxy into WebPlaybackSessionManager and …Proxy
classes dealing exclusively with playback state and commands, leaving fullscreen state and
commands in the WebVideoFullscreenManager… classes.
WebVideoFullscreenManager and …Proxy will now require an associated
WebPlaybackSessionManager and …Proxy class. The WebPlaybackSessionManager classes can be
used separately and without the WebVideoFullscreenManager classes.
* DerivedSources.make:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _mayAutomaticallyShowVideoPictureInPicture]):
* UIProcess/Cocoa/WebPlaybackSessionManagerProxy.h: Copied from Source/WebKit2/UIProcess/Cocoa/WebVideoFullscreenManagerProxy.h.
* UIProcess/Cocoa/WebPlaybackSessionManagerProxy.messages.in: Copied from Source/WebKit2/UIProcess/Cocoa/WebVideoFullscreenManagerProxy.messages.in.
* UIProcess/Cocoa/WebPlaybackSessionManagerProxy.mm: Added.
(WebKit::WebPlaybackSessionModelContext::play):
(WebKit::WebPlaybackSessionModelContext::pause):
(WebKit::WebPlaybackSessionModelContext::togglePlayState):
(WebKit::WebPlaybackSessionModelContext::beginScrubbing):
(WebKit::WebPlaybackSessionModelContext::endScrubbing):
(WebKit::WebPlaybackSessionModelContext::seekToTime):
(WebKit::WebPlaybackSessionModelContext::fastSeek):
(WebKit::WebPlaybackSessionModelContext::beginScanningForward):
(WebKit::WebPlaybackSessionModelContext::beginScanningBackward):
(WebKit::WebPlaybackSessionModelContext::endScanning):
(WebKit::WebPlaybackSessionModelContext::selectAudioMediaOption):
(WebKit::WebPlaybackSessionModelContext::selectLegibleMediaOption):
(WebKit::WebPlaybackSessionManagerProxy::create):
(WebKit::WebPlaybackSessionManagerProxy::WebPlaybackSessionManagerProxy):
(WebKit::WebPlaybackSessionManagerProxy::~WebPlaybackSessionManagerProxy):
(WebKit::WebPlaybackSessionManagerProxy::invalidate):
(WebKit::WebPlaybackSessionManagerProxy::createModelAndInterface):
(WebKit::WebPlaybackSessionManagerProxy::ensureModelAndInterface):
(WebKit::WebPlaybackSessionManagerProxy::ensureModel):
(WebKit::WebPlaybackSessionManagerProxy::ensureInterface):
(WebKit::WebPlaybackSessionManagerProxy::addClientForContext):
(WebKit::WebPlaybackSessionManagerProxy::removeClientForContext):
(WebKit::WebPlaybackSessionManagerProxy::setUpPlaybackControlsManagerWithID):
(WebKit::WebPlaybackSessionManagerProxy::clearPlaybackControlsManager):
(WebKit::WebPlaybackSessionManagerProxy::resetMediaState):
(WebKit::WebPlaybackSessionManagerProxy::setCurrentTime):
(WebKit::WebPlaybackSessionManagerProxy::setBufferedTime):
(WebKit::WebPlaybackSessionManagerProxy::setSeekableRangesVector):
(WebKit::WebPlaybackSessionManagerProxy::setCanPlayFastReverse):
(WebKit::WebPlaybackSessionManagerProxy::setAudioMediaSelectionOptions):
(WebKit::WebPlaybackSessionManagerProxy::setLegibleMediaSelectionOptions):
(WebKit::WebPlaybackSessionManagerProxy::setExternalPlaybackProperties):
(WebKit::WebPlaybackSessionManagerProxy::setWirelessVideoPlaybackDisabled):
(WebKit::WebPlaybackSessionManagerProxy::setDuration):
(WebKit::WebPlaybackSessionManagerProxy::setRate):
(WebKit::WebPlaybackSessionManagerProxy::play):
(WebKit::WebPlaybackSessionManagerProxy::pause):
(WebKit::WebPlaybackSessionManagerProxy::togglePlayState):
(WebKit::WebPlaybackSessionManagerProxy::beginScrubbing):
(WebKit::WebPlaybackSessionManagerProxy::endScrubbing):
(WebKit::WebPlaybackSessionManagerProxy::seekToTime):
(WebKit::WebPlaybackSessionManagerProxy::fastSeek):
(WebKit::WebPlaybackSessionManagerProxy::beginScanningForward):
(WebKit::WebPlaybackSessionManagerProxy::beginScanningBackward):
(WebKit::WebPlaybackSessionManagerProxy::endScanning):
(WebKit::WebPlaybackSessionManagerProxy::selectAudioMediaOption):
(WebKit::WebPlaybackSessionManagerProxy::selectLegibleMediaOption):
(WebKit::WebPlaybackSessionManagerProxy::controlsManagerInterface):
* UIProcess/Cocoa/WebVideoFullscreenManagerProxy.h:
* UIProcess/Cocoa/WebVideoFullscreenManagerProxy.messages.in:
* UIProcess/Cocoa/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenModelContext::WebVideoFullscreenModelContext):
(WebKit::WebVideoFullscreenModelContext::~WebVideoFullscreenModelContext):
(WebKit::WebVideoFullscreenModelContext::play):
(WebKit::WebVideoFullscreenModelContext::pause):
(WebKit::WebVideoFullscreenModelContext::togglePlayState):
(WebKit::WebVideoFullscreenModelContext::beginScrubbing):
(WebKit::WebVideoFullscreenModelContext::endScrubbing):
(WebKit::WebVideoFullscreenModelContext::seekToTime):
(WebKit::WebVideoFullscreenModelContext::fastSeek):
(WebKit::WebVideoFullscreenModelContext::beginScanningForward):
(WebKit::WebVideoFullscreenModelContext::beginScanningBackward):
(WebKit::WebVideoFullscreenModelContext::endScanning):
(WebKit::WebVideoFullscreenModelContext::selectAudioMediaOption):
(WebKit::WebVideoFullscreenModelContext::selectLegibleMediaOption):
(WebKit::WebVideoFullscreenManagerProxy::create):
(WebKit::WebVideoFullscreenManagerProxy::WebVideoFullscreenManagerProxy):
(WebKit::WebVideoFullscreenManagerProxy::createModelAndInterface):
(WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::setVideoDimensions): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::enterFullscreen): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::exitFullscreen): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::exitFullscreenWithoutAnimationToMode): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::cleanupFullscreen): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::preparedToReturnToInline): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::requestFullscreenMode): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::didSetupFullscreen): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::didExitFullscreen): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::didEnterFullscreen): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::didCleanupFullscreen): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::setVideoLayerFrame): Deleted.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::reattachToWebProcess):
(WebKit::WebPageProxy::playbackSessionManager):
(WebKit::WebPageProxy::videoFullscreenManager):
(WebKit::WebPageProxy::resetState):
(WebKit::WebPageProxy::hasActiveVideoForControlsManager):
(WebKit::WebPageProxy::isPlayingMediaDidChange): Deleted.
* UIProcess/WebPageProxy.h:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::supportsVideoFullscreen):
(WebKit::WebChromeClient::setUpPlaybackControlsManager):
(WebKit::WebChromeClient::clearPlaybackControlsManager):
(WebKit::WebChromeClient::enterVideoFullscreenForVideoElement):
(WebKit::WebChromeClient::exitVideoFullscreenForVideoElement):
(WebKit::WebChromeClient::exitVideoFullscreenToModeWithoutAnimation):
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::playbackSessionManager):
(WebKit::WebPage::videoFullscreenManager):
* WebProcess/WebPage/WebPage.h:
* WebProcess/cocoa/WebPlaybackSessionManager.h: Copied from Source/WebKit2/WebProcess/cocoa/WebVideoFullscreenManager.h.
(WebKit::WebPlaybackSessionInterfaceContext::create):
(WebKit::WebPlaybackSessionInterfaceContext::invalidate):
* WebProcess/cocoa/WebPlaybackSessionManager.messages.in: Added.
* WebProcess/cocoa/WebPlaybackSessionManager.mm: Added.
(WebKit::nextContextId):
(WebKit::WebPlaybackSessionInterfaceContext::WebPlaybackSessionInterfaceContext):
(WebKit::WebPlaybackSessionInterfaceContext::~WebPlaybackSessionInterfaceContext):
(WebKit::WebPlaybackSessionInterfaceContext::resetMediaState):
(WebKit::WebPlaybackSessionInterfaceContext::setDuration):
(WebKit::WebPlaybackSessionInterfaceContext::setCurrentTime):
(WebKit::WebPlaybackSessionInterfaceContext::setBufferedTime):
(WebKit::WebPlaybackSessionInterfaceContext::setRate):
(WebKit::WebPlaybackSessionInterfaceContext::setSeekableRanges):
(WebKit::WebPlaybackSessionInterfaceContext::setCanPlayFastReverse):
(WebKit::WebPlaybackSessionInterfaceContext::setAudioMediaSelectionOptions):
(WebKit::WebPlaybackSessionInterfaceContext::setLegibleMediaSelectionOptions):
(WebKit::WebPlaybackSessionInterfaceContext::setExternalPlayback):
(WebKit::WebPlaybackSessionInterfaceContext::setWirelessVideoPlaybackDisabled):
(WebKit::WebPlaybackSessionManager::create):
(WebKit::WebPlaybackSessionManager::WebPlaybackSessionManager):
(WebKit::WebPlaybackSessionManager::~WebPlaybackSessionManager):
(WebKit::WebPlaybackSessionManager::createModelAndInterface):
(WebKit::WebPlaybackSessionManager::ensureModelAndInterface):
(WebKit::WebPlaybackSessionManager::ensureModel):
(WebKit::WebPlaybackSessionManager::ensureInterface):
(WebKit::WebPlaybackSessionManager::removeContext):
(WebKit::WebPlaybackSessionManager::addClientForContext):
(WebKit::WebPlaybackSessionManager::removeClientForContext):
(WebKit::WebPlaybackSessionManager::setUpPlaybackControlsManager):
(WebKit::WebPlaybackSessionManager::clearPlaybackControlsManager):
(WebKit::WebPlaybackSessionManager::contextIdForMediaElement):
(WebKit::WebPlaybackSessionManager::resetMediaState):
(WebKit::WebPlaybackSessionManager::setDuration):
(WebKit::WebPlaybackSessionManager::setCurrentTime):
(WebKit::WebPlaybackSessionManager::setBufferedTime):
(WebKit::WebPlaybackSessionManager::setRate):
(WebKit::WebPlaybackSessionManager::setSeekableRanges):
(WebKit::WebPlaybackSessionManager::setCanPlayFastReverse):
(WebKit::WebPlaybackSessionManager::setAudioMediaSelectionOptions):
(WebKit::WebPlaybackSessionManager::setLegibleMediaSelectionOptions):
(WebKit::WebPlaybackSessionManager::setExternalPlayback):
(WebKit::WebPlaybackSessionManager::setWirelessVideoPlaybackDisabled):
(WebKit::WebPlaybackSessionManager::play):
(WebKit::WebPlaybackSessionManager::pause):
(WebKit::WebPlaybackSessionManager::togglePlayState):
(WebKit::WebPlaybackSessionManager::beginScrubbing):
(WebKit::WebPlaybackSessionManager::endScrubbing):
(WebKit::WebPlaybackSessionManager::seekToTime):
(WebKit::WebPlaybackSessionManager::fastSeek):
(WebKit::WebPlaybackSessionManager::beginScanningForward):
(WebKit::WebPlaybackSessionManager::beginScanningBackward):
(WebKit::WebPlaybackSessionManager::endScanning):
(WebKit::WebPlaybackSessionManager::selectAudioMediaOption):
(WebKit::WebPlaybackSessionManager::selectLegibleMediaOption):
* WebProcess/cocoa/WebVideoFullscreenManager.h:
(WebKit::WebVideoFullscreenInterfaceContext::create):
* WebProcess/cocoa/WebVideoFullscreenManager.messages.in:
* WebProcess/cocoa/WebVideoFullscreenManager.mm:
(WebKit::WebVideoFullscreenInterfaceContext::WebVideoFullscreenInterfaceContext):
(WebKit::WebVideoFullscreenInterfaceContext::resetMediaState):
(WebKit::WebVideoFullscreenInterfaceContext::setDuration):
(WebKit::WebVideoFullscreenInterfaceContext::setCurrentTime):
(WebKit::WebVideoFullscreenInterfaceContext::setBufferedTime):
(WebKit::WebVideoFullscreenInterfaceContext::setRate):
(WebKit::WebVideoFullscreenInterfaceContext::setSeekableRanges):
(WebKit::WebVideoFullscreenInterfaceContext::setCanPlayFastReverse):
(WebKit::WebVideoFullscreenInterfaceContext::setAudioMediaSelectionOptions):
(WebKit::WebVideoFullscreenInterfaceContext::setLegibleMediaSelectionOptions):
(WebKit::WebVideoFullscreenInterfaceContext::setExternalPlayback):
(WebKit::WebVideoFullscreenInterfaceContext::setWirelessVideoPlaybackDisabled):
(WebKit::WebVideoFullscreenManager::create):
(WebKit::WebVideoFullscreenManager::WebVideoFullscreenManager):
(WebKit::WebVideoFullscreenManager::createModelAndInterface):
(WebKit::WebVideoFullscreenManager::enterVideoFullscreenForVideoElement):
(WebKit::WebVideoFullscreenInterfaceContext::setVideoDimensions): Deleted.
(WebKit::WebVideoFullscreenManager::~WebVideoFullscreenManager): Deleted.
(WebKit::WebVideoFullscreenManager::ensureModelAndInterface): Deleted.
(WebKit::WebVideoFullscreenManager::exitVideoFullscreenToModeWithoutAnimation): Deleted.
(WebKit::WebVideoFullscreenManager::setVideoDimensions): Deleted.
(WebKit::WebVideoFullscreenManager::requestFullscreenMode): Deleted.
(WebKit::WebVideoFullscreenManager::fullscreenModeChanged): Deleted.
(WebKit::WebVideoFullscreenManager::didSetupFullscreen): Deleted.
(WebKit::WebVideoFullscreenManager::didEnterFullscreen): Deleted.
(WebKit::WebVideoFullscreenManager::didExitFullscreen): Deleted.
(WebKit::WebVideoFullscreenManager::didCleanupFullscreen): Deleted.
(WebKit::WebVideoFullscreenManager::setVideoLayerGravityEnum): Deleted.
(WebKit::WebVideoFullscreenManager::fullscreenMayReturnToInline): Deleted.
(WebKit::WebVideoFullscreenManager::setVideoLayerFrameFenced): Deleted.
2016-04-15 John Wilander <wilander@apple.com>
Refactor WebSockets handshake to use StringView instead of String for header validation.
https://bugs.webkit.org/show_bug.cgi?id=155602
Reviewed by Darin Adler.
* UIProcess/InspectorServer/HTTPRequest.cpp:
(WebKit::HTTPRequest::parseHeaders):
Now declares the HTTP header name as a StringView to match the change in WebCore::parseHTTPHeader.
2016-04-15 Alex Christensen <achristensen@webkit.org>
Don't copy entire NSURLSessionConfiguration just to test for credentials
https://bugs.webkit.org/show_bug.cgi?id=156598
Reviewed by Brady Eidson.
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate initWithNetworkSession:withCredentials:]):
(-[WKNetworkSessionDelegate URLSession:task:didSendBodyData:totalBytesSent:totalBytesExpectedToSend:]):
(-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:didCompleteWithError:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveData:]):
(-[WKNetworkSessionDelegate URLSession:downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]):
(WebKit::NetworkSession::NetworkSession):
(-[WKNetworkSessionDelegate initWithNetworkSession:]): Deleted.
2016-04-14 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix GTK+ build after r199558.
* UIProcess/API/gtk/WebKitFileChooserRequest.cpp:
(webkitFileChooserRequestCreate):
(webkit_file_chooser_request_select_files):
* UIProcess/API/gtk/WebKitFileChooserRequestPrivate.h:
* UIProcess/API/gtk/WebKitUIClient.cpp:
2016-04-14 Brent Fulgham <bfulgham@apple.com>
Make <a download> a runtime enabled option
https://bugs.webkit.org/show_bug.cgi?id=156583
<rdar://problem/25733449>
Reviewed by Alex Christensen.
Add a download attribute runtime flag based on preferences.
Disable the download attribute by default.
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesGetFetchAPIEnabled):
(WKPreferencesSetDownloadAttributeEnabled):
(WKPreferencesGetDownloadAttributeEnabled):
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
2016-04-14 Alex Christensen <achristensen@webkit.org>
Build fix after r199554.
* CMakeLists.txt:
* PlatformMac.cmake:
2016-04-14 Brian Burg <bburg@apple.com>
Web Automation: suppress automatic text correction in pages controlled by automation
https://bugs.webkit.org/show_bug.cgi?id=156599
<rdar://problem/25712646>
Reviewed by Timothy Hatcher.
If the page is controlled by automation, then automatic text corrections will
cause unexpected behaviors by nondeterministically modifying text inserted by
a test. Just pretend these behaviors are disabled if controlled by automation.
* WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
(WebKit::WebEditorClient::isAutomaticQuoteSubstitutionEnabled):
(WebKit::WebEditorClient::isAutomaticDashSubstitutionEnabled):
(WebKit::WebEditorClient::isAutomaticTextReplacementEnabled):
(WebKit::WebEditorClient::isAutomaticSpellingCorrectionEnabled):
2016-04-14 Anders Carlsson <andersca@apple.com>
Try to fix the Yosemite build.
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::UIClient::runOpenPanel):
2016-04-14 Anders Carlsson <andersca@apple.com>
[Mac] Add API for open panel handling to WKWebView
https://bugs.webkit.org/show_bug.cgi?id=137759
rdar://problem/23278623
Reviewed by Tim Horton.
Based on a patch by Brian Michel.
* Shared/API/Cocoa/WebKit.h:
Import WKOpenPanelParameters.h.
* Shared/Cocoa/APIObject.mm:
(API::Object::newObject):
Create a WKOpenPanelParameters for Type::OpenPanelParameters.
* UIProcess/API/APIOpenPanelParameters.cpp: Renamed from Source/WebKit2/Shared/WebOpenPanelParameters.cpp.
* UIProcess/API/APIOpenPanelParameters.h: Renamed from Source/WebKit2/Shared/WebOpenPanelParameters.h.
Rename WebKit::WebOpenPanelParameters to API::OpenPanelParameters.
* UIProcess/API/APIUIClient.h:
(API::UIClient::runOpenPanel):
Change this to take a SecurityOriginData.
* UIProcess/API/C/WKAPICast.h:
* UIProcess/API/C/WKOpenPanelParametersRef.cpp:
(WKOpenPanelParametersGetTypeID):
Rename WebKit::WebOpenPanelParameters to API::OpenPanelParameters.
* UIProcess/API/C/WKOpenPanelResultListener.cpp:
(filePathsFromFileURLs):
(WKOpenPanelResultListenerChooseFiles):
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageUIClient):
Change chooseFiles to take a Vector<String> instead of an API::Array of URLs.
* UIProcess/API/Cocoa/WKOpenPanelParameters.h: Added.
* UIProcess/API/Cocoa/WKOpenPanelParameters.mm: Added.
(-[WKOpenPanelParameters allowsMultipleSelection]):
(-[WKOpenPanelParameters _apiObject]):
* UIProcess/API/Cocoa/WKOpenPanelParametersInternal.h:
Add a WKOpenPanelParameters class which contains information about a file upload control.
* UIProcess/API/Cocoa/WKUIDelegate.h:
Add new delegate method.
* UIProcess/Cocoa/UIDelegate.h:
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::setDelegate):
Record whether the UI delegate implements the new delegate method.
(WebKit::UIDelegate::UIClient::runOpenPanel):
Invoke the new delegate method.
* UIProcess/PageClient.h:
(WebKit::PageClient::handleRunOpenPanel):
Rename WebKit::WebOpenPanelParameters to API::OpenPanelParameters.
* UIProcess/WebOpenPanelResultListenerProxy.cpp:
(WebKit::WebOpenPanelResultListenerProxy::chooseFiles):
* UIProcess/WebOpenPanelResultListenerProxy.h:
Change chooseFiles to take a Vector<String> instead of an API::Array of URLs.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::runOpenPanel):
* UIProcess/WebPageProxy.h:
Change this to take a SecurityOriginData.
* UIProcess/WebPageProxy.messages.in:
Change RunOpenPanel to take a SecurityOriginData.
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::handleRunOpenPanel):
Rename WebKit::WebOpenPanelParameters to API::OpenPanelParameters.
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _showRunOpenPanel:resultListener:]):
Change chooseFiles to take a Vector<String> instead of an API::Array of URLs.
* UIProcess/ios/forms/WKFileUploadPanel.h:
* UIProcess/ios/forms/WKFileUploadPanel.mm:
(-[WKFileUploadPanel _chooseFiles:displayString:iconImage:]):
Change chooseFiles to take a Vector<String> instead of an API::Array of URLs.
(-[WKFileUploadPanel presentWithParameters:resultListener:]):
Rename WebKit::WebOpenPanelParameters to API::OpenPanelParameters.
* WebKit2.xcodeproj/project.pbxproj:
Add new file.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::runOpenPanel):
Pass the security origin of the frame along.
2016-04-14 Jiewen Tan <jiewen_tan@apple.com>
Unreviewed, rolling out r199554.
The change breaks Yosemite Release/Debug build
Reverted changeset:
"[Mac] Add API for open panel handling to WKWebView"
https://bugs.webkit.org/show_bug.cgi?id=137759
http://trac.webkit.org/changeset/199554
2016-04-14 Anders Carlsson <andersca@apple.com>
[Mac] Add API for open panel handling to WKWebView
https://bugs.webkit.org/show_bug.cgi?id=137759
rdar://problem/23278623
Reviewed by Tim Horton.
Based on a patch by Brian Michel.
* Shared/API/Cocoa/WebKit.h:
Import WKOpenPanelParameters.h.
* Shared/Cocoa/APIObject.mm:
(API::Object::newObject):
Create a WKOpenPanelParameters for Type::OpenPanelParameters.
* UIProcess/API/APIOpenPanelParameters.cpp: Renamed from Source/WebKit2/Shared/WebOpenPanelParameters.cpp.
* UIProcess/API/APIOpenPanelParameters.h: Renamed from Source/WebKit2/Shared/WebOpenPanelParameters.h.
Rename WebKit::WebOpenPanelParameters to API::OpenPanelParameters.
* UIProcess/API/APIUIClient.h:
(API::UIClient::runOpenPanel):
Change this to take a SecurityOriginData.
* UIProcess/API/C/WKAPICast.h:
* UIProcess/API/C/WKOpenPanelParametersRef.cpp:
(WKOpenPanelParametersGetTypeID):
Rename WebKit::WebOpenPanelParameters to API::OpenPanelParameters.
* UIProcess/API/C/WKOpenPanelResultListener.cpp:
(filePathsFromFileURLs):
(WKOpenPanelResultListenerChooseFiles):
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageUIClient):
Change chooseFiles to take a Vector<String> instead of an API::Array of URLs.
* UIProcess/API/Cocoa/WKOpenPanelParameters.h: Added.
* UIProcess/API/Cocoa/WKOpenPanelParameters.mm: Added.
(-[WKOpenPanelParameters allowsMultipleSelection]):
(-[WKOpenPanelParameters _apiObject]):
* UIProcess/API/Cocoa/WKOpenPanelParametersInternal.h:
Add a WKOpenPanelParameters class which contains information about a file upload control.
* UIProcess/API/Cocoa/WKUIDelegate.h:
Add new delegate method.
* UIProcess/Cocoa/UIDelegate.h:
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::setDelegate):
Record whether the UI delegate implements the new delegate method.
(WebKit::UIDelegate::UIClient::runOpenPanel):
Invoke the new delegate method.
* UIProcess/PageClient.h:
(WebKit::PageClient::handleRunOpenPanel):
Rename WebKit::WebOpenPanelParameters to API::OpenPanelParameters.
* UIProcess/WebOpenPanelResultListenerProxy.cpp:
(WebKit::WebOpenPanelResultListenerProxy::chooseFiles):
* UIProcess/WebOpenPanelResultListenerProxy.h:
Change chooseFiles to take a Vector<String> instead of an API::Array of URLs.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::runOpenPanel):
* UIProcess/WebPageProxy.h:
Change this to take a SecurityOriginData.
* UIProcess/WebPageProxy.messages.in:
Change RunOpenPanel to take a SecurityOriginData.
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::handleRunOpenPanel):
Rename WebKit::WebOpenPanelParameters to API::OpenPanelParameters.
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _showRunOpenPanel:resultListener:]):
Change chooseFiles to take a Vector<String> instead of an API::Array of URLs.
* UIProcess/ios/forms/WKFileUploadPanel.h:
* UIProcess/ios/forms/WKFileUploadPanel.mm:
(-[WKFileUploadPanel _chooseFiles:displayString:iconImage:]):
Change chooseFiles to take a Vector<String> instead of an API::Array of URLs.
(-[WKFileUploadPanel presentWithParameters:resultListener:]):
Rename WebKit::WebOpenPanelParameters to API::OpenPanelParameters.
* WebKit2.xcodeproj/project.pbxproj:
Add new file.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::runOpenPanel):
Pass the security origin of the frame along.
2016-04-14 Alex Christensen <achristensen@webkit.org>
Fix build without IndexedDB.
* DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::deleteWebsiteDataForOrigins):
(WebKit::DatabaseProcess::grantSandboxExtensionsForBlobs):
(WebKit::DatabaseProcess::prepareForAccessToTemporaryFile):
* DatabaseProcess/DatabaseProcess.h:
* DatabaseProcess/DatabaseProcess.messages.in:
2016-04-13 Daniel Bates <dabates@apple.com>
REGRESSION (r199401): Internal builds of Safari hang on launch
https://bugs.webkit.org/show_bug.cgi?id=156545
<rdar://problem/25697779&